¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Hash de archivos y metadatos

Después de esta lección: Puedo probar que un archivo no ha cambiado y leer sus metadatos.

Lección de 55 min6 comandosLaboratorio de respuesta a incidentes y forense: investiga un servidor comprometido

Qué es un hash y para qué sirve

Un hash es una huella de tamaño fijo que se calcula a partir del contenido de un archivo. Si cambia una sola letra, la huella cambia entera, y así puedes probar que una copia es idéntica al original.

Antes de entregar un disco a un abogado, un técnico calcula su huella. Después, cualquiera puede repetir el cálculo y comprobar que nada se tocó.

Al final de esta lección

Nota

Puedo probar que un archivo no ha cambiado y leer sus metadatos.

Palabras clave

PalabraQué significaEjemplo
Hashuna huella de tamaño fijo calculada con el contenidosha256sum
Integridadque un archivo sigue igual que al principio
Metadatosdatos sobre un archivo: dueño, fechas, tamaño
Marca de tiempola fecha y la hora de un suceso
Hora Unixlos segundos que pasaron desde el 1 de enero de 1970

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Una letra distinta cambia todo el hash

Una función hash lee todo el archivo y da un número largo, escrito en hexadecimal. Con el mismo contenido siempre da la misma huella. Con un contenido distinto da otra, aunque la diferencia sea mínima.

Además, desde la huella no se puede recuperar el archivo. Solo sirve para comparar.

La huella del texto hola

Comando
printf 'hola' | sha256sum

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

El mismo texto con un salto de línea

Comando
printf 'hola\n' | sha256sum

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

El texto con la primera letra en mayúscula

Comando
printf 'Hola' | sha256sum

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ejemplo: tres textos casi iguales

TextoPrimeros caracteres de la huella
holab221d9dbb083
hola y un salto de línea133ee9892937
Holae633f4fc79ba

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

La misma huella calculada con Python

Código: python
import hashlib

# Cambia el texto por "Hola" y mira cuántos caracteres cambian.
texto = "hola"
huella = hashlib.sha256(texto.encode()).hexdigest()
print(huella)
print("Longitud:", len(huella))

Ejemplo: tamaño de la huella según el algoritmo

AlgoritmoCifras hexadecimalesSe usa en un análisis
MD532No: se pueden fabricar dos archivos con la misma huella
SHA-140No: tiene el mismo problema
SHA-25664Sí: es la opción habitual

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

La huella de un archivo del caso

Comando
sha256sum case/etc/passwd

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Calcula la huella antes y después de copiar

El método tiene tres pasos. Calcula la huella del original y apúntala en la hoja de custodia. Haz la copia. Calcula la huella de la copia y compara.

Si coinciden, la copia es exacta. Si no, algo falló y repites la copia. La orden anterior imprime 64 cifras, dos espacios y el nombre del archivo.

Los metadatos cuentan quién y cuándo

Los metadatos son datos sobre el archivo, no dentro de él. Los más útiles son el dueño, los permisos, el tamaño y tres fechas.

Cada fecha responde a una pregunta distinta. Aprende cuál es cuál antes de citar una.

Ejemplo: las tres fechas de un archivo

FechaQué marcaCambia cuando
mtimeLa última modificación del contenidoAlguien edita o guarda el archivo
atimeEl último accesoAlguien lo lee, si el sistema lo apunta
ctimeEl último cambio del propio archivoCambian sus permisos, su dueño o su nombre

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

El instante cero de la hora Unix

Comando
date -u -d @0 '+%Y-%m-%d %H:%M:%S'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un número de segundos convertido en fecha

Comando
date -u -d @1760400000 '+%Y-%m-%d %H:%M:%S'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que la fecha de un archivo prueba cuándo se hizo. Una orden como touch cambia la fecha de modificación en un segundo. Trata una fecha como una pista. Confírmala con un registro o con otro archivo.

Sobre este laboratorio y su código: Laboratorio de respuesta a incidentes y forense: investiga un servidor comprometido

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.