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.
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á.
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
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
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.
[…] usar el método que prefirais. Tambien puedes enviar un correo cifrado como explico en esta entrada Firmar y cifrar un correo con GPG Info! El segundo parámetro .key debe ser la clave privada de nuestro servidor para poder firmar el […]