> On 6 Dec 2015, at 4:44 AM, Watson Ladd <watsonbl...@gmail.com> wrote:
> 
>  If you disagree, please cite the sentence of the TLS
> RFC which prohibits accepting application data records during the
> handshake.

OK, I’ll bite. Top of page 36:

      Client                                               Server

      ClientHello                  -------->
                                                      ServerHello
                                                     Certificate*
                                               ServerKeyExchange*
                                              CertificateRequest*
                                   <--------      ServerHelloDone
      Certificate*
      ClientKeyExchange
      CertificateVerify*
      [ChangeCipherSpec]
      Finished                     -------->
                                               [ChangeCipherSpec]
                                   <--------             Finished
      Application Data             <------->     Application Data

             Figure 1.  Message flow for a full handshake


See?  Application data goes *after* the Finished message. Not between 
ClientHello and anything else. Now this swim track diagram may not look like a 
formal definition, but RFCs are written to be processed by humans, not 
computers. If I add some application data in the middle there like this:

      Client                                               Server

      ClientHello                  -------->
                                                      ServerHello
                                                     Certificate*
                                               ServerKeyExchange*
                                              CertificateRequest*
                                   <--------      ServerHelloDone
      Application Data
      ClientKeyExchange
      CertificateVerify*
      [ChangeCipherSpec]
      Finished                     -------->
                                               [ChangeCipherSpec]
                                   <--------             Finished
      Application Data             <------->     Application Data


Any human can see that this is not the same as what’s in Figure 1, and thus is 
wrong. We don’t need the RFC to provide a regular expression or a state machine 
diagram to figure that out.

Yoav



_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to