Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Rainbow Tables PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 76

Rainbow Tables

Gonzalo Álvarez Marañón


“Tengo el hash de
la contraseña.
¿Cómo puedo
obtener la
contraseña
original?”
Los hashes son
funciones
unidireccionales
Esto es
fácil
H
p h H ( p)
Esto es
difícil 1
H
h H ( p) p
¿Solución?
Calcular
todos los
hashes
hi H ( pi ), pi P
Calcularlos de Calcularlos todos
uno en uno de una vez
m

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

punto inicial punto final

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

Ordenada por los puntos finales


¿Cuál es la contraseña de 41032E55?
aaaaaa admin

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

LM NTLM MD5 SHA1


10,7 min 5,3 min 4,1 min 15,1 min
36 caracteres, longitud <= 7

7
i
36 80,6G
i 1

LM NTLM MD5 SHA1


17,2 h 8,5 h 6,6 h 1,0 días
256 caracteres, longitud <= 7

7
i 7
256 7,2 10 G 72P
i 1

LM NTLM MD5 SHA1


1.755,3 años 870,3 años 671,2 años 2.468,5 años
26 caracteres, longitud <= 14

7
i 10
26 6,7 10 G 67E
i 1

LM NTLM MD5 SHA1


1.633.359,2 años 809.881,0 años 624.619,6 años 2.297.070,7 años
LM
sucks!
1. La contraseña se rellena con ceros o se trunca
a 14 bytes
2. Se divide en dos mitades de 7 bytes
3. Se convierten en una cadena binaria para usar
como dos claves DES, insertando un cero
después de cada 7 bits
4. Cada clave se utiliza para cifrar la cadena
KGS!@#$%
5. Los dos textos cifrados resultantes se
concatenan para formar el hash LM de 16
bytes
1
Desactiva los hashes LM en Windows
2
Utiliza salts
3
Utiliza contraseñas complejas
Si quieres protegerte frente a las
tablas rainbow…
gonzaloalvarez.com
elartedepresentar.info

También podría gustarte