anÁlisis de funciones hash criptogrÁficas

Post on 27-Nov-2015

63 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ANÁLISIS DE FUNCIONES HASHCRIPTOGRÁFICAS

EN ALGORITMOS MD5 Y SHA-1

INTEGRANTES: LUIGGY ALLAUCAFREDERIK CAÑARTE

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

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.

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.

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.

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.

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.

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.

CONSIDERACION DE LOSALGORITMOS

TOMAMOS REFERENCIA DOS ALGORITMOS HASH.

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

SHA-1 MD5

TABLA COMPARATIVA

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.

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.

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.

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.

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.

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.

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.

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.

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

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.

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.

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

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

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.

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.

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.

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.

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

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.

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.

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

GRACIAS

top related