El investigador Behrang Fouladi, de SensePost recientemente publicó una investigación donde explica cómo determinó el cálculo y dónde se almacena la semilla en las versiones de RSA SecureID para Windows, a partir de ésta información se puede realizar el clonado fácilmente en un equipo ajeno al sistema original de autenticación.
RSA (Rivest, Shamir y Adleman), es un sistema criptográfico de clave pública desarrollado en 1977. Es el primer y más utilizado algoritmo de este tipo y es válido tanto para cifrar como para firmar digitalmente.
La seguridad de este algoritmo radica en el problema de la factorización de números enteros.
Los mensajes enviados se representan mediante números, y el funcionamiento se basa en el producto, conocido, de dos números primos grandes elegidos al azar y mantenidos en secreto.
Actualmente estos primos son del orden de 10^{200}, y se prevé que su tamaño aumente con el aumento de la capacidad de cálculo de los ordenadores.
Como en todo sistema de clave pública, cada usuario posee dos claves de cifrado: una pública y otra privada.
Cuando se quiere enviar un mensaje, el emisor busca la clave pública del receptor, cifra su mensaje con esa clave, y una vez que el mensaje cifrado llega al receptor, este se ocupa de descifrarlo usando su clave privada.
Se cree que RSA será seguro mientras no se conozcan formas rápidas de descomponer un número grande en producto de primos. La computación cuántica podría proveer de una solución a este problema de factorización.
Extracto de Hispasec:
Fouladi ha aplicado ingeniería inversa sobre el almacenamiento de los valores semilla y su protección en la versión Windows de "SecurID software token". SecurID utiliza tokenstoreplugin.dll para relacionar un sistema operativo en una máquina concreta con el token mediante el valor DeviceSerialNumber. Este se construye a partir de dos valores relativamente fáciles de obtener en sistemas Windows: el nombre de host del sistema y el SID (SecurityIdentifier) del usuario que haya instalado la aplicación.
En resumen, la expresión que lo calcula sería:
device_serial_number=Left(SHA1(host_name+user_SID+"RSA Copyright 2008"),10
No hay comentarios.:
Publicar un comentario
Déjanos tu comentario, nos permitirá mejorar.
¿Qué opinas de este tema?
¿Tienes alguna duda o sugerencia?
¿Te parece adecuado y completo este tema?
¿Falta información? ¿Cual?