Recomendaciones para el uso e implementación de hash

Guía técnica

Conjunto de recomendaciones y herramientas para el uso de hash

¿Qué es un hash?

Un hash es una función matemática que toma una entrada, la cual puede ser cualquier elemento digital, un documento, audio, imagen o conjunto de bits, y la transforma en una cadena de caracteres o un valor numérico de longitud fija. Generalmente, esta salida es una cadena de bytes o un número hexadecimal. Por tanto, al procesar una entrada de datos de longitud variable y convertirla en una salida de longitud fija resulta útil para almacenar contraseñas o verificar la integridad de un archivo, entre otros usos. 

Recomendaciones para su implementación:

  1. Seleccionar un algoritmo de hash seguro: utilizar un algoritmo de hash criptográfico seguro, como SHA-256, SHA-512 o SHA-3. Estos algoritmos son ampliamente aceptados y se consideran resistentes a colisiones y ataques de preimagen.
     
  2. Verificar la autenticidad del algoritmo: el algoritmo de hash elegido debe ser auténtico y de fuente confiable. Utilizar implementaciones estándar y de confianza para generar los hashes.
     
  3. Calcular el hash del documento original: para verificar la integridad de un documento, calcular el hash del archivo original utilizando el algoritmo de hash elegido.
     
  4. Almacenar el valor del hash de manera segura y que no sea modificado ni eliminado: esto garantiza que pueda comparar el hash original con el hash calculado en el futuro.
     
  5. Comparar el hash calculado con el hash original: para verificar la integridad del documento, calcular el hash del archivo y compararlo con el valor original. Si coinciden, el documento no ha sido cambiado. Si difieren, es posible que el documento se haya alterado.
     
  6. Usar una clave para firmar el hash: para mayor seguridad, se puede utilizar una clave privada para firmar el hash en lugar de simplemente almacenarlo. Esto garantiza la integridad y la autenticidad del documento. Una buena estrategia es usar firma digital para almacenar en un documento un determinado hash.
     
  7. Registrar las fechas y las revisiones: mantener un registro de las fechas en las que se calculó y se verificó el hash. Esto permite rastrear cuándo se realizó la verificación y si hubo cambios no autorizados en el documento.
     
  8. Utilizar 2 hashes: para evitar colisiones y minimizar los riesgos de verificación futura, se recomienda el uso de al menos 2 algoritmos de hash.
     
  9. Proteger las claves de hash: las claves de hash y las claves privadas utilizadas para firmar los hashes deben estar protegidas de manera adecuada. Utilizar prácticas sólidas de gestión de claves.
     
  10. Concientizar y capacitar a los equipos de trabajo: orientar a las personas que trabajan con documentos para que comprendan la importancia de verificar su integridad mediante el uso de hashes. La capacitación es clave para el éxito de esta técnica.

 

Si bien los hashes son una herramienta importante para verificar la integridad de documentos, no proporcionan autenticación ni cifrado. Para necesidades de seguridad más avanzadas, se recomienda la firma digital y el cifrado de documentos.

Herramientas recomendadas para el cálculo de hash

OpenHashTab (Windows): herramienta de uso desde el menú contextual

Fhash (Windows /MacOS): herramienta de uso desde el menú contextual

Quickhash (Windows / Linux/MacOS): herramienta con varias funcionalidades hash, la interfaz se encuentra en inglés.

Etiquetas