¿Cómo puede un atacante degradar / modificar las suites de cifrado cuando se realizan una MAC? (Freak, Logjam usa ataques de downgrade)

1

En el Finished handshake de TLS, todos los mensajes anteriores intercambiados se envían desde el cliente al servidor (y reverso) y están protegidos por un MAC. Esto es lo que también "evita "TLS_FALLBACK_SCSV ha sido modificado / eliminado por un atacante.

Pero los ataques como Freak y Logjam usan ataques de degradación . P.ej. como se explica en un blog de Cloudflare :

  

Un atacante MitM intercepta una conexión de cliente y reemplaza todos los conjuntos de cifrado aceptados con solo los DHE_EXPORT

Entonces, cuando se protege la integridad y autenticidad de Client hello (y otros mensajes, pero esto puede ser lo más importante aquí), ¿cómo se puede modificar en ataques como Freak y Logjam donde se exigen conjuntos de cifrado de Exportación?

    
pregunta rugk 21.02.2016 - 12:15
fuente

1 respuesta

2

Después de leer algunos documentos, por fin puedo responder mi propia pregunta.

Básicamente tuve un malentendido. Es importante conocer el " TLS Record Protocol ". Este protocolo es la base de TLS y siempre se utiliza. Al principio para Handshake y al final cuando Handshake terminó y los datos se transmiten a través de TLS (cuando se usa HTTPS, esto es HTTP). (tomadodelartículo Wikipedia en alemán sobre TLS ; CC-BY-SA 3.0 )

Sin embargo, al principio, obviamente no hay encriptación o HMAC que el cliente y el servidor pueden usar para asegurar los mensajes intercambiados, ya que aún no han acordado usar un cifrado (esto se hace en Handshake). Así que tienen que usar un cifrado sin ningún tipo de cifrado y protección de integridad . Esto es TLS_NULL_WITH_NULL_NULL . Una vez que la capa de grabación se inicializa con este cifrado, que básicamente no ofrece protección, puede comenzar el protocolo de enlace.

Por lo tanto, los mensajes de saludo del cliente y el servidor están desprotegidos y un atacante puede manipularlos. Para proteger todo el proceso, los mensajes Finished (que se intercambian al final del protocolo de enlace) contienen un hash (HMAC) de todos los mensajes enviados anteriormente y, por lo tanto, permiten que el cliente y el servidor verifiquen la integridad de estos mensajes.

En SSL 3.0 hasta TLS 1.1 se usa una combinación de MD5 y SHA-1. En TLS 1.2 se usa el HMAC definido en el cifrado. Más detalles son que se explica aquí . El problema es que la clave utilizada en el HMAC y el HMAC en sí puede ser débil. P.ej. podría el HMAC estar usando un hash MD5 (como en el ataque SLOTH contra TLS 1.2). Esto también fue explicado por el

  

El mecanismo de protección de bajada de TLS   en sí depende de parámetros descargables.
    - por lo tanto, la única solución es encontrar y deshabilitar a todos los débiles   parámetros: grupos, curvas, algoritmos mac, ...

Cómo se explican detalladamente los ataques de degradación en cifrados EXPORT se explica en esta respuesta .

    
respondido por el rugk 15.03.2016 - 22:59
fuente

Lea otras preguntas en las etiquetas