En un artículo reciente sobre cómo comprobar si se vio afectado por el incidente de piratería de Gawker Cómo averiguar si su dirección de correo electrónico se filtró a través de la base de datos de Gawker Cómo averiguar si su dirección de correo electrónico se filtró a través de la base de datos de Gawker Lea más, uno de los pasos consiste en convertir su dirección de correo electrónico en un hash MD5.
Tuvimos algunas preguntas de los lectores que preguntaban exactamente qué estaba pasando y por qué este proceso era necesario. No es nuestro estilo dejarlos haciendo preguntas, así que aquí hay un resumen completo de MD5, hash y una pequeña descripción general de las computadoras y la criptografía.
Hashing criptográfico
MD5 significa M essage D igest algorithm 5, y fue inventado por el célebre criptógrafo US Professor Ronald Rivest en 1991 para reemplazar el antiguo estándar MD4. MD5 es simplemente el nombre para un tipo de función de hashing criptográfica que se le ocurrió a Ron, allá por el '91.
La idea detrás del hashing criptográfico es tomar un bloque arbitrario de datos y devolver un valor "hash" de tamaño fijo. Puede ser cualquier dato, de cualquier tamaño, pero el valor hash siempre será fijo. Pruébelo usted mismo aquí.
El hashing criptográfico tiene varios usos, y hay una gran cantidad de algoritmos (distintos de MD5) diseñados para hacer un trabajo similar. Uno de los principales usos del hash criptográfico es verificar el contenido de un mensaje o archivo después de la transferencia.
Si alguna vez ha descargado un archivo particularmente grande (distribuciones de Linux, ese tipo de cosas), probablemente habrá notado el valor hash que lo acompaña. Una vez que se haya descargado este archivo, puede usar el hash para verificar que el archivo que descargó no sea de ninguna manera diferente al archivo anunciado.
El mismo método funciona para los mensajes, con el hash que verifica que el mensaje recibido coincide con el mensaje enviado. En un nivel muy básico, si usted y un amigo tienen un archivo grande cada uno y desean verificar que son exactamente iguales sin la transferencia considerable, el código hash lo hará por usted.
Los algoritmos hash también juegan un papel en la identificación de datos o archivos. Un buen ejemplo de esto son las redes de intercambio de archivos punto a punto, como eDonkey2000. El sistema utilizó una variante del algoritmo MD4 (a continuación ) que también combinó el tamaño del archivo en un hash para apuntar rápidamente a los archivos en la red.
Un ejemplo característico de esto es la capacidad de encontrar rápidamente datos en tablas hash, un método comúnmente utilizado por los motores de búsqueda.
Otro uso para hashes es en el almacenamiento de contraseñas. Almacenar contraseñas como texto claro es una mala idea, por razones obvias, por lo que se convierten en valores hash. Cuando un usuario ingresa una contraseña, se convierte a un valor hash y se compara con el hash almacenado conocido. Como el hash es un proceso unidireccional, siempre que el algoritmo sea sólido, teóricamente hay pocas posibilidades de que la contraseña original se descifre del hash.
El hashing criptográfico también se usa a menudo en la generación de contraseñas y contraseñas derivadas de una sola frase.
Algoritmo de resumen del mensaje 5
La función MD5 proporciona un número hexadecimal de 32 dígitos. Si tuviéramos que convertir 'makeuseof.com' en un valor hash MD5, se vería así: 64399513b7d734ca90181b27a62134dc . Fue construido sobre un método llamado Merkle "" estructura Damgård ( abajo ), que se usa para construir lo que se conoce como funciones hash "a prueba de colisiones".
Sin embargo, ninguna seguridad es todo-prueba, y en 1996 se encontraron fallas potenciales dentro del algoritmo de hash MD5. En el momento estos no fueron vistos como fatales, y MD5 continuó siendo utilizado. En 2004, se descubrió un problema mucho más grave después de que un grupo de investigadores describiera cómo hacer que dos archivos separados compartan el mismo valor de hash MD5. Esta fue la primera instancia de un ataque de colisión utilizado contra el algoritmo de hash MD5. Un ataque de colisión intenta encontrar dos salidas arbritarias que producen el mismo valor hash, por lo tanto, una colisión (dos archivos que existen con el mismo valor).
En los años siguientes, se llevaron a cabo intentos para encontrar más problemas de seguridad dentro de MD5, y en 2008 otro grupo de investigación logró usar el método de ataque de colisión para falsificar la validez del certificado SSL. Esto podría engañar a los usuarios haciéndoles creer que están navegando de forma segura, cuando no lo están. El Departamento de Seguridad Nacional de los EE. UU. Anunció que "los usuarios deben evitar el uso del algoritmo MD5 en cualquier capacidad. Como se demostró en investigaciones previas, se debe considerar criptográficamente interrumpido e inadecuado para un uso posterior ".
A pesar de la advertencia del gobierno, muchos servicios todavía usan MD5 y, como tal, están técnicamente en riesgo. Sin embargo, es posible "saltear" contraseñas, para evitar que los atacantes potenciales utilicen ataques de diccionario (probando palabras conocidas) contra el sistema. Si un pirata informático tiene una lista de contraseñas aleatorias de uso frecuente y su base de datos de cuentas de usuario, pueden verificar los valores hash en la base de datos comparándolos con los de la lista. Salt es una cadena aleatoria, que está vinculada a hashes de contraseñas existentes y luego hash nuevamente. El valor de sal y el hash resultante se almacenan en la base de datos.
Si un pirata informático deseaba averiguar las contraseñas de los usuarios, primero tendría que descifrar los hashes de sal, y esto hace que el ataque de diccionario sea inútil. Salt no afecta la contraseña en sí, por lo que siempre debe elegir una contraseña difícil de adivinar.
Conclusión
MD5 es uno de los muchos métodos diferentes para identificar, asegurar y verificar datos. El hash criptográfico es un capítulo vital en la historia de la seguridad y mantiene las cosas ocultas. Al igual que con muchas cosas diseñadas pensando en la seguridad, alguien se ha ido y las ha roto.
Probablemente no tenga que preocuparse demasiado por los algoritmos hash y MD5 en sus hábitos diarios de navegación, pero al menos ahora sabe lo que hacen y cómo lo hacen.
¿Alguna vez has necesitado hash algo? ¿Verificas los archivos que descargas? ¿Conoces alguna buena aplicación web MD5? Háganos saber en los comentarios!
Imagen de introducción: Shutterstock