Cómo firmar y cifrar correos electrónicos

A veces, es posible que nuestros mensajes de correo electrónico sean modificados o analizados por un tercero, perdiendo su integridad y confidencialidad. Para que sólo el destinatario pueda leerlos, usaremos la firma y el cifrado digital de mensajes de correo mediante Enigmail y GnuPG.

¿Qué son la firma y el cifrado?

La firma permite al destinatario comprobar si el mensaje ha sido modificado o no, es decir, que el mensaje no ha sido modificado. Por otra parte, el cifrado nos permite ocultar el contenido del mensaje para que únicamente el destinatario pueda leerlo. Por supuesto, podemos utilizar ambas al mismo tiempo, ya que no queremos que un tercero lea ni modifique nuestro mensaje.

¿Cuál es su funcionamiento?

Esta parte es la más importante del artículo, pues es la base teórica para conseguir entender los fundamentos de la firma y el cifrado. Lo resumiré en dos palabras: criptografía asimétrica.

La criptografía asimétrica consta de dos claves, una pública y una privada. La pública la podrá tener cualquier persona. Sin embargo, la privada sólo la tendremos nosotros, no se la daremos a nadie.

La clave pública se la podemos enviar a todo el que la quiera. Esta clave permitirá a la gente verificar nuestra firma y crear mensajes cifrados que vayan dirigidos hacia nosotros.

La clave privada, como su propio nombre indica, es privada. Por lo tanto, no se la enviaremos a nadie. Esta nos permitirá firmar y descifrar los correos.

Estas claves son archivos que se generan en nuestro equipo y tienen una gran relación entre ellas. Sin embargo, no podemos averiguar una a través de la otra. Es por esto por lo que a partir de nuestra clave pública, que la tiene todo el mundo que la quiera, no se podrá obtener la clave privada.

Ejemplo de firma

Fuente imagen: WikiPedia

  1. David redacta un mensaje.
  2. David firma digitalmente el mensaje con su clave privada.
  3. David envía el mensaje firmado digitalmente a Ana por Internet.
  4. Ana recibe el mensaje firmado digitalmente y comprueba su autenticidad usando la clave pública de David.
  5. Ana puede leer el mensaje sabiendo que David es el remitente.

Ejemplo de cifrado

Fuente imagen: WikiPedia

  1. Ana redacta un mensaje.
  2. Ana cifra el mensaje con la clave pública de David.
  3. Ana manda el mensaje a David por Internet.
  4. David recibe el mensaje cifrado y lo descifra con su clave privada.
  5. David ya puede leer el mensaje original que le mandó Ana.

Implementación en nuestro correo electrónico

Como ya he dicho al comienzo del artículo, utilizaremos GnuPG y Enigmail.

Instalación

GnuPG: - Windows: descarga la última versión del archivo con extensión.exe. - GNU/Linux: disponible en los repositorios. - Mac OS. Enigmail: instalar la extensión de Enigmail en tu cliente de correo. Puedes descargarla de Mozilla Addons o de los repositorios de GNU/Linux.

Configuración

Abrimos nuestro cliente de correo, en mi caso Mozilla Thunderbird y pulsamos en el botón de opciones. Veremos que tenemos un nuevo ítem, llamado OpenPGP. En su propio menú desplegable, veremos una opción que es Administración de claves. Se nos abrirá una nueva ventana, y haremos click en Generar > Nuevo par de claves.

En esta ventana, podemos configurar los siguientes puntos:

  • La cuenta con la que queremos trabajar.
  • La contraseña o frase clave del par de claves (pública y privada). En caso de que alguien consiga tu clave privada, necesitará esta frase clave para poder usarla.
  • Tiempo de expiración de la clave.
  • En opciones avanzadas, el tamaño y tipo de clave.

Hacemos click en "Generar clave" y esperamos unos minutos (dependerá de cada ordenador y del tipo de clave). Durante el proceso, nos preguntará si deseamos un certificado de revocación por si perdemos o nos roban la clave privada. Lo guardamos bajo llave.

Ahora podremos utilizar esta nueva clave para firmar los correos que enviemos. Dejaremos nuestra configuración de cuenta de la siguiente manera:

Compartir la clave pública

Para compartir nuestra clave pública con alguien, podemos hacerlo a través de un CD, memoria USB, o subirla a un servidor de claves. Recuerdo que se comparte la clave pública, no la privada.

Para publicar nuestra clave en uno de estos servidores, abriremos la ventana de administración de claves de Enigmail y con el botón derecho seleccionaremos nuestra clave y escogemos la opción de subir clave pública a un servidor de claves.

El usuario al que quieras enviar un correo cifrado, deberá realizar el mismo proceso y subir su clave al servidor de claves que quiera (os tendréis que inercambiar las direcciones). En ese momento, podrás buscar las claves desde el mismo administrador de claves de Enigmail.

Firmar y cifrar mensajes

Muy simple. Abriremos la ventana de redacción de un nuevo correo, y ahí escogeremos las opciones que queramos del menú de OpenPGP:

Esto ha sido todo por este tutorial. Espero que os haya sido de utilidad. ¡Un saludo!