Re: [TLS] Need for S->C signaling
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [TLS] Need for S->C signaling
Actually we could use your idea for a more symmetric signaling!
Stephen, I REALLY like this idea!
Since there are people that didn't like the gmt_unix_time
in Random anyway, we could just re-purpose it entirely.
Add a single magic ciphersuite as first(!) in ClientHello.cipher_suites
and then the field "ClientRandom.gmt_unix_time" must be interpreted
ClientHello.Random =
{
uint16 field_of_flags
uint16 reserved
opaque random_bytes[28]
}
And when the server sees that magic cipher suite and implements
this protocol extension, then it will return the magic cipher suite
as negotiated ServerHello.cipher_suite and then the definition
of the ServerHello.Random will be this:
ServerHello.Random =
{
uint16 field_of_flags
CipherSuite cipher_suite /* real negotiated cipher_suite */
opaque random_bytes[28]
}
Those implementors who want to keep a gmt_unix_time in their Random
to provide uniqueness, will need to put it somewhere into random_bytes,
like in the first 4 octets of that element.
This would give us 16 free bits for bi-directional signaling in
ClientHello and ServerHello at the cost of 2 Bytes in ClientHello.
The fun part: these bit-flags are not only protected by the
handshake message hash, they actually go into the PRF for
the session keys. Some kind of extra protection. :)
-Martin
PS: the session ID is used by servers to manage their cache
and may also be used by server-side load-balancers.
the session ID is only "random"-equivalent for the client
Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.