Calcular el Hash Desde un Dispositivo de Almacenamiento para Propósitos Forenses

  • Posted on: 20 July 2016
  • By: ReYDeS

El Hash de un bloque de datos; por ejemplo un archivo; es una secuencia de caracteres alfanuméricos de longitud fija calculado por una función matemática.

Esta función matemática es mono direccional; es decir no es posible reconstruir el bloque originario desde una cadena Hash.

Cualquier alteración de los datos, así sea mínimo, resultará en un Hash completamente diferente.

Con los sistemas Linux se puede utilizar alguna de las siguientes aplicaciones para generar una cadena Hash; md5sum, sha1sum, md5, sha1 y sha256 deep, además de “dhash”.

MD5SUM

El acrónimo MD5 (Message Digest Algoritm 5) identifica un algoritmo Hash criptográfico desarrollado por Ronald Rivest en 1991 y estandarizado con el Request for Comments - RFC 1321.

Este algoritmo, tomando como entrada una cadena de longitud arbitraria (como un archivo), produce como salida otra cadena de 128 bits utilizada para calcular la firma digital de una entrada. El cálculo es muy rápido, y la salida devuelta; también conocida como “Suma de Verificación MD5” o “Hash MD5”; es de tal forma, es altamente improbable ocurra una colisión entre los Hashes de dos archivos diferentes. Finalmente, como la mayoría de algoritmos de Hashing, la posibilidad de derivar la cadena inicial desde el Hash resultante es casi inexistente.

Por ejemplo, para calcular el Hash de una unidad USB utilizar el siguiente comando.

$ sudo md5sum /dev/sdb

SHA1SUM

El termino SHA indica una familia de cinco funciones Hash criptográficas desarrolladas desde 1993 por la Agencia de Seguridad Nacional (NSA), y publicados por NIST como un estándar federal por el gobierno de los Estados Unidos.

Como cualquier algoritmo Hash, SHA genera un valor de longitud fija desde una mensaje de longitud variable utilizando una función mono direccional.

Los algoritmos de la “familia” son denominados SHA-1, SHA-224, SHA-256, SHA-384 y SHA-512. El primero tipo SHA-1, calcula una cadena de únicamente 160 bits, mientras los otros calculan un resumen de una longitud en bits igual al número indicado por su acrónimo.

Al momento de escribir el presente texto el algoritmo más ampliamente utilizado de la familia SHA es SHA-1, el cual es utilizado en muchas aplicaciones y protocolos.

Para calcular el Hash SHA-1 de una unidad USB utilizar el siguiente comando.

$ sudo sha1sum /dev/sdb

MD5 y SHA DEEP

MD5, SHA1, SHA256, SHA512 Deep permiten calcular el valor Hash de más archivos de manera recursiva. Por ejemplo:

$ md5deep -l Metadata/
$ sha1deep -l Metadata/

DHASH

DHASH permite calcular los valores Hash desde archivos y dispositivos de almacenamiento, proporcionando información en tiempo real; como el tiempo estimado antes de finalizar la operación, y el progreso del cálculo.

Se puede generar también un reporte en formato HTML.

De las pruebas de laboratorio, DHASH es 10% más rápido en comparación a las otras herramientas detalladas.

Por ejemplo:

$ sudo dhash -t -f /dev/sdb –m5 –sha1 -l /tmp/dhashlog.html

La sintaxis antes detallada permite calcular de manera simultanea el Hash MD5 y SHA-1 del dispositivo /dev/sdb.

Finalizado el proceso es factible visualizar el archivo de nombre “/tmp/dhashlog.html”.

Fuentes:

http://linux.die.net/man/1/md5sum
http://linux.die.net/man/1/sha1sum
http://md5deep.sourceforge.net/md5deep.html
http://en.wikipedia.org/wiki/MD5
http://en.wikipedia.org/wiki/Secure_Hash_Algorithm
http://www.deftlinux.net/doc/EN-deft7.pdf
http://www.deftlinux.net

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Curso de Informática Forense