La vulnerabilidad ROCA es una debilidad criptográfica que permite recuperar la clave privada de un par de claves de la clave pública en claves generadas por dispositivos con la vulnerabilidad. "ROCA" es un acrónimo de "Retorno del ataque del calderero ". [1] A la vulnerabilidad se le ha asignado el identificador CVE - 2017-15361 .
Identificador (es) CVE | CVE - 2017-15361 |
---|---|
Fecha descubierta | Febrero de 2017 |
Descubridor | Matúš Nemec, Marek Sýs, et. al ( Universidad de Masaryk ) |
Hardware afectado | Tarjetas inteligentes TPM , Yubikey , Gemalto IDPrime .NET |
Software afectado | Cualquier cifrado de clave pública-privada que usó RSALib, incluidos BitLocker y PGP |
La vulnerabilidad surge de un problema con un enfoque para la generación de claves RSA utilizada en una biblioteca de software , RSALib , proporcionada por Infineon Technologies , e incorporada en muchas implementaciones de tarjetas inteligentes , Trusted Platform Module (TPM) y Hardware Security Modules (HSM), que incluyen Tokens YubiKey 4, a menudo utilizados para generar claves PGP . Las claves de 512, 1024 y 2048 bits generadas con la biblioteca Infineon son vulnerables a un ataque ROCA práctico. [2] [3] El equipo de investigación que descubrió el ataque (todos con la Universidad de Masaryk y dirigidos por Matúš Nemec y Marek Sýs) [2] estiman que afectó a alrededor de una cuarta parte de todos los dispositivos TPM actuales a nivel mundial. [4] Se cree que millones de tarjetas inteligentes están afectadas. [1]
El equipo informó a Infineon sobre el problema de RSALib en febrero de 2017, pero retuvo el aviso público hasta mediados de octubre, citando una divulgación responsable . En ese momento, anunciaron el ataque y proporcionaron una herramienta para probar la vulnerabilidad de las claves públicas. Publicaron los detalles del ataque en noviembre. [2]
Detalles técnicos
Generar una clave RSA implica seleccionar dos números primos grandes generados aleatoriamente , un proceso que puede llevar mucho tiempo, particularmente en dispositivos pequeños, como tarjetas inteligentes. Además de ser números primos, los números deben tener otras propiedades determinadas para mayor seguridad. El proceso de selección de RSALib vulnerable crea rápidamente números primos del tipo deseado al probar solo los números de primalidad de la forma:
dónde es el producto de los primeros n números primos sucesivos (2, 3, 5, 7, 11, 13, ...), yn es una constante que solo depende del tamaño de clave deseado. La seguridad se basa en las constantes secretas. y . El ataque ROCA explota este formato particular para primos usando una variación del método Coppersmith . Además, las claves públicas generadas de esta manera tienen una huella digital distintiva que se puede reconocer rápidamente al intentar calcular el logaritmo discreto del mod de clave pública.a la base 65537 . Calcular logaritmos discretos en un grupo grande suele ser extremadamente difícil, pero en este caso se puede hacer de manera eficiente utilizando el algoritmo de Pohlig-Hellman porquees un número suave . Hay un sitio de prueba disponible en Internet. [2] [5] [6] [7] En resumen, las claves que se ajustan a este formato tienen una entropía significativamente baja y pueden ser atacadas de manera relativamente eficiente (semanas a meses), y el atacante puede confirmar el formato ("huellas digitales") muy rápidamente (microsegundos). Varias implementaciones del ataque están disponibles públicamente. [8] [9] [10]
Mitigación
Los autores de ROCA consideran que las claves públicas de 512, 1024 y 2048 bits generadas por RSALib son vulnerables. Debido a que los detalles de la generación de claves difieren para diferentes longitudes de clave, las claves más cortas no son necesariamente más vulnerables que las claves más largas. Por ejemplo, una clave RSAlib de 1952 bits es más fuerte que una clave de 2048 bits y una clave de 4096 bits es más débil que una clave de 3072 bits.
La mejor mitigación, según los autores, es generar claves RSA utilizando un método más fuerte, como OpenSSL . Si eso no es posible, los autores de ROCA sugieren usar longitudes de clave que sean menos susceptibles a ROCA, como 3936 bits, 3072 bits o, si hay un tamaño de clave máximo de 2048 bits, 1952 bits. [2] : Sec. 5.1
Infineon ha lanzado actualizaciones de firmware para sus módulos de plataforma confiable para los fabricantes que han utilizado sus TPM. [11]
Ver también
- BitLocker § Problemas de seguridad
- Infineon Technologies § Fallo de seguridad
- Modulo de plataforma confiable
Referencias
- ^ a b Goodin, Dan (23 de octubre de 2017). "La debilidad criptográfica paralizante abre millones de tarjetas inteligentes a la clonación" . Ars Technica . Consultado el 25 de octubre de 2017 .
- ^ a b c d e Nemec, Matus; Sys, Marek; Svenda, Petr; Klinec, Dusan; Matyas, Vashek (noviembre de 2017). "El regreso del ataque del calderero: factorización práctica de módulos RSA ampliamente utilizados" (PDF) . Actas de la Conferencia ACM SIGSAC 2017 sobre seguridad informática y de comunicaciones . CCS '17. doi : 10.1145 / 3133956.3133969 .
- ^ Khandelwal, Swati. "Grave Crypto-Flaw permite a los piratas informáticos recuperar claves RSA privadas utilizadas en miles de millones de dispositivos" . The Hacker News . Consultado el 25 de octubre de 2017 .
- ^ Leyden, John (16 de octubre de 2017). "No importa el drama de WPA2 ... Surgen detalles de la combinación de teclas de TPM que llega a toneladas de dispositivos" . Reino Unido: The Register . Consultado el 25 de octubre de 2017 .
- ^ "ROCA: Infineon TPM y Secure Element RSA Vulnerability Guidance" . www.ncsc.gov.uk . Reino Unido . Consultado el 25 de octubre de 2017 .
- ^ "ROCA: Generación RSA vulnerable (CVE-2017-15361)" . República Checa: Centro de Investigación en Criptografía y Seguridad, Facultad de Informática, Universidad Masaryk . Consultado el 25 de octubre de 2017 .
- ^ "Información sobre la actualización de software de la función de generación de claves RSA" . Infineon Technologies AG . Consultado el 25 de octubre de 2017 .
- ^ Bruno Produit (15 de mayo de 2019). "Implementación del ataque ROCA (CVE-2017-15361)" . Consultado el 29 de junio de 2020 .
- ^ Florian Picca (3 de mayo de 2020). "ROCA" . Consultado el 29 de junio de 2020 .
- ^ Shiho Midorikawa (13 de abril de 2020). "ROCA" . Consultado el 29 de junio de 2020 .
- ^ " " Actualización de TPM - Infineon Technologies " " . Consultado el 19 de marzo de 2021 .
enlaces externos
- Herramienta de detección ROCA (código fuente de detección)
- ROCA Vulnerability Test Suite (herramienta en línea para probar claves, archivos, cuentas de GitHub, claves GnuPG e incluye un respondedor de correo electrónico S / MIME y PGP)
- TrustMonitor ROCA Vulnerability Test (herramienta en línea para probar varios certificados)
- Detectar módulos de plataforma confiable vulnerables a CVE-2017-15361 (scripts)