Rainbow Tables

gonalvmar 6,223 views 76 slides Jun 19, 2009
Slide 1
Slide 1 of 76
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76

About This Presentation

¿Qué son y para qué sirven las rainbow tables? ¿Cómo pueden utilizarse para romper contraseñas? ¿Cómo protegerse frente a su ataque?


Slide Content

RainbowTables
Gonzalo Álvarez Marañón

“Tengo el hashde
la contraseña.
¿Cómo puedo
obtener la
contraseña
original?”

Los hashes son
funciones
unidireccionales

)(pHhp
H Esto es
fácil

ppHh
H
1
)( Esto es
difícil

¿Solución?

PppHh
iii ),( Calcular
todoslos
hashes

Calcularlos todos
de una vez
Calcularlos de
uno en uno

t
m
N ≈ m
2
t

Cadenas de hashes

Hellman Martin, “A Cryptanalytic
Time -Memory Trade-Off”

Función de reducción, R

aaaaaa 281DAF40 sgfnyd 920ECF10 kiebgt
H HR R

Proceso de creación de tablas

aaaaaa 281DAF40 sgfnyd 920ECF10 kiebgt
H HR R
punto inicial punto final
t

fabada F4300A82 mlabaz 941A5BC7 lpmaee
H HR R
aaaaaa kiebgt

fabada lpmaee
aaaaaa kiebgt
pttack 41032E55 cateto 0AB2291F pazxca
H HR R

fabada lpmaee
aaaaaa kiebgt
pttack pazxca
clpert 22F08D16 lmzclo 5A1C048E urtcre
H HR R

fabada lpmaee
aaaaaa kiebgt
pttack pazxca
clpert urtcre
m
… …

La tabla se crea una sola vez

Ordenada por los puntos finales
fabada
aaaaaa
pttack
clpert
lpmaee
kiebgt
pazxca
urtcre
Punto inicialPunto final

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

fabada
aaaaaa
pttack
clpert
lpmaee
admin
pazxca
urtcre
41032E55 cateto 0AB2291F pazxca
HR R
41032E55
H
pttack

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 hbuscado

Supongamos que buscamos la
contraseña de FB107E70

fabada
aaaaaa
pttack
clpert
lpmaee
kiebgt
pazxca
urtcre
FB107E70 7503F4BA kiebgt
HR R
281DAF40 sgfnyd 920ECF10 kiebgt
H HR R
sgfnyd
aaaaaa

Falsas alarmas porque Rno 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
i
t
j
j
éxito
N
it
N
P
1
1
0
1
)1(
1

m = N
1/3
t= N
1/3

Para compensar las colisiones se
crean múltiples tablas, l, con funciones
Rdistintas en cada una

l
m
i
t
j
j
éxito
N
it
N
P
1
1
0
1
)1(
1
1

Solución
RainbowTables

Philippe Oechslin, “Making a Faster
Cryptanalytic Time-Memory Trade-Off”

Usar una función de reducción R
i
distinta para cada elemento de la
cadena

¿Pueden existir colisiones ahora?

El mismo valor debería coincidir en la
misma posición: P
colisión= 1/t

Tendrían el mismo valor final por lo que
podrían eliminarse duplicados

Proceso de creación de tablas rainbow

paquito ub40i moscar as400 parapal bix10 admin
duracell re2xei conejos 34ga0 teletubi p3p3l iphone
H
H
H H
H H
R
1
R
1
R
2
R
2
R
3
secreto yert4 debajo j0s3a arramai 9i0j8a secanot
H H HR
1 R
2 R
3
R
3

¿Cuál es la contraseña de 34ga0?

paquitoadmin
duracelliphone
secretosecanot
34ga0 picasso
R
3
34ga0

paquitoadmin
duracelliphone
secretosecanot 34ga0 teletubi p3p3l iphone
HR
2 R
3
34ga0

paquitoadmin
duracelliphone
secretosecanot
duracell re2xei conejos 34ga0
H HR
1
34ga0

AA 2a
H R
1 R
2 R
3
FB h3
H
HT 88
H
ZP 4b
H R
4
QT
BB y5
H R
1 R
2 R
3
TJ 4z
H
HT 88
H
ZP 4b
H R
4
QT
H R
1 R
2 R
3H H H R
4
AA 2a HT 88 UJ b1 KR 22 PO

Tablas perfectas
Las que cubren todas las contraseñas
sin colisiones

)1(y donde
)1(1
11
1
N
m
n
t
i
i
éxito
n
eNmmm
N
m
P

Aplicaciones de las
rainbowtables

¿Cómo almacenan los ordenadores las
contraseñas?

Windows Unix
VistaXP, 2000/3Red HatLinuxUbuntuDebianFedoraMac OS X
FUNCIÓN
DES X X
MD5 X X X X
SHA SHA256
/512
SHA1
NTLM HashX 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

LM NTLM MD5 SHA1
10,7 min 5,3 min 4,1 min 15,1 min7
1
M3,83526
i
i
26 caracteres, longitud <= 7

7
1
G6,8036
i
i 36 caracteres, longitud <= 7
LM NTLM MD5 SHA1
17,2 h 8,5 h 6,6 h 1,0 días

P72G102,7256
7
1
7
i
i 256 caracteres, longitud <= 7
LM NTLM MD5 SHA1
1.755,3 años870,3 años671,2 años2.468,5 años

E67G107,626
7
1
10
i
i 26 caracteres, longitud <= 14
LM NTLM MD5 SHA1
1.633.359,2 años809.881,0 años624.619,6 años2.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 textoscifradosresultantesse
concatenanparaformarel hash LM de 16
bytes

1
Desactiva los hashes LM en Windows

2
Utiliza salts

3
Utiliza contraseñas complejas

Si quieres protegertefrente a las
tablas rainbow…

gonzaloalvarez.com
elartedepresentar.info