Configura OpenPGP en Thunberbird y envía emails cifrados

El protocolo PGP (Pretty Good Privacy) es un programa desarrollado por Phil Zimmermann para proteger la información distribuida a través de Internet, haciendo uso de la criptografía de clave pública, ya sea usando RSA o EC, para facilitar el cifrado de datos y también la autenticación de la información gracias a las firmas digitales. OpenPGP es el estándar de cifrado de correo más utilizado en todo el mundo, está definido por le IETF como un estándar, OpenPGP es una derivación del PGP original. Hoy en RedesZone os vamos a enseñar cómo enviar emails cifrados y autenticados con firma digital haciendo uso de OpenPGP en Thunderbird.

¿Cómo funciona OpenPGP para enviar emails con seguridad?

OpenPGP es un criptosistema híbrido, utiliza tanto la criptografía simétrica como asimétrica, con el objetivo de tener lo mejor de ambas tecnologías. Debemos recordar que el cifrado simétrico es mucho más rápido que el cifrado asimétrico, pero este último nos permite solucionar el problema de la distribución de claves de cifrado/descifrado de manera segura. Gracias a este criptosistema híbrido, podremos asegurar que tanto la información enviada como la clave de cifrado/descifrado está a salvo. El cifrado simétrico utilizado por OpenPGP es AES-256, y respecto al cifrado asimétrico, podemos hacer uso de RSA o bien EC.

Otras características de OpenPGP son que proporciona compresión, para reducir los ataques de criptoanálisis. Este tipo de ataques consisten en buscar patrones con el texto en claro y el cifrado para intentar romper el cifrado de los datos. La compresión se hace antes de cifrar el contenido, por lo que se reduce los patrones en el texto claro. Las claves de cifrado asimétrico se guardan protegidas por una contraseña, para evitar que otros usuarios puedan utilizarla sin permiso. Por supuesto, como en cualquier esquema de cable pública, tendremos una clave privada (que no debe ser compartida) y una clave pública (que se debe compartir).

El proceso de funcionamiento de OpenPGP se basa en:

  • Emisor creará un par de claves (pública y privada), y enviará la clave pública al receptor, e incluso podría subir dicha clave a un repositorio público de claves. La clave privada nunca debe salir del emisor.
  • El receptor también creará un par de claves (pública y privada), y enviará la clave pública al emisor, e incluso podría subir dicha clave a un repositorio público de claves. La clave privada nunca debe salir del receptor.

Una vez que el emisor tenga su pareja de claves y la clave pública del receptor, y el receptor tenga su pareja de claves y la clave pública del emisor, podrán empezar a comunicarse entre ellos. El proceso de comunicación sería de esta forma:

  • El emisor enviará un email cifrado con la clave pública del receptor, para que el receptor sea capaz de descifrar el mensaje con su propia clave privada. Normalmente, el emisor adjunta también su clave pública por si el receptor no la tiene en su repositorio.
  • El receptor, si quiere contestar a este correo electrónico, enviará un email cifrado con la clave pública del emisor que acaba de recibir, para que el emisor sea capaz de descifrar la información con su propia clave privada (la del emisor). Normalmente el receptor vuelve a adjuntar también su clave pública, por si el emisor no la tiene en su repositorio.

Con estas acciones, se consigue la confidencialidad de la información, ya que todo estará cifrado, y sin la correspondiente clave privada no se podrá descifrar.

Si a este mismo esquema de comunicación queremos dotarle de autenticidad, para asegurarnos de que el emisor es quien dice ser, y el receptor es quien dice ser, deberemos hacer uso de la firma digital. El proceso de realización de firma digital sería de la siguiente forma:

  • El emisor enviará un email firmado con su propia clave privada, para que el receptor compruebe la firma con la clave pública del emisor (que ya tiene en su poder).
  • El receptor enviará un email firmado con su propia clave privada, para que el emisor compruebe la firma con la clave pública del receptor (que ya tiene en su poder).

Este proceso de autenticación es adicional al de cifrado de los datos, pero es muy recomendable hacerlo siempre para comprobar que los emails recibidos son legítimos. Gracias a la confidencialidad y a la autenticidad, podremos enviar emails de manera totalmente segura y privada.

