Re: [TLS] [sasl] lasgt call comments (st Call:
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TLS] [sasl] lasgt call comments (st Call:



On Wed, Oct 28, 2009 at 09:49:28PM +0100, Martin Rex wrote:
> Nicolas Williams wrote:
> > 
> > Here, then, is my proposed clarification:
> > 
> >    Description: The client's TLS Finished message (note: the Finished 
> >    struct) from the first handshake of the TLS session.
> > 
> > (Yes, I changed "connection" to "session", followed by this:)
> > 
> >    Clarification: If a connection resumes a previous session, then the
> >    Finished message to use is that of the new session, not the one from
> >    the original session.  If a session has multiple handshakes and,
> >    therefore, multiple client Finished messages, the first client
> >    Finished message of that session is the one to use as the tls-unique
> >    channel binding.
> 
> This description/terminology about resume/previous/new/original session
> is confusing and wrong.
> 
> 
> If a TLS session is resumed, then the result is always the SAME session,
> which is indicated by the use of the SAME session id (and internally,
> by the use of the same underlying master secret).

Yes, I know.  That's why we had written "connection" instead of session!
But now Larry finds that confusing as well.

> A cached TLS session can be resumed quite often and simultaneously is
> parallel (which leads to multiple parallel/forked sessions).
> 
> The session keys are newly re-derived for each connection and each
> session resume, and they should be unique because of the client
> random and server random that go into the session key derivation
> of every new connection (=resumed session).
> 
> A resumed TLS session will also NOT exchange (and therefore not verify)
> any certificates.

Indeed.  But it does exchange Finished messages.  That's crucial here.

> Since the finished messages of the tls handshake cover the
> client random and server random of the SSL handshake, the finished
> messages are going to be unique for each connection, even for
> two resumes of the same session.

Exactly.  That's what we want.

> >                      From an application programming interface (API)
> >    perspective, the client's Finished message is saved in the contextual
> >    object handle that the client and server applications obtain when
> >    they initiate or resume a TLS session; later, when the applications
> >    request the tls-unique channel binding, the TLS implementation
> >    retrieves the saved first client Finished message from that context
> >    handle.
> 
> Asking the TLS protocol stack to memorize the original finished message
> sounds awkward to me.  The thing that the ssl session cache is already
> memorizing for a session is the master secret, so maybe deriving something
> from that would be better suited for the purpose than a requirement to
> store the original finished message.

Argh, I've managed to confuse you too.  I mean EXACTLY this: it's NOT
the client Finished message from the _session_ that is being resumed
(when one is), but the one for the connection.

Martin,

I appreciate your help, but we really need to hear from Larry, because
I'm all confused, and as a result I'm confusing you too.

Larry, can you please clarify?

Nico
-- 

Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.