UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
Facilitador(a):Isabel Leguias Asignatura: Seguridad y Privacidad en Redes
Estudiante: Fecha: 27/10/22 Grupo: 11R132
A. TÍTULO DE LA EXPERIENCIA: Funciones Hash
B. TEMAS:
Concepto relacionado con las Funciones Hash.
C. OBJETIVO(S):
Aplicar las funciones hash en un sistema operativo.
Comprender el funcionamiento de las funciones Resumen: MD5, SHA.
Validar archivos de acuerdo a la función hash generada por el fabricante de la aplicación.
Identificar las similitudes y diferencias entre las funciones hash MD5 y SHA-1.
Comprender los efectos de utilizar diferentes alfabetos para codificar el texto en claro y cifrado.
Analizar cada una de las funciones Hash, tales como MD5, SHA-1 y SHA-512 con la herramienta
Cryptool.
D. RECURSOS:
Dispositivo portátil o de escritorio con procesador de palabras.
Herramienta Cryptool
Herramienta MD5 y Hash para entornos Windows y Linux.
Plataforma Moodle.
E. METODOLOGÍA:
El alumno realizará cada sección de la guía, de manera tal de que pueda desarrollar las preguntas. Esta será
evaluada presencialmente. Las preguntas que aparecen al final deberán ser respondidas al momento que el profesor se
lo indique.
F. ENUNCIADO DE LA EXPERIENCIA O PROCEDIMIENTO:
ACTIVIDAD 1. USO DE CRYPTOOL
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
Tarea 1. Función MD5
1. El uso de CRYPTOOL genera un hash MD5 para un pequeño documento de texto sin formato
2. Use un ejemplo para mostrar que la función Hash puede ayudar a proteger la integridad de su mensaje. Puede
cifrar su mensaje de texto sin formato, alterar el texto cifrado y usar la función hash para verificar si el mensaje
descifrado ha cambiado.
original
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
Alterado
3. Registrar el resultado hash (cortar y pegar)
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
4. Cambie un carácter en el texto sin formato y regenere un hash en el texto modificado.
Quite el # del texto
5. Registre el hash (córtelo y péguelo en su informe)
6. ¿Cree usted que podría encontrar una colisión hash? (es decir, ¿puede encontrar dos textos diferentes que
produzcan el mismo hash? Experimente varias veces y saque una conclusión sobre si esto se puede hacer
fácilmente).
R. hice unas tres pruebas, cambiando el texto sin formato y no se genero el mismo hash en las
diferentes pruebas.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
Tarea 2. Función SHA-1
1. Considere el siguiente valor hash obtenido al codificar con SHA-1 una sola letra del alfabeto inglés: C6 3A E6
DD 4F C9 F9 DD A6 69 70 E8 27 D1 3F 7C 73 FE 84 1C. Busca la letra correspondiente. Describa su enfoque.
Utilice CrypTool para realizar esta actividad.
2. Suponga que tiene éxito en la actividad anterior (recupere la letra cifrada). ¿Su éxito implica que esa función
hash SHA-1 no satisface la propiedad unidireccional? Explique su respuesta.
3. Cree un nuevo documento en CrypTool haciendo clic en el icono "Nuevo". Escriba algo de texto en el nuevo
documento. En el menú principal, en “Indiv. Submenú Procedimientos” seleccione “Hash. Hash
Demonstration..." para abrir la ventana "Hash demo" (Figura 1). Modifique el texto que aparece en la ventana
"Documento real" y observe qué sucede con el valor hash correspondiente. Explique su observación.
R/. el valor hash se altera, a medida que vas agregando espacios o letras
Resistencia a colisiones débiles y fuertes
En esta actividad, presentaremos una primitiva de seguridad simple llamada rompecabezas criptográfico. Un
rompecabezas criptográfico se utiliza en situaciones en las que un servidor desea evitar que los clientes
potenciales "utilicen en exceso" el servicio. Así, antes de utilizar un servicio, se le pide al cliente que resuelva un
rompecabezas simple. Si un cliente intenta abusar del servicio, tiene que resolver una cantidad potencialmente
grande de acertijos, lo que disuade efectivamente al cliente de abusar del servicio.
Un rompecabezas criptográfico se puede implementar de manera efectiva con una función hash de la siguiente
manera. Sea C un desafío aleatorio que un servidor envía a un cliente al recibir una solicitud de un servicio.
Entonces, al cliente se le otorga el servicio solo si devuelve al servidor un valor R tal que se cumple la siguiente
ecuación:
ecuación (1),
donde X puede ser cualquier valor.
1. Use la ventana "Hash demo" en CrypTool (vea la Figura 1) y la ecuación (1) para resolver el siguiente puzzle
criptográfico: C = Mario Cagalj y n = 7. Proporcione la solución R al rompecabezas. ¿Cuál era la carga de
trabajo requerida?
2. Use CrypTool para encontrar una colisión en los primeros 40 bits (más significativos) de un valor hash producido
por SHA-1. En el menú principal, elija “Analisis – Hash - Attack en el Valor Hash de la Firma Digital...” y siga
las instrucciones de este. Proporcionar mensajes que colisionen en los primeros 40 bits.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
Figura 1. CrypTool: Hash demo window
3. Suponga que tiene éxito en la tarea anterior (recupere la letra cifrada). ¿Su éxito implica que esa función
hash SHA-1 no satisface la propiedad unidireccional? Explique su respuesta.
4. Cree un nuevo documento en CrypTool haciendo clic en el icono "Nuevo". Escriba algo de texto en el nuevo
documento. En el menú principal, en “Indiv. Procedimientos” en el submenú seleccione “Hash. Demostración de
hash...” para abrir la ventana “Demostración de hash” (Figura 1). Modifique el texto que aparece en la ventana
"Documento real" y observe qué sucede con el valor hash correspondiente. Explique su observación.
ACTIVIDAD 2. USO DE APLICACIÓN MD5SUM EN WINDOWS
MD5SUM es un software que se usa en general para comprobar queunarchivo descargado de Internet está en buenas
condiciones. Se utiliza ejecutando el comando md5sum sobre el archivo, el cual dará como resultado
unacadenaalfanumérica(letrasytextos)querepresentanunaespeciede“huella digital” (fingerprint) del archivo. Es decir que
cada archivo en una computadora es único, y md5sum es un software que sirve para reconocer que tal archivo se encuentra
“intacto” o sea, que no ha sido alterado.
Empleo de md5sum
Cuando descargamos algún archivo de Internet, es conveniente verificar que la descarga ha sido correcta. Para ello se suele
emplear la suma MD5 (md5sum).
Con md5sum se genera un código del fichero original, que suele ser publicado en Internet junto al fichero a descargar. Al
archivo bajado debemos hacerle generar su suma md5 y comprobar que coincide con la del fichero original. De esaforma
estamos seguros de que el archivo descargado es una copia exacta del original.
Aunque no es muy frecuente, suele pasar que una imagen descargada o un programa no funciona como debieran y
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
perdemos mucho tiempo y nos desesperamos al no conseguir que funcione. Una mala descarga (aunque no suele ser habitual)
puede provocar estos problemas, por lo que comprobar el md5sum de cada descarga nos puede evitar futuros
problemas.
Primero debemos descargar la versión".zip" para Windows desde esta dirección:
http://www.fourmilab.ch/md5/
Descomprima elarchivo enuna carpeta con un nombre como md5sum porejemplo, y enel directorio C:/por ejemplo,
da igual donde usted decida colocarlo.
Abrir la consola CMDy diríjase a la carpeta creada anteriormente, en nuestro caso de nombre md5.
Otro método consiste en colocar el programa "md5" o "md5sum" (de acuerdo al programa descargado) en el
directorio: C:\windows\system32\ (para Windows), por lo que el CMD reconocerá el comando md5 sin
necesidad de ir al directorio del programa.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
Debe bajar la siguiente aplicación para realizar el laboratorio de la siguiente dirección:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
Seleccione el archivo de acuerdo a la arquitectura del pc de 32 o 64 bits
Para comprobar el hash con md5sum debemos lanzar el siguiente comando:
>md5 opción RUTA:\archivo_para_comprobar <Enter> .- En caso de tener que ir al directorio. >md5 verifique la ruta
donde usted lo descomprimio.
Nos devolverá un resultado como el siguiente:
C53df772323804442f05a05301049792
Observe la primera línea de letras y números, esa línea md5 es el texto md5 que tiene el archivo que hemos comprobado
con las del archivo original. Este md5 original se obtiene de la página oficial del programa, que en muchos casos no está
colocado.
MD5ORIGINAL: c53df772323804442f05a05301049792
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
MD5 COMPROBADO: c53df772323804442f05a05301049792
También se puede verificar el hash de forma gráfica, para ello utilizaremos el software que se encuentra en el
siguiente enlace: https://winmd5free.apponic.com/download/
Estaremos utilizando la herramienta WinMD5.
Solo tiene que ir a File, buscar el archivo a verificar y le aparecerá el hash.
Compare el resultado del Hash generado en WinMD5 con la página de MySQL. También puede
bajar dicha herramienta de los siguientes enlaces:
winMd5Sum - https://sourceforge.net/projects/winmd5sum/files/latest/download
http://www.winmd5.com/
Coméntele al profesor sobre su experiencia de la herramienta WinMD5 y winMd5Sum. Qué diferencias observó?
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
ACTIVIDAD 3. APLICACIÓN DE LA FUNCIÓN MD5 Y SHA DESDE LA LÍNEA DE COMANDO DE
LINUX
Tarea 1. Funciones resumen Hash
GPG es un excelente referente de cifrado asimétrico, por tanto, haremos uso del modo de línea de comandos Hash
para trabajar lo concerniente a funciones resumen.
1. Utilizando el modificador gpg --version identifique los algoritmos de resumen “HASH” soportados
por GPG.
2. Cree en su carpeta de trabajo un archivo llamado lab05.txt cuyo contenido sea el siguiente mensaje
“verificando funciones de resumen, firma digital y certificados digitales”. Ahora mediante
GPG, determine la “huella digital” (función HASH) del archivo anterior haciendo uso de los sistemas de
resumen más utilizados actualmente.
SHA1: gpg --print-md sha1 lab05.txt
MD5: gpg --print-md md5 lab05.txt
3. En el archivo lab05.txt modifique el caracter “v” de minúsculas a mayúsculas y calcule nuevamente
el HAHS para las funciones MD5 y SHA1. ¿Qué puede concluir?
4. Encuentre en Internet una utilidad que determine el HASH de un archivo con un par de simples clik’s.
Tenga en cuenta como criterio de selección que dicha aplicación sea “free o freeware” y de reducido
tamaño. Anexe el informe, nombre de la aplicación, enlace de descarga y breve descripción.
Tarea 2. MD5SUM y SHA1
md5sum es un programa originario de los sistemas Unix que tiene versiones para otras plataformas, realiza un hash
MD5 de un archivo. La función de hash devuelve un valor que es prácticamente único para cada archivo, con la
particularidad que una pequeña variación en el archivo provoca una salida totalmente distinta, lo que ayuda a detectar si
el archivo sufrió alguna variación. Es una herramienta de seguridad que sirve para verificar la integridad de los
datos.
Es muy utilizado en la actualidad y en el mundo Linux es muy habitual encontrar las sumas de control MD5 de todos
los paquetes que componen una distribución. También hay algunas aplicaciones que utilizan su algoritmo para
encontrar archivos duplicados.
En entorno Linux "md5sum" está generalmente integrado en la distribución. De lo contrario deberá descargárselo. Lo que
vamos a haceren esta parte es verificar la integridad del archivo.
Ejecutamos el comando desde la Terminal:
1. Abrir la terminal y para comprobar con md5sum debemos ubicarnos en el directorio que contiene el archivoque
vamos a verificar o indicarlo como enwindowsy lanzar elsiguiente comando: #md5sum
nombre_archivo_o_fichero_para_comprobar<Enter>.
Encasodetenerqueiral directorio.
#md5 /RUTA/archivo_o_fichero_para_comprobar <Enter>.- En caso de que reconozca el directorio.
2. Nos devolverá un resultado como el siguiente:
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
c9cbd5d788f45605dae914392a1dfeea
3. Ahora debemos observar la primera línea de letras y números, esa línea md5 es el texto md5 que tiene el fichero o
archivo que hemos comprobado con las del archivo original. Este md5 original se obtiene de la página oficial del
programa, que en muchos casos no está puesto.
MD5ORIGINAL: c9cbd5d788f45605dae914392a1dfeea
MD5COMPROBADO: c9cbd5d788f45605dae914392a1dfeea
Bajarlo de https://dev.mysql.com/downloads/installer
NOTA: Si deseamos obtener el código md5 de un archivo creado por nosotros como un pdf, el proceso es exactamente el
mismo, el código se calcula no se asigna. Esta es la razón por la que sabremos si el archivo ha sido modificado o no.
También puede hacer uso de sha256sum para verificar la integridad de los datos de un fichero. Este es el reemplazo
lógico del algoritmo MD5.
Compruebe: md5sum Nessus-6.10.4-ubuntu1110_amd64.deb
4. Supongamos que tenemos el fichero xdibu-0.1.tgz y queremos distribuirlo en Internet, como es un
archivo bastante grande y queremos facilitar que cualquiera lo pueda descargar (usando programas de
descargas como GetRigth, Download Accelerator Plus, NetVampire, Downloader2X, wget, GetLeft,
etc.). Añadiremos un pequeño fichero con el resultado de la ejecución del comando md5sum (o en
algunos sistemas simplemente md5) sobre el archivo en cuestión:
# md5sum xdibu-0.1.tgz
350766b7cf78e9401068b623d47bbf73 xdibu-0.1.tgz #
md5sum xdibu-0.1.tgz > xdibu-0.1.tgz.asc
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
¿Qué sucedió en este paso? Coméntele al profesor.
# cat xdibu-0.1.tgz.asc
750726b7df78e9401068b623d47bbf73 xdibu-0.1.tgz
¿Qué observa en el archivo xdibu-0.1.tgz.asc? Coméntele al profesor.
5. Ahora realice los siguientes SHA
$echo -n Este es un Mensaje | sha256sum -a
$echo -n Este es un Mensaje | sha512sum -a
¿Cuál es la diferencia entre ambos resúmenes, sha256 y sha512? Coméntele al profesor.
G. RESULTADOS:
Para este laboratorio, se realizará la evaluación presencial en 3 fases:
La primera será de la Actividad No-1 con la herramienta Cryptool.
La segunda para la Actividad No-2 herramienta MD5 en Windows.
La última, la Actividad No-3 en el sistema operativo Linux, tanto en gpg como md5sum y sha.
Realice las siguientes actividades a través del sistema operativo Linux, y conteste:
1. Generar el resumen SHA1 y el MD5 de un archivo de texto utilizando los comandos sha1sum y
md5sum respectivamente. ¿Los resultados son los mismos? Explique.
2. Utilizar los mismos comandos para verificar la integridad de los archivos (utilice la opción -c)
3. Alterar el archivo agregando una línea en blanco. Generar nuevamente los resúmenes.
Compararlos con los originales. ¿Qué sucedió?
4. Alterar el archivo cambiando una letra por su sucesora (ej. una ’a’ por una ’b’). Generar
nuevamente los resúmenes. Compararlos con los originales. ¿Qué sucedió?
5. Dado el siguiente texto
La Gueíía de Coto fue un conflicto bélico ocuííido en 1921 que enfíentó a Costa Rica
con Panamá debido a la disputa del teííitoíio de Coto, que había sido íesuelta a tíavés
del Laudo Loubet de 1900 y el ľíatado Andeíson Poíías fiímado ese mismo año, que le
otoígaíon a Costa Rica su peítenencia.
La gueíía se libíó en dos fíentes: en Pueblo Nuevo de Coto en donde los costaííicenses
fueíon deííotados, y en Bocas del ľoío, en donde no hubo enfíentamientos debido a
que las fueízas panameñas íetíocedieíon.
a. ¿Cuál es la longitud de cada uno de los siguientes algoritmos hash en bytes? ¿MD5, SHA-1, SHA-256,
SHA-512? ¿Cuántos bits representa cada hash? Además, presente el resultado de cada hash.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
DEPARTAMENTO DE ARQUITECTURA Y REDES DE COMPUTADORAS
GUÍA DE LABORATORIO N°. 6
(pista: ¿cuántos bits hay en un dígito hexadecimal? o, ¿cuántos bits en un byte y cuántos bytes en un
número hexadecimal de dos dígitos como 'FA'? Piense en esto si aún no ha podido resolverlo).
También puede apoyarse con la siguiente herramienta, https://cryptii.com/
H. RÚBRICAS:
Desarrolle el punto G. Resultados, donde deberá responder a las preguntas señaladas por el profesor.
I. CONSIDERACIONES FINALES:
Opinión del estudiante sobre el logro del objetivo y el desarrollo de la tarea relacionada con el capítulo.
J. REFERENCIAS BIBLIOGRÁFICAS:
http://www.genbetadev.com/seguridad-informatica/manual-de-gpg-cifra-y-envia-datos-de- forma-
segura
http://lignux.com/crear-claves-gpg-desde-la-terminal-en-gnulinux/
https://www.gnupg.org/gph/en/manual.html