Adquisición e integridad · Lección 2 de 3
Valores hash e integridad de la evidencia
7 min de lectura
Una copia forense solo es útil si cualquiera puede comprobar que es idéntica a lo que se adquirió y que no ha cambiado desde entonces. Los valores hash criptográficos permiten realizar esa comprobación de forma rápida y objetiva. Esta lección explica las funciones hash, los algoritmos que utilizan los examinadores, lo que demuestra y lo que no demuestra una coincidencia de valores hash, y cómo los valores hash conocidos agilizan un examen. El registro de valores hash en los registros de cadena de custodia se aborda en el Módulo 5.
Qué hace una función hash
Una función hash criptográfica lee cualquier cantidad de datos, desde una palabra hasta un disco completo, y produce un resultado breve de longitud fija llamado valor hash o resumen. Cuatro propiedades la hacen útil para la evidencia:
- Longitud fija: SHA-256 siempre devuelve 256 bits, escritos como 64 caracteres hexadecimales, sea cual sea el tamaño de la entrada.
- Determinista: la misma entrada siempre produce el mismo valor, en cualquier computadora y con cualquier implementación correcta.
- Efecto avalancha: cambiar un solo bit de la entrada modifica aproximadamente la mitad de los bits de salida, de forma impredecible.
- Unidireccional y resistente a colisiones: no es viable reconstruir la entrada a partir del resultado ni encontrar dos entradas con el mismo valor.
Por ejemplo, el texto ASCII "Total adeudado: 1.500,00" tiene un valor SHA-256 que comienza por 6b2c7c4a. Si se cambia el 5 por un 4, lo que altera exactamente un bit, el valor comienza por efdbbff7, sin nada que sugiera que las entradas son casi idénticas.
Algoritmos comunes
| Algoritmo | Tamaño de salida | Situación en la práctica forense |
|---|---|---|
| MD5 | 128 bits (32 caracteres hexadecimales) | Se demostraron colisiones prácticas en 2004; aún se registra por compatibilidad con herramientas y conjuntos de hashes antiguos |
| SHA-1 | 160 bits (40 caracteres hexadecimales) | Primera colisión pública en 2017; aún se registra junto con hashes más robustos en algunos flujos de trabajo |
| SHA-256 | 256 bits (64 caracteres hexadecimales) | Forma parte de la familia SHA-2; no se conocen ataques prácticos; es la opción preferida actualmente |
Una colisión se produce cuando dos entradas diferentes tienen el mismo valor hash. En el caso de MD5 y SHA-1, ahora es posible crear deliberadamente esos pares, por lo que ambos se consideran vulnerados para usos de seguridad como las firmas digitales, y ninguno debería ser el único hash registrado para la evidencia. Los ataques crean dos entradas nuevas de forma conjunta; no producen un archivo que coincida con el hash de uno existente, por lo que una imagen antigua verificada con MD5 no deja de ser confiable de repente. La práctica actual es utilizar SHA-256 o un algoritmo más robusto, a menudo registrado junto con MD5 o SHA-1 porque las herramientas, los informes y las bases de datos de hashes antiguos pueden incluir únicamente esos valores.
Hash de adquisición y hash de verificación
Dos valores hash constituyen la comprobación básica de integridad.
- El hash de adquisición lo calcula la herramienta de creación de imágenes a partir de los datos a medida que los lee del origen. Describe el origen tal como estaba en el momento de la adquisición.
- El hash de verificación se calcula después, leyendo la imagen o la copia y calculando de nuevo su hash. Si coincide con el hash de adquisición, la copia es un registro fiel de lo que se leyó.
La comparación puede repetirse en cualquier momento: antes del análisis, cuando se entrega una copia o ante un tribunal. Después de una adquisición con el equipo apagado, también se puede volver a calcular el hash del origen para demostrar que no se alteró. Una discrepancia debe investigarse y explicarse, nunca ignorarse; entre las causas comunes se encuentran una unidad defectuosa que realiza lecturas inconsistentes, un error de copia o una escritura que logró eludir el bloqueador de escritura.
Imágenes completas y archivos individuales
Un hash de imagen abarca todo el flujo de datos adquiridos. Un hash de archivo abarca el contenido de un solo archivo.
Un hash de archivo no incluye el nombre, la ruta ni las marcas de tiempo del archivo, que el sistema de archivos almacena por separado. Dos archivos con contenido idéntico pero nombres diferentes comparten un hash. Los hashes de archivo son ideales para encontrar duplicados y demostrar que un archivo exportado coincide con el que está dentro de la imagen, pero no indican cuándo ni dónde se hizo una copia.
El hash de imagen no depende del formato: las imágenes sin procesar y E01 (Lección 4.3) de una misma unidad producen el mismo hash de imagen.
Qué demuestra un hash y qué no demuestra
Una coincidencia de valores hash constituye evidencia sólida y objetiva, pero de un hecho limitado.
- Demuestra que la copia es idéntica, bit por bit, a los datos cuyo hash se calculó y que no ha cambiado desde entonces.
- No demuestra que el origen no hubiera cambiado antes de la adquisición. Si alguien alteró una unidad el día anterior a su incautación, la imagen conserva fielmente la unidad alterada.
- No demuestra quién creó, envió o modificó los datos, ni cuándo. Esas preguntas se responden mediante el análisis (Módulo 6).
- No demuestra que la adquisición haya sido completa. Una copia selectiva puede verificarse perfectamente y aun así omitir lo importante.
- Su seguridad depende de cómo se registre. Alguien capaz de modificar una imagen también podría cambiar un valor hash almacenado únicamente junto a ella, por lo que también se deben registrar los valores en las notas y en los registros de cadena de custodia (Módulo 5).
Conjuntos de hashes: reconocimiento de archivos conocidos
Un conjunto de hashes es una lista de valores hash de archivos cuya identidad ya se conoce, de modo que los archivos coincidentes se reconocen sin que nadie los abra.
- Archivos conocidos: la National Software Reference Library (NSRL), gestionada por NIST, publica valores hash de archivos de software disponible comercialmente, lo que permite excluir de una revisión los archivos del sistema operativo y de las aplicaciones. NIST denomina a estos archivos conocidos, no buenos: el conjunto incluye software, como herramientas de intrusión, que puede ser relevante por sí mismo.
- Archivos maliciosos o de interés conocidos: las listas de malware o material ilegal señalan automáticamente los archivos coincidentes y evitan que los examinadores tengan que volver a visualizar imágenes ilegales conocidas.
La comparación de hashes solo encuentra archivos idénticos: una fotografía cuyo tamaño se ha modificado tiene un valor diferente. Los hashes difusos y perceptuales indican similitud en lugar de identidad, y sus resultados requieren revisión.
Un ejemplo resuelto
Ana, examinadora en un laboratorio ficticio, crea una imagen de una unidad de 1 TB. Los valores siguientes están abreviados y son ilustrativos.
- La herramienta informa del hash de adquisición: SHA-256 4e1a…9c07 y MD5 b3d2…51fa. Ana registra ambos.
- La verificación vuelve a leer la imagen e informa de los mismos valores.
- Dos semanas después, antes del análisis, su copia de trabajo sigue produciendo 4e1a…9c07.
- Un colega calcula el hash de una segunda copia con una herramienta diferente y obtiene el mismo valor SHA-256, lo que también demuestra la reproducibilidad (Módulo 1).
- Ana exporta una hoja de cálculo y registra su hash de archivo, de modo que cualquiera pueda confirmar que coincide con el archivo de la imagen.
Si algún valor hubiera sido diferente, Ana habría registrado la discrepancia y determinado su causa antes de confiar en la copia.
Enfoque del examen: Conozca las propiedades de una función hash (longitud fija, determinista, efecto avalancha, unidireccional y resistente a colisiones) y los tamaños de MD5 (128 bits), SHA-1 (160 bits) y SHA-256 (256 bits). Sepa por qué se prefiere SHA-256 y por qué aún se registran MD5 o SHA-1 junto con él. Distinga el hash de adquisición del hash de verificación, y el hash de imagen del hash de archivo. Espere escenarios sobre lo que demuestra y lo que no demuestra una coincidencia de valores hash, y sobre conjuntos de hashes como la NSRL.