Correo cifrado y firmado en Debian Jessie con Evolution y Windows 7 con Mozilla Thunderbird

Para cifrar y firmar emails desde un cliente de correo debemos tener un par de claves GPG con opción para cifrar y firmar. Además, si queremos enviar un email cifrado debemos de conocer la clave pública para cifrar del usuario y esta, debe estar asociada a su dirección de correo electrónico. Puedes consultar cómo crear tu par de claves GPG en Linux aquí.
El primer paso es buscar la clave pública del usuario al que queremos enviar el correo electrónico firmado y cifrado. Esto lo hacemos haciendo uso de un servidor de claves públicas como pgp.mit.edu –que cuenta con una interfaz web– o keys.gnupg.net, la utilizada por defecto por GPG. La búsqueda la podemos realizar mediante nombre y apellidos, dirección de correo electrónico o ID de clave.
Desde una terminal ejecutamos el comando gpg --search-key parametrobusqueda
para buscar una clave pública. En caso de mostrarse más de un resultado se permite elegir mediante una numeración la clave pública deseada.
Si tuviésemos conocimiento del identificador de la clave pública a usar para este caso (B18B02FA) podríamos utilizar el comando gpg --recv-keys B18B02FA
.
Cifrar y firmar mensajes de correo electrónico con GPG y Evolution en Debian Jessie
Evolution es un software instalado por defecto en el entorno de escritorio GNOME desde 2004. Es una aplicación que ofrece características de gestor de correo electrónico, agenda de contactos, calendario, lista de tareas y notas. 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.
La configuración de Evolution es sencilla y no precisa de plugins externos. Dando por sentado que ya hemos configurado nuestro cliente de correo para acceder a nuestra cuenta de correo electrónico, accedemos a Editar>Preferencias o Mayús+Ctrl+F para continuar seleccionando la cuenta que usamos en el apartado Cuenta de correo. En la pestaña Seguridad introducimos el ID de nuestra clave OpenPGP, PGP o GPG siendo en nuestro caso la 85268F85. Este par de claves debe estar en nuestro almacén de claves.
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.
A partir de ahora ya podremos enviar correos electrónicos cifrados y/o firmados a través de nuestro gestor de correo Evolution. Al redactar un nuevo mensaje, en la pestaña Opciones, debemos marcar los parámetros Firmar con PGP y Cifrar con PGP para que el email enviado sea firmado y cifrado con nuestra clave privada.
En el campo Para debemos escribir una dirección de correo electrónico cuya clave pública esté disponible en nuestro almacén de claves. Si no se encuentra, el gestor de correo ejecutará un error como el siguiente que hemos simulado.
Gestionar correo electrónico cifrado y/o firmado desde Mozilla Thunderbird en Windows 7
Para investigar cómo reacciona otros gestores de correo ante un correo electrónico cifrado he decidido hacer uso de Mozilla Thunderbird, el cual tengo instalado en mi equipo de sobremesa con Windows 7. En él accedo a la carpeta Enviados donde observo el email cifrado enviado anteriormente y que muestra el mensaje: Este es un mensaje cifrado con OpenGPG. Para poder descifrar este mensaje, necesita instalar un complemento OpenPGP.
El complemento es Enigmail para Mozilla Thunderbird, una extensión para el cifrado y autenticación de mensajes mediante OpenPGP que también es compatible con la suite Seamonkey.
Instalación de Enigmail para el uso de claves PGP en Mozilla Thunderbird
Aprovechando el entorno de Mozilla Thunderbird en Windows 7, haré la instalación de este complemento y las consiguientes pruebas, siendo válido también para documentar el cifrado, descifrado y firma de correos electrónicos en Windows.
Descargamos Enigmail 1.8.2 desde la página oficial de complementos o addons de Mozilla.org. En la misma página se explica como ejecutar la instalación de este addon en Mozilla Thunderbird.
Al reiniciar Mozilla Thunderbird, se iniciará el Asistente de instalación Enigmail. En nuestro caso seleccionamos la segunda opción Prefiero una configuración extendida (recomendada para usuarios avanzados).
El mismo asistente nos indicará que es necesaria la instalación de GnuPG (GPG) para hacer el trabajo criptográfico.
Si pulsamos sobre el botón Instalar… nos descargará el ejecutable de instalación de Gpg4win 2.3.0, el cual se instala fácilmente.
Continuamos con el asistente de Enigmail en el que el siguiente paso es seleccionar las identidades sobre las que el complemento actuará. A continuación, nos dará la opción de crear un nuevo par de claves para firmar y cifrar el correo electrónico o para importar unas claves públicas y privadas, opción que elegiremos.
La exportación de la clave pública la ejecutamos en el equipo Linux, que fue donde la creamos, con gpg --output public.gpg --export idclave
. Mientras que la clave privada la exportamos con gpg --output private.gpg --export-secret-keys idclave
. Ambas las examinamos con el asistente de Enigmail para importarlas.
Si la importación ha sido correcta, nos permitirá elegir la clave con la que queremos cifrar, descifrar y firmar en Mozilla Thunderbird.
Las configuraciones deben ser muy similares a los ajustes de Icedove, el fork de Mozilla Thunderbird para Linux. Como excepción, no será necesario instalar OpenGPG.
Gestionar un correo electrónico recibido cifrado y firmado en Mozilla Thunderbird
Una vez que tenemos instalado Gpg4win en nuestro sistema operativo Windows con nuestro par de claves podremos enviar correos cifrados y firmados, así como descifrar correos cifrados (haciendo uso de nuestra clave privada) y verificar nuestra firma (haciendo uso de nuestro almacén de claves).
En la siguiente captura de pantalla vemos que, tras descifrar con nuestra clave privada un correo cifrado anteriormente por otra persona con nuestra clave pública, la firma no puede ser verificada pues no está en nuestro almacén de claves.
Así pues, al recibir un email cifrado y firmado es necesario tener nuestra clave privada para descifrar el contenido y la clave pública del emisor para poder comprobar la firma y más tarde, la confianza. La importación la podemos ejecutar desde el botón Importar clave que buscará en un repositorio de claves públicas.
Al descargar la clave pública dirá que no hay confianza en el emisor, no corroborándose que él sea realmente quien dice ser pues mi almacén de claves no está actualizado con nadie que haya firmado su clave pública o con nadie en quien yo confíe, no habiendo siquiera un anillo de confianza establecido.
Desde el gestor de claves PGP para Windows llamado Kleopatra podemos gestionar claves públicas y privadas, además de editar la confianza en las personas. En mi caso he añadido la clave pública de Manuel Luna, un compañero que sé que conoce y ha firmado la clave pública de Alberto Molina. He otorgado la máxima confianza (full trust) sobre Manuel Luna, de manera que todas las claves públicas que lleven su firma las considerará mi sistema como correctas.
En la siguiente imagen podemos ver cómo la barra de aviso pasa a ser verde mostrando el texto: Mensaje descifrado; La firma de Alberto Molina Coballes
Mozilla Thunderbird perderá la barra de herramientas de formato (negrita, cursiva, enlaces…) no permitiendo redactar emails con formato HTML. Puedes volver a activarlo marcando la opción Redactar mensajes en formato HTML en Herramientas>Configuración de cuenta>Redacción y direcciones.
Descifrar y comprobar firma descargando el mensaje desde GMail
GMail no permite la gestión de claves GPG directa. Aún así, tampoco sería lógico tener alojada nuestra clave privada en un servidor sobre el cual no tenemos control, pudiendo acceder cualquiera y descifrando el contenido de ellos e incluso haciéndose pasar por nosotros con una validez legal aceptada en la gran mayoría de los países.
Igualmente, podríamos acceder al contenido de un mensaje cifrado sin ser necesario configurar y utilizar un gestor de correo electrónico como Evolution, Icedove o Mozilla Thunderbird.
Como se observa el título del email es {mensaje sin texto} y hay dos ficheros adjuntos, uno llamado noname y otro msg.asc. El msg.asc es el cuerpo del mensaje cifrado.
Para descifrar el mensaje y comprobar su firma nos descargamos el fichero msg.asc y ejecutamos gpg -d msg.asc
. Con el comando gpg --output descifrado.txt -d msg.asc
guardamos su contenido en un fichero de texto plano.
Referencias:
Muy bueno el post. Al fin he conseguido establecer una comunicación firmada y cifrada. De todas formas, si me lo permites, hecho de menos una explicación sencilla de los pasos conceptuales, es la que no te pierdas en los detalles. Aun así muy bueno. Gracias