Vulnerabilidad en TLS que permite la determinación de claves para conexiones basadas en cifrados DH

Revelado información sobre el nuevo vulnerabilidades (CVE-2020-1968) en el protocolo TLS, con nombre en código
Mapache y permitir, en circunstancias excepcionales, determinar una clave primaria preliminar (pre-maestra), que se puede utilizar para descifrar conexiones TLS, incluido HTTPS, al interceptar el tráfico de tránsito (MITM). Cabe señalar que el ataque es muy difícil de implementar en la práctica y tiene un carácter más teórico. Para llevar a cabo un ataque se requiere una configuración específica del servidor TLS y la capacidad de medir con mucha precisión el tiempo de procesamiento del servidor.

El problema está presente directamente en la especificación TLS y sólo afecta a las conexiones que utilizan cifrados basados ​​en el protocolo de intercambio de claves DH (Diffie-Hellman, TLS_DH_*"). Con los cifrados ECDH el problema no ocurre y permanecen seguros. Sólo los protocolos TLS hasta la versión 1.2 son vulnerables; TLS 1.3 no se ve afectado por el problema. La vulnerabilidad ocurre en implementaciones TLS que reutilizan la clave secreta DH en diferentes conexiones TLS (este comportamiento ocurre en aproximadamente el 4.4% de los servidores Alexa Top 1M).

En OpenSSL 1.0.2e y versiones anteriores, la clave principal DH se reutiliza en todas las conexiones del servidor a menos que la opción SSL_OP_SINGLE_DH_USE esté configurada explícitamente. Desde OpenSSL 1.0.2f, la clave primaria DH solo se reutiliza cuando se utilizan cifrados DH estáticos ("DH-*", por ejemplo, "DH-RSA-AES256-SHA"). La vulnerabilidad no aparece en OpenSSL 1.1.1, ya que esta rama no usa una clave primaria DH y no usa cifrados DH estáticos.

Cuando se utiliza el método de intercambio de claves DH, ambos lados de la conexión generan claves privadas aleatorias (en adelante clave “a” y clave “b”), en función de las cuales se calculan y envían las claves públicas (ga mod p y gb mod p). Después de que cada parte recibe las claves públicas, se calcula una clave primaria común (gab mod p), que se utiliza para generar claves de sesión. El ataque Raccoon le permite determinar la clave principal a través del análisis de canal lateral, basándose en el hecho de que las especificaciones TLS hasta la versión 1.2 requieren que todos los bytes nulos iniciales de la clave principal se descarten antes de realizar cálculos que la involucren.

La inclusión de la clave primaria truncada se pasa a la función de generación de claves de sesión, que se basa en funciones hash con diferentes retrasos al procesar diferentes datos. Medir con precisión el tiempo de las operaciones clave realizadas por el servidor permite al atacante determinar pistas (oráculo) que permiten juzgar si la clave primaria comienza desde cero o no. Por ejemplo, un atacante podría interceptar la clave pública (ga) enviada por el cliente, retransmitirla al servidor y determinar
si la clave primaria resultante comienza desde cero.

Por sí solo, definir un byte de la clave no proporciona nada, pero al interceptar el valor "ga" transmitido por el cliente durante la negociación de la conexión, el atacante puede generar un conjunto de otros valores asociados con "ga" y enviarlos a el servidor en sesiones separadas de negociación de conexión. Al generar y enviar valores “gri*ga”, un atacante puede, mediante el análisis de cambios en los retrasos en la respuesta del servidor, determinar los valores que conducen a recibir claves primarias comenzando desde cero. Una vez determinados dichos valores, el atacante puede crear un conjunto de ecuaciones para soluciones problemas de números ocultos y calcular la clave primaria original.

Vulnerabilidad en TLS que permite la determinación de claves para conexiones basadas en cifrados DH

Vulnerabilidades de OpenSSL asignado bajo nivel de peligro, y la solución se redujo a mover los cifrados problemáticos “TLS_DH_*” en la versión 1.0.2w a la categoría de cifrados con un nivel de protección insuficiente (“cifrados SSL débiles”), que está deshabilitado de forma predeterminada. . Los desarrolladores de Mozilla hicieron lo mismo. apagado en la biblioteca NSS utilizada en Firefox, los conjuntos de cifrado DH y DHE. A partir de Firefox 78, los cifrados problemáticos están deshabilitados. La compatibilidad de Chrome con DH se suspendió en 2016. Las bibliotecas BearSSL, BoringSSL, Botan, Mbed TLS y s2n no se ven afectadas por el problema porque no admiten cifrados DH ni variantes estáticas de cifrados DH.

Los problemas adicionales se indican por separado (CVE-2020-5929) en la pila TLS de dispositivos F5 BIG-IP, lo que hace que el ataque sea más realista. En particular, se han identificado desviaciones en el comportamiento de los dispositivos en presencia de un byte cero al comienzo de la clave primaria, que puede usarse en lugar de medir la latencia exacta de los cálculos.

Fuente: opennet.ru

Añadir un comentario