Actualmente la última versión de Mozilla Thunderbird hace uso de OpenPGP sin necesidad de ningún plugin adicional, las versiones antiguas necesitaban de un plugin para poder funcionar correctamente, y también necesitaba un programa de generación de claves públicas/privadas, ahora esto no es necesario, porque viene integrado en el propio programa Thunderbird.

Descarga e instalación de Thunderbird y configuración del correo

Para realizar la descarga de Thunderbird, tenemos que irnos a la web oficial y pinchar en «Descarga gratuita«, debemos recordar que este gestor de correo electrónico es completamente gratuito. En la pantalla principal podremos encontrar las principales características, las principales configuraciones que podremos realizar y por qué es una de las mejores opciones para gestionar el correo electrónico personal o de la empresa.

Este programa dispone de una gran cantidad de complementos que nos permiten tener una seguridad adicional, y funciones o características adicionales de alto valor añadido. Por ejemplo, podremos descargar extensiones para revisar la ortografía, para comprobar el DKIM del servidor de correo, personalizar en detalle la interfaz gráfica de usuario de Thunderbird y mucho más.

Antes teníamos que descargarnos un complemento para poder disponer de OpenPGP en nuestro Thunderbird, sin embargo, con las últimas versiones la incorporación de OpenPGP es predeterminada, por tanto, no tendremos que añadir ninguna extensión adicional.

La instalación de Mozilla Thunderbird es exactamente igual de siempre, ejecutamos el instalador, elegimos la instalación «Estándar», ponemos la ubicación del programa y pinchamos en «Instalar». En el último menú, nos confirmará que se ha instalado correctamente, y pinchamos en «Finalizar» para ejecutar Thunderbird ahora y empezar con la configuración.

Lo primero que tendremos que hacer en Mozilla Thunderbird para poder utilizarlo, es dar de alta una dirección de correo electrónico. Este correo electrónico puede ser de Gmail, Yahoo, Microsoft Outlook, o cualquier otro servidor de correo que estés utilizando. Si el correo que pongamos está en la base de datos de Thunderbird, la configuración del protocolo IMAP y del SMTP es automático, de lo contrario, tendremos nosotros que indicarlo de manera «manual» poniendo los puertos y diferentes opciones disponibles en el cliente de correo.

En nuestro caso, hemos configurado una cuenta de email de Gmail, para poder darla de alta, ponemos nuestro nombre y apellido, la cuenta de Gmail con su correspondiente contraseña y pinchamos en «Continuar». Thunderbird detectará automáticamente el IMAP y SMTP de Gmail, y nos lanzará el navegador para la autenticación vía web y darle permisos a Gmail para que Thunderbird pueda gestionar el correo electrónico. Si tienes autenticación en dos pasos te funcionará sin problemas, algunos clientes de correo no permiten el uso de autenticación en dos pasos porque no es compatible.

Una vez que hayamos configurado el correo, podremos ver en la bandeja de entrada, borradores, emails enviados, spam y todos de nuestra cuenta de correo electrónico. Tal y como podéis ver, la autenticación y configuración de Gmail en Thunderbird es correcta y funciona perfectamente, ahora podemos probar a enviar un email normal y corriente para comprobar que todo está funcionando correctamente.

Una vez que nos aseguremos que la configuración está correcta, vamos a crear las claves con OpenPGP e intercambiarlas con el receptor, para poder enviar emails totalmente cifrados y autenticados con seguridad.

Configuración de OpenPGP: creación e intercambio de claves

Lo primero que tenemos que hacer para poder enviar emails cifrados con OpenPGP, o para recibirlos, es crear la pareja de claves pública/privada. Para hacer esto, nos vamos a la sección de «Herramientas / OpenPGP Key Manager«. En esta sección nos tenemos que ir a la opción de «Generate» para generar unas nuevas claves OpenPGP. En caso de tener ya tus claves PGP, podrás importarlas pinchando en «File».

