Un grupo de académicos reveló un ataque teórico al protocolo criptográfico TLS que se podría utilizar para descifrar la conexión HTTPS entre usuarios y servidores, permitiendode esta manera leer comunicaciones confidenciales. Quienes lo descubrieron: Robert Merget, Marcus Brinkmann, Nimrod Aviram, Jurad Somorovsky, Johannes Mittmann y Jörg Schwenk.

El ataque denominado como «Raccoon» es realmente dificil de explotar y se basa en mediciones de tiempo muy precisas, y en una configuración de servidor particular que permita explotarla.

 

Descripción del ataque

En el intercambio de claves Diffie-Hellman (DH), método establecido para intercambio de claves en conexiones TLS, ambos pares TLS generan claves privadas al azar (ayb) y calculan sus claves públicas: g a mod p y g b mod p. Estas claves públicas se envían en los mensajes TLS KeyExchange. Una vez que se reciben ambas claves, tanto el cliente como el servidor pueden calcular una clave compartida ab mod p , denominada premaster secret, que se utiliza para derivar todas las claves de sesión TLS con una función de derivación de clave específica.

Raccoon explota un canal lateral de especificación TLS; TLS 1.2 (y todas las versiones anteriores) prescribe que todos los bytes cero iniciales en el secreto del premaster se eliminan antes de usarse en calculos posteriores. Dado que el secreto de premaster resultante se utiliza como entrada en la función de derivación de claves, que se basa en funciones hash con diferentes perfiles de tiempo, las mediciones de tiempo precisas pueden permitir a un atacante construir un oráculo a partir de un servidor TLS. Este oráculo le dice al atacante si un secreto de premaster calculado comienza con cero o no.

Imagine que el atacante interceptó un mensaje ClientKeyExchange que contenía el valor g a. El atacante ahora puede construir valores relacionados con g a y enviarlos al servidor en distintos hand shake TLS. Más concretamente, el atacante construye valores g i * g a , que conducen a secretos premaster g i * b * g ab. Según el comportamiento de sincronización del servidor, el atacante puede encontrar valores que conduzcan a secretos de premaster que comiencen con cero. Al final, esto ayuda al atacante a construir un conjunto de ecuaciones y utilizar un solucionador para el problema de números ocultos (HNP) para calcular el secreto de premaster original establecido entre el cliente y el servidor.

Paper completo de la vulnerabilidad: AQUÍ

 

Puntos a considerar

 Raccoon es un ataque de tiempo complejo y es muy difícil de explotar, por lo cual, si sos un administrador, es probable que esta vulnerabilidad no tenga que convertirse en tu foco, ya que para llevarse a cabo el atacante necesitaría estar cerca del servidor de destino para realizar mediciones de tiempo de alta precisión. Necesitaría además la conexión de la víctima para usar DH (E) y el servidor para reutilizar claves efímeras. Y finalmente, el atacante debería observar la conexión original. Para un atacante real, esto sería demasiado. Respondiendo a la pregunta que les puede surgir, un atacante del mundo real probablemente usará otros vectores de ataque que son más simples y confiables que este ataque.

 

¿Como puedo verificar si mi sitio web es vulnerable?

Existen diferentes sitios para validar esto, por ejemplo:

https://www.ssllabs.com/ssltest/

Si «DH public server param (Ys) reuse» da como resultado «Yes», su web podría ser vulnerable.

Respuesta de los proveedores ante la vulnerabilidad

  • F5 asignó el problema CVE-2020-5929 . En particular, varios productos F5 permiten ejecutar una versión especial del ataque, sin la necesidad de mediciones de tiempo precisas. F5 recomienda a sus clientes que parcheen los productos o impongan el uso de claves efímeras nuevas. 
  • OpenSSL asignó el problema CVE-2020-1968 . OpenSSL usa claves DH nuevas por defecto desde la versión 1.0.2f (que hizo que SSL_OP_SINGLE_DH_USE sea predeterminado como respuesta a CVE-2016-0701). Por lo tanto, el ataque afecta principalmente a OpenSSL 1.0.2 cuando se usa un certificado DH, lo cual es poco común. OpenSSL 1.1.1 nunca reutiliza un secreto DH y no implementa ningún conjunto de cifrado DH «estático». Para mitigar el ataque, los desarrolladores trasladaron todos los conjuntos de cifrado DH restantes a la lista de cifrados débiles ssl. Además, motivados por esta investigación, los desarrolladores también activaron la nueva generación de claves efímeras EC en OpenSSL 1.0.2w.
  • Mozilla asignó el problema CVE-2020-12413 . Se ha resuelto desactivando los conjuntos de cifrado DH y DHE en Firefox (que ya estaba planeado antes de la divulgación de Raccoon).
  • Microsoft asignó el problema CVE-2020-1596 .

BearSSL y BoringSSL no se ven afectados porque no admiten conjuntos de cifrado DH (E). GnuTLS, Wolfssl, Botan, Mbed TLS y s2n no admiten conjuntos de cifrado DH estáticos. Sus suites de cifrado DHE nunca reutilizan claves efímeras.

Fuente: https://raccoon-attack.com/