Seguridad en redes. Guía 5 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Seguridad en redes Tema: Funciones hash y firma digital Contenidos Operación del algoritmo de función hash MD5 Operación del algoritmo de función hash SHA-1 Funcionamiento de la Firma Digital Objetivos Específicos Observar el comportamiento del algoritmo de funciones hash MD5. Observar el comportamiento del algoritmo de funciones hash SHA-1. Identificar las similitudes y diferencias entre las funciones hash MD5 y SHA-1. Que el estudiante sea capaz de identificar las ventajas que ofrece la firma digital. Materiales y Equipo PC con Windows XP instalado. Software CriptoRes y ExpoCrip instalado. Archivos de trabajo varios adjuntos a la práctica. Introducción Teórica SHA-1 (Secure Hash Algorithm o Algoritmo Hash Seguro). Este estándar fue introducido el 17 de Abril de 1995, y especifica un algoritmo Hash seguro, para calcular una representación de un mensaje o archivo de datos. Para un mensaje de una longitud máxima de 264 bits como entrada, SHA-1 produce como salida una cadena de 160 bits llamada "Mensaje Resumen". El mensaje resumen puede ser introducido a un algoritmo de firma digital (o DSA por sus siglas en ingles), el cual genera o verifica la firma del mensaje. Firmar el mensaje resumen en lugar del mensaje original provee además, eficiencia en el proceso, debido a que el mensaje resumen es, usualmente, mucho menor en tamaño que el original. El mismo algoritmo Hash con el que se firmo el mensaje, debe ser utilizado por el receptor para verificar la firma digital. El SHA-1 es llamado seguro debido a que, no es factible computacionalmente, encontrar un mensaje que corresponda a un mensaje resumen dado, o encontrar dos diferentes mensajes que produzcan el mismo mensaje resumen. MD5 (Message Digest Algorithm). Este algoritmo toma como entrada un mensaje de longitud arbitraria y produce una salida de 128 bits, la cual representa la huella o un mensaje resumen de la entrada. Es además, computacionalmente improbable producir dos mensajes que tengan el mismo mensaje 2 Seguridad en redes. Guía 5 resumen, o de obtener el mensaje original a partir de una mensaje resumen. El algoritmo MD5 fue diseñado para ejecutarse muy rápidamente en computadoras personales de 32 bits, además de que no requiere grandes tablas de substitución y puede ser codificado de forma muy compacta. Este algoritmo es una extensión del algoritmo para resumir MD4. MD5 es un poco más lento que MD4 pero se considera mas seguro. MD5 se diseño porque las revisiones críticas existentes señalaron que, MD4 fue quizás adoptado por su rapidez y no por su seguridad. Debido a que MD4 fue diseñado para ser excepcionalmente rápido, se encuentra "en el filo" en termino de riesgos de ataques cripto-analíticos exitosos. MD5 sacrifica un poco de velocidad en su cálculo, por mucha más seguridad. Incorpora algunas recomendaciones hechas por varios analizadores, y contiene varias optimizaciones. El Algoritmo MD5 se hace de dominio público para revisiones y posibles adopciones como un estándar. MD4 es un algoritmo de resumen del mensaje (el cuarto en la serie) diseñado por el profesor Ronald Rivest del MIT. Implementa una función criptográfica de hash para el uso en comprobaciones de integridad de mensajes. La longitud del resumen es de 128 bits. Firma Digital La firma digital de un documento es el resultado de aplicar cierto algoritmo matemático, denominado función hash, al contenido. Esta función asocia un valor dentro de un conjunto finito (generalmente los números naturales) a su entrada. Cuando la entrada es un documento, el resultado de la función es un número que identifica casi unívocamente al texto. Si se adjunta este número al texto, el destinatario puede aplicar de nuevo la función y comprobar su resultado con el que ha recibido. Para que sea de utilidad, la función hash debe satisfacer dos importantes requisitos. Primero, debe ser difícil encontrar dos documentos cuyo valor para la función "hash" sea idéntico. Segundo, dado uno de estos valores, debería ser difícil recuperar el documento que lo produjo. Algunos sistemas de cifrado de clave pública se pueden usar para firmar documentos. El firmante cifra el documento con su clave privada y cualquiera que quiera comprobar la firma y ver el documento, no tiene más que usar la clave pública del firmante para descifrarla. Existen funciones "hash" específicamente designadas para satisfacer estas dos importantes propiedades. SHA y MD5 son dos ejemplos de este tipo de algoritmos. Para usarlos un documento se firma con una función "hash", cuyo resultado es la firma. Otra persona puede comprobar la firma aplicando la misma función a su copia del documento y comparando el resultado con el del documento original. Si concuerdan, es casi seguro que los documentos son idénticos. Seguridad en redes. Guía 5 3 Procedimien to Operación del algoritmo de función hash MD5 Bibliografí 1. Hacer clic en el botón inicio de la barra de tareas de Windows, seleccionar Todos a los programas, hacer clic en la aplicación CriptoRes. Con lo cual iniciará la pantalla que se observa en la figura 1. Guía 1 2. En la barra de menú de la ventana de trabajo principal, hacer clic en la opción Seguimientos > MD5. Con lo cual se nos despliega la ventana que se observa en la figura 2. 3. En la sección Datos de entrada de esta ventana, seleccionar la opción Cadena de texto y en la sección Tipo de Seguimiento, seleccionar la opción A nivel de bloques. Luego, introducir los mensajes que se muestran a continuación: a. Mensaje1 = abcd b. Mensaje2 = Esta es una prueba de la función hash MD5 c. Mensaje3 = ESTA ES UNA PRUEBA DE LA FUNCIÓN HASH MD5 4. Para cada uno de los mensajes introducidos, obtener su función hash haciendo clic en el botón Transformar y copiar a continuación los valores de dichas funciones. a. Hash1=_______________________________________________________ b. Hash2=_______________________________________________________ c. Hash3=_______________________________________________________ 5. Compare las funciones hash obtenidas a partir de los mensajes 2 y 3 obtenidas en el numeral anterior y anote sus conclusiones al respecto. ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ 6. Obtener el mensaje 1 original a partir de la función hash 1. ¿Es posible realizar este procedimiento? Explique sus conclusiones a continuación: ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ 7. Hacer un seguimiento del mensaje 3 a nivel de bloques. Guardar el resultado, que se puede observar en la pestaña Seguimiento del algoritmo, en un archivo de texto llamado prac7md5bloques.txt. 4 Seguridad en redes. Guía 5 8. Hacer un seguimiento del mensaje 3 a nivel de pasos. Guardar el resultado, que se puede observar en la pestaña Seguimiento del algoritmo, en un archivo de texto llamado prac7md5pasos.txt. 9. Analizar ambos archivos y observar las operaciones efectuadas por el algoritmo MD5 tanto en la operación por bloques como en la operación por pasos. Figura 1: Ventana principal de aplicación de funciones Hash CriptoRes 10. Introducir por teclado el siguiente texto y calcular su función hash. Guardar el resultado en un archivo de texto. a. Mensaje4 = BEBA COCA COLA 11. A continuación, introducir por teclado el siguiente texto y vuelva a calcular su función hash. Guardar el resultado en un archivo de texto. a. Mensaje5 = BEBA BOCA COLA 12. Comparar la función hash de salida de ambos mensajes y comprobar que al cambiar un solo bit del mensaje (la letra C por la B) cambian más de la mitad de los bits de su función hash o resumen. 13. Haciendo uso de una calculadora científica obtenga el equivalente en binario de la función hash para realizar esta comprobación. Seguridad en redes. Guía 5 5 Figura 2: Ventana de Seguimiento del algoritmo MD5 14. Calcular la función hash del archivo neruda.txt y del archivo neruda.doc; los cuales se encuentran en el directorio del instalador de la aplicación. 15. Observe que el contenido de ambos archivos es el mismo. Explique cual es la razón por la cual sus funciones hash no son idénticas también. ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ 16. Cerrar la ventana de Seguimiento del algoritmo MD5. Operación del algoritmo de función hash SHA-1 1. Hacer clic en el botón inicio de la barra de tareas de Windows, seleccionar Todos los programas, hacer clic en la aplicación CriptoRes. Con lo cual iniciará la pantalla que se observa en la figura 1. 2. En la barra de menú de la ventana de trabajo principal, hacer clic en la opción Seguimientos > SHA-1. Con lo cual se nos despliega la ventana que se observa en la figura 3 6 Seguridad en redes. Guía 5 Figura 3: Ventana de Seguimiento del algoritmo SHA-1 3. En la sección Datos de entrada de esta ventana, seleccionar la opción Cadena de texto y en la sección Tipo de Seguimiento, seleccionar la opción A nivel de bloques. Luego, introducir los mensajes que se muestran a continuación: a. Mensaje1 = abcd b. Mensaje2 = SHA-1 es el estándar actual de funciones hash c. Mensaje3 = ESTA ES UNA PRUEBA DE LA FUNCIÓN HASH SHA-1 4. Para cada uno de los mensajes introducidos, obtener su función hash haciendo clic en el botón Transformar y copiar a continuación los valores de dichas funciones. a. Hash1=_______________________________________________________ b. Hash2=_______________________________________________________ c. Hash3=_______________________________________________________ 5. Hacer un seguimiento del mensaje 3 a nivel de bloques. Guardar el resultado, que se puede observar en la pestaña Seguimiento del algoritmo, en un archivo de texto llamado prac7sha-1bloques.txt. 6. Hacer un seguimiento del mensaje 3 a nivel de pasos. Guardar el resultado, que se puede observar en la pestaña Seguimiento del algoritmo, en un archivo de texto llamado prac7sha-1pasos.txt. Seguridad en redes. Guía 5 7 7. Comparar los resultados de los archivos obtenidos en los numerales anteriores con los obtenidos en los numerales 7 y 8 de la sección 1 haciendo uso del algoritmo MD5. Completar la siguiente tabla de similitudes y diferencias. SIMILITUDES DIFERENCIAS 8. Introducir por teclado el siguiente texto y calcular su función hash. Guardar el resultado en un archivo de texto. a. Mensaje4 = Cuenta atrás: 3210 9. A continuación, introducir por teclado el siguiente texto y vuelva a calcular su función hash. Guardar el resultado en un archivo de texto. a. Mensaje5 = Cuenta atrás: 3211 10. Comparar la función hash de salida de ambos mensajes y comprobar que al cambiar un solo bit del mensaje (el carácter 0 por el 1) cambian más de la mitad de los bits de su función hash o resumen. Haciendo uso de una calculadora científica obtenga el equivalente en binario de la función hash para realizar esta comprobación. 11. Calcular la función hash del archivo cien.txt y del archivo cien.doc; los cuales se encuentran en el directorio del instalador de la aplicación. 12. Observe que el contenido de ambos archivos es el mismo. Explique cual es la razón por la cual sus funciones hash no son idénticas también. ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ 13. Cerrar la ventana de Seguimiento del algoritmo SHA-1. 14. En la barra de menú de la ventana de trabajo principal, hacer clic en la opción Criptosistemas y utilizar el algoritmo MD5 y SHA-1 para calcular la función hash o 8 Seguridad en redes. Guía 5 resumen de cualquier archivo, dentro de la PC asignada, con un tamaño de algunos MBytes. Comparar el tiempo requerido por la aplicación en cada uno de los casos y anotar los resultados a continuación. Tamaño del archivo = _____________________ Tiempo MD5 = ___________________________ Tiempo SHA-1 = _________________________ ¿Qué se puede concluir a raíz de los resultados obtenidos? ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ 15. Cerrar la aplicación CriptoRes. Funcionamiento de la Firma Digital 1. Hacer clic en el botón inicio de la barra de tareas de Windows, seleccionar Todos los programas, hacer clic en la aplicación ExpoCrip. Con lo cual iniciará la pantalla que se observa en la figura 4. Figura 4: Ventana principal de aplicación Sistemas de Cifra Exponencial 2. En la barra de menú de la ventana de trabajo principal, hacer clic en la opción Firmas > Firma RSA. Con lo cual se nos despliega la ventana que se observa en la figura 5. 3. Introducir los parámetros que se detallan a continuación, en las casillas destinadas para ello en la aplicación. Estos parámetros son necesarios para el correcto funcionamiento del algoritmo RSA. a. p = 266677 Seguridad en redes. Guía 5 9 b. q = 724153 c. e = 617 Figura 5: Ventana de Firma Digital RSA 4. En la sección Texto a firmar, ingresar el siguiente mensaje: Firma digital con algoritmo RSA. 5. Luego, hacer clic en el botón Realizar Firma. Y anotar la firma de dicho mensaje a continuación en formato hexadecimal. Firma=_____________________________________________________________ 6. Comprobar la firma del mensaje anterior haciendo clic en el botón Comprobar Firma. 7. Modifique un carácter del texto en claro y vuelva a solicitar la comprobación de la firma. ¿Cuál es el resultado obtenido en esta ocasión y detalle sus conclusiones al respecto? ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ 8. Con los parámetros que se indican a continuación, firmar el archivo soldados.txt que se encuentra en la carpeta de instalación de la aplicación. a. p = 15704900959651293774270521395753 10 Seguridad en redes. Guía 5 b. q = 70180796165277040349245703851057 c. e = 65537 9. Comprobar la firma del apartado anterior. Luego, cambiar una coma por un punto en el texto y volver a comprobar la firma. 10. Indique cual es la importancia de la firma digital en el proceso de aseguramiento de la información. ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ 11. Cerrar las aplicaciones abiertas y apagar la PC. Investigación Complementaria Guía ¿A que 3 personaje se le debe el concepto de Firma Digital? ¿Cómo puede ser comprobada la validez de una firma digital? Investigue 5 aplicaciones en los que la firma digital es utilizada sobre documentos Guía 4 digitales. fía Bibliografía Técnicas de Protección de Datos, A. Fuster, D. de La Guía, L. Hernández, GuíaCriptográficas 3 F. Montoya y J. Muñoz, Ed. Ra-Ma, España, 2000. Diseño e Implementación de Prototipo de Laboratorio de Criptografía, VíctorEscobar, Rafael Gallardo, Guía 4 Carlos Zelaya, Tesis Universidad Don Boso, 2005. Criptografía y Seguridad en Computadores, Manuel José Lucena López, España, 1999. fía Seguridad en redes. Guía 5 11 Hoja de cotejo: Docente: Guía 5: Funciones hash y firma digital Tema: Presentación del programa 5 1 Máquina No: Alumno: Máquina No: Alumno: Docente: Máquina No: Fecha: GL: Docente: GL: GL: a EVALUACION % 1-4 CONOCIMIENTO 25 APLICACIÓN DEL CONOCIMIENTO 70 Demostró poco conocimiento sobre el tema de la práctica. Obtiene las funciones hash MD5 de diferentes mensajes y un archivo de texto a nivel de bloques y a nivel de pasos Demostró conocimiento medio sobre el tema de la práctica. Obtiene las funciones hash MD5 y SHA-1 de diferentes mensajes y un archivo de texto 2.5 Es un observador pasivo. 2.5 Es ordenado pero no hace un uso adecuado de los recursos. Participa ocasionalmente o lo hace constantemente pero sin coordinarse con su compañero. Hace un uso adecuado de recursos respetando las pautas de seguridad, pero es desordenado. ACTITUD TOTAL 100 5-7 8-10 Demostró buen conocimiento sobre el tema de la práctica. Obtiene las funciones hash MD5 y SHA-1 de diferentes mensajes y un archivo de texto Aplica y comprueba la firma digital a mensajes y archivos de texto. Participa propositiva e integralmente en toda la práctica. Hace un manejo responsable y adecuado de los recursos conforme a pautas de seguridad e higiene. Nota