La Criptografía Enfrenta los Ataques a la Integridad de los Archivos.
En el artículo anterior se dio un resumen de las vulnerabilidades que puede sufrir la infraestructura informática. Con fines educativos estas vulnerabilidades genéricas las hemos agrupado en tres:
Integridad.
Confidencialidad.
Autenticidad.
En este segundo articulo explicaremos que herramientas nos ofrece la criptografía para defender la integridad de un archivo.
Ataque a la Integridad
Se refiere a que los elementos mensajes, datos, documentos, y otras formas de contenido son alterados intencionalmente o no por un agente externo o interno. Solución: la función criptográfica hash256.
¿Cómo trabaja la función criptográfica hash256?
Una función criptográfica hash- usualmente conocida como “hash”- es un algoritmo matemático que transforma cualquier bloque arbitrario de datos en una nueva serie de caracteres con una longitud fija. Independientemente de la longitud de los datos de entrada, el valor hash de salida tendrá siempre la misma longitud.
Hay muchas funciones hash, pero tomaremos el más usado hash 256, también llamada Sha256 (Secure Hash Algorithm), que toma cualquier bloque de datos y genera una salida de 256 bits o 64 caracteres alfabéticos y numéricos (cada carácter equivale a 4 bits), en los siguientes ejemplos usaremos el sitio online que genera hash:
Ejemplo 1.- Tenemos la expresión:
“Nueva York, es la ciudad más poblada de los Estados Unidos. Con una población en 2020 de 8.804.190”.
Obtenemos el hash256:
dd173bf104971a4d9b2cf909aa4d5e86e61684770fa7d9fe6b19957255649db0
Este hash tiene 64 símbolos alfanuméricos.
Ejemplo 2.- Tenemos la expresión:
“Nueva York, es la ciudad más poblada de los Estados Unidos. Con una población en 2020 de 8.804.190 distribuidos en 300,46 millas cuadradas, la ciudad de Nueva York es también la ciudad principal más densamente poblada de los Estados Unidos.”.
Obtenemos el hash256:
ee9d52241654de0fd38491eb5c71607641c0c3f7c5e62ddf2249e55892c9674a
Este hash tiene 64 símbolos alfanuméricos, al igual que el ejemplo 1. No importa el tamaño del párrafo, el resultado tiene 64 símbolos alfanuméricos.
Sensibilidad de la función Hash256
En los siguientes ejemplos, la función hash256 detecta cualquier cambio o alteración. A continuación, tenemos tres expresiones y su correspondiente hash:
1. La vida es bella
81cb54948c8b40aa94923b4088f25d917f7e3c7bc1723aabb2d00b03854d3bb9
2. La vida es Bella
d64f1585d338c9f04056cf2d6cd49d9fac2bd4aaed661e15b8e4e67bd385acab
3. La Vida es bella
da77558509c3bbec013d9639d2561a9ee8ee1a0708fd46776035b7cc5a98631f
Observación:
En la expresión numero dos cambió una letra, la b minúscula de bella por la B mayúscula, el segundo hash es completamente diferente al primero.
En la expresión número tres cambió la v minúscula de vida por la V mayúscula y el hash es completamente diferente al primero y al segundo.
Protocolo de integridad de un archivo
Paso 1: Al guardar un archivo incluye como metadata el hash256 correspondiente.
Paso 2: Cualquier usuario no autorizado, únicamente puede acceder al archivo en el modo de lectura (Read Only).
Paso 3: Únicamente los usuarios que administran el sistema informático podrán acceder al modo escritura (Write). Los usuarios autorizados deben contar con una contraseña (Password).
Paso 4: Implementar alguna de las herramientas que generan hashes, en los programas que administran el sistema informático, ejemplos de Programas para generar hashes (gratis)
Conclusión: Si tengo un programa que al guardar cada archivo incluye su respectivo hash256 (hash A). Si un usuario no autorizado utiliza el archivo:
Solo tendrá un acceso de lectura (Read Only), no hay alteración.
Si logra modificarlo (mediante un ataque cibernético), cuando lo quiera guardar, el programa calcula de nuevo el hash256 (hash B):
Si el hash A es diferente al hash B
El programa no permitirá guarda los cambios. En los siguientes artículos estudiaremos como la criptografía nos defiende de las otras dos vulnerabilidades genéricas.