Extensiones TLS: Omitir mensajes de enlace de TLS

2

He estado leyendo varios RFC y no pude encontrar una respuesta definitiva a mi pregunta: ¿una extensión TLS negociada puede omitir algunos de los mensajes de saludo de TLS y seguir cumpliendo con la especificación TLS? Mi objetivo es desarrollar una nueva versión de TLS, a la vez que preferible, seguir siendo compatible con versiones anteriores.

Aquí, hablaré específicamente sobre TLS 1.2 , definido en RFC 5246 . A continuación se muestra un flujo de mensajes para el protocolo de enlace completo (tomado directamente de RFC 5246):

  Client                                          Server
  ------                                          ------      

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


* Indicates optional or situation-dependent messages that are not always sent.

Ahora, sé que es perfecto para una extensión TLS modificar la estructura de algún mensaje o agregar un nuevo , pero no estoy seguro de si se puede omitir uno de los mensajes, no definido como opcional / dependiente de la situación .

Déjame darte un ejemplo concreto. Digamos que creo una nueva extensión llamada XYZ . El cliente y el servidor negocian esa extensión en sus mensajes de saludo extendidos. ¿Sería legal que la extensión XYZ obligue al servidor a no enviar el mensaje ServerHelloDone ? Por lo que he entendido, esto no es legal .

RFC 5245 Sección 4.4.1.4 indica que:

it would be technically possible to use extensions to change major 
  aspects of the design of TLS; for example the design of cipher 
  suite negotiation.  This is not recommended; it would be more 
  appropriate to define a new version of TLS -- particularly since 
  the TLS handshake algorithms have specific protection against 
  version rollback attacks based on the version number, and the 
  possibility of version rollback should be a significant 
  consideration in any major design change

Sin embargo, supongo que esos aspectos principales no incluyen omitir mensajes no marcados como opcionales / dependientes de la situación en la especificación.

    
pregunta Illya Gerasymchuk 07.11.2017 - 13:06
fuente

2 respuestas

1

He enviado esta misma pregunta a la lista de correo de TLS, y obtuve una respuesta que es, de hecho, legal para que una extensión especifique omitir mensajes no marcados como opcionales / situación - Dependiente en la especificación.

Puede encontrar la discusión aquí .

    
respondido por el Illya Gerasymchuk 08.11.2017 - 00:13
fuente
0

No veo ninguna razón por la que no puedas desviarte del estado normal del protocolo de enlace TLS y hagas lo que quieras en base a una extensión. Especialmente porque se negoció y el cliente / servidor sabría cómo hablar entre ellos. Sin embargo, si cumple con TLS 1.2 depende de los cambios que realice. Algo como cambiar el apretón de manos te sacaría del cumplimiento.

El propósito de las extensiones, creo, es permitir que el protocolo tapone los agujeros de seguridad y brindar más opciones de seguridad. De RFC 5246 se desprende claramente que hay mensajes opcionales y necesarios en el Protocolo de protocolo de enlace. Omitir cualquier mensaje requerido violaría la especificación. También hay un orden específico para los mensajes de Handshake que si se modifica violaría la especificación:

Sección 7.4

  

Los mensajes del protocolo de protocolo de enlace se presentan a continuación en el orden en que aparecen.      DEBE ser enviado;

No creo que pueda crear un nuevo protocolo compatible con TLS 1.2 de la manera que desee.

    
respondido por el RoraΖ 07.11.2017 - 13:19
fuente

Lea otras preguntas en las etiquetas