Un grupo de investigadores de la Universidad de California en San Diego ha demostrado la posibilidad de recrear claves privadas RSA de servidores SSH utilizando análisis pasivo del tráfico SSH. El ataque se puede llevar a cabo en servidores donde, debido a circunstancias o acciones del atacante, ocurren fallos durante el cálculo de la firma digital al establecer una conexión SSH. Los fallos pueden ser tanto de software (ejecución incorrecta de operaciones matemáticas, daño de memoria) como de hardware (errores en el funcionamiento de NVRAM y DRAM o fallos debido a cortes de energía).
Una de las formas de provocar fallos pueden ser los ataques del tipo RowHammer, que permiten, entre otras cosas, distorsionar el contenido de bits de memoria de forma remota o al procesar código JavaScript en el navegador, mediante la lectura intensa y cíclica de datos de celdas vecinas de memoria. Otra forma de provocar fallos puede ser la explotación de vulnerabilidades que conducen a desbordamientos de búfer y daños a los datos que contienen claves en la memoria.
El estudio publicado muestra que al utilizar firmas digitales basadas en el algoritmo RSA en SSH, los parámetros de la firma digital son susceptibles a ataques para recrear claves privadas RSA mediante el método de Lattice (Fault Attack), en caso de que ocurran fallos de software o hardware durante el proceso de cálculo de la firma. La esencia del método radica en que, al comparar firmas digitales RSA correctas y fallidas, se puede determinar el máximo común divisor para deducir uno de los números primos utilizados en la formación de la clave.
La base del cifrado RSA es la operación de elevar a una potencia módulo un gran número. La clave pública contiene un módulo y una potencia. El módulo se forma a partir de dos números primos aleatorios, que sólo son conocidos por el propietario de la clave privada. El ataque puede aplicarse a implementaciones de RSA que utilizan el Teorema Chino del Residuo y esquemas de relleno determinísticos, como PKCS#1 v1.5.
Para llevar a cabo un ataque, es suficiente con un rastreo pasivo de conexiones legítimas al servidor SSH hasta detectar en el tráfico una firma digital fallida, que se puede utilizar como fuente de información para recrear la clave privada RSA. Tras la recreación de la clave RSA del host, el atacante puede redirigir sin ser detectado las solicitudes a un host falso que se presente como un servidor SSH comprometido y así interceptar los datos transmitidos a este. servidor de datos.
Como resultado del estudio de una colección de datos de red interceptados, que incluye aproximadamente 5.2 mil millones de registros relacionados con el uso del protocolo SSH, los investigadores identificaron aproximadamente 3.2 mil millones de claves de host abiertas y firmas digitales utilizadas durante la negociación de la sesión SSH. De ellas, 1.2 mil millones (39.1%) fueron generadas utilizando el algoritmo RSA. En 593,671 casos (0.048%), la firma RSA estaba dañada y no pasaba la verificación. Para 4,962 firmas fallidas, se pudo aplicar el método de factorización Lattice para determinar la clave privada a partir de la clave pública conocida, lo que finalmente permitió recrear 189 pares únicos de claves RSA (en muchos casos, se utilizaron las mismas claves y dispositivos defectuosos para generar diferentes firmas dañadas). La recreación de las claves requirió aproximadamente 26 horas de tiempo de CPU.

El problema afecta únicamente a implementaciones específicas del protocolo SSH, utilizadas principalmente en dispositivos embebidos. Como ejemplos de dispositivos con implementaciones problemáticas de SSH se mencionan productos de Zyxel, Cisco, Mocana y Hillstone Networks. OpenSSH no está afectado por este problema, ya que utiliza la biblioteca OpenSSL (o LibreSSL) para la generación de claves, que desde 2001 cuenta con protección contra ataques basados en análisis de fallos (Fault Attack). Además, en OpenSSH, el esquema de firmas digitales ssh-rsa (basado en sha1) ha sido declarado obsoleto desde 2020 y desactivado en la versión 8.8 (se siguen soportando los esquemas rsa-sha2-256 y rsa-sha2-512). Potencialmente, el ataque también podría ser aplicable al protocolo IPsec, pero los investigadores no tuvieron suficientes datos experimentales para confirmar este tipo de ataque en la práctica.
Fuente: opennet.ru
