¿Cuáles son los beneficios y riesgos de varios protocolos de protocolo de enlace TLS?

4

Esta pregunta pregunta si es posible separar el resto de una sesión TLS del protocolo de enlace por "razones de seguridad" ". La pregunta no era específica sobre cuál podría ser esa "razón".

Esto me hizo investigar los diversos apretones de manos de TLS para determinar si había algún beneficio (ataque de DOS u oráculo criptográfico) que se derrotaría con tal configuración

Algunas investigaciones básicas me dicen que existen los siguientes apretones de manos:

Pregunta

  1. ¿Cuántas variaciones de protocolo de protocolo de enlace TLS existen?
  2. ¿Se considera que la lista de arriba es un "apretón de manos" o pueden agruparse en ramas primarias y secundarias? (por ejemplo, X es una variante menor de Y, pero Z es completamente diferente)
  3. ¿Cuál es la diferencia notable entre los apretones de manos TLS?
pregunta random65537 09.09.2015 - 21:00
fuente

1 respuesta

3

Dependiendo de cómo lo veas, hay uno, dos, tres o muchos más "apretones de manos".

Una primera distinción es entre "SSL-2.0" y "SSL-3.0 y versiones posteriores". El formato de los registros y los mensajes de intercambio para SSL-2.0 difiere mucho de los registros y mensajes utilizados en las versiones de protocolo posteriores. Además del formato y los algoritmos implementados, una diferencia notable entre semántica entre SSL-2.0 y las versiones posteriores del protocolo es que en SSL-2.0, ambos el cliente y el servidor envían listas de paquetes de cifrado, y el cliente elige, no el servidor. En versiones posteriores, el cliente envía una lista y el servidor elige.

Al realizar un protocolo de enlace SSL-3.0 +, el cliente envía un mensaje ClientHello y el servidor responde con un ServerHello . El ClientHello puede contener muchas extensiones , que son (por definición) abiertas, y depende de usted considerar si las extensiones "cambian" el protocolo de enlace o no. En cualquier caso, si el cliente y el servidor acuerdan reanudar una sesión (reutilizan una ID de sesión y recuerdan la sesión pasada o el cliente envía un ticket de sesión , luego obtienes el protocolo de enlace abreviado :

  Client                                                Server

  ClientHello                   -------->
                                                   ServerHello
                                            [ChangeCipherSpec]
                                <--------             Finished
  [ChangeCipherSpec]
  Finished                      -------->
  Application Data              <------->     Application Data

En todos los demás casos, obtienes el saludo "normal", que se ve así:

  Client                                               Server

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

El " * " anterior significa que el mensaje no siempre está ahí. Por ejemplo, el servidor enviará un ServerKeyExchange solo si la suite de cifrado solicita un mensaje de este tipo ("ECHDE_RSA" implica un mensaje de este tipo, mientras que "RSA" solo no lo hace).

Esto lleva a una serie de combinaciones posibles de mensajes enviados o no enviados. Además, una serie de RFC adicionales definen algunos mensajes extra , que no aparecen en el diagrama anterior; p.ej. RFC 5077 define un nuevo mensaje de reconocimiento NewSessionTicket que puede aparecer justo antes de ChangeCipherSpec del servidor. De manera similar, RFC 6066 define los nuevos tipos de mensajes CertificateURL y CertificateStatus . RFC 4680 también define SupplementalData que el cliente y el servidor pueden enviarse entre sí.

La forma en que elija clasificar todas estas características, y si inducen diferencias notables , depende de usted. Además, no puede haber una lista definitiva y exhaustiva de variantes, ya que las nuevas extensiones que activan nuevos tipos de mensajes o nuevos flujos de reconocimiento pueden definirse después.

    
respondido por el Thomas Pornin 09.09.2015 - 21:33
fuente

Lea otras preguntas en las etiquetas