anÁlisis de funciones hash criptogrÁficas

42
ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFIC AS EN ALGORITMOS MD5 Y SHA-1

Upload: bubuxtreme

Post on 27-Nov-2015

62 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

ANÁLISIS DE FUNCIONES HASHCRIPTOGRÁFICAS

EN ALGORITMOS MD5 Y SHA-1

INTEGRANTES: LUIGGY ALLAUCAFREDERIK CAÑARTE

Page 2: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

INTRODUCCIONLa criptografía no surge con la era informática. Desde que el hombre tienesecretos, la criptografía los ha preservado de miradas indiscretas.La historia ha demostrado la importancia de la seguridad informática

Page 3: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

SEGURIDAD INFORMATICALa seguridad es una meta ambiciosa, hasta el punto en que muchos sostienen que conseguirla en su totalidad es imposible, llegando incluso a equipararla con términos tan abstractos como la justicia, la belleza o el amor.

Page 4: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

CRIPTOGRAFIALa criptografía es una de las soluciones más comunes para muchos de los ataques que se pueden producir contra un Sistema Informático. La palabra criptografía proviene del griego Krypto (oculto) y Graphos (escritura), de forma que su traducción literal sería la ocultación de la escritura. Según la RAE, por definición es el arte de escribir con clave secreta o de un modo enigmático, sin embargo esta definición arcaica y ambigua se queda corta para las necesidades que hoy día se le exige satisfacer.

Page 5: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

METODOS DE SEGURIDADINFORMATICA

Algunos ejemplos bien conocidos para la seguridad informática,es la utilización de algoritmos, los mas grandes son los de funciónhash criptográficamente.

Page 6: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

HASHUna de las herramientas para evitar los ataques informáticos es la criptografía, y en concreto el uso de la firma digital, ya que gracias a ella se puede certificar tres de las características fundamentales que debe cumplir una comunicación segura (el no repudio, la autenticación e integridad). Para trabajar con la firma digital es necesario utilizar algoritmos de cifrado asimétrico con el consecuente retardo que estos conllevan, por eso se ha intentado buscar soluciones, y estas se han hallado en el uso de las Funciones resumen o hash.

Page 7: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

COMO FUNCIONA UN HASH

La funciones hash son de gran utilidad ya que a la hora de firmar un archivono es necesario realizar las costosas operaciones de cifrado con la totalidaddel mismo.Ahora lo único que hace falta es calcular su firma digital y es esta la que sefirma. Gracias a esta estratégica se ahorra ingentes cantidades de tiempo conla misma calidad y seguridad.

Page 8: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

ALGORITMOS HASHLos algoritmos hash debido a su gran relevancia han sido objeto de estudio durantelas últimas décadas, dando lugar a una gran variedad de los mismos. Los algoritmos hash más importantes son:

MD5. Inventado por Ron Rivest en 1992. Proviene de las mejoras del MD4 y MD2 (1990), como defecto es más lento pero esto lo suple con un mayor nivel de seguridad. Su resumen ocupa 128 bits.

SHA‐1. Creado por el NIST (National Institute of Standards and Technology) en1994. Proviene del SHA y es similar a MD5 pero con resumen de tamaño superiorya que este ocupa 160 bits. Existen otras propuestas o mejoras como lo son SHA‐256 y SHA‐512.

LM. Creado por la compañía Microsoft Windows, no es exactamente una funciónhash puesto que utiliza el algoritmo criptográfico simétrico DES para realizar la función resumen la cual tiene un tamaño fijo de 128 bits. Existen versiones mejoradas del mismo como lo son NTLM.

NTLM. Creado por la compañía Microsoft Windows, utiliza otras funciones hash como MD4, además del DES para realizar la respuesta. La función resumen tiene un tamaño fijo de 128 bits.

Page 9: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

CONSIDERACION DE LOSALGORITMOS

TOMAMOS REFERENCIA DOS ALGORITMOS HASH.

SON LOS MA UTILIZADOS Y SIMILARES EN SU FUNCIONAMIENTO CON SUS ALGORITMOS CONTEMPORANEOS.

