Re: [TLS] TLS renegotiation issue
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [TLS] TLS renegotiation issue
On Thu, Nov 05, 2009 at 06:11:41PM +0100, Martin Rex wrote:
> One conceivable approach would be a TLS extension for secure renegotiation
> with roughly the following semantics:
>
>
> - on initial TLS handshakes (aka Re-nego of a TLS_NULL_WITH_NULL_NULL)
> the client that supports secure renegotiation should send the
> TLS extension in the client hello with an empty extension data
> to signal to the server that it support secure renegotation.
>
> - on TLS session renegotiations, the client should sent the TLS extension
> with the extension data containing the client.random and server.random
> from the existing session.
The MITM can make sure they match.
Why not just send an extension with the tls-unique channel binding for
the first/outer connection, and then make sure that that gets fed as an
input for the PRF in the second/inner connection? I.e., proper channel
binding. The MITM _cannot_ make sure that the tls-unique CB of the
client<->MITM and MITM<->server outer connections match.
> - A server that receives a ClientHello without the TLS extension for
> secure renegotiation should NOT perform old-style renegotiation
> for that session (and get apps with flawed assumptions into trouble),
> i.e. NOT support delayed authentication for those TLS clients.
Right.
> - A server that receives a ClientHello on an initial TLS handshake
> with a TLS extension (empty data) for secure renegotiation may decide to
> delay client-cert authentication to a securely renegotiated session
Right.
> - A server that receives a ClientHello with a TLS extension for secure
> negotiation and a reference to a previous session MUST compare the
> client.random and server.random from the extension data to that of
> the current session (and abort if they do not match). And the
> server should probably insist on doing a ChangeCipherSpec on both
> directions in the renegotiation handshake.
See above.
> Since Larry is looking for a means to uniquely identify a single
> TLS "connection" independent of whether its a single TLS handshake
> or renegotiated, we should check whether we can carry-over some
> information form the initial handshake on a connection along
> with the client.random&server.random. Technically there is no
> limit on the number of renegotiations, so a simple pointer
> only one TLS session into the past does not seem sufficient
> for that purpose.
See above. Use tls-unique.
Nico
--
Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.