Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Las funciones Hash (también conocidas como funciones resumen) son funciones que,
utilizando un algoritmo matemático, transforman un conjunto de datos en un código
alfanumérico con una longitud fija. Da igual la cantidad de datos que se utilice (muchos o
pocos), el código resultante tendrá siempre el mismo número de caracteres.
Conjunto de datos
Cuando nos referimos a un conjunto de datos, puede ser cualquier tipo de contenido
digital. Ya sean textos, fotografías, video, música… Lo que tendremos que tener en cuenta
es el formato de los archivos. Aunque un texto sea exactamente igual en formato .pdf y
.docx, sus códigos alfanuméricos o hashes serán diferentes.
Por norma general, los Hashes son representados en código alfanumérico hexadecimal.
Por tanto, los 256 bits del SHA-256, nos entrega un código alfanumérico de 64 caracteres.
Una de las principales características de las funciones Hash es que cada conjunto de datos
al que se le aplica la función nos dará un hash único, por muy pequeña que sea la
variación en los datos.
MD5
Es una función hash de 128 bits. Como todas las funciones hash, toma unos determinados
tamaños a la entrada, y salen con una longitud fija (128bits). El algoritmo MD5 no sirve
para cifrar un mensaje. La información original no se puede recuperar, ya que está
específicamente diseñado para que a partir de una huella hash no se pueda recuperar la
información. Actualmente esta función hash no es segura utilizarla, nunca se debe usar.
SHA-1
Es parecido al famoso MD5, pero tiene un bloque de 160bits en lugar de los 128bits del
MD5. La función de compresión es más compleja que la función de MD5, por tanto, SHA-1
es más lento que MD5 porque el número de pasos son de 80 (64 en MD5) y porque tiene
mayor longitud que MD5 (160bits contra 128bits).
SHA-1 es más robusto y seguro que MD5, pero ya se han encontrado colisiones, por tanto,
actualmente esta función hash no es segura utilizarla, nunca se debe usar.
SHA-2
Las principales diferencias con SHA-1 radica en en su diseño y que los rangos de salida han
sido incrementados. Dentro de SHA-2 encontramos varios tipos, el SHA-224, SHA-256,
SHA-384 y SHA-512. El más seguro, es el que mayor salida de bits tiene, el SHA-512, que
tiene 80 rondas (pasos), como el SHA-1 pero se diferencia de éste en:
Tamaño de salida 512 por los 160 de SHA-1.
Tamaño del bloque, tamaño de la palabra y tamaño interno que es el doble que
SHA-1.
Como ocurre con todos los cifrados y hash, cuanto más seguro, más lento su
procesamiento y uso, debemos encontrar un equilibrio entre seguridad y velocidad.
SHA-1
Ejemplo: 356a192b7913b04c54574d18c28d46e6395428ab
Se utiliza en muchos foros y CMS.
Longitud: 20 bytes.
Algoritmo: Igual que el sha1 () en PHP.
sha1(strtolower($username).$pass)
Ejemplo: Admin:6c7ca345f63f835cb353ff15bd6c5e052ec08e7a
Utilizados en SMF.
Longitud: 20 bytes.
sha1($salt.sha1($salt.sha1($pass)))
Ejemplo: cd37bfbf68d198d11d39a67158c0c9cddf34573b:1234
Utilizados en WoltLab BB.
Longitud: 20 bytes.
SHA-256(Unix)
Ejemplo: $5$12345678$jBWLgeYZbSvREnuBr5s3gp13vqiKSNK1rkTk9zYE1v0
Utilizados en Linux y otras similares OS.
Longitud: 55 characters.
Descripción: El hash comienza con la firma de $ 5 $, entonces ahí va la sal (hasta 8
caracteres al azar, en nuestro Ejemplos En la sal es la cadena "12345678"), entonces ahí va
uno más el carácter $, seguido por el hash actual.
Algoritmo: La verdad es que es un circuito llamado el algoritmo SHA-256 5000 veces.
Notes: [1] [2]
SHA-512(Unix)
Ejemplo:
$6$12345678$U6Yv5E1lWn6mEESzKen42o6rbEmFNLlq6Ik9X3reMXY3doKEuxrcDohKUx0O
xf44aeTIxGEjssvtT1aKyZHjs
Utilizados en Linux y otras similares OS.
Longitud: 98 caracteres.
Descripción: El hash comienza con la firma de $ 6 $, entonces ahí va la sal (hasta 8
caracteres al azar, en nuestro Ejemplos En la sal es la cadena "12345678"), entonces ahí va
uno más el carácter $, seguido por el hash actual.
Algoritmo: La verdad es que es un circuito llamado el algoritmo SHA-512 5000 veces.
Todos los sistemas de cifrado están basados en el concepto de clave. Una clave es la base
de una transformación, normalmente matemática, de un mensaje ordinario en un
mensaje ilegible. Durante siglos, la mayoría de los sistemas de cifrado se basaban en un
cifrado de clave privada. El cifrado de clave pública es el único reto al cifrado de clave
privada que ha aparecido en los últimos 30 años.
Las claves se deben compartir por pares de comunicadores, por lo que las claves se
deberán distribuir a los participantes. La necesidad de transmitir claves secretas las
hace vulnerables al robo.
Los participantes sólo pueden comunicarse mediante un acuerdo previo. No puede
enviar un mensaje cifrado utilizable a alguien de forma espontánea. Tanto una
como la otra persona deben establecer acuerdos para comunicarse compartiendo
claves.
Cada participante en un sistema de claves públicas dispone de un par de claves. Una clave
se designa como clave privada y se mantiene secreta. La otra clave se distribuye a quien lo
desee; esta clave es la clave pública.
Cualquier usuario puede cifrar un mensaje utilizando su clave pública, pero sólo usted
puede leerlo. Cuando recibe el mensaje, lo descifra utilizando la clave privada.
De forma parecida, puede cifrar un mensaje para cualquier otro utilizando su clave pública
y, a continuación, descifrándola utilizando su clave privada. Entonces podrá enviar el
mensaje de forma segura a través de una conexión no segura.
Este tipo de cifrado tiene características que lo hacen muy adecuado para su uso general:
El cifrado de clave pública sólo requiere dos claves por participante.
Esteganografia
Luego se debe generar un archivo de texto como por ejemplo un .txt o .doc conteniendo
la información importante a camuflar, como agendas, contraseñas o certificados.
Con respecto a la aplicación esteganográfica, existen muchísimas pero en este caso
mostraremos el proceso con JPHS para Windows. Normalmente el proceso es sencillo y
estándar, en términos generales las operaciones serían las siguientes: inicialmente se
carga la imagen y el texto a ocultar.
La aplicación indica que el tamaño de nuestra imagen es 940kb y el máximo del archivo a
esconder que podremos utilizar en este caso es de 141kb, el cual es bastante grande
teniendo en cuenta que se trata de un archivo de texto plano.
El siguiente paso es ingresar una contraseña, y naturalmente, es recomendable que sea
una fuerte y segura con una combinación de letras en mayúsculas, minúsculas y algún
número o símbolo.
Finalmente, se guarda la imagen con texto oculto con un nombre distinto ya que
visualmente nos será imposible detectar la diferencia con la imagen inicial. De esta forma
la información permanecerá oculta, y aunque el archivo de imagen esté a la vista, el
atacante o intruso solo percibirá una imagen de algún buen recuerdo.
Para recuperar nuestra información, la aplicación nos guiará por el camino inverso, es
decir, inicialmente cargamos la imagen, ingresamos la contraseña y finalmente, exportará
el archivo de texto con la información valiosa.
Como mencionamos anteriormente, este tipo de procesos en general se repite con todas
las herramientas, por lo tanto cuando se trabaje sobre archivos de videos o de música los
pasos serían similares.
Como es de esperar, los archivos utilizados son ciento por ciento funcionales, al igual que
lo eran antes de cargar la información oculta, por lo cual sería interesante reflexionar
sobre cuántos archivos que habitualmente vemos, escuchamos o compartimos en redes
sociales tienen mensajes ocultos. Y por otro lado, la importancia que puede tener este
tipo de técnicas a la hora de resguardar datos con el fin de mejorar la confidencialidad de
la información.