Uso de SHA256 y utilidad en encrpitación de datos

¿Qué  es SHA256?

SHA256 es una función hash, esto es, es una función que se encarga de dado un texto de entrada, convierte/traduce esa entrada, a un código que se denomina datos hash.

¿Cómo funciona SHA256?

Por ejemplo, la frase:

The quick brown fox jumps over the lazy dog.

Mediante la función SHA256, se transforma en el siguiente código:

EF537F25C895BFA782526529A9B63D97AA631564D5D789C2B765448C8635FB6C

La función SHA256 en su resultado final, siempre muestra 64 caracteres, independientemente de la longitud de los datos de entrada.

Cada carácter que se muestra en el resultado final puede ser o bien un dígito, o bien una letra de la A a la F. Cada carácter del resultado final, representa 4 bits de información, por lo que:

RESULTADO_FINAL: 64 caracteres X 4 bits cada uno de ellos = 256

En total 256 bits de información, que es por lo que se llama SHA256.

Verificando Integridad y Autenticidad

Por lo que SHA256, nos va a servir por ejemplo para verificar la integridad (garantizar que los datos no han sido modificados desde su creación sin autorización) y autenticidad (prueba quién es el autor de un documento y cual es su destinatario) de los archivos que descargamos.

Un ejemplo, imagina que vas a descargar la siguente distro de Kali Linux:

Como puedes ver, al archivo que descargas le han asignado un código SHA256sum, ahora, una vez descargado ese archivo en tu ordenador, vas al directorio en el cual se encuentra y ejecutas lo siguiente:

sha256sum kali-linux-2018.1-amd64.iso

y si todo ha ido bien, vamos a obtener la siguiente línea, que si nos damos cuenta coincide con el código SHA256sum que se encuentra en el archivo de Kali Linux que hemos descargado en la web.

ed88466834ceeba65f426235ec191fb3580f71d50364ac5131daec1bf976b317  kali-linux-2018.1-amd64.iso

Si esto ocurre así, si coincide el código SHA256sum, el archivo ha sido descargado correctamente sin ser manipulado o en ocasiones simplemente corrompido en la propia descarga. Si no coincide el código SHA256sum, habrá que descargar otra vez el archivo.

¿Por qué merece la pena utilizar SHA256?

Es muy improbable que se cree el mismo código SHA256 en dos archivos distintos, porque existen aproximadamente 10^77 (un 1 seguido de 77 ceros) códigos posibles. Además, hay que tener en cuenta que pequeños cambios en los datos de entrada suelen obtener grandes cambios en su código SHA256 de salida.

Entonces SHA256 es una forma rápida de comprobar que efectivamente dos archivos son idénticos, lo que permite comprobar rápidamente si un archivo ha sido manipulado o fue corrompido. El proceso completo generalmente sigue los siguientes pasos:

  1. El autor  sube el archivo y anuncia su código SHA256.
  2. El archivo puede ser colgado en otros lugares (webs). En algunos de esos lugares esas subidas pueden estar corrompidas. (pudieron inyectar virus/software malicioso en ese archivo antes de subirlo).
  3. El usuario descarga el archivo.
  4. El usuario comprueba el código SHA256 del archivo y lo compara con el anunciado por el autor.
  5. Si coinciden, el usuario tiene el archivo correcto y la descarga se produjo correctamente. Si no coinciden, se tiene una mala versión del archivo y se deberá volver a descargarlo, si es posible desde un lugar diferente.

Referencias

Algoritmo-sha-256-protocol
Función hash criptográfica
Verificar SHA256
Objetivos de la seguridad informática
Seguridad de la información

Advertisements