Aunque no es el objetivo de este Como, comentaremos que la forma más segura de obtener la clave pública de una persona es que ella misma nos la provéa en mano.
Como en muchas ocasiones este método no es posible (distancia que separa a los interesados) las personas se pueden enviar por correo electrónico las claves públicas o buscarlas en un servidor de claves, pero ninguno de los métodos garantiza que la clave obtenida sea realmente de quien parece ser su poseedor, a menos que mediante una comunicación de otro tipo que consideremos «seguro» (buscar en la guia de teléfonos al propietario y pedirle que nos lea la «huella» de su clave pública para confirmar que es la misma de la clave que hemos obtenido por el metono no seguro).
Lo que presentamos a continuación es un ejemplo de «receta» para
añadir en .procmailrc
del procesador de correo Procmail para devolver
automáticamente su clave pública al remitente cuando reciba un mensaje con un
determinado texto en la línea Asunto
:
:0 h
* ^Subject:[ ]+\/(|enviar)[ ]+clave pub\>.*
| mutt -s "Re: $MATCH" `formail -rtzxTo:` </clau/miclave.asc
Lo que aquí dice es lo siguiente: tenemos una copia de nuestra clave pública
en ASCII, en un directorio (en este caso el directorio /clau
), en un
fichero llamado miclave.asc
; así, cuando procmail reciba un mensaje
que lleve en la línea de Asunto:
(Subject:
) la frase
«enviar clave pub», enviar el fichero al remitente.
IMPORTANTE: lo que va entre los corchetes es un espacio y un tabulador.
Cuando recibimos un mensaje firmado digitalmente del tipo MIME/PGP y lo abrimos en nuestro lector de correo preferido (Mutt, ¿cuál si no?), éste nos lo reconoce como tal y comprueba la veracidad de la firma siempre que tengamos la clave pública del firmante. Estos mensajes son los que llevan la letra «S» al lado:
36 S 05/09 Andres Seco Her ( 12K) Al fin
mientras los mensajes codificados llevan la letra «P»:
12 P 03/24 Andres Seco Her (6,3K) Re: FW: Re: Mutt - pgp/gnupg
Pero si el mensaje viene firmado al estilo «application/pgp», nos encontraremos que al abrir el mensaje no habrá verificación, y éste vendrá con el texto rodeado con la firma digital, así:
-----BEGIN PGP SIGNED MESSAGE-----
Date: Tue, 25 May 1999 13:04:26 +0200
From: La Corporación <bill@reboot.com>
Subject: Actualización S.O.
To: Sufrido Usuario <pepe@casa.es>
Sufrido usuario:
le comunicamos que puede usted adquirir la última actualización del
programa O.E. con la adquisición de nuestro sistema operativo reboot99
por el módico precio de ... etc.
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv
iKBGNpUBX0235VapRBUy1KklAQGl9wQA3SBMio0bbbajHAnyKMOlx3tcgNG7/UVC
AbqXcUnyGGOo13Nbas95G34Fee3wsXIFo1obEfgiRzqPzZPLWoZdAnyTlZyTwCHe
6ifVpLTuaXvcn9/76rXoI6u9svN2cqHCgHuNASKHaK9034uq81PSdW4QdGLgLoeB
vnGmxE+tGg32=
=Xidf
-----END PGP SIGNATURE-----
Para poder verificarlo tendríamos que guardarlo en un fichero y hacerlo desde
la línea de comandos. Sin embargo, es posible convertir estos mensajes con
Procmail para que Mutt los reconozca como MIME/PGP. Basta
con añadir a .procmailrc
:
:0
* !^Content-Type: message/
* !^Content-Type: multipart/
* !^Content-Type: application/pgp
{
:0 fBw
* ^-----BEGIN PGP MESSAGE-----
* ^-----END PGP MESSAGE-----
| formail \
-i "Content-Type: application/pgp; format=text; x-action=encrypt"
:0 fBw
* ^-----BEGIN PGP SIGNED MESSAGE-----
* ^-----BEGIN PGP SIGNATURE-----
* ^-----END PGP SIGNATURE-----
| formail \
-i "Content-Type: application/pgp; format=text; x-action=sign"
}
Como se puede ver esto sirve tanto para los mensajes firmados como para los cifrados con application/pgp.
Cuando recibes una clave pública desde un MUA sin soporte PGP/MIME, debes
salvar la clave en disco y despues insertarla en tu anillo público de llaves,
pero, incluyendo estas lineas en .procmailrc
puedes realizar la inserción
directamente desde el propio Mutt.
:0 fBw
* ^-----BEGIN PGP PUBLIC KEY BLOCK-----
* ^-----END PGP PUBLIC KEY BLOCK-----
| formail -i "Content-Type: application/pgp-keys; format=text;"
Gracias a Denis Alan por esta nota de Procmail.