Re: [TLS] Protocol version bit to use,
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [TLS] Protocol version bit to use,
Bill Frantz wrote:
>
> mike-list at pobox.com (Michael D'Errico) on Thursday, November 19, 2009 wrote:
>
> >My suggestion is to set the upper bit of the minor version field.
> >This provides a clear and unmistakable signal to the client, and is
> >completely contained within the 0x03 major version number space. Is
> >it a "hack", yeah, but it's entirely reasonable.
>
> If I understand the minor version field correctly, there are 5 or 6 bits
> that are always sent as zero by all current versions of TLS/SSL. Any of
> them would be suitable as a S->C signal.
>
> There may be advantages to using bits other than the 0x80 bit. For example,
> if the 0x04 bit is available, then it could be used for the signaling
> requirement, leaving 0x08 and higher available for future versions of TLS.
> This approach would still leave a simple ordered compare available for
> selecting the "most recent" protocol version both ends support.
I would _strongly_ prefer if the ServerHello.server_version field
would NOT be used in < or > comparisons while still carrying
the S->C signal.
The change in the handshake message hash algorithm for renegotiation
handshakes in order to provide secure renegotiation is a protocol
change that is orthogonal to the regular protocol versioning.
The signal should only be used for the network encoding and
the client should seperate the S->C signal from the protocol
version and store them in seperate variables.
In case there is another emergeny tomorrow (which I do NOT hope)
and we need to fix once again severa protocol versions into the past,
then shaving another bit may collide with such comparisons.
Otherwise people start wondering:
is { 0x83,0x00 } better or newer than { 0x03,0x03 } ?
or is { 0x83,0x01 } better or newer than { 0x03,0x04 } ?
Please, don't!
-Martin
Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.