UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN CICLO: I-2015 GUIA DE LABORATORIO #4 Nombre de la Practica: Encriptación Lugar: Laboratorio de Redes Tiempo Estimado: 2 Horas y 30 Minutos Materia: Seguridad en Redes 1. OBJETIVOS Que el estudiante: Sea capaz de poder realizar encriptaciones de archivos y al mismo tiempo pueda des- encriptar dicho archivo mediante el programa GNUGP. 2. INTRODUCCIÓN TEÓRICA GPG utiliza un sistema híbrido que combina encriptación simétrica y asimétrica. La encriptación asimétrica trabaja siempre con un par de claves. Una de ellas será la clave "pública" y la otra será la clave "privada". Como bien lo indica su nombre, la clave pública se puede compartir con aquellas personas a las que les van a mandar mensajes encriptados y no hay ningún peligro si una persona ajena la ve, es más, suelen publicarse en servidores públicos para facilitar su acceso; la clave privada, en cambio, debe ser secreta y no se tiene que compartir con nadie. Lo más interesante de todo esto es que, como veremos a continuación, ambas claves son creadas directamente por GPG en base a tus datos personales. El último paso es "sellar" esas dos claves a través de una "passphrase". Así que, al final, la única contraseña que vas a tener que acordarte es tu "passphrase". Gracias a la encriptación asimétrica, si el remitente usa la clave pública del destinatario para cifrar el mensaje, una vez cifrado, sólo la clave privada del destinatario podrá descifrar este mensaje, ya que es el único que la conoce. Por tanto, se logra la confidencialidad del envío del mensaje: nadie salvo el destinatario puede descifrarlo. Si el propietario del par de claves usa su clave privada para cifrar el mensaje, cualquiera puede descifrarlo utilizando su clave pública. En este caso se consigue por tanto la identificación y autentificación del remitente, ya que se sabe que sólo pudo haber sido él quien empleó su clave privada (salvo que alguien se la hubiese podido robar). Los sistemas de cifrado asimétricos se inventaron con el fin de evitar por completo el problema del intercambio de claves de los sistemas de cifrado simétricos. Con las claves públicas no es necesario que el remitente y el destinatario se pongan de acuerdo en la clave a emplear. Todo lo que se requiere es que, antes de iniciar la comunicación secreta, el remitente consiga una copia de la clave pública del destinatario. Es más, esa misma clave pública puede ser usada por cualquiera que desee comunicarse con su propietario. ¿Qué tan seguro es GPG? El algoritmo utilizado por GPG es DSA/ElGamal, ya que es "libre" y no recaen sobre patentes "privativas". Respecto de la longitud de la clave, depende de los requerimientos del usuario. Es necesario balancear entre la seguridad y la optimización de los procesos. Cuanto mayor sea una clave, menor será el riesgo de que el mensaje sea descodificado si es interceptado, pero también aumentará el tiempo que empleará para el cálculo de los procesos. El tamaño mínimo que requiere GnuPG es de 768 bits, aunque mucha gente opina que debería ser de 2048. Cuando la seguridad es una prioridad más alta que el tiempo, la opción es elegir el tamaño de clave más grande que se permita. Se puede usar los algoritmos de encriptación: - ElGamal - 3DES - MD5 - DSA - Blowfish - SHA-1 - RSA - Twofish - RIPE-MD-160 - AES - CAST5 - TIGER 3. MATERIALES Y EQUIPO No. 1 2 Requerimiento Guía de Laboratorio PC con VB con OS CentOS Cantidad 1 1 4. PROCEDIMIENTO PASO I: USO DE GPG. 1. Antes de iniciar el proceso se encriptación es necesario la creación de las llaves ya sean públicas o privadas mediante la siguiente sintaxis. “gpg --gen-key”. 2. Ingrese el tipo de encriptación que desea realizar, como recomendación puede escoger el 1 RSA and RSA (default). 3. Se le preguntara el tamaño de bits que desea utilizar para la generación de la llave, por defecto es de 2048 bits, presione ENTER. 4. Selecciona el numero en años para que expiren las llaves según se muestra a continuación (días, semanas, meses o años), en nuestro caso ingrese el número cero “0” para que nunca expiren. Presione ENTER. 5. Se preguntara si es correcto que las llaves nunca expiren, por lo que deberá de responder: “si” o en su defecto “yes”, ingres “s” para español o “y” para inglés. 6. Ingrese sus nombres, correo electrónico y confirmas que los datos han sido los correctos. Ejemplo: Nombre y Apellido: Eduardo Martinez Dirección de Correo: [email protected] Comentario: Guía 4: Encriptación 7. De manera automática se redirige a los datos de usuario que desea utilizar junto con el mensaje a encriptar y el correo a usar, si todo está bien ingrese la tecla “o” de ok en inglés o la tecla “v” de vale en español. Luego presione ENTER. 8. Ingresa tu frase y repítela (La frase no será visible al momento de ingresarla así que tenga cuidado con la frase que ingresa), si en algún momento le dice q su clave es muy débil deberá presionar el botón que dice “Tomar esta de todas formas”. Ingrese su frase: SeguridadRedes2015 Repita frase contraseña: SeguridadRedes2015 9. Se inicia el proceso de creación de llaves pública y privada por lo que deberá esperar un momento, esto dependerá del número de bits necesarios para la generación de las claves y la encriptación. Nota: Si muestra un mensaje como este, solo será necesario abrir carpetas, archivos.txt o aplicaciones para poder dar solución. 10. Y ya tendremos creadas nuestras llaves: pública y privad; como muestra la imagen de abajo. PASO II: ENCRIPTACIÓN DE ARCHIVO. 1. En este paso desplácese hasta el escritorio y cree un archivo llamado MiArchivo.txt que es el que servirá para poder cifrarlo, en el ponga datos como su nombre, su carnet, entre otros y no olvide guardarlo. 2. Ahora bien, si se desea cifrar un archivo de nombre MiaAchivo.txt siga la siguiente sintaxis: gpg --output Nombre_de_Archivo_Cifrado.gpg --encrypt --recipient Email_de_Usuario_Llaves Nombre_de_Archivo_a_Cifrar.txt gpg --output MiArchivo.gpg --encrypt --recipient [email protected] MiArchivo.txt Nota: también puede sustituir algunas propiedades del comando en este caso - -output, - engrypt, Y - - recipient, pero para la práctica usar la primera sintaxis. gpg -o Nombre_de_Archivo_Cifrado.gpg -e -r Email_de_Usuario_Llaves Nombre_de_Archivo_a_Cifrar.txt 3. Verifique la creación del archivo MiArchivo.gpg en el escritorio y visualícelo haciendo uso del comando cat -> cat MiArchivo.gpg. 4. Este archivo no será legible en formato ASCII. Si desea verlo ejecute la siguiente sintaxis: gpg -o Nombre_de_Archivo_Cifrado.gpg --encrypt --armor --recipient Email_de_Usuario_Llaves Nombre_de_Archivo_a_Cifrar.txt gpg -o MiArchivoASCII.gpg --encrypt --armor --recipient [email protected] MiArchivo.txt 5. Este archivo ahora si es legible en formato ASCII, aunque igual sigue encriptado, visualícelo mediante el comando cat -> cat MiarchivoASCII.gpg PASO III: DES ENCRIPTACIÓN DE ARCHIVO. 1. Continuando el proceso, se procede a descifrar el archivo de tipo *.gpg y darle un nombre, para eso ejecute el comando bajo la siguiente sintaxis: gpg --output Nombre_Archivo_Descifrado.txt --decrypt Archivo_a_Descifrar.gpg gpg --output MiArchivoDE.txt --decrypt MiArchivo.gpg (El cual des encriptará el archivo MiArchivo.gpg como muestra la imagen 1) gpg --output MiArchivoASCIIDE.txt --decrypt MiArchivoASCII.gpg (El cual des encriptará el archivo MiArchivoASCII.gpg como muestra la imagen 2) Nota: En este punto es necesario ingresar la frase que se preguntó al momento de la creación de las llaves. Imagen: 1 Imagen: 2 2. Si ingresamos la frase incorrecta nos muestra un mensaje como el siguiente: 5. INVESTIGACIÓN COMPLEMENTARIA 1. Investigue un método de encriptación en Linux diferente al desarrollado en la guía y realice lo siente: Cree un manual de cómo utilizar dicha herramienta o en su defecto la sintaxis de los comandos necearías para la generación del archivo encriptado, mostrando el proceso que se requiere para que este se cree.