Rainbow Tables

24,440 views

Published on

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

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
24,440
On SlideShare
0
From Embeds
0
Number of Embeds
8,414
Actions
Shares
0
Downloads
381
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Rainbow Tables

  1. 1. Rainbow Tables Gonzalo Álvarez Marañón
  2. 2. “Tengo el hash de la contraseña. ¿Cómo puedo obtener la contraseña original?”
  3. 3. Los hashes son funciones unidireccionales
  4. 4. Esto es fácil H p h H ( p)
  5. 5. Esto es difícil 1 H h H ( p) p
  6. 6. ¿Solución?
  7. 7. Calcular todos los hashes hi H ( pi ), pi P
  8. 8. Calcularlos de Calcularlos todos uno en uno de una vez
  9. 9. m N ≈ m2t t
  10. 10. Cadenas de hashes
  11. 11. Hellman Martin, “A Cryptanalytic Time - Memory Trade-Off”
  12. 12. Función de reducción, R
  13. 13. H R H R aaaaaa 281DAF40 sgfnyd 920ECF10 kiebgt
  14. 14. Proceso de creación de tablas
  15. 15. H R H R aaaaaa 281DAF40 sgfnyd 920ECF10 kiebgt punto inicial punto final t
  16. 16. aaaaaa kiebgt H R H R fabada F4300A82 mlabaz 941A5BC7 lpmaee
  17. 17. aaaaaa kiebgt fabada lpmaee H R H R pttack 41032E55 cateto 0AB2291F pazxca
  18. 18. aaaaaa kiebgt fabada lpmaee pttack pazxca H R H R clpert 22F08D16 lmzclo 5A1C048E urtcre
  19. 19. aaaaaa kiebgt fabada lpmaee pttack m pazxca clpert urtcre … …
  20. 20. La tabla se crea una sola vez
  21. 21. Punto inicial Punto final aaaaaa kiebgt fabada lpmaee pttack pazxca clpert urtcre Ordenada por los puntos finales
  22. 22. ¿Cuál es la contraseña de 41032E55?
  23. 23. aaaaaa admin fabada lpmaee pttack pazxca clpert urtcre R H R 41032E55 cateto 0AB2291F pazxca H pttack 41032E55
  24. 24. Cuanto más larga es la cadena (t), más pequeña es la tabla (m) y más lenta es la búsqueda
  25. 25. Probabilidad de encontrar p
  26. 26. mt / N t/N m/N
  27. 27. Problemas
  28. 28. La cadena no siempre contendrá el valor de h buscado
  29. 29. Supongamos que buscamos la contraseña de FB107E70
  30. 30. aaaaaa kiebgt fabada lpmaee pttack pazxca clpert urtcre R H R FB107E70 sgfnyd 7503F4BA kiebgt H R H R aaaaaa 281DAF40 sgfnyd 920ECF10 kiebgt
  31. 31. Falsas alarmas porque R no es resistente a colisiones
  32. 32. Si dos cadenas colisionan en un punto, cubrirán las mismas contraseñas
  33. 33. Cuanto mayor la tabla, mayor probabilidad de colisión …
  34. 34. … y menor número de contraseñas cubiertas
  35. 35. No se puede detectar porque no se almacenan los valores intermedios
  36. 36. m t 1 1 it j 1 Péxito (1 ) N i 1 j 0 N
  37. 37. m = N1/3 t= N1/3
  38. 38. Para compensar las colisiones se crean múltiples tablas, l, con funciones R distintas en cada una
  39. 39. l m t 1 1 it j 1 Péxito 1 (1 ) N i 1 j 0 N
  40. 40. Solución Rainbow Tables
  41. 41. Philippe Oechslin, “Making a Faster Cryptanalytic Time-Memory Trade-Off”
  42. 42. Usar una función de reducción Ri distinta para cada elemento de la cadena
  43. 43. ¿Pueden existir colisiones ahora?
  44. 44. El mismo valor debería coincidir en la misma posición: Pcolisión = 1/t
  45. 45. Tendrían el mismo valor final por lo que podrían eliminarse duplicados
  46. 46. Proceso de creación de tablas rainbow
  47. 47. 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
  48. 48. ¿Cuál es la contraseña de 34ga0?
  49. 49. 34ga0 R3 paquito admin 34ga0 picasso secreto secanot duracell iphone
  50. 50. 34ga0 paquito admin R2 H R3 secreto secanot 34ga0 teletubi p3p3l iphone duracell iphone
  51. 51. 34ga0 paquito admin secreto secanot H R1 H duracell iphone duracell re2xei conejos 34ga0
  52. 52. 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
  53. 53. Tablas perfectas Las que cubren todas las contraseñas sin colisiones
  54. 54. t mi Péxito 1 (1 ) i 1 N mn N donde m1 m y mn 1 N (1 e )
  55. 55. Aplicaciones de las rainbow tables
  56. 56. ¿Cómo almacenan los ordenadores las contraseñas?
  57. 57. 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
  58. 58. Hagamos unos cálculos
  59. 59. algoritmo hash/s LM 1.300.728 NTLM 2.623.294 MD5 3.401.360 SHA1 924.898
  60. 60. 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
  61. 61. 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
  62. 62. 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
  63. 63. 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
  64. 64. LM sucks!
  65. 65. 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
  66. 66. 1 Desactiva los hashes LM en Windows
  67. 67. 2 Utiliza salts
  68. 68. 3 Utiliza contraseñas complejas
  69. 69. Si quieres protegerte frente a las tablas rainbow…
  70. 70. gonzaloalvarez.com elartedepresentar.info

×