9 mar 2010

RSA 1024 no ha sido roto, aclaraciones de Fernando Acero

A propósito de la noticia que tradujimos en exclusiva para los lectores de Segu-Info, hemos visto en los medios que hay cierta confusión o falta de aclaración suficiente respecto del alcance y lo cierto de este ataque. Naturalmente vende mucho más la noticia de Rompieron RSA 1024 que una explicación que acote el ámbito del ataque.

Por eso queremos compartir estos comentario de Fernando Acero en Kriptópolis al respecto del ataque realizado por científicos de la Universidad de Michigan.

Dice Fernando Acero:
Me he estado leyendo el paper y hay algunas cosas interesantes.

Lo primero que hay que señalar, es que no es un problema que se haya derivado de un avance en la factorización de números y además, el ataque se realiza sobre un hardware y software muy especifico, por lo que no se puede decir que esté en peligro una clave RSA de 1024 bits metida en una tarjeta CERES EAL5, o en cualquier otro dispositivo de hardware.

Lo único claro, es que han logrado sacar una clave RSA de 1024 bits de un dispositivo FPGA (Field Programmable Gate Array) embebida en un sistema Linux SPARC, no en una tarjeta criptográfica, que están preparadas para que este tipo de ataques, basados en las variaciones de tensión, intensidad, temperatura, frecuencia, iluminación, radiación, etc, no tengan éxito en este momento.

Para realizar el ataque, no es necesario tener acceso físico a la máquina, aunque es necesaria cierta proximidad, para poder modificar su alimentación y provocar los transitorios en la línea. En este caso, se trata de un problema de una determinada implementación de hardware basada en una FPGA sin las protecciones adecuadas para filtrar los transitorios de tensión (lo que es relativamente sencillo con un simple diodo TSD (Transient Suppression Diode), en la fuente de alimentación), que contiene una clave RSA de 1024 bits en su interior.

Pero creo que por el tipo del ataque, que podría ser una clave de 1024 bits no RSA teniendo paciencia suficiente para ir recopilando los bits de la misma, aunque también es cierto, que han desarrollado para la ocasión un ataque sistemático al algoritmo de exponenciación modular RSA, basándose en el problema de ese hardware FPGA específico ante los transitorios de tensión y al fallo de las librerías OpenSSL, que ha logrado reducir el tiempo a solamente 100 horas.

Así, que decir que se ha roto la seguridad de las claves RSA de 1024 bits, es tan aventurado como incierto, sobre todo, cuando no se ha logrado obtener un método general para obtener las claves privadas RSA, por ejemplo, mediante la factorización de números grandes y con independencia del hardware en el que se encuentren metidas dichas claves, por ejemplo, en una tarjeta criptográfica.

Resaltan en el documento, que el principal problema de los ataques basados en hardware, es que son muy complicados de detectar por software y lo cierto es que el ataque se ha realizado con éxito y sin necesidad de modificar ni una línea de código en el sistema atacado. Creo que la consecuencia más clara es que meter una clave en un dispositivo de hardware que no tenga la misma seguridad que las mejores tarjetas criptográficas, es un serio error y punto y esto es aplicable en este momento a muchos escenarios.

Además de lo anterior, creo que el ataque no habría tenido éxito, si no hubieran descubierto un serio fallo en la implementación del algoritmo e firma del OpenSSL y sobre todo, si el hardware fuera insensible a los transitorios de tensión, lo que es muy sencillo de lograr.Simplemente han trasladado a las FPGA un ataque mediante variaciones de tensión, que antaño fue viable con las primeras generaciones de las tarjetas inteligentes, que no eran "tamper proof".

El escenario es un ataque a la librería de autentificación original del OpenSSL, funcionando sobre un sistema Linux SPARC basado en una FPGA sin protección contra los transitorios de tensión, con todo lo que ello supone en relación a las condiciones particulares de cada hardware y sobre ese escenario tan concreto, han logrado recuperar una clave privada RSA de 1024 bits que estaba embebida en la FPGA tras 100 horas.

Esto no quiere decir, como recomiendan los expertos, que no se pase a claves RSA más grandes y que se abandonen los sistemas basados en números primos, en favor de los basados en curvas elípticas y ya vamos con retraso, si atendemos a los que se expresa en muchos documentos oficiales en relación con las claves y cripto-periodos.

Un saludo, Fernando Acero
 y más adelante Fernando agrega:
Hay un interesante DRAFT del NIST americano, que dice que las claves RSA con una longitud de 1024, no se deberían usar más allá del año 2010. Para el caso del transporte de claves, las condiciones se endurecen todavía más.

Desde mi punto de vista, no solamente se debería hacer una transición a claves de mayor tamaño, posiblemente mayores de 2048, si queremos que nuestros secretos sigan siendo secretos durante un tiempo razonablemente alto, también se debería usar curvas elípticas en lugar de números primos para generar las claves.

Por cierto, hay un pequeño problema con las claves generadas mediante números primos industriales. Antes, el algoritmo para comprobar la primalidad era heurístico y desgraciadamente se sigue usando en la mayoría de los sistemas criptográficos (Miller-Rabin o test fuerte de pseudoprimos), es decir, que no había certeza absoluta de que los primos industriales elegidos para crear las claves eran primos de verdad, aunque sí con un elevado grado de fiabilidad, que era función de las iteraciones que se realizasen del test. Es decir, se puede mejorar la seguridad aumentando el número de iteraciones de forma arbitraria, lo que también supondrá un mayor tiempo para la generación de las claves.

Sin embargo, ahora existe un sistema determinista en tiempo polinómico (AKS - Agrawal, Kayal y Saxena), es decir, que permite saber si un número primo es o no primo, con una fiabilidad del 100%. El uso de AKS permitiría mejorar algo la seguridad teniendo la certeza absoluta que los números elegidos para generar las claves, son primos de verdad.

Un saludo, Fernando Acero
"Copyleft 2009 Fernando Acero Martí­n. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved".
Se pueden ver todos los comentarios de Supuesta rotura de la clave privada RSA de 1024-bits en Kriptópolis

Raúl de la redacción de Segu-Info.

Suscríbete a nuestro Boletín

1 comentario:

  1. Fernando acero es un tio con muchos conocimientos sobre estos temas y si el dice que no es un problema por el que debamos preocuparnos en exceso yo me lo creo y mas dando la explicación tan racional que ha dado en Kriptopolis. Saludos.

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!