Criptógrafos descubren un fallo en el algoritmo de seguridad usado habitualmente en la Red
- Investigadores hallaron un problema matemático en las claves de seguridad
- Calculan que dos de cada mil claves públicas RSA adolecen de este fallo
- Los usuarios solo pueden esperar que las empresas tomen medidas
Internet es un poco menos seguro hoy que ayer. La culpa es de unos matemáticos especializados en criptoanálisis que han examinado uno de los principales sistemas de seguridad y encontrado un extraño fallo.
El problema está en los programas y servidores que utilizan el algoritmo de seguridad conocido como RSA: hasta ahora se consideraban cien por cien seguro, pero de esa certeza ha pasado a ser solamente 99,8% seguro.
“Hasta ahora se consideraban 100% seguros, pero han pasado al 99,8%“
La noticia la ha desvelado el conocido periodista del New York Times y experto en seguridad John Markoff. Su origen es un trabajo [PDF] publicado por unos investigadores europeos y americanos y cuya importancia es tal que han preferido darlo a conocer antes de presentarlo públicamente en una conferencia el verano que viene.
Es el proceso habitual cuando se encuentran grandes fallos que pueden afectar a la seguridad general de forma inminente. De este modo las empresas que dependen de los sistemas afectados pueden poner en marcha medidas a corto plazo.
¿A qué afecta exactamente el problema? Al algoritmo RSA. En los sistemas de cifrado para transmitir la información de forma segura a través de Internet (correo, web, etc.) se utilizan complejas fórmulas y algoritmos matemáticos que garantizan su inviolabilidad, incluso aunque un 'atacante' los intercepte.
¿Cómo funciona el sistema RSA?
El sistema RSA (iniciales de sus creadores: Rivest, Shamir y Adleman) es uno de los más usados. Se publicó en 1978 y desde entonces se ha considerado una de las mejores soluciones.
En la criptografía de clave pública RSA la técnica matemática empleada es muy ingeniosa y a la vez sencilla de entender.
Empieza por elegir al azar algunos números primos de gran tamaño (que no pueden descomponerse en otros factores, como le sucede al 17 o el 23 por ejemplo) y se multiplican entre sí.
Multiplicar números grandes es muy fácil (997 x 773 = 770681) y también lo es averiguar si un número es primo o no. Pero es prácticamente imposible descomponerlo en sus factores si no se conocen de antemano, en caso de que sean grandes números primos.
¿Qué dos números componen 696649? Hay que probar cientos de divisiones para averiguar que son 811 x 859. Para hacerlo verdaderamente difícil, los números empleados en el algoritmo RSA tiene cientos de dígitos.
Se necesitarían millones y millones de años con los superordenadores más poderosos para probar por 'fuerza bruta' todos los factores posibles, y probablemente ni aun así se encontrarían.
El sistema es tan potente que esos números que hacen de claves se pueden publicar para que cualquiera los use para enviar mensajes secretos: solo quien conozca los factores secretos (los números que componen la clave pública) podrá descifrar los mensajes que se transmiten.
En la práctica, el algoritmo es algo más complejo, pero puede entenderse como una caja fuerte cerrada con llave y con una ranura a modo de buzón: cualquier persona puede enviar mensajes metiéndolos dentro de la caja, pero la caja sólo puede abrirla quien tenga la llave.
Si no se tiene la llave, da igual que la caja fuerte esté en un lugar público a la vista de todos, porque nadie puede abrirla.
Una teoría sin fallo, hasta ahora
Esta teoría ha funcionado durante décadas sin problemas, aunque algunos criptoanalistas apuntaron a ciertos detalles que se podrían mejorar, y así se hizo con diferentes variaciones más seguras del algoritmo original.
Sin embargo, lo que los investigadores han descubierto ahora es un fallo en la forma de llevar a cabo ese planteamiento: concretamente donde dice "elegir al azar algunos números…", algo que es fundamental para que funcione.
Durante sus investigaciones, los investigadores recabaron millones de claves públicas de diversas bases de datos que actúan a modo de directorios para comprobar su 'calidad' y seguridad.
Lo que descubrieron es que, debido a algún tipo de fallo en la generación de los números aleatorios, muchos valores no eran verdaderamente aleatorios y era posible averiguar los factores originales.
“En total encontraron que el fallo afectaba a 2 de cada mil claves públicas“
En total encontraron que el fallo afectaba a 2 de cada mil claves públicas de los aproximadamente 7 millones que examinaron.
Aunque una seguridad del 99,8% pueda parecer buena, tecnológicamente es un valor un tanto desastroso: para un atacante que pueda ir probando claves a cierta velocidad basta hacerse con un gran número de ellas para 'pescar' las más débiles en un tiempo razonable, concentrando en ellas su ataque.
Teniendo en cuenta que esas claves se emplean tanto para cifrar el correo como para las comunicaciones seguras de algunos sitios web, además de para los millones de transacciones que se hacen cada día, el problema no es baladí.
No está muy claro todavía de dónde proviene esa 'falta de aleatoriedad', pero los informáticos saben que es un problema corriente e intrínseco a los propios ordenadores: no hay fórmulas que generen verdaderos números al azar, tan solo secuencias 'pseudoaleatorias' que pueden hacerse pasar por azarosas en la mayor parte de las ocasiones. Pero esta no es una de ellas.
Sistemas externos para mejorar
Los expertos trabajan continuamente en mejorar esto; se ha probado incluso con sistemas externos que añadan una pizca de 'azar real y físico' a las fórmulas con que se generan estos números, para que no sucedan problemas como el que ahora ha surgido.
De momento, los usuarios no pueden hacer nada excepto esperar: el fallo es tan profundo que no es algo que se pueda desactivar ni arreglar con un parche fácilmente.
Las empresas dedicadas a la seguridad tendrán que examinar sus productos para comprobar que estén exentos del fallo.
Los que tengan claves comprometidas habrán de cambiarlas y actualizar sus sistemas: aunque no consta que hasta la fecha nadie se haya aprovechado de este fallo de seguridad, cualquiera podría hacerlo siguiendo los pasos que explican los investigadores en su trabajo.
Aunque el problema no es en sí alarmante y desde luego la sangre no haya llegado al río, es un buen ejemplo de cómo en el mundo de la tecnología y la seguridad los avances son una constante lucha entre investigadores de alto nivel que fabrican y diseñan mejores sistemas y otros que se entretienen en romperlos simplemente para ver cuáles son sus límites.