La vulnerabilidad ROCA es una debilidad criptográfica que permite recuperar la clave privada de un par de claves a partir de la clave pública en claves generadas por dispositivos con dicha vulnerabilidad. "ROCA" es un acrónimo de "Return of Coppersmith's attack " (Ataque del Retorno del Coppersmith). [ 1 ] A la vulnerabilidad se le ha asignado el identificador CVE - 2017-15361 .
La vulnerabilidad surge de un método de generación de claves RSA utilizado en versiones vulnerables de la biblioteca de software RSALib proporcionada por Infineon Technologies e incorporada en muchas tarjetas inteligentes , módulos de plataforma segura (TPM) y módulos de seguridad de hardware (HSM), incluidos los tokens YubiKey 4 cuando se utilizan para generar claves RSA en el chip para OpenPGP o PIV . [ 2 ] Las claves RSA de longitudes de 512, 1024 y 2048 bits generadas utilizando estas versiones de la biblioteca de Infineon son vulnerables a un ataque ROCA práctico. [ 3 ] [ 4 ] El equipo de investigación que descubrió el ataque (todos de la Universidad Masaryk y liderado por Matúš Nemec y Marek Sýs) [ 3 ] estima que afectó a alrededor de una cuarta parte de todos los dispositivos TPM actuales a nivel mundial. [ 5 ] Se cree que millones de tarjetas inteligentes están afectadas. [ 1 ]
El equipo informó a Infineon del problema de RSALib en febrero de 2017, pero retuvo el aviso público hasta mediados de octubre, alegando 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. [ 3 ]
Detalles técnicos
Generar una clave RSA implica seleccionar dos números primos grandes generados aleatoriamente , un proceso que puede ser lento, especialmente en dispositivos pequeños, como las tarjetas inteligentes. Además de ser primos, los números deben tener otras propiedades para una mayor seguridad. El proceso de selección vulnerable de RSALib crea rápidamente números primos del tipo deseado considerando solo números de la forma dóndees el producto de los primeros n primos sucesivos (2, 3, 5, 7, 11, 13, ...), y n es una constante que solo depende del tamaño de clave deseado. La seguridad se basa en las constantes secretas.yEl ataque ROCA explota este formato particular para números primos utilizando 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 intentando calcular el logaritmo discreto de la clave pública.a 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. [ 3 ] [ 6 ] [ 7 ] [ 8 ] En resumen, las claves que se ajustan a este formato tienen una entropía significativamente menor y pueden ser atacadas de manera relativamente eficiente (semanas a meses), y el formato puede ser confirmado ("huella digital") por el atacante muy rápidamente (microsegundos). Hay múltiples implementaciones del ataque disponibles públicamente. [ 9 ] [ 10 ] [ 11 ]
Mitigación
Los autores de ROCA consideran vulnerables las claves públicas de 512, 1024 y 2048 bits generadas por RSALib . Dado que los detalles de la generación de claves difieren según la longitud, las claves más cortas no son necesariamente más vulnerables que las más largas. Por ejemplo, una clave RSAlib de 1952 bits es más segura que una de 2048 bits, y una de 4096 bits es más débil que una de 3072 bits.
Según los autores, la mejor mitigación consiste en generar claves RSA utilizando un método más robusto, como OpenSSL . Si esto no es posible, los autores de ROCA sugieren usar longitudes de clave menos susceptibles a ROCA, como 3936 bits, 3072 bits o, si el tamaño máximo de clave es de 2048 bits, 1952 bits. [ 3 ] : Sec 5.1
Infineon ha publicado actualizaciones de firmware para sus módulos de plataforma segura (TPM) para los fabricantes que han utilizado sus TPM. [ 12 ]
Trascendencia
La vulnerabilidad puso de manifiesto varias deficiencias del esquema de certificación Common Criteria, ya que estaba presente en una lista de productos de tarjetas inteligentes certificados por Common Criteria. En concreto, la aprobación de algoritmos criptográficos de desarrollo propio; la falta de transparencia en los informes de certificación; la incapacidad de revocar los certificados Common Criteria para productos vulnerables conocidos y de distribuir esta información a los usuarios de los productos certificados. [ 13 ] : Sec 6.7.5
En Estonia, el descubrimiento de la vulnerabilidad provocó una crisis cibernética a nivel estatal, ya que el chip de tarjeta inteligente vulnerable se instaló en más de 750.000 tarjetas de identidad estonias que los residentes y e-residentes estonios utilizan a diario para autenticarse de forma segura en línea y crear firmas digitales. [ 13 ] : Sec 6.7
Véase también
Referencias
- 1 2 Goodin, Dan (23-10-2017). "La grave vulnerabilidad criptográfica expone millones de tarjetas inteligentes a la clonación" . Ars Technica . Recuperado el 25-10-2017 .
- ↑ Bucy, Daniel (23-11-2022). "Problema de generación de claves RSA de Infineon - Portal del cliente" . Yubico . Recuperado el 15-01-2025 .
- 1 2 3 4 5 Nemec, Matus; Sys, Marek; Svenda, Petr; Klinec, Dusan; Matyas, Vashek (noviembre de 2017). "El regreso del ataque de Coppersmith: factorización práctica de módulos RSA ampliamente utilizados" (PDF) . Actas de la Conferencia ACM SIGSAC de 2017 sobre seguridad informática y de comunicaciones . CCS '17. doi : 10.1145/3133956.3133969 .
- ↑ Khandelwal, Swati. "Una grave vulnerabilidad criptográfica permite a los hackers recuperar claves privadas RSA utilizadas en miles de millones de dispositivos" . The Hacker News . Consultado el 25 de octubre de 2017 .
- ↑ Leyden, John (16 de octubre de 2017). "Olvídese del drama de WPA2... Surgen detalles del fallo de la clave TPM que afecta a toneladas de dispositivos" . Reino Unido: The Register . Consultado el 25 de octubre de 2017 .
- ↑ "ROCA: Guía de vulnerabilidades de Infineon TPM y Secure Element RSA" . www.ncsc.gov.uk. Reino Unido . Consultado el 25 de octubre de 2017 .
- ↑ "ROCA: Generación vulnerable de RSA (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 del 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)" . GitHub . Consultado el 29 de junio de 2020 .
- ↑ Florián Picca (3 de mayo de 2020). "ROCA" . GitHub . Consultado el 29 de junio de 2020 .
- ^ Shiho Midorikawa (13 de abril de 2020). "ROCA" . GitHub . Consultado el 29 de junio de 2020 .
- ↑ ""Actualización de TPM - Infineon Technologies"" . Consultado el 19 de marzo de 2021 .
- 1 2 Parsovs, Arnis (marzo de 2021). La tarjeta de identidad electrónica estonia y sus desafíos de seguridad (doctorado). Universidad de Tartu.
Enlaces externos
- Herramienta de detección de 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)
- Prueba de vulnerabilidad ROCA de TrustMonitor (herramienta en línea para probar múltiples certificados)
- Detectar módulos de plataforma segura vulnerables a CVE-2017-15361 (scripts)
- ataques criptográficos
- Ataques a sistemas criptográficos de clave pública