Probando Mailvelope en RoundCube: PGP en tu webmail

PGP siempre ha estado ahí pero me ha dado pereza probarlo… y ya sé por qué. El caso es que me he tenido que poner con ello y…

Qué es PGP

Malo será que no hayas oído hablar de ello. De forma resumida, PGP (Pretty Good Privacy) ofrece la posibilidad de firmar y cifrar la información transmitida a través del correo electrónico. En sus comienzos era un programa desarrollado por Phil Zimmermann en 1991 y a lo largo de los años se ha generalizado para describir el método de encriptado que utiliza este software (esto no es exactamente así… en la Wikipedia tenéis la versión larga de la historia).

Su funcionamiento se basa en la estructura de clave pública (o cifrado asimétrico): nos ponemos a juguetear de nuevo con nuestra clave pública y privada. En este caso, la clave pública se pone a disposición de los contactos de correo potenciales bien comunicándosela o cargándola en un servidor de claves externo. Con esta clave estos contactos cifrarán los mensajes electrónicos que quieran enviarte… y solo tú podrás descifrarlos.

xaedes & jfreax & Acdx, CC BY-SA 3.0, via Wikimedia Commons

La clave privada (protegida con contraseña, personal, secreta e intransferible por la cuenta que te trae) nos sirve para descifrar los correos electrónicos entrantes previamente cifrados con la clave pública.

Para establecer una comunicación segura siguiendo este proceso, será necesario que tu interlocutor también haga uso del protocolo PGP y te informe acerca de su clave pública.

Adicionalmente, la firma electrónica garantiza la autenticidad de los mensajes que se envían; es decir, nos aseguramos que el que envía el mensaje es quien dice ser.

Cómo implementamos PGP en nuestro correo

Como hemos visto antes, para empezar a usar PGP hay que hacer unas cuantas cosas con antelación:

  • Crear el par de claves necesarias: la pública y la privada
  • Intercambiar las claves con los destinatarios (de forma directa o a través de servidores)
  • Confirmar y validar de alguna forma esas claves para que no nos la cuelen (usando el fingerprint, muestras de sangre…)
Niveles de confianza para un certificado en Kleopatra
Niveles de confianza para un certificado en Kleopatra

Y una vez tenemos esto, ya podemos cifrar y descifrar los mensajes a troche y moche.

Para generar y gestionar las claves, existen diversos programas (os aparecen en la web de OpenPGP > Software) y algunos, como Thunderbird, ya tienen la gestión del cifrado de extremo a extremo (End to End Encryption) integrada de serie desde su versión 78.

El caso es que eso está muy bien, pero muchos usamos webmails: Gmail, Yahoo (sí, todavía hay gente que lo usa), Hotmail/Outlook… o el que te proporciona tu proveedor de hosting que casi seguro que es RoundCube. Para todos ellos, existe Mailvelope, un plugin para Firefox y Chromium (Chrome, Opera, Edge…). Mailvelope está basado en OpenPGP.js

Pantallazo de la web de Mailvelope
La web de Mailvelope el 17 de diciembre de 2020

En este documento del INCIBE os cuentan como usar PGP con el cliente de Outlook y con anteriores versiones de Thunderbird (como digo, a partir de la v78, no es necesario ningún plugin), a continuación os muestro como usar PGP en Firefox con Mailvelope para vuestro webmail.

Mailvelope + Roundcube (en Firefox)

Lo primero es descargar e instalar el plugin: https://addons.mozilla.org/es/firefox/addon/mailvelope/ y… comenzamos:

Empezamos…

Generamos el par de claves para el buzón de correo

Creamos nuestras claves. Las podemos crear nuevas o importarlas si ya las tenemos creadas.

´Creamos un nuevo par de claves para el buzón escogido

En este caso la vamos a crear desde el principio. Completamos los datos que nos piden en la pantalla, ponemos la contraseña y damos a generar las claves. Podemos elegir entre diversos algoritmos de encriptado, la fecha de validez de los certificados y si queremos que se suba a un servidor de claves o no:

Generando las claves con la información indicada…

Una vez generadas las claves, nos aparecerán en el Gestor de claves:

El gestor de claves con nuestras claves (privada y pública)

Al crear las claves y subirlas al servidor de Mailvelope, nos llegará al correo un mensaje para verificar la dirección de correo. El correo está cifrado, así que tendremos que descifrarlo previamente:

Mensaje cifrado de validación

La aplicación trae opciones para cifrar/descifrar mensajes ya sea copiando y pegando el contenido del mensaje o subiendo el archivo cifrado. En nuestro caso, desciframos el mensaje haciendo copia-pega. Nos dará la opción de descargar el mensaje en un archivo de texto y ahí nos aparece un mensaje con un enlace para confirmar la clave en el key server de Mailvelope

Desciframos el mensaje de validación…

El mensaje una vez descifrado:

Hello sasaeh PGP Test,

please verify your email address o1@sasaeh.com by clicking on the following link:

https://keys.mailvelope.com/api/v1/key?op=verify&keyId=****

After verification of your email address, your public key is available in our key directory.

You can find more info at keys.mailvelope.com.

Greetings from the Mailvelope Team

Autorizamos el dominio del webmail

Ya hemos visto que podemos cifrar y descifrar mensajes desde el menú del plugin, pero lo chulo es tenerlo todo integrado y trabajar con el cifrado dentro de la aplicación, así que tenemos que autorizar el dominio.

Vamos a nuestro webmail y, en las opciones de Mailvelope, pinchamos en "+ Authorize this domain"; en mi caso,

Autorización del dominio

Con esto ya tenemos Mailvelope integrado dentro del webmail y podremos:

  • Ver los mensajes cifrados directamente
  • Cifrar (y firmar) los mensajes desde el webmail a través de la interfaz de Mailvelope
A la hora de componer el mensaje, tenemos la opción de cifrarlo

Y ya está.

En el dashboard de Mailvelope tenéis más opciones para que le echéis un ojo.

Dashboard del plugin

Recordad que para que podáis comunicaros con PGP con otro buzón de correo, los dos tenéis que usar PGP y las claves públicas del destinatario. Podéis importar las claves públicas desde la interfaz de Mailvelope, desde el Keyring, desde donde generasteis vuestro par de claves.