Método de ataque que reduce significativamente los recursos necesarios para falsificar firmas digitales RSA

Investigadores de la Universidad de California en San Diego han desarrollado una técnica avanzada de ataque al algoritmo RSA, que permite falsificar firmas digitales sin necesidad de factorizar los números primos subyacentes del RSA ni recuperar la clave privada. Los recursos necesarios para llevar a cabo un ataque a una clave RSA de 1024 bits se estiman en 1380 años de cálculos en un núcleo de procesador, lo que en el clúster universitario disponible permitió determinar en 5 meses los parámetros necesarios para generar firmas RSA falsas (en el experimento no se utilizaron aceleradores AI ni GPU, y con su uso el tiempo de cálculo puede reducirse considerablemente). En comparación, el método clásico de factorización requiere de 500,000 a un millón de años de cálculos en un núcleo de procesador para reconstruir la clave privada RSA-1024.

Para llevar a cabo el ataque, es necesario tener la capacidad de enviar múltiples solicitudes para firmar los datos generados por el atacante, por ejemplo, contactando con un servicio de autorización o un módulo HSM. Para determinar los parámetros de RSA-1024, es suficiente enviar 232 de tales solicitudes, mientras que para atacar claves RSA-2048, utilizadas en el protocolo Privacy Pass, se necesitan 243. Una vez que se obtiene un conjunto de datos firmados, se inicia un proceso de cálculo prolongado para determinar los parámetros (para RSA-1024, aproximadamente 265 operaciones), tras lo cual el atacante puede crear firmas falsas para cualquier dato, gastando aproximadamente 180 horas de cálculos en un núcleo por cada firma.

El método es aplicable solo a firmas RSA en las que no se utiliza formateo y relleno adicional antes del cifrado (padding). Las implementaciones de firmas ciegas son vulnerables, incluidas las utilizadas en el protocolo Privacy Pass. La mayoría de las implementaciones de RSA en uso, incluyendo PKCS#1v1.5 y RSA-PSS (que se utilizan en TLS y SSH), aplican relleno adicional y no son vulnerables al ataque.

La base del cifrado RSA es la operación de elevar a una potencia módulo un número grande. La clave pública contiene el módulo y la potencia. El módulo se forma a partir de dos números primos aleatorios, que solo son conocidos por el propietario de la clave privada. El método propuesto se basa en una investigación publicada en 2007, que demostró que extraer la raíz a la potencia indicada en la clave pública de un mensaje cifrado sin información sobre los factores secretos es una operación menos intensiva en recursos que la factorización de los propios factores.

Utilizando un método especial de la criba del campo numérico (SNFS), los investigadores lograron reducir la complejidad de comprometer claves RSA-1024 a 265 operaciones, lo que permite llevar a cabo ataques prácticos en clústeres modernos. Para claves de 2048 bits, la complejidad del ataque se estima en 290, lo que teóricamente es factible para grandes corporaciones o servicios de inteligencia. Para claves de 4096 bits, la complejidad del ataque asciende a 2119 operaciones, lo que actualmente es inalcanzable, pero está por debajo del mínimo de 2128 recomendado por la NSA, el Instituto Nacional de Estándares y Tecnología y la Agencia Europea de Seguridad de Redes y de Información.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster