Firma y Cifrado de Correo Electrónico con PGP

Para poder firmar y cifrar desde un cliente de correo debemos tener un par de claves, existen diferentes tipos pares de claves GPG para este ejercicio necesitamos la opción de firmar y cifrar, podemos ver como crear un par de claves  en el siguiente post Creación, publicación y firma de claves PGP, solo que cuando seleccionamos la opción numero «4» debemos seleccionar la opción 1.

El primer paso será configurar un cliente de correo en Linux para que admita la firma y el cifrado de mensajes mediante PGP,. para ello vamos a utilizar Evolution.

Cifrar y firmar mensajes con GPG y Evolution

Evolution, (denominado Novell Evolution anteriormente) es un gestor libre de información personal y de trabajo en grupo para GNOME, desarrollado originalmente por Ximian. Es una aplicación oficial del entorno GNOME desde la versión 2.8 estable del mismo (disponible desde septiembre de 2004). Combina administración de correo electrónico, calendario, agenda y lista de tareas, Su interfaz gráfica y funcionalidad es equiparable a la de la aplicación Microsoft Outlook. Forma parte del conjunto GNOME Office.

Evolution se encuentra bajo los términos de la licencia GNU Lesser General Public License (LGPL).

Además, soporta el cifrado de correo electrónico a través de GPG y S/MIME junto a otros sistemas de seguridad como el cifrado SSL, TSL y STARTTLS.

Evolution es una herramienta sencilla la cual no es necesario ningún plugins secundario, viene instalado por defecto en nuestra máquina, por lo tanto, está preparado para su utilización.

Para la realización de las comprobaciones voy a utilizar un correo creado dentro de mi dominio que se llamará pruebagpg@juanluramirez.com, consideramos que nuestro correo ya se encuentra configurado en Evolution, accedemos a «Editar>Preferencias» seleccionamos la dirección de correo y clickeamos en la parte derecha a «Editar».

Una vez dentro de la configuración en la parte izquierda de la ventana encontraremos la etiqueta «Seguridad» accedemos ahí, y añadimos nuestra clave «PGP»:

Además, marcamos las opciones «Siempre cifrar a mí mismo cuando envíe correo cifrado» y «Siempre confiar en las claves de mi almacén al cifrar», para automatizar así el proceso de envío de un correo.

Info! Yo utilizo un servidor propio de correo, en caso de utilizar algún otro servidor de correo, yo recomiendo gmail, es el servidor con el cual más fácil te va a resultar continuar dado que llega un momento en el que el propio servidor te pide si quieres continuar con el proceso desactiva esta opción de seguridad.

Envía un correo firmado y cifrado

Antes de enviar cualquier correo debemos comprobar, que al correo al cual queremos mandar dicho correo existe gpg --search-key [Clave o Correo]y se trata de un correo en el cual podamos confiar, para ello vamos a realizar por ejemplo una reunión con el cara a cara para comprobar su validez, también podemos saber la clave y buscar datos sobre esa clave con el siguiente comando gpg --fingerprint [Clave], en el caso del ejemplo tenemos el ID vamos a comprobar su huella, para ello vamos a obtener información sobre ella, la vamos a descargar y firmar una vez sepamos que es la clave pública de la persona con la cual quiero comunicarme:

#Comprobamos la clave
root@debian-virtual:/home/usuario# gpg --search-key 7C2FA472
#Descargamos la clave
usuario@debian-virtual:~$ gpg --keyserver keys.gnupg.net --recv 7C2FA472
#Comprobamos la huella
usuario@debian-virtual:~$ gpg --fingerprint 7C2FA472
#Firmamos la clave
usuario@debian-virtual:~$ gpg --sign-key 7C2FA472

Una vez descargada la clave pública desde el servidor, en el cual se encuentra alojada, vamos a proceder a mandar un correo cifrado al propietario de la clave, el correo va a llevar un texto de prueba para la comprobación de su funcionamiento.

Para poder enviar este correo debemos seleccionar las opciones «Firmar con PGP» y «Cifrar con PGP«, como podemos observar en la siguiente imagen.

Nos pedirá autenticación de nuestra clave y el correo se enviará.

Info! Si pusiéramos un correo que no se encontrar en nuestro almacén de claves e intentaremos mandar un mensaje cifrado nos aparecerá el siguiente error.

Recibir un correo cifrado

Vamos a comprobar que cuando nos envían un correo cifrado debemos descifrarlo con nuestra clave y entonces nos aparece un cuadro que dice este correo está cifrado pon tu contraseña para descifrarlo y ya podemos observar que se encuentra descifrado


Exporta tus claves pública y privada GPG

Clave pública

Si queremos exportar nuestra clave en un fichero «.key» ejecutamos el siguiente comando gpg --export -a [Clave] > public.key Esto creará un archivo llamado «public.key» con la representación ascii de la clave pública para dicha clave.

Si queremos importar la clave a nuestro anillo de claves utilizamos el siguiente comando gpg --import public.key

Y por último si lo que necesitas es una clave “.gpg” podemos usar el siguiente comando gpg --output public.gpg --export [Clave]

Clave privada

Cuidado peligro! Haga copia de seguridad a disco de su certificado junto con la clave privada y guárdela en lugar seguro. Nunca entregue copia de su clave privada a nadie bajo ningún concepto.

Para exportarlo como hemos explicado antes en “.gpg” utilizamos el siguiente comando gpg --output private.gpg --export-secret-keys [Clave]

Al igual que hemos hecho con la clave pública lo realizamos con la clave privada, pero el comando cambia y sería así gpg --export-secret-key -a [Clave] > private.key

Por último si quisiéramos importar la clave privada utilizamos el siguiente comando gpg --allow-secret-key-import --import private.key

Info! Una vez exportemos las claves tanto la publica como la privada debemos cambiar los permisos, de tal modo que solo pueda tener permisos de lectura y escritura sobre las claves el propietario solamente chmod 600 [Ficheros_claves].

Instala en Windows el software gpg4win e importa tus claves GPG

Vamos a utilizar un gestor compatible con windows, cuyo nombre es Mozilla Thunderbird(el cual ya se encuentra instalado en nuestro equipo, vamos a descargar su gestor de claves GPG, que se llama Enigmail que se trata de una extension de cifrado y autentificacion.

Dado que si una vez instalado ya «Mozilla Thunderbird» intentamos acceder a nuestro correo y no tenemos ningún gestor de claves, por lo tanto no obtendremos informacion del correo.

En cambio vamos a añadir la extensión Enigmail que hemos descargado antes siguiendo las indicaciones de la página de descarga

Al reiniciar Mozilla Thunderbird, se iniciará el Asistente de instalación Enigmail. En nuestro caso seleccionamos la segunda opción(configuración extendida), nos pedira que para utilizar «Enigmail», debemos instalar un componente adicional que va a ser «gpg4win.exe»

Continuamos con el asistente de Enigmail, el cual nos dejará elegir entre crear un nuevo par de clave o utilizar una ya existente, nosotros en el punto anterior hemos exportado las claves por tanto vamos a utilizarlas. Para ello utilizaremos el asistente de Enigmail y examinamos a la carpeta donde se encuentra nuestro par de clave en formato «.gpg»

Si todo el proceso ha ido bien nos permitirá elegir la clave con la que queremos hacer todas las comprobaciones.

Configura el cliente de correo de tu sistema Windows

Una vez tenemos instalado el intérprete de las claves, podemos enviar correos cifrados y firmados, así como descifrar correos.

Para comprobar esto he pedido a un compañero me mande un correo cifrado para ver si desde el cliente «Mozilla Thunderbird», podemos descifrar el correo y observaremos en la captura que sí podemos descifrarlo.

Pero podremos observar que el correo ha sido descifrado como hemos dicho anteriormente con nuestra clave privada, pero la firma no se encuentra verificada en nuestro almacén de claves.

Para recibir un email cifrado y firmado es necesario tener tanto nuestra clave privada como la clave pública del emisor para poder comprobar su firma. La importación la podemos realizar clickando en Importar claves ya que busca en el servidor de claves públicas.

Al descargar la clave pública nos saltará el siguiente mensaje SIN CONFIANZA dado que realmente no se si es realmente es el, ya que en mi almacén de claves no se encuentra actualizado. Eso si podemos descifrar el mensaje ya que sabemos su clave pública, tenemos la clave firmada, lo único no existe una confianza sobre esa clave.

Configura tu cuenta de GMail para enviar y recibir correo electrónico de forma segura

Gmail no permite la gestión de claves GPG directa. Sin embargo no tendría mucho sentido tener alojada nuestra clave en un sitio en el cual no tenemos control ninguno, incluso pudiendo acceder desde cualquier otra maquina y haciéndose pasar por nosotros.

Para ello me creare un par de claves en otra maquina con mi cuenta de «Gmail» una vez creado vamos a descargarla y añadirla con bien explico en el post anteriormente mencionado y envio un correo desde la maquina en la cual se encuentra instalado «Evolution», y podremos observar que recibimos en nuestro correo, dos archivos noname y encrypted.asc el cual es el cuerpo del mensaje cifrado.

Para descifrar el mensaje y comprobar su firma nos descargamos el fichero encrypted.asc y ejecutamos el siguiente comando gpg -d Descargas/encrypted.asc y nos devuelve en texto plano el contenido del mail.

Info! Decir que para cualquier duda, opinion, no dudes en contactar conmigo a travez del formulario de contacto o por e-mail o dejando un simple comentario.