Lab 04 Hash, Firma Digital y Certificados Área de Telemática Seguridad de la información Universidad de Antioquia Actividad 01: Funciones resumen “HASH” GPA es un excelente FrontEnd (Interfaz de usuario) de GPG en lo referente al cifrado asimétrico. Sin embargo, para el cálculo de funciones HASH no lo es. Por tanto, haremos uso del modo de línea de comandos de GPG para trabajar lo concerniente a funciones resumen. a. Utilizando el modificador gpg --version identifique los algoritmos de resumen “HASH” soportados por GPG. b. Cree en su carpeta de trabajo un archivo llamado lab04.txt cuyo contenido sea el 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 lab04.txt MD5: gpg --print-md md5 lab04.txt c. En el archivo lab04.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? d. Utilizando Cryptool, determine el porcentaje de bits que se modifican en el HASH realizando la modificación sugerida para el mensaje “verificando funciones de resumen, firma digital y certificados digitales”, en el ítem c. (Procedimientos Individuales > HASH > Demostración HASH) e. 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 “freeware” y de reducido tamaño. Anexe el informe, nomCe de la aplicación, enlace de descarga y breve descripción. Actividad 02: Firma Digital f. Utilizando GPA ilustre el procedimiento y el resultado obtenido para firmar el mensaje “verificando funciones de resumen, firma digital y certificados digitales”, con la llave privada que usted creó en el laboratorio pasado. Envíe dicho resultado al correo del profesor y no olvide enviar también su llave pública. g. Utilizando GPA ilustre el procedimiento y el resultado obtenido para firmar y cifrar el mensaje “verificando funciones de resumen, firma digital y certificados digitales”, con el par llave pública/privada que usted creó en el laboratorio pasado, Envíe dicho resultado al correo del profesor y no olvide enviar también su llave pública. h. Descargue la llave pública del curso a su PC, impórtela a su sistema, y verifique que si fue vinculada al sistema. Descargue los documentos identificados como: info_A.txt e info_B.txt, observe su contenido y determine mediante la aplicación de Portapapeles de GPA si se puede verificar de la firma de la información contenida en dichos documentos. Cuál de los documentos fue realmente firmado por “clase”? i. A partir de la información obtenida en el ítem anterior y utilizando Cryptool, genere un mensaje que parezca que realmente ha sido firmado por mi (Alexander Leal), pero que en realidad ha sido suplantado por ustedes. (Análisis > HASH > Ataque al valor HASH de una firma digital). Adjunte el mensaje y el resultado del procedimiento entregado por Cryptool. Actividad 03: Certificados Digitales j. En tu navegador por defecto (Mozilla, IExplorer, Google Chrome) ingresa a www.gmail.com y responde las siguientes preguntas: * Quién extendió el certificado? * Cuál es su período de validez? * A quién identifica? * Algoritmos usados en la firma Nota: Para obtener la información arriba solicitada, de doble click en el icono del navegador con forma de candado, una llavecita o algo así. Por ejemplo en Google Chrome k. La autoridad certificadora que extendió el certificado firmó la clave pública de GMAIL para que tuviera la certeza de que en este instante estás conectado con GMAIL, y no con un tercero que te tima. Para verificar dicha firma, tu navegador tiene que disponer de la clave pública de la entidad certificadora (CA). Determine entonces: * ¿Dónde está ese certificado? * ¿De cuántos certificados dispone tu navegador? * ¿Cuántos ya expiraron? * Mencione por lo menos dos CA’s que contengan su llave pública en tu navegador l. Verifique que el servidor web apache este corriendo, para comprobarlo abra un navegador y entre a localhost, después de verificarlo modifique el index.html por defecto de apache (que se encuentra en: /var/www) por lo siguiente: como título “Laboratorio 04” y como párrafo “Certificados Digitales”. Luego implemente la red sugerida en la figura y en la estación cliente capture mediante WireShark el resultado de la transacción web obtenida. A partir de la captura realizada de respuesta a las preguntas solicitadas abajo. En qué consiste el evente GET, qué información envía el cliente allí? Cuál es la respuesta del servidor WEB frente a esta petición? En dicha respuesta puede verse en claro el contenido de la página que usted publicó “Certificados Digitales” m. Ahora, agregue seguridad a la conexión anterior. Para tal propósito es necesario instalar en el servidor web un certificado digital, de modo que éste pueda soportar conexiones del tipo HTTPS (HyperText Transfer Protocol Secure) mediante SSL (Secure Socket Layer). OpenSSL permite crear el certificado para apache. 1. Activar el módulo SSL udeasec@udeasec-VirtualBox:~$ sudo a2enmod ssl . tras activar el módulo SSL se debe reiniciar el servidor web udeasec@udeasec-VirtualBox:~$ sudo service apache2 restart . 2. Crear un certificado SSL autofirmado Crear un subdirectorio dentro de las carpetas de configuración de Apache para guardar los archivos de certificado que se crearán. udeasec@udeasec-VirtualBox:~$ sudo mkdir /etc/apache2/ssl . Se crea la llave y el certificado en un solo paso udeasec@udeasec-VirtualBox:~$ sudo openssl req -x509 -nodes - days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key out /etc/apache2/ssl/apache.crt . Al hacer se debe responder una serie de preguntas que la terminal irá solicitando, quedando de la siguiente manera: Country Name (2 letter code) [AU]:CO State or Province Name (full name) [Some-State]:Antioquia Locality Name (eg, city) []:Medellin Organization Name (eg, company) [Internet Widgits Pty Ltd]:Universidad de Antioquia Organizational Unit Name (eg, section) []:Laboratorio de Seguridad Informática Common Name (e.g. server FQDN or YOUR name) []:”IP WebServer” Email Address []:[email protected] 3. Configurar Apache para usar el SSL Abrir el archivo con privilegios de root udeasec@udeasec-VirtualBox:~$ sudo nano /etc/apache2/sitesavailable/default-ssl Cambiar la ruta donde Apache busca los certificados, una opción es comentar la ruta que trae por defecto agregando al principio un “#” quedando entonces el archivo de la siguiente manera: #SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem #SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key 4. Active el Host Virtual SSL Para activar el Host virtual se debe ejecutar el siguiente comando en la terminal: udeasec@udeasec-VirtualBox:~$ sudo a2ensite default-ssl Y por último se reinicia el servidor web udeasec@udeasec-VirtualBox:~$ sudo service apache2 restart Una vez se ha instalado el certificado en el servidor web, realice desde el cliente una petición web segura “https” a éste, capturando el resultado de la transacción mediante Wireshark y responda las siguientes preguntas. Qué ocurre en el navegador del cliente al ingresar por primera vez al servidor web? Describa mediante un diagrama todo el proceso de negociación realizado entre el servidor web y el cliente para descargar la página solicitada de una manera segura. Incluya las fases “There way handshake TCP”, “SSL Hello”, “Key Exchange”, “TSL Application Data” y “Ending TCP” En el primer paquete “SSL Hello” el navegador del cliente le indica al servidor web la suite de esquemas de cifrado que éste tiene disponible. Enuncia cuántos y cuáles esquemas de cifrado puede implementar su navegador? Logran ustedes identificar el mensaje en claro “Certificados Digitales” dentro de los paquetes “TSL Application Data” capturados? Identifique en el navegador del cliente las siguientes características del certificado digital o Quién extendió el certificado o Algoritmos utilizado en la firma n. Determine el tipo de extensión asociada a los certificados digitales en formato X509, identifique mediante Google algunos sitios web con certificados digitales e ilustre la estructura de dicho certificado.