En esta sección de generate, podremos crear las claves para una o varias identidades (direcciones de correo electrónico). Lo normal es que estas claves expiren a los 3 años, pero podemos configurar más tiempo menos tiempo. En cuanto al algoritmo de cifrado utilizado, podemos elegir entre RSA (de 3072 bits o 3096 bits) y ECC, dependiendo de cuál queramos usar, elegiremos una u otra.

Una vez que lo hayamos decidido, pinchamos en «Generate key» y nos saldrá una viso indicando que puede tardar algunos minutos en crear las claves criptográficas, dependiendo del PC que tengamos podrá tardar más o menos tiempo.

Una vez que las haya creado, nos saldrá en el listado de «OpenPGP Key manager», indicándonos el Key ID y también la expiración. Si pinchamos con el click derecho encima de la clave, podremos copiar la clave pública al portapapeles, exportar las claves a un archivo, enviar la clave pública por email (que posteriormente haremos), revocar las claves, borrarlas y ver todas las propiedades de la clave.

Si pinchamos en la opción anterior de «Send public Key by email», automáticamente Thunderbird nos creará un nuevo correo y adjuntará la clave pública con extensión .asc, tal y como podéis ver en la siguiente captura. Este correo debe ser enviado sin cifrar, ya que no tenemos en estos momentos la clave pública del receptor, por lo que no podremos cifrarlo.

También podemos hacer la misma opción si redactamos un email nuevo y pinchamos en la sección de «Seguridad / Adjuntar mi clave pública«, cuando envíe el correo electrónico, se adjuntará la clave automáticamente y sin necesidad de hacer nada más por nuestra parte, ya que cogerá la clave pública del emisor del email.

En estos momentos solamente tenemos nuestra propia clave, para poder enviar emails a otros debemos recibir sus claves públicas, y posteriormente importarlas en el OpenPGP Manager, esto es muy sencillo, simplemente tendremos que irnos a «Herramientas / OpenPGP Key Manager» y pinchar en la primera opción: Import public key from file. Cuando nosotros recibimos un email con la clave pública adjunta, automáticamente Thunderbird lo va a detectar y tendremos un botón que pone «importar» y lo hará todo automáticamente. Si nosotros tenemos una carpeta con muchas claves públicas porque ya hemos usado antes OpenPGP, entonces las podremos importar todas a la vez desde este menú tan importante.

Para enviar un correo electrónico cifrado, simplemente tendremos que redactar un nuevo correo, pinchar en la sección de «Seguridad» y elegir «Requerir cifrado«, también es muy recomendable elegir la opción de «Firmar digitalmente este mensaje» para que el destinatario comprueba nuestra identidad con la clave pública que tenga él. Por último, es recomendable también añadir nuevamente nuestra clave pública, por si el destinatario no tiene dicha clave pública.

Por ejemplo, nosotros nos hemos enviado un email a nosotros mismos, y solamente nosotros podremos descifrarlo. Si accedemos a Gmail podremos ver que todo el contenido está cifrado, y por tanto, Google ni siquiera nosotros (sin descifrarlo) podremos leer absolutamente nada.

Si abrimos este mismo correo a través de Thunderbird, podremos verlo perfectamente ya que estará descifrado:

En la parte inferior derecha podremos ver que la firma digital es correcta y el mensaje es cifrado antes de ser enviado, si pinchamos en «View signer key» o en «View your description Key» podremos ver toda la información de la clave pública/privada que acabamos de crear.

Tal y como habéis visto, es realmente fácil y rápido enviar mensajes cifrados y firmados digitalmente con OpenPGP en Thunderbird, ya no es necesario instalar complementos y crear las claves criptográficas en un programa externo, todo se puede hacer perfectamente en el mismo menú de OpenPGP Key Manager. Recordad que, para poder enviar los emails cifrados a un determinado destinatario, es necesario cifrarlos con la clave pública del destinatario, si no tenemos dicha clave pública, la información no estará cifrada, pero sí podremos firmarla digitalmente.

Esperamos que con este tutorial podáis enviar emails de forma segura y privada haciendo uso de Thunderbird y OpenPGP integrado.