Re: [TLS] TLS state machine
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TLS] TLS state machine



----- Original Message -----
From: "Stefan Santesson" <stefans at microsoft.com>
To: <Pasi.Eronen at nokia.com>; <tls at ietf.org>
Sent: Wednesday, March 21, 2007 7:35 PM
Subject: RE: [TLS] TLS state machine


Thank you Pasi,

Considering this being the TLS state machine, the TLS extension mechanism
clearly allows a change of the TLS state machine as it allows other handshake
messages to be inserted in this flow.

What are the criteria that distinguish a valid change to the TLS state machine
from an invalid (unsuitable) one?
Or is this totally subjective?

<tp>
Hang on a bit; no way is what Pasi provided a complete state machine.

As EKR has said many times, he regards the number of round trips as a key
component and, although this is not exactly obvious in TLS1.2, it is implicitly
Client->server
  client<-server
Client->server
  client<-server
and whether or not this is embodied in a state machine is a matter of
expression.  The key objection to this proposal I hear is of an increase in,
perhaps an unbounded increase in, the number of such round trips.

Tom Petch


Stefan Santesson
Senior Program Manager
Windows Security, Standards


> -----Original Message-----
> From: Pasi.Eronen at nokia.com [mailto:Pasi.Eronen at nokia.com]
> Sent: den 21 mars 2007 16:07
> To: Stefan Santesson; tls at ietf.org
> Subject: RE: [TLS] TLS state machine
>
>
> The state machine is (sort of implicitly) described in these two
> figures, copied from RFC 4346:
>
>       ClientHello                  -------->
>                                                       ServerHello
>                                                      Certificate*
>                                                ServerKeyExchange*
>                                               CertificateRequest*
>                                    <--------      ServerHelloDone
>       Certificate*
>       ClientKeyExchange
>       CertificateVerify*
>       [ChangeCipherSpec]
>       Finished                     -------->
>                                                [ChangeCipherSpec]
>                                    <--------             Finished
>       Application Data             <------->     Application Data
>
> And the session resumption case:
>
>       ClientHello                   -------->
>                                                        ServerHello
>                                                 [ChangeCipherSpec]
>                                     <--------             Finished
>       [ChangeCipherSpec]
>       Finished                      -------->
>       Application Data              <------->     Application Data
>
> I'm not sure if using a state machine description language would
> actually help understanding, but it could look something like this
> (server's initial state):
>
>   State: WAITING_FOR_CLIENT_HELLO
>   Event: ClientHello received
>     process the client hello
>     if (didn't work out)
>       send alert
>       next state: FAILED
>     else if (session being resumed)
>       send ServerHello, ChangeCipherSpec, Finished
>       next state: WAITING_FOR_CCS
>     else
>       send ServerHello [Certificate] [ServerKeyExchange]
>          [CertificateRequest] ServerHelloDone
>       next state: WAITING_FOR_CERT_OR_CLIENT_KEY_EXCHANGE
>   Event: anything else
>     maybe send alert
>     go to state FAILED
>
> (The TLS implementations I've taken a look at actually have code
> that resembles this.)
>
> Best regards,
> Pasi
>
> > -----Original Message-----
> > From: ext Stefan Santesson [mailto:stefans at microsoft.com]
> > Sent: 21 March, 2007 16:37
> > To: tls at ietf.org
> > Subject: [TLS] TLS state machine
> >
> > We have had lots of discussions around GSS-TLS ending in
> > arguments that this would do too many changes to the TLS
> > state machine.
> >
> > It would be a lot easier to hold that discussion
> > constructively if the TLS state machine was clearly
> > described. A search for the term "state machine" in current
> > TLS 1.2 returns empty. I can't find any other text that would
> > clearly resemble such description.
> >
> > Would it be possible to add an annex in TLS 1.2 describing
> > the TLS state machine?
> >
> > It would then be a lot easier to analyze and discuss the
> > impact of any changes caused by various usages of the TLS
> > extensibility mechanisms.
> >
> >
> > Stefan Santesson
> > Senior Program Manager
> > Windows Security, Standards

_______________________________________________
TLS mailing list
TLS at lists.ietf.org
https://www1.ietf.org/mailman/listinfo/tls


_______________________________________________
TLS mailing list
TLS at lists.ietf.org
https://www1.ietf.org/mailman/listinfo/tls




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