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:
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.