Linux: ¿cómo calcular una huella digital SHA-1, SHA-256 y SHA-512?
Table of Contents
I. Presentación
En este tutorial, aprenderemos a calcular una huella digital SHA-1, SHA-256 o SHA-512 en Linux. Este método permite calcular y comprobar la huella digital de un archivo o una cadena de caracteres mediante tres comandos dedicados, disponibles en la mayoría de los sistemas Linux.
El algoritmo hash SHA-1 no es ni el más reciente ni el más robusto. Aunque es más seguro que el conocido MD5, actualmente se prefiere a SHA-256 o incluso SHA-512. Estos últimos generan huellas digitales con más bits, 256 (32 bytes) y 512 bits (64 bytes) respectivamente, frente a los 160 bits de SHA-1. Esto las hace más robustas y reduce el riesgo de colisiones.
Por esta razón, SHA-256 y SHA-512 son los preferidos en la actualidad. Sin embargo, no son infalibles y podrían ser vulnerables a largo plazo a los avances en criptoanálisis y computación cuántica.
Pero, ¿qué es una huella y por qué es tan importante? Empecemos con un breve recordatorio.
Versión original del artículo: 03 de abril de 2013.
II. Recordatorio: ¿qué es un hash?
Un hash, también conocido como huella criptográfica o suma de comprobación, es una secuencia única de caracteres generada a partir de una pieza de datos (un texto o un archivo). Se utiliza para comprobar la integridad de un archivo o texto: si cambia un solo bit, el hash será completamente diferente.
Las comprobaciones de integridad se utilizan en muchos contextos, pero principalmente con fines de ciberseguridad. Su objetivo es comprobar que un archivo no ha sido modificado desde una última situación conocida, o que no ha sido alterado durante su transferencia. Al igual que nuestras huellas dactilares, se supone que la huella de un archivo es única.
Ahora que hemos tenido un rápido recordatorio, veamos cómo comprobar la huella digital de un archivo en Linux.
III. Uso de los comandos shaXsum para calcular una huella en Linux
Vamos a utilizar los comandos sha1sum
, sha256sum
y sha512sum
para generar las huellas dactilares de un archivo en Linux. Esto permitirá utilizar algoritmos SHA-1, SHA-256 o SHA-512, dependiendo de la aplicación. La elección del algoritmo puede guiarse por los requisitos de seguridad y rendimiento.
He aquí algunos ejemplos prácticos de cómo calcular la huella digital de un archivo utilizando los algoritmos hash SHA-1, SHA-256 y SHA-512:
# Calcular la huella SHA-1 de un fichero
$ sha1sum document.txt
3d2636af5068b1af3199ee1d3f3796a348339d2f document.txt
# Calcular la huella SHA-256 de un fichero
$ sha256sum document.txt
12a1f36c7d1b4ece74ce916e126d99515b750c3066e08ef3536e14cefde42108 document.txt
# Calcular la huella SHA-512 de un fichero
$ sha512sum document.txt
8ca31053f0349f3161980db84e97462e0e263b69de3740c6cac5aa6d66f96943cfe2953904cb8c515be847a755cd563ada3698ff515667a936355db820303696 document.txt
Como puedes ver, los hashes producidos son de diferentes longitudes y estos tres comandos se utilizan de la misma manera. Podemos, por ejemplo, utilizarlos para comprobar la integridad de dos o más archivos, en particular para compararlos :

En este ejemplo, en el que utilizamos SHA-256, los dos primeros archivos son idénticos (se ha generado el mismo hash SHA-256), pero el tercero es diferente.
También puede guardar esta huella en un archivo para que los usuarios puedan volver a compararla. Por lo general, las huellas digitales se guardan en un archivo con la extensión .checksum
:
$ sha256sum document.txt
12a1f36c7d1b4ece74ce916e126d99515b750c3066e08ef3536e14cefde42108 > documents.txt.checksum
Por último, podemos calcular la huella digital de una cadena de caracteres de la siguiente manera:
$ echo "Se trata de una cadena de caracteres." | sha256sum
151c792da29674e1f697191ef58544a18943395b86b33c211aafddffa2cbce83 -
IV. Comprobación de la integridad de un fichero en Linux
Ahora vamos a intentar una pequeña comprobación de integridad utilizando uno de los tres comandos que acabamos de ver. Ve a la página de descargas de VirtualBox y descarga cualquier versión del instalador:

También encontrará un enlace "Sumas de comprobación SHA256", que contiene los hashes de cada uno de los archivos ofrecidos. Por ejemplo, he descargado el instalador de Windows, cuya suma de comprobación es 35c42c98b784974a965c358a9bda63b6cb4edde80db83f87daa2fee83e6cfad6
.

Una vez descargado el archivo, compruebo su integridad con el comando sha256sum
:

Las huellas SHA-256 son las mismas. De esto puedo concluir que el archivo está intacto, lo que confirma que no fue alterado durante la transferencia.
V. Conclusión
Ahora puede calcular de forma sencilla la huella digital SHA1, SHA-256 y SHA-512 de un archivo o cadena de caracteres. Esto puede resultar especialmente útil para calcular la integridad de un archivo.