Cualquier usuario con acceso a un dispositivo iKey puede leer y escribir cualquier información almacenada en su interior, sin necesidad de introducir el PIN del usuario.
iKey es un dispositivo USB de la empresa Rainbow Technologies, ideado para actuar como «testigo» o «token» y almacenar en su interior certificados, claves de acceso, credenciales y demás información confidencial que pueda poseer un usuario. Dicha información está teóricamente protegida por una clave personal, pero en la práctica todos los datos del usuario son accesibles si se utiliza una clave administrativa. Dicha clave administrativa puede ser grabada por el atacante, por lo que éste puede programar el dispositivo iKey para responder a la clave administrativa que desee y, por tanto, proporcionarle acceso total al mismo.
Para realizar estas operaciones, el atacante necesita desmontar y reprogramar el iKey, tarea sencilla y barata, tan sólo necesita materiales accesibles a cualquier persona.
La clave administrativa por defecto es «rainbow» (el nombre del fabricante), y su valor se almacena codificado con el algoritmo de hash MD5. S¢lo se utilizan los 8 bytes superiores del hash, que se almacenan «codificados» en la memoria externa de iKey. Dicha codificaci¢n es muy sencilla:
Sean a1..a8 los 8 primeros bytes del hash MD5, los 8 bytes «codificados» resultantes son:
b1 = a1 XOR 0x1F
b2 = a2 XOR (a1 + 0x01)
b3 = a3 XOR 0x0F
b4 = a4 XOR (a3 + 0x10)
b5 = a5 XOR 0x1F
b6 = a6 XOR (a5 + 0x07)
b7 = a7 XOR 0x0F
b8 = a8 XOR (a7 + 0xF3)
As¡ pues, un atacante que desease grabar una nueva clave administrativa de su elecci¢n, solo tendr¡a que:
1. Calcular el hash MD5 de dicha clave.
2. Tomar los 8 primeros bytes del hash.
3. «Codificar» esos 8 bytes utilizando las f¢rmulas anteriores.
4. Almacenar esa codificaci¢n en la memoria, a partir de la posici¢n 8.
Otro ataque posible es acceder a iKey mediante el HASH MD5 de la clave administrativa original. Para ello:
1. Se lee el hash codificado de la memoria de iKey
2. Recuperamos los 8 primeros bytes del hash original utilizando las f¢rmulas *inversas* a las indicadas con anterioridad.
3. Suministramos a iKey el valor de dicho hash (para lo cual hay que utilizar «drivers» espec¡ficos).
Esto es posible porque a iKey s¢lo se le env¡a el hash MD5 de la clave, no la clave en s¡.
Este ataque es similar al encontrado hace unos meses para el testigo «eToken» de Aladdin.
Opina sobre esta noticia:
http://www.hispasec.com/unaaldiacom.asp?id=650
M s informaci¢n:
iKey:
http://ikey.rainbow.com/
iKey 1000 Administrator Access and Data Compromise:
http://www.l0pht.com/advisories/ikey-admin.txt
Ataque f¡sico a Aladdin eToken 3.3.3.x:
http://www.argo.es/ jcea/artic/hispasec68.htm
http://www.hispasec.com/unaaldia.asp?id=562
MD5:
ftp://ftp.rediris.es/docs/rfc/13xx/1321
Jesos Cea Avi¢n
jcea@hispasec.com