sábado, 31 de enero de 2015

5.3. Método de Encriptación GPG Linux

Usar método de encriptación gpg en Linux:

Generar un par de claves: Pública Privada.


GnuPG es capaz de crear varios tipos diferentes de pares de claves, pero debe existir una clave primaria capaz de generar firmas. Por lo tanto, existen sólo tres opciones. La opción 1 genera dos pares de claves. Un par de claves DSA que es el par de claves primario que se usará sólo para firmar. Un par de claves subordinadas ElGamal que se usará para el cifrado. La opción 2 es parecida a la anterior, pero sólo genera un par de claves DSA. La opción 4, genera un único par de claves ElGamal, que se usará tanto para firmar como para cifrar. En todos los casos existe la posibilidad de añadir subclaves adicionales para cifrar y firmar «a posteriori». La mayoría de los usuarios tienen suficiente con la opción por definición.




Seleccionamos la opción 1:
También hay que escoger un tamaño para la clave. El tamaño de una clave DSA debe estar entre los 512 y 1024 bits, y una clave ElGamal puede ser de cualquier tamaño. Sin embargo, GnuPG requiere que las claves no sean menores de 768 bits. Por tanto, si se escogió la opción 1 y también un tamaño de claves mayor de 1024 bits, la clave ElGamal tendrá el tamaño deseado pero la DSA se limitará a 1024 bits.

En mi caso elijo el máximo: 2048:


Cuanto más larga sea la clave, más segura será contra ataques de «fuerza bruta», pero por lo demás el tamaño de la clave que se da por definición es el adecuado, ya que sería más barato circunvalar el cifrado que intentar entrar mediante ataques de fuerza. Además, el cifrado y descifrado de mensajes se ralentizaría a medida que se incrementara el tamaño de la clave, y un tamaño de clave más grande podría afectar a la longitud de la firma digital. Una vez seleccionado, el tamaño de una clave no se puede cambiar nunca.
Para terminar, hay que escoger una fecha de caducidad. Si se escogió anteriormente la opción 1, la fecha de caducidad se usará para sendos pares de claves, ElGamal y DSA.


Para la mayoría de los usuarios, una clave sin fecha de caducidad es la adecuada. Sin embargo, si se escoge con fecha de caducidad, el tiempo para ésta debe ser escogido con cuidado, ya que, aunque es posible cambiar la fecha de caducidad posteriormente a la generación de la clave, puede ser difícil comunicar un cambio a aquellos usuarios que posean esta clave pública.
Además de los parámetros de la clave, el usuario debe dar un identificador. El identificador de usuario se usa para asociar la clave que se está creando con un usuario real.


GnuPG necesita una contraseña con el fin de proteger las claves privadas, primarias y secundarias, que posea el usuario.

Escribimos nuestra clave privada y la apuntamos para no olvidarla.

No hay límite para la longitud de una contraseña, y ésta debe ser escogida con sumo cuidado. Desde un punto de vista de seguridad, la contraseña que desbloquea la clave privada es uno de los puntos más débiles en GnuPG (y en otros sistemas de cifrado de clave pública), ya que es la única protección que tiene el usuario si alguien se apoderara de su clave privada. Para una contraseña lo ideal es que no se usen palabras de un diccionario, y que se mezclen mayúsculas y minúsculas, dígitos, y otros caracteres. Una buena contraseña es crucial para el uso seguro de GnuPG.


Comprobar mi clave pública:
Para poder comunicarse con otros, el usuario debe intercambiar las claves públicas. Para obtener una lista de las claves en el fichero («anillo») de claves públicas, se puede usar la opción de la línea de órdenes --list-keys.


Comprobar mi clave privada:



La ruta donde quedan guardados los ficheros:
/home/alumno/.gnupg/pubring.gpg   es el fichero de claves publicas
       Secring.gpg   es el fichero de clave privada.



Subir mí clave al servidor (exportar mi clave pública):



Hacer una copia de mi clave privada por si se pierden datos:



buscar la clave pública del profesor:






Con esta clave pública le podemos enviar el fichero encriptado al profesor:
Clave pública à 45D708D6
Aquí vemos como importamos la clave pública del profesor para poder usarla como destinatario para enviarle mis archivos encriptados:



Comprobar que tenemos las claves púbicas buscadas:



Crear un documento para enviarlo:


 
Dentro tendrá el mensaje que va a ir cifrado al enviárselo al profesor.
Cada clave pública y privada tiene un papel específico en el cifrado y descifrado de documentos. Se puede pensar en una clave pública como en una caja fuerte de seguridad. Cuando un remitente cifra un documento usando una clave pública, ese documento se pone en la caja fuerte, la caja se cierra, y el bloqueo de la combinación de ésta se gira varias veces. La parte correspondiente a la clave privada, esto es, el destinatario, es la combinación que puede volver a abrir la caja y retirar el documento. Dicho de otro modo, sólo la persona que posee la clave privada puede recuperar un documento cifrado usando la clave pública asociada al cifrado.
Creamos un mensaje cifrado con la clave pública del compañero y se lo enviamos encriptado:
Para cifrar un documento se usa la opción --encrypt. El usuario debe tener las claves públicas de los pretendidos destinatarios. El programa espera recibir como entrada el nombre del documento que se desea cifrar o, si éste se omite, una entrada típica. El resultado cifrado se coloca en la salida típica o donde se haya especificado mediante la opción --output. El documento se comprime como medida adicional de seguridad, aparte de cifrarlo.





Ya estaría el mensaje encriptado, ya solo queda abrir mi correo y adjuntar el fichero encriptado, y mandárselo al correo de manuel.



Ahora, el Profesor podrá desencriptar el documento mediante su clave privada, ya que yo he usado para encriptarlo su clave pública.
Como podemos apreciar, incluso descargándose el archivo del correo que yo mismo he enviado, no existe la manera de descifrar el mensaje. Ya que ha sido enviado con encriptación y ni siquiera yo puedo desencriptarlo ya.



Este método de encriptación ha sido muy usado para dialogar entre personas sin que el resto pueda leer los mensajes, por lo tanto es muy interesante conocerlo y ver cómo se usa.


Para descifrar un mensaje que ha sido encriptado con mi clave Pública se usa la opción --decrypt. Para ello es necesario poseer la clave privada para la que el mensaje ha sido cifrado. De igual modo que en el proceso de cifrado, el documento a descifrar es la entrada, y el resultado descifrado la salida.
En primer lugar, cuando ya tienes el archivo encriptado, abres el correo y lo guardas donde quieras para después abrirlo y desencriptarlo.
En mi caso el documento encriptado lo he guardado en el escritorio:



En terminal nos cambiamos al lugar donde está el fichero guardado y usamos el comando:
gpg –descrypt cifradoManuel.txt.gpg



Nos pide nuestra clave privada para descífralo, la escribimos y ya está, nos aparece descifrado el mensaje.
Mi clave privada, la tengo apuntada en un fichero para no olvidarla, ya que sin ella no podríamos descifrar nada:



Aquí vemos como efectivamente nos ha desencriptado el mensaje enviado por el profesor:




Aquí habéis visto una pequeña demostración de su potencial.


Con esto quedaría terminada la práctica de Método de encriptación mediante clave pública privada.


1 comentario: