Estas aquiContenido / Supuesta rotura de la clave privada RSA de 1024-bits

Supuesta rotura de la clave privada RSA de 1024-bits


PorghostDancer- Publicado el05 Marzo 2010

Por ghostDancer

He leído la noticia pero mis conocimientos están muy por debajo ¿Alguno de los habituales presentes puede indicar si esto es preocupante o sólo una teoría? Vamos, que si sólo es el típico análisis que dice que en teoría se podría hacer así o realmente se ha encontrado un método factible de romper RSA.

Etiquetas

Comentarios

Selecciona arriba tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tu elección para próximas visitas (sólo si eres usuario registrado).
inedit00's picture

Yo no soy un experto sobre el tema, pero no "solo es una teoría", ya que lo han probado y el ataque ha funcionado con éxito. Y realmente no, no creo que sea preocupante.

El ataque seguro que es complicado de realizar y se necesita acceso físico al PC. Después, esta vulnerabilidad se ha encontrado en OpenSSL, no quiere decir que otras "suites" de seguridad fallen con el mismo procedimiento. Se tiene que actualizar el paquete OpenSSL cuando salga un parche y ya está. Realmente no se ha vulnerado la lógica de la criptografía asimetrica, sinó mas bien se ha encontrado un fallo en su implementación en un paquete concreto.

Es un fallo, si, que debe corregirse cuanto antes.

Saludos!

Más información en:
http://www.dragonjar.org/fallo-en-openssl-permite-obtener-clave-privada....
http://softlibre.barrapunto.com/article.pl?sid=10/03/05/1755252&from=rss

ceonio's picture

Por lo que he leido, es una vulnerabilidad en OpenSSL, que se basaría en crear variaciones en la energía eléctrica de la máquina en cuestión para ir consiguiendo partes de la clave privada, y parece que para conseguir completa una de 1024 bits serían necesarias unas 100 horas de "juego".

Dejo el enlace:
http://cofradia.org/2010/03/04/vulnerabilidad-grave-en-el-manejo-de-llav...

Creo que por el momento podemos estar tranquilos ("razonablemente" tranquilos, visto lo visto...)

admin's picture
Andy's picture

Por lo que he leído el ataque es muy particular y se necesita acceso físico al equipo por varios días seguidos para poder lograr algo. No sólo eso, sino que hay que saber específicamente CUANDO el equipo está haciendo uso de las rutinas de encriptación RSA. Eso es mucho decir.

¿Hay que preocuparse?

Depende.

Si bién probablemente las transacciones bancarias o los certificados para utilizar VPN o SSH estén a salvo, hay cosas que no.

Por ejemplo: las tecnologías protegidas por criptografía del tipo RSA y que la gente tiene en forma masiva en su casa como podrían ser consolas de videojuegos, dispositivos móviles, sistemas de entretenimiento, etc, siempre y cuando se utilice EL MISMO certificado en todos los productos. En este caso, tú eres dueño de uno de los aparatos y tienes acceso físico al mismo por todo el tiempo que quieras. Si rompes la seguridad de uno, rompes la de todos ya que todos utilzan la misma encriptación (lo acabo de escribir como premisa).

Mira por ejemplo lo que ha pasado con las excelentes calculadoras gráficas de Texas Instruments como la TI83+ y la TI89, donde el equipo no carga el firmware a menos que esté firmado por la clave privada de Texas Instrument. Una vez rota ésta clave en un equipo en particular, se puede utilizar la misma técnica en todos ellos para firmar y cargar cualquier firmware "hecho en casa" y utilizar el equipo más allá de lo que es posible con el firmware oficial.

Habría que ver dónde queda ciertas clases de software instalable en un ordenador. Por ejemplo: los drivers de Microsoft firmados. Si eres capaz de regenerar la clave privada de firma de drivers de Microsoft utilizando ésta técnica (cosa que no tengo idea si es factible) en tu propio PC al que tienes acceso físico ilimitado, entonces podrás firmar cualquier driver (posiblemente con código malicioso) que se instalará sin hacer preguntas.

Claro que todas estas cosas pueden corregirse más o menos fácilmente cambiando la tecnología de firmas. Lo hemos visto una y otra vez en consolas de videojuegos* como el iPhone, por ejemplo, donde actualizan su firmware para librarse del famoso "jailbreak".

Ya veremos cómo evoluciona la tecnología de encriptación para solucionar éste "inconveniente".

Un cordial saludo,
Andy

*Personalmente no me gustan los productos de Apple, empresa a la que considero mucho más temible y cerrada que por ejemplo Microsoft, asi que eso de llamar al iPhone "consola de videojuegos" es sólo una forma de expresar mi rechazo a sus equipos.

Fernando Acero's picture

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

"Copyleft 2010 Fernando Acero Martí­n. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved".

Guppy's picture

1024 bits creo que aun no se pueden factorizar de una manera eficiente, pero yo apuesto por que no se tardara mucho.

Sinceramente yo ya llevo un tiempo eliminando la seguridad de 1024 bits en RSA, pasando al minimo de 2048, incluso en desarrollos con tarjetas inteligentes. Lo hago por el simple echo de que pienso en el futuro.

Velocidad contra seguridad. Mas velocidad significa menos seguridad y viceversa (al menos en RSA).

Quizas me pase, pero yo uso claves de 4096 bits en un software de criptografia.

Saludos :)

Fernando Acero's picture

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 2010 Fernando Acero Martí­n. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved".

kevin mitnick's picture

es un típico "side channel attack" como por ejemplo www-cs.stanford.edu/~dabo/papers/ssl-timing.pdf.

sin embargo las claves de 1024 ya no son seguras, Bruce Schneier lo lleva diciendo desde hace 10 años, para el las claves deberian ser de 4096 bits que es el equivalente a las claves de 128 bits en cifrados simetricos.

1024 bits equivale a 80 bits...

ghostDancer's picture

Gracias a todos los que me habéis contestado. Por lo que había leído y entendido efectivamente era mas bien un problema en una situación muy específica y no parecía mas grave que eso, pero siempre es bueno oír a voces con mas conocimientos que la mía (que no es difícil). Y luego pregunta el señor alcalde de esta ciudad por que seguimos viniendo algunos ;-). Creo aquí tiene la respuesta (o por lo menos una de ellas).

"Contra la estupidez, los propios dioses luchan en vano" - Schiller

Patrocinadores

Cómo patrocinar

Kriptópolis alojado en:
Zilos-Veloxia Network 

Tu mejor defensa:
Bufet Almeida

Test de Intrusión Online:
Security Guardian