SHA-1 MD5

Page 10: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

TABLA COMPARATIVA

Page 11: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

CRIPTOANALISIS DE LAS FUNCIONESHASH

El criptoanálisis es la ciencia encargada de buscar lasVulnerabilidades de los criptosistema.En el caso de las funciones hash la seguridad o fiabilidad estásoportada sobre los pilares de las matemáticas más que sobre losde la informática o la telemática, de tal modo que las debilidadestienen más implicaciones matemáticas que computacionales.A continuación se muestran los tipos de ataque que se puedenrealizar sobre una función hash.

Page 12: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

ATAQUE DEL CUMPLEAÑOSEs un ataque por Fuerza Bruta que se basa en las implicaciones matemáticas heredadas de la conocida paradoja del cumpleaños.Básicamente este tipo de ataque consiste en generar cadenas aleatorias M’, realizar Hash(M’) y compararlas con Hash(M) original. Si coinciden se habrá encontrado la solución siendo M= M’, en caso contrario se continua generando nuevas cadenas. En el caso de SHA1 (160 bits) este ataque necesitaría generar 2 (160/2) mensajes para hallar la solución.

Page 13: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

ATAQUE WANG‐YIN‐YU O ATAQUECHINO

Es un ataque por Fuerza Bruta simplificado, en el cual gracias aciertos conocimientos previos al mismo, permite reducir elnúmero de alternativas del hash. Ilustraremos este ataque conun ejemplo.

Page 14: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

ATAQUE WANG‐YIN‐YU O ATAQUECHINO

Imagine que quiere realizar la venta de un inmueble, para ello redacta un contrato de venta A, el cual contiene tanto el texto con los datos pertinentes, como imágenes de la vivienda. Al mismo tiempo genera un contrato alternativo A’ con las mismas fotos pero modificando el precio de venta a su favor. Por las propiedades vistas con anterioridad sería prácticamente imposible que Hash(A)=Hash(A’). Ahora bien puede generar múltiples versiones de A y A’ modificando tan sólo unos pocos bits de las imágenes (modifica sólo las imágenes para que no llame tanto la atenciónla trampa realizada) hasta conseguir que Hash(A) y Hash(A’) sean idénticos.

Page 15: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

RAINBOWTABLESEste ataque genera cadenas de hash, para ir guardando el primer y el último valor de las mismas en un archivo con formato de tabla. Posteriormente las tablas generadas son ordenadas y por último utilizadas, para la búsqueda de la solución que rompa el hash gracias a una reconstrucción de las mismas.

Page 16: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

UTILIZACION EN LA VIDA REALLas funciones hash seguras tienen muchas aplicaciones en aplicaciones relacionadas con seguridad de datos (e.g., firmas digitales y códigos de autenticación de mensajes).También pueden ser usadas como funciones hash de propósito general o como sumas de chequeo. Algunos ejemplos bien conocidos de algoritmos de función hash criptográficamente seguras son : SHA-1, SHA-256, MD5 y Tiger, entre otros.

Page 17: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

SHA-1En criptografía, SHA-1 es una función hash criptográfica diseñada por la Agencia de Seguridad Nacional de los Estados Unidos y publicado por el NIST Estados Unidos como Federal Information Processing Standard EE.UU..SHA-1 produce un 160 bits (20 bytes) valor hash. Un valor hash SHA-1 se expresa típicamente como un número hexadecimal de 40 dígitos.

Page 18: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

SHA-1SHA es sinónimo de "algoritmo de hash seguro". Los cuatro algoritmos SHA están estructurados de forma diferente y se distinguen como SHA-0, SHA-1, SHA-2, y SHA-3. SHA-1 es muy similar a SHA-0, pero corrige un error en la especificación de hash SHA original que condujo a deficienciassignificativas. El algoritmo SHA-0 no fue adoptada por muchas aplicaciones. SHA-2 en el otro lado difiere significativamente de la función hash SHA-1. SHA-1 es el más ampliamente utilizado de las funciones de hash SHA existentes, y se emplea en diversas aplicaciones y protocolos ampliamente utilizados.UNO DE LOS ATAQUES MAS COMUNES ES EL ATAQUE CHINO.

Page 19: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

COMO FUNCIONAPaso 1: Añadir bits de Padding y Paso 2:Añadir la longitud. Igual que en el algoritmo MD5.

Paso 2: Iniciar el buffer SHA. Para guardar tanto los resultados intermedios como el resultado final, se utiliza un buffer de 160 bits. Podemos representar el buffer como cinco palabras de 32 bits, A, B, C, D, E, que se inician con los siguientes valores hexadecimales:A = 67452301B = EFCDAB89C = 98BADCFED = 10325476E = C3D2E1F0

Page 20: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

COMO FUNCIONAPaso 4: Procesamiento del mensaje en bloques de 512 bits (16 palabras de 32 bits). Laparte central del algoritmo es un módulo que tiene 80 etapas de procesamiento.

La lógica de este módulo es la siguiente:Cada etapa tiene como entrada el actual bloque de 512 bits, YA QUE, y los 160bitsdelbuffer ABCDEy, como resultado, actualiza el contenido del buffer.

Page 21: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

COMO FUNCIONAEn cada etapa se hace uso de la suma por una constanteKt. Dehecho, solo se utilizancuatro constantes diferentes. Los valores hexadecimales son lossiguientes:0≤t≤19, entonces Kt= 5A82799920≤t≤39, entoncesKt= 6ED9EBA140≤t≤59, entoncesKt= 8F1BBCDC60≤t≤79, entoncesKt=CAN62C1D6Es decir, el algoritmo SHA para procesar un bloqueYqde 512 bits,tomacomo entrada el bloqueYqy el valor intermedio en aquelmomento de lasecuenciahash SHAqque se toma delbuffer ABCDE.Después, el resultado de las 80 etapas se suma aSHAq,dandoSHAq+1que se coloca enelbufferABCDE. Esta última suma se hace con dos sumandos de160 bits cada uno,la operación se hace de forma independientepara cada una de las cincopalabras de 32 bits que tiene cadasumando.

Page 22: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

COMO FUNCIONAPaso 5: Salida. Tras procesar los Lbloques de 512 bits, la salida SHAL–1delLésimo bloque de proceso es la secuencia hash de 160 bits.

EN MOMERIA

Page 23: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

Donde se utiliza utilizamosEn sistemas UNIX y GNU/Linux se utiliza este algoritmo para calcular elhash de las claves de los usuarios.Este ataque es de particular importancia para las aplicaciones que usanfirmas digitales tales como marcas de tiempo y notaríasEste algoritmo forma parte de varias aplicaciones de seguridad de usocomún y protocolos, incluyendo TLS y SSL, PGP, SSH, S / MIME, e IPsec.Estas aplicaciones también pueden usar MD5, ambos MD5 y SHA-1-sondescendientes de MD4. Hash SHA-1 también se utiliza en los sistemasdistribuidos de control de versiones como Git, Mercurial, Monótono yrevisiones para identificar y detectar la corrupción de datos omanipulación.

Linux ---» PROTOCOLOS

Page 24: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

MD5El algoritmo MD5 Message-Digest es una función hash criptográfica utilizada que produce un (16 bytes) valor hash de 128 bits. Especificado en el RFC 1321, MD5 ha sido utilizado en una amplia variedad de aplicaciones de seguridad, y también se utiliza comúnmente para comprobar la integridad de los datos. MD5 fue diseñado por Ron Rivest en 1991 para reemplazar una función hash anterior, MD4. Un valor hash MD5 se expresa típicamente como un número hexadecimal de 32 dígitos.

Page 25: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

ATAQUES A MD5LOS ATAQUES QUE RECIBE MAS SON LOS DE ATAQUE DE COLISION DE JOUX -

WANG QUE DICE ESTE ATAQUE :Por ejemplo, imagine que tiene dos ejecutablesuno denominado good.exe (programa legítimo) y otro llamado bad.exe(programa ilegítimo), dado un vector A y otro B tal que MD5(A) = MD5(B),puede generar un good.bin haciendo A+good.exe+bad.exe y un bad.binhaciendo B+good.exe+bad.exe. De esta forma tiene que el MD5(good.exe) =MD5(bad.exe).Posteriormente, mediante un tercer programa extractor saca de good.bin ybad.bin a good.exe o bad.exe respectivamente en función de si contienen Ao B. De esta manera puede subir good.bin en la red, y más tarde sustituirlopor bad.bin previamente renombrado sin que nadie pueda detectar elcambio.

Page 26: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

COMO FUNCIONATRES PASOS IMPORTANTES :

P aso 1: Añadir un paddi n g

Al buffer original se le añaden una serie de bits, de tal forma que crezcahasta una cifra cuyo tamaño, tras ser dividido por 512, nos dé un resto de448. En caso de que el tamaño del buffer inicial cumpla ya esta condición,se añadirán 512 bits.Los bits añadidos estarán formados por un bit '1' seguido de tantos bits '0'como sean necesarios para que se de la condición matemática anterior.

Page 27: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

COMO FUNCIONAP aso 2: Añadir la longit u d del b u f f er

Además del 'padding' añadido en el paso 1, se concatenarán 64 bitsadicionales que indican el tamaño del buffer original.El valor estará formado por dos palabras de 32 bits representadas en little-endian.Tras añadir estos últimos 64 bits, ya tenemos un buffer múltiplo de 512 bits(64 bytes), de tal manera que ya puede ser tratado por "EL ALGORITMO",todas esas engorrosas operaciones XOR, OR, AND,rotaciones, etc.

Page 28: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

COMO FUNCIONAP aso 3: I nicial i z ación d e l b uf f e r MD

A grandes rasgos, el cálculo del hash MD5, se realiza modificando un "bufferbase". Las modificaciones vendrán dadas por los bytes que vayamos leyendo denuestro buffer resultante de los dos primeros pasos.El "buffer base" está formado por 4 palabras de 32 bits con la siguienteconfiguración:

word A: 01 23 45 67 word B: 89 ab cd ef word C: fe dc ba 98 word D: 76 54 32 10

ESTOS VALORES ES EL RESULTADO DEL ALGORITMO :01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10

Si recordamos el hash devuelto por 'filehasher' del archivo 'vacio.txt', éste era:

0123456789abcdeffedcba9876543210 vacio.txt

Page 29: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

HASH PERFECTOSe dice que una función hash es perfecta cuando es inyectiva, es decir, que cada dato de entrada se mapea a un valor hash diferente. Desafortunadamente las funciones hash perfectas sólo son útiles cuando las entradas están preestablecidas y se conocen de antemano, como por ejemplo, mapear los nombres de los meses a los enteros del 1 al 12. Si la función hash perfecta mapea los n posibles datos de entrada a un rango consistente en n enteros consecutivos, se dice que es una función hash perfecta y mínima.

Page 30: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

QUE SE PUEDE DECIRFirma digital. Las funciones hash son de gran utilidad a la hora de realizar una firma digital, ya que gracias a ellas los algoritmos de cifrado asimétrico no necesitan cifrar con su clave privada la totalidad del mensaje o archivo. Si no sólo la huella del mismo, ahorrando las grandes cantidades de cálculos que retardarían el conjunto de la operación. Gracias al uso de la firma digital podemos otorgar a la comunicación las propiedades de: no repudio, integridad y autenticidad.Un claro de ejemplo de esta situación lo encontramos en los certificados x.509, los cuales usan MD5 para la realización de su firma digital.En CRIPTOGRAFIA, X.509 es un estándar UIT-T para INFRAESTRUCTURASDE CLAVES PUBLICAS.

Page 31: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

RECUERDENQUE EN ESTE MOMENTO SE ESTAN APLICANDO ESTOS ALGORITMOSEN INTERNET SIN DARNOS CUENTA.

Page 32: ANÁLISIS DE FUNCIONES HASH CRIPTOGRÁFICAS

GRACIAS