Lo que tokens de SecurID no es de conocimiento público; RSA (la compañía) está bastante acostumbrada a publicar los detalles. Lo que se puede inferir es lo siguiente:
- Cada dispositivo incorpora un semilla . Cada semilla es específica de un dispositivo.
- La semilla de un dispositivo se puede calcular de forma determinista a partir de un master seed y el número de serie del dispositivo. El número de serie está impreso en el dispositivo. Este cálculo utiliza funciones criptográficas unidireccionales, por lo que no puede adivinar la semilla maestra desde una semilla de dispositivo.
- Desde la semilla del dispositivo y un reloj interno, el número se calcula, una vez más, con una función criptográfica de una vía.
- Los algoritmos de derivación se han filtrado, aunque solo sea porque los servidores de verificación también deben ejecutar el mismo algoritmo, por lo que estos algoritmos existen como software concreto en varios lugares; las fugas y la ingeniería inversa son en su mayoría inevitables en estas condiciones.
Bajo estas suposiciones, entonces:
- Si conoce la semilla del dispositivo, puede calcular números futuros a voluntad.
- Si conoce la semilla maestra y el número de serie del dispositivo, puede calcular la semilla del dispositivo.
- Saber que las semillas de otros dispositivos no debería hacerte nada para adivinar la semilla de un dispositivo dado, a menos que la función criptográfica de una sola vía que convierte la semilla maestra en semillas del dispositivo haya sido dañada de alguna manera.
- Saber los números pasados de un token no debería hacerte nada para adivinar los números futuros del mismo dispositivo, a menos que la función criptográfica de una sola vía que convierte la semilla del dispositivo en números haya sido dañada de alguna manera.
- Extraer la semilla del dispositivo del dispositivo físico es teóricamente posible pero costoso, porque el dispositivo es resistente a la manipulación indebida : está blindado y lleno de sensores, y se suicidará electrónicamente si detecta alguna brecha. Si tomamos el ejemplo de las tarjetas inteligentes, es probable que la extracción de la semilla del dispositivo cueste varios miles de dólares y sea destructiva para el dispositivo (por lo que no puede hacerlo con discreción).
En marzo de 2011, algunos sistemas se han comprometido en RSA, y parece probable que los atacantes logren robar una o unas pocas semillas maestras (es posible que los dispositivos estén integrados en "familias", por lo que hay varias semillas maestras ). RSA ha declarado que se deben reemplazar 40 millones de tokens SecurID. Si conoce el número de serie de un token (puede estar impreso en la parte externa del token), puede usar el Cain & Abel herramienta que apunta a @dls; Es de suponer que esa herramienta implementa el algoritmo filtrado y las semillas maestras y, por lo tanto, puede producir las futuras salidas de token (no lo he probado). Esto solo funcionaría con servidores que aún acepten los tokens de los 40 millones de lotes que se reemplazarán. No sé hasta qué punto han llegado RSA y sus clientes en este proceso, por lo que puede ser que este ataque ya no funcione. Realmente depende de la reactividad de las personas que administran el servidor que atacas.
(Si estos administradores del sistema no han reemplazado los dispositivos comprometidos después de nueve meses, es probable que sean bastante relajados en cuanto a los problemas de seguridad, y el servidor puede tener algunos otros agujeros de seguridad explotables remotamente.)