HASH COLLISIONS: Welcome to the (un)real World!

991
-1

Published on

Demostración práctica de colisiones en funciones de hash y aplicación práctica en firmas y certificados digitales.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
991
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

HASH COLLISIONS: Welcome to the (un)real World!

  1. 1. HASH COLLISIONS:Welcometo the (un)real World! Pedro aka s4ur0n Security Auditor & Researcher Academia MADESYP (Albacete - Spain)
  2. 2. Hash collisions: Introducción Función de hash criptográfica • Una función de hash criptográfica es una función de hash ☺ • Es un algoritmo que dado un bloque arbitrario de datos devuelve una secuencia de salida en bits de longitud fija normalmente llamada el valor de hash (criptográfico) • Cualquier cambio accidental o intencionado en los datos hará que se cambie el valor del hash (con una muy alta probabilidad) II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  3. 3. Hash collisions: Introducción Función de hash criptográfica • Los datos del mensaje a codificar suelen denominarse “message” o “mensaje” • El valor del hash se denomina también “message digest” o normalmente “digest” o “resúmen” (informalmente “checksum”) • Es decir, un hash es un tipo de “firma” para una secuencia de datos que representa su contenido y que si se ve alterado en lo más mínimo (incluso en un sólo bit) será detectado II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  4. 4. Hash collisions: Introducción Función de hash criptográfica • Los hashes son “digests” y nunca considerados encriptación. Dicha condición se hace en dos vías (encriptación/desencriptación) • Se realiza estrictamente en una única vía (One Way Operation) • Por tanto, si se conoce el “digest” no puede recuperarse el “message” • Pero si se conoce el “message” puede volver a calcularse el “digest” II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  5. 5. Hash collisions: Introducción Ejemplos de hashes TEXTO PLANO Función HASH (MD5) MADESYP 82da940780690d929c0785c9583fe564 MaDESYP 32 CARACTERES 260c7b0672edb56ef3ceedf2b6b84eeb 1 Byte madesyp 978a8df466f30a9969a6386e29a4b289 En un lugar de Albacete * 8 Bits 16 Bytes en la II Conferencia de d704e4fb268f784107887a1ec27039ce Navaja Negra… 128 bits de digest II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  6. 6. Hash collisions: Introducción Ejemplos de hashes MADESYP 82da940780690d929c0785c9583fe564 mADESYP 376f0096cf32e1e28368fc64e5db7c45 8 2 D A 9 4 0 7 3 7 6 F 0 0 9 6 1000 0010 1101 1010 1001 0100 0000 0111 0011 0111 0110 1111 0000 0000 1001 0110 16 Bits diferentes en XOXX OXOX XOXX OXOX XOOX OXOO XOOX OOOX los 4 primeros Bytes delSe continua con los siguientes “bloques” del mismo modo Hash II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  7. 7. Hash collisions: Introducción Ejemplos de hashes MADESYP 82da940780690d929c0785c9583fe564 mADESYP 376f0096cf32e1e28368fc64e5db7c45 El cambio de una sola letra (1 byte=8 bits) supone 71 bits diferentes en el digest Es decir, una diferencia aproximada del 55,47% II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  8. 8. Hash collisions: Introducción Función de hash ideal La función ideal de hash cumple 4 propiedades: • Es fácil de computar cualquier valor de hash para un valor de mensaje dado • No puede generar un mensaje si tiene su hash • No puede modificar un mensaje sin cambiar el hash • Es imposible encontrar dos mensajes con valores diferentes que den el mismo hash II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  9. 9. Hash collisions: Introducción Usos comunes • Se emplean para “ofrecer” INTEGRIDAD y/o NO REPUDIO. Algunos ejemplos son: • Verificación de integridad de ficheros • Detección de datos duplicados • Guardado de credenciales como hashing del password • Fingerprinting • Firmas digitales • Etc… Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  10. 10. Hash collisions: Introducción Terminología y Mitos • ¿Qué es una colisión? • Cuando dos bloques de datos diferentes tienen el mismo valor de hash • Si conozco uno de ellos, pruebo con el resto hasta obtener el mismo hash por fuerza bruta: CIERTO!!! • 128 bits son 3.4*10^38 posibilidades diferentes340.282.366.920.938.463.463.374.607.431.768.211.456 Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  11. 11. Hash collisions: Introducción Algoritmos más usualesAlgoritmo Bits salida Internal State Block Size Length Word Rounds Size Size SizeGOST 256 256 256 256 32 256MD2 128 384 128 n/a 32 864MD4 128 128 512 64 32 48MD5 128 128 512 64 32 64RIPEMD 128 128 512 64 32 48SHA0 160 160 512 64 32 80SHA1 160 160 512 64 32 80SHA-256 256/224 256 512 64 32 64SHA-512 512/384 512 1024 128 64 80 II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  12. 12. Hash collisions PARADOJA DEL CUMPLEAÑOS II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  13. 13. Hash collisions: Bases Paradoja del Cumpleaños • El problema del cumpleaños o la paradoja del cumpleaños es uno de los teoremas más complejos de las matemáticas • Es una paradoja ya que es una verdad matemática que contradice la intuición • ¿Cuántos de vosotros habréis nacido el mismo día y el mismo mes? • ¿Podríamos calcularlo? II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  14. 14. Hash collisions: Bases Paradoja del Cumpleaños • Calcular dicha probabilidad es el problema del cumpleaños y es la base de las colisiones • Probemos a calcular la probabilidad • Estamos 138 personas en la sala • Suponemos 365 días en el año • Luego, suponiendo que cada uno tenga una fecha de nacimiento distinta, la intuición nos dice que sería de 138/365 (un 37,80%) II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  15. 15. Hash collisions: Bases Paradoja del Cumpleaños • Dicha probabilidad, es muy baja para “apostar” unas cervezas, pero… • Veamos qué ocurre con sólo 23 personas • 23/365=0,06301 de donde tendríamos la posibilidad aún más baja de sólo un 6,3% • Tenemos sólo un 6,3% de probabilidad de que 2 personas de las 23 celebren su cumpleaños el mismo día II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  16. 16. Hash collisions: Bases Paradoja del Cumpleaños • Planteamos ahora 2 personas y un año de 365 días • La segunda persona puede cumplir los años cualquiera de los 364 días restantes • Luego la probabilidad de que *NO* celebren su cumpleaños el mismo día será: • 364/365=99,73% • Ahora, tenemos una tercera persona II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  17. 17. Hash collisions: Bases Paradoja del Cumpleaños • Contando con que los dos primeros no coinciden en su cumpleaños, tenemos disponibles 363 días • Esto es una probabilidad de 363/365 sobre los 364/365 días: • 363/365 * 364/365 = 99,18% • Tomemos una cuarta persona: • 362/365 * 363/365 * 364/365 = 98,63% II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  18. 18. Hash collisions: Bases Paradoja del Cumpleaños • Y una quinta persona: • 361/365 * 362/365 * 363/365 * 364/365 = 98,09% • Vamos bajando la probabilidad como puede comprobarse • Expresándolo en notación matemática: II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  19. 19. Hash collisions: Bases Paradoja del Cumpleaños • Usando notación factorial puede ser escrita como… • Ahora, 1-p es la probabilidad de al menos dos personas tengan el mismo día de cumpleaños II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  20. 20. Hash collisions: Bases Paradoja del Cumpleaños • Que podemos expresar como… • Luego la probabilidad para n personas de que tengan el mismo día de cumpleaños viene dada por: II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  21. 21. Hash collisions: Bases Paradoja del Cumpleaños • Retomando sólo 23 personas, vemos que p=50,73% • Esto es más de la mitad • Un buen ejemplo para programar • Y ojo con los decimales (por ejemplo, PL/SQL para n=227 obtiene 100% cuando debería ser sólo 99,999999999999999999999999999999999 99999% II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  22. 22. Hash collisions: Bases Paradoja del Cumpleaños II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  23. 23. Hash collisions II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  24. 24. Hash collisions: MD5 Digest Breve historia • El 17 de Agosto de 2004, Xiaoyun Wang, Dengguo Feng, Xuejia Lay y Hongbo Yu anunciaron las colisiones para el conjunto completo del MD5 • El 1 de Marzo de 2005, Arjen Lenstra, Xiaoyun Wang y Benne de Weger demostraron generar 2 certificados X.509 con el mismo hash MD5 II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  25. 25. Hash collisions: MD5 Digest Breve historia • Unos pocos días después, Vlastimil Klima describió un algoritmo mejorado capaz de generar colisiones en pocas horas en un equipo portátil • El 18 de Marzo de 2006, Klima publicó otro algoritmo capaz capaz de encontrar una colisión en minutos con un método denominado tunneling II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  26. 26. Hash collisions: MD5 Digest Breve historia • El 24 de Diciembre de 2009, Tao Xie y Dengguo Feng publicaron el primer bloque simple de una colisión MD5 de 512 bits • Retaron a la comunidad criptográfica con una recompensa de 10.000 $ al primero que encontrase otra colisión en un bloque de 64 bytes antes del 1 de Enero de 2013 II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  27. 27. Hash collisions: MD5 Digest Demostración de colisiónNos basamos en el “bloque original” de 64bytes (512 bits) con el mismo hash md5 4eb4 2aef5 bc42 a26e4 55fb1 52 05402 79 II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  28. 28. Hash collisions: MD5 Digest Demostración de colisión II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  29. 29. Hash collisions: MD5 Digest Demostración de colisión II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  30. 30. Hash collisions: MD5 Digest Estado de la Tecnología • Hoy 30 de noviembre de 2012 con un i7-980 (6 cores/12 threads) a 3.33GHz, 32 GB de RAM y CUDA de nVIDIA (Compute Unified Device Architecture) con las tarjetas GeForce GTX/Mobile o Quadro, podemos generar bloques completos y distintos en segundos II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  31. 31. Hash collisions: MD5 Digest Bloques “colisionados” 1e934ac2f323a9158b43922500ca7040 II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  32. 32. Hash collisions: MD5 Digest Demostración de bloques II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  33. 33. Hash collisions: MD5 Digest Estado de la Tecnología II • Ops, mi equipo no tiene suficiente potencia para poder generarlos!!! • No hay problema!!! • Método de Vlastimil Klima • Selección de vectores iniciales • Selección de semilla inicial • Aproximadamente 90 segundos • Y md5tunnel 30 segundos II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  34. 34. Hash collisions: MD5 Digest Generación por Tunnel II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  35. 35. Hash collisions II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  36. 36. Hash collisions: SHA-0 Antecedentes • Fue publicado por el NIST • La familia SHA es “Secure Hash Algoritm” • Hay varias versiones. La primera fue SHA-0 II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  37. 37. Hash collisions: SHA-0 Demostración de colisión II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  38. 38. Hash collisions: SHA-1 Breve historia • A los dos años, fue publicado SHA-1 • Actualmente es empleado en muchos sitios • Confiamos en la “seguridad” basada en que no se ha encontrado ningún ataque efectivo • Ha sido ampliamente estudiado por la comunidad criptográfica • Si google no tiene el PoC “es seguro” II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  39. 39. Hash collisions: SHA-1 Breve historia • SHA-1 produce un digest de 160 bits • Por el ataque del cumpleaños, tenemos entonces que puede encontrarse una colisión en 2^(160/2), luego 2^80 • Es un número difícil de conseguir computacionalmente • En 2007 Christophe De Canniere, Florian Mendel y Christian Rechberger encontraron la forma de producirla en 2^70 II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  40. 40. Hash collisions: SHA-1 Breve historia • Xiaoyun Wang, Yiqun Lisa Yin y Hongbo Yu volvieron a demostrar que era posible romper SHA-1 en 2^58 • En 2008 Stéphane Manuel publicó un nuevo disturbance vector que lo permitía con una complejidad de 2^57 • Usando el ataque de boomerang de Joux & Peyrin’s con n diferenciales auxiliares, la complejidad se reduce a 2^(57-n) II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  41. 41. Hash collisions: SHA-1 Breve historia • En 2009 Cameron McDonald, Philip Hawkes y Josef Pieprzyk, en Eurocrypt demostraron con 5 caminos independientes auxiliares y un camino diferencial reducirla a 2^52 • Y eso si es posible computarlo con una máquina actual • Actualmente se continua investigando en nuevas formas pero la comunidad se reserva el derecho de publicar los avances II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  42. 42. Hash collisions: SHA-1 Colisión SHA1 en 2^70 151866D5 F7940D84 28E73685 C4D97E18 97DA712B II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  43. 43. Hash collisions Certificados Digitales II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  44. 44. Hash collisions: Certificados Esto no es… • Un certificado *.sitio.com • Un certificado con NULL bytes • El “caso” RAPIDSSL • El “caso” COMODO • El “caso” DIGINOTAR • El “caso” MICROSOFT TS CERTS • Son colisiones creadas a partir de Certificados completamente validados por toda la cadena de certificación II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  45. 45. Hash collisions: Certificados Herramientas 1.- HASHCLASS • Soporte para CUDA & PS3 • Framework for MD5 & SHA1 Differential Path Construction and Chosen-Prefix for MD5 • Código fuente y binarios con GUI • Microsoft© Windows 32/64 bits • http://code.google.com/p/hashclash/ II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  46. 46. Hash collisions: Certificados Herramientas II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  47. 47. Hash collisions: Certificados Introducción • MD5 es peligroso para firmas digitales • Como ha demostrado FLAME en el año 2012 y funcionando desde el 2010 • Hasta hace muy poco tiempo, se ha empleado como hash de firma el MD5 • En el año 2006 se demostró que era posible el CPC (Choosen Prefix Collision) con 716 bytes aleatorios • Hoy es posible en pocas horas generarlos II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  48. 48. Hash collisions: Certificados Representación gráfica serial number validity period rogue CA cert chosen prefix (different) rogue CA RSA key real cert domain name rogue CA X.509 CA bit! extensions real cert collision bits Netscape Comment RSA key (computed) Extension max 2048 bits (contents ignored by browsers) X.509 extensions identical bytes (copied from real cert) valid signature valid signature II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  49. 49. Hash collisions: Certificados Demostración de Colisiones II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  50. 50. Hash collisions II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  51. 51. Hash collisions: SHA-2 ¿Actualidad o “Futuro”? • Tenemos la familia denominada SHA-2 con 4 variantes: • SHA-224 (Diggest de 256 bits/Bloque 32 bits) • SHA-256 (Diggest de 256 bits/Bloque 32 bits) • SHA-384 (Diggest de 512 bits/Bloque 64 bits) • SHA-512 (Diggest de 512 bits/Bloque 64 bits) • El 2 de Octubre de 2012, fue anunciado por el NIST el ganador de SHA-3 conocido como KECCAK con su familia de funciones “esponjas” II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  52. 52. Hash collisions: Legalidad Legislación Española• LFE Artículo 20 d) y e)• LFE Artículo 18 b) 2º II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  53. 53. Hash collisions: Legalidad Reflexiones II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  54. 54. Hash collisionsWelcome to the (un)real World! PREGUNTAS II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)
  55. 55. Hash collisionsWelcome to the (un)real World! GRACIAS PEDRO C.- MADESYP Security Auditor & Researcher pedroc@madesyp.com http://www.madesyp.com II Navaja Negra Conference – Albacete 2012 Pedro C. (MADESYP)

×