Rainbow Tables PDF
Rainbow Tables PDF
Rainbow Tables PDF
N ≈ m2t
t
Cadenas de hashes
Hellman Martin, “A Cryptanalytic
Time - Memory Trade-Off”
Función de reducción, R
H R H R
aaaaaa 281DAF40 sgfnyd 920ECF10 kiebgt
Proceso de creación de tablas
H R H R
aaaaaa 281DAF40 sgfnyd 920ECF10 kiebgt
t
aaaaaa kiebgt
H R H R
fabada F4300A82 mlabaz 941A5BC7 lpmaee
aaaaaa kiebgt
fabada lpmaee
H R H R
pttack 41032E55 cateto 0AB2291F pazxca
aaaaaa kiebgt
fabada lpmaee
pttack pazxca
H R H R
clpert 22F08D16 lmzclo 5A1C048E urtcre
aaaaaa kiebgt
fabada lpmaee
pttack m pazxca
clpert urtcre
…
…
La tabla se crea una sola vez
Punto inicial Punto final
aaaaaa kiebgt
fabada lpmaee
pttack pazxca
clpert urtcre
fabada lpmaee
pttack pazxca
clpert urtcre
R H R
41032E55 cateto 0AB2291F pazxca
H
pttack 41032E55
Cuanto más larga es la cadena (t), más
pequeña es la tabla (m) y más lenta es
la búsqueda
Probabilidad de encontrar p
mt / N
t/N m/N
Problemas
La cadena no siempre contendrá el
valor de h buscado
Supongamos que buscamos la
contraseña de FB107E70
aaaaaa kiebgt
fabada lpmaee
pttack pazxca
clpert urtcre
R H R
FB107E70 sgfnyd 7503F4BA kiebgt
H R H R
aaaaaa 281DAF40 sgfnyd 920ECF10 kiebgt
Falsas alarmas porque R no es
resistente a colisiones
Si dos cadenas colisionan en un punto,
cubrirán las mismas contraseñas
Cuanto mayor la tabla, mayor
probabilidad de colisión …
… y menor número de contraseñas
cubiertas
No se puede detectar porque no se
almacenan los valores intermedios
m t 1
1 it j 1
Péxito (1 )
N i 1 j 0 N
m = N1/3
t= N1/3
Para compensar las colisiones se
crean múltiples tablas, l, con funciones
R distintas en cada una
l
m t 1
1 it j 1
Péxito 1 (1 )
N i 1 j 0 N
Solución
Rainbow Tables
Philippe Oechslin, “Making a Faster
Cryptanalytic Time-Memory Trade-Off”
Usar una función de reducción Ri
distinta para cada elemento de la
cadena
¿Pueden existir colisiones ahora?
El mismo valor debería coincidir en la
misma posición: Pcolisión = 1/t
Tendrían el mismo valor final por lo que
podrían eliminarse duplicados
Proceso de creación de tablas rainbow
H R1 H R2 H R3
paquito ub40i moscar as400 parapal bix10 admin
H R1 H R2 H R3
secreto yert4 debajo j0s3a arramai 9i0j8a secanot
H R1 H R2 H R3
duracell re2xei conejos 34ga0 teletubi p3p3l iphone
¿Cuál es la contraseña de 34ga0?
34ga0
R3
paquito admin 34ga0 picasso
secreto secanot
duracell iphone
34ga0
paquito admin
R2 H R3
secreto secanot 34ga0 teletubi p3p3l iphone
duracell iphone
34ga0
paquito admin
secreto secanot
H R1 H
duracell iphone duracell re2xei conejos 34ga0
H R1 H R2 H R3 H R4
AA 2a FB h3 HT 88 ZP 4b QT
H R1 H R2 H R3 H R4
BB y5 TJ 4z HT 88 ZP 4b QT
H R1 H R2 H R3 H R4
AA 2a HT 88 UJ b1 KR 22 PO
Tablas perfectas
Las que cubren todas las contraseñas
sin colisiones
t
mi
Péxito 1 (1 )
i 1 N
mn
N
donde m1 m y mn 1 N (1 e )
Aplicaciones de las
rainbow tables
¿Cómo almacenan los ordenadores las
contraseñas?
Windows Unix
Vista XP, 2000/3 Red Hat Linux Ubuntu Debian Fedora Mac OS X
FUNCIÓN
DES X X
MD5 X X X X
SHA SHA256 SHA1
/512
NTLM Hash X X
NT Hash X
Salt X X X X X
Hagamos unos cálculos
algoritmo hash/s
LM 1.300.728
NTLM 2.623.294
MD5 3.401.360
SHA1 924.898
26 caracteres, longitud <= 7
7
i
26 835,3M
i 1
7
i
36 80,6G
i 1
7
i 7
256 7,2 10 G 72P
i 1
7
i 10
26 6,7 10 G 67E
i 1