Mutt-i, GnuPG y PGP Como
Andr�s Seco
[email protected] y J.Horacio M.G.
[email protected]
v1.2, 7 de Febrero de 2000
Este documento explica la forma de configurar Mutt-i, PGP y GnuPG en
sus diferentes versiones (2.6.x, 5.x y GnuPG) de forma r�pida indi�
cando los posibles problemas que pueden surgir al enviar correo fir�
mado o cifrado para ser le�do por clientes de correo que no se ajustan
a las especificaciones PGP/MIME definidas en la RFC2015 y por otros
sistemas operativos. Incluye adem�s un ejemplo de configuraci�n de
procmail para enviar las claves p�blicas de forma autom�tica a peti�
ciones recibidas por correo electr�nico, como si de un servidor de
claves se tratara.
______________________________________________________________________
�ndice General:
1. Introducci�n
2. Copyright y descarga de responsabilidad
3. Nota sobre el intercambio de correo desde/hacia internet
4. Configuraci�n de mutt
5. PGP y GnuPG
5.1. PGP2
5.2. PGP5
5.3. GnuPG
6. Integraci�n de PGP y Mutt
6.1. Ficheros de configuraci�n opcionales
6.2. Variables de Configuraci�n General
6.3. Variables de Configuraci�n para PGP2
6.4. Variables de Configuraci�n para PGP5
6.5. Variables de Configuraci�n para GnuPG
6.6. Variables de Configuraci�n Mixta
7. Macros interesantes para mutt
7.1. Firma sobre el propio texto del mensaje sin usar PGP/MIME con
PGP5
7.2. Firma sobre el propio texto del mensaje sin usar PGP/MIME con
GnuPG
7.3. Edici�n del fichero de alias y recarga del mismo
7.4. M�s ejemplos de macros
8. Algunas �recetas� para Procmail
8.1. Configuraci�n de Procmail para devolver las claves p�blicas
autom�ticamente
8.2. Verificaci�n y descifrado autom�ticos de mensajes firmados sin
PGP/MIME
8.3. Cambio del tipo MIME para mensajes con claves p�blicas sin
PGP/MIME
9. Intercambio de mensajes firmados/cifrados entre diferentes
clientes de correo y plataformas
10. Programas y versiones utilizados
11. M�s informaci�n
12. Anexo: El INSFLUG
______________________________________________________________________
1. Introducci�n
Este documento explica la forma de configurar Mutt-i y PGP en sus
versiones 2.6.x, 5.x y GnuPG para poder tener en marcha de forma
r�pida un lector de correo con seguridad de firmas y cifrado digital.
Para esto se incluir�n ficheros de configuraci�n de ejemplo que
servir�n para la puesta en marcha. Para obtener el m�ximo rendimiento
y usar todas las caracter�sticas de los programas que se utilizar�n
ser� necesario leer la documentaci�n adjunta a cada programa y
reconfigurar dichos ficheros de configuraci�n que se incluyen como
ejemplos.
Adem�s, se comentar�n algunos problemas derivados de la falta de
seguimiento de la recomendaci�n RFC2015 sobre PGP/MIME por parte de
muchos programas de correo electr�nico, tanto en Linux como en otros
sistemas operativos.
Ser� presentado tambi�n un ejemplo de configuraci�n de procmail de
forma que puedan ser enviadas las claves p�blicas de manera autom�tica
a la recepci�n de mensajes que las soliciten.
Nos gustar�a dar las gracias a Roland Rosenfeld
[email protected],
Christophe Pernod
[email protected], Denis Alan Hainsworth
[email protected] y Angel Carrasco
[email protected] por sus
correcciones y sugerencias.
2. Copyright y descarga de responsabilidad
Este documento es copyright � 1999 Andr�s Seco y J. Horacio M.G., y es
un documento libre. Puedes distribuirlo bajo los t�rminos de la GNU
General Public License, que puedes encontrar en
http://www.gnu.org/copyleft/gpl.html. Una copia de �sta traducida al
castellano la puedes encontrar en
http://visar.csustan.edu/~carlos/gpl-es.html
La informaci�n y otros contenidos en este documento son lo mejor de
nuestros conocimientos. Sin embargo, hemos podido cometer errores. As�
que deber�as determinar si deseas seguir las instrucciones que se
encuentran en este documento.
Nadie es responsable de cualquier da�o en sus ordenadores y cualquier
otra p�rdida por el uso de la informaci�n contenida aqu�.
LOS AUTORES Y MANTENEDORES NO SON RESPONSABLES DE CUALQUIER DA�O
INCURRIDO A CAUSA DE ACCIONES TOMADAS EN BASE A LA INFORMACION
CONTENIDA EN ESTE DOCUMENTO.
Por supuesto, estamos abiertos a todo tipo de sugerencias y
correcciones sobre el contenido de este documento.
3. Nota sobre el intercambio de correo desde/hacia internet
Este documento no trata sobre el intercambio de mensajes de correo
electr�nico entre el equipo local y otros equipos (en red local o en
internet). Dicho intercambio debe ser realizado mediante programas que
act�en como Agentes de Transferencia de Mensajes (MTAs) como Sendmail,
http://www.sendmail.org, qmail,
http://www.es.qmail.org, Exim,
http://www.exim.org, Smail,
ftp://ftp.planix.com/pub/Smail, etc.
En este documento se presupone que este m�todo de env�o/recepci�n de
mensajes fuera del equipo local ya est� instalado y funcionando de
forma correcta. Si puede enviar un mensaje y leer su correo con el
comando mail desde el indicador de linea de comando de su equipo,
$ mail -s <asunto> <
[email protected]>
escribir aqu� el texto, y finalizar con un punto en la l�nea siguiente
es que debes tener instalado alg�n tipo de MTA que se encargue de la
transferencia de mensajes. En caso contrario, puedes encontrar
documentaci�n al respecto en las p�ginas de manual de smail:
$ man smail
o del MTA que tengas instalado, y las de fetchmail:
$ man fetchmail
o en otro documento similar a estos que haga referencia a dichos
programas.
4. Configuraci�n de mutt
El siguiente fichero de ejemplo es v�lido para comenzar a usar Mutt de
forma b�sica incluyendo caminos para los ficheros de alias, mensajes
enviados y mensajes postpuestos. Se puede realizar una mayor
personalizaci�n atendiendo a las indicaciones del manual de Mutt en
/usr/doc/mutt/ o /usr/doc/mutt-i/
Ejemplo simple de ~/.muttrc:
set folder=~/Mail
set alias_file=.alias
set postponed=.postponed
set record=MensajesEnviados
set signature=.signature
my_hdr From: Nombre Apellido <
[email protected]>
source =.alias
Es necesario que exista el directorio ~/Mail, que es el que aparece
como un signo de �igual que� en el fichero de configuraci�n
~/Mail/.alias, y =.postponed quiere decir para Mutt
~/Mail/.postponed). No obstante es posible tener estos ficheros en
otro directorio siempre y cuando indiquemos el camino completo en
~/.muttrc, y tengamos los permisos necesarios para trabajar en dicho
directorio.
Tambi�n hay que personalizar la linea my_hdr con el nombre y la
direcci�n de correo electr�nico adecuados. En el fichero
~/Mail/.signature se puede incluir la firma que aparecer� en todos los
mensajes que se env�en.
Este fichero de configuracion puede llegar a hacerse muy grande, por
lo que es com�n separar algunos de sus comandos en ficheros
diferentes. Por lo pronto, son facilmente separables las lineas de
configuraci�n de PGP o GnuPG y las macros de teclado que
personalicemos. Para ello seria necesario a�adir las lineas siguientes
al fichero ~/.muttrc:
source = ~/Mail/.mutt.macros
source = ~/Mail/.gnupgp.mutt
y utilizar los ficheros ~/Mail/.mutt.macros y ~/Mail/.gnupgp.mutt para
introducir en ellos las macros de teclado y la configuraci�n de PGP o
GnuPG que m�s adelante se comentan.
Para una informaci�n m�s extensiva y completa sobre el uso y
configuraci�n de Mutt, as� como de caracter�sticas avanzadas, ver el
Manual de Mutt en
http://www.lucas.org/manual_mutt.html.
5. PGP y GnuPG
Para usar cualquiera de las versiones de PGP con Mutt-i, primero ser�
necesario configurar adecuadamente PGP de modo que existan el fichero
con las claves p�blicas (anillo de claves p�blicas) y el fichero con
las claves privadas (anillo de claves privadas). Conviene probar
previamente PGP desde la l�nea de comandos para asegurarse de que
firma y cifra correctamente.
Recordemos que para Unix las versiones de PGP existentes son 2.6.3(i)
y 5.0(i), que de ahora en adelante llamaremos PGP2 y PGP5
respectivamente. GnuPG es un sistema de codificaci�n nuevo, todav�a en
desarrollo aunque muy avanzado, de c�digo abierto y libre, en muchos
aspectos superior a PGP (ver GnuPG mini como en
http://www.insflug.org/documentos/GPG-Mini-Como/).
Aclararemos tambi�n que PGP, al ser un sistema desarrollado en los
EE.UU., est� sujeto a ciertas leyes sobre la exportaci�n de programas
que incluyen c�digo criptogr�fico; por esta raz�n existe una versi�n
internacional para casi todas las versiones num�ricas, y �sta vienen
denotadas por la letra �i� (pgp - pgpi).
5.1. PGP2
PGP2 genera claves con el algoritmo RSA (
http://www.rsa.com), y como
algoritmo de cifrado usa IDEA (
http://www.ascom.ch).
Ambos son algoritmos propietarios y su uso est� restringido por sus
respectivas patentes.
Para su correcto funcionamiento, una vez instalado el programa,
deberemos tener un directorio ~/.pgp, en el que se encuentren el
fichero de configuraci�n pgp-i.conf y los ficheros con los anillos de
claves p�blicas y privadas, pubring.pgp y secring.pgp respectivamente.
5.2. PGP5
Las claves generadas por PGP5 son del tipo DSS/DH (Digital Signature
Standard / Diffie-Helman). PGP5 usa como algoritmos de cifrado CAST,
Triple-DES, e IDEA. PGP5 puede trabajar con datos cifrados y/o
firmados con RSA (PGP2), e incluso usar estas claves para cifrar y/o
firmar digitalmente (con claves generadas por PGP2, ya que PGP5 no
puede generar dichas claves). Por contra, PGP2 no reconoce las claves
DSS/DH de PGP5; esto crea un problema de incompatibilidad, pues en
Unix/Linux todav�a muchos usuarios tienen instalado s�lo la versi�n de
PGP2.
Para el correcto funcionamiento de PGP5, en el directorio ~/.pgp, se
encontrar�n los anillos de claves p�blicas y privadas (pubring.pkr y
secring.skr respectivamente), as� como el fichero de configuraci�n
pgp.cfg.
En caso de tener instaladas las dos versiones de PGP (por tanto,
habremos instalado y configurado PGP2 antes que PGP5), el fichero de
configuraci�n ~/.pgp/pgp.cfg de PGP5 lo crearemos como un enlace
simb�lico al fichero de configuraci�n ~/.pgp/pgp-i.conf,
~/.pgp$ ln -s pgp-i.conf pgp.cfg
a�adiendo las siguientes l�neas al final del fichero ~/.pgp/pgp-
i.conf:
PubRing = "~/.pgp/pubring.pkr"
SecRing = "~/.pgp/secring.skr"
RandSeed = "~/.pgp/randseed.bin"
Los ficheros con los anillos de claves de las diferentes versiones
pueden coexistir sin ning�n problema en el mismo directorio.
5.3. GnuPG
GnuPG es un programa con las mismas funciones que el anterior. A
diferencia de PGP, GnuPG evita el uso de algoritmos con patentes
restrictivas. PGP puede ser usado libremente con fines personales,
pero no comerciales, y su desarrollo es cerrado. GnuPG es de libre
uso, y de desarrollo abierto, al igual que nuestro sistema operativo
favorito (adem�s de que su implementaci�n y desarrollo es
principalmente en Linux).
Las claves generadas por GnuPG son del tipo DSA/ElGamal (Digital
Signature Algorithm, tambi�n conocido como DSS). Es totalmente
compatible con PGP, excepto en el uso de los algoritmos con patentes
restrictivas RSA e IDEA. No obstante, es posible implementar cierta
compatibilidad al respecto (ver GnuPG mini como en
http://www.insflug.org/documentos/GPG-Mini-Como/ para su configuraci�n
e interacci�n con PGP2 y PGP5).
6. Integraci�n de PGP y Mutt
La operaci�n a realizar en los mensajes salientes (firmar, cifrar o
ambas) se elige justo antes de pulsar �y� para enviar el mensaje, en
el men� de opciones que aparece con la opci�n �p�. Una vez elegida la
operaci�n a realizar simplemente cambiar� la linea de PGP en la
cabecera que se muestra en pantalla, pero hasta que no enviemos el
mensaje con �y� no se nos pedir� introducir la frase de paso para
activar la firma del mensaje o las claves publicas a utilizar para el
cifrado en caso de que no coincida alg�n destinatario con los que
tienen clave p�blica en nuestro anillo de claves.
NOTA: En caso de que cometamos un error al introducir la frase de paso
cuando nos es solicitada, parecer� que Mutt se queda �colgado�, pero
no ser� as�, si no que estar� esperando que la volvamos a introducir.
Para ello pulsaremos la tecla <Intro> y borraremos la contrase�a de la
memoria con el juego de teclas <Ctrl>F. A continuaci�n repetiremos la
operaci�n de enviar el mensaje (�y�) y tendremos que volver a
introducir la contrase�a.
Mutt, en este caso, usar� PGP/MIME para enviar el mensaje, de modo que
aparecer� un nuevo adjunto al mensaje con la firma (si s�lo hemos
elegido firmar) o cifrar� el mensaje completo (todas sus partes MIME,
adjuntos incluidos) y dejar� tan solo 2 partes MIME, la primera con la
versi�n de PGP/MIME y la segunda con el mensaje total (adjuntos
incluidos) cifrado (y firmado si as� lo solicitamos).
Nota: Por varios motivos, como que el lector de correo del
destinatario del mensaje no sea capaz de reconocer el formato MIME,
podemos necesitar que la firma no vaya acompa�ando al mensaje como un
adjunto, sino que aparezca en el mismo cuerpo del mensaje. Para este
modo, ver la secci�n que trata sobre application/pgp con ``PGP5'' y
con ``GnuPG''.
En los mensajes entrantes que vengan firmados o cifrados con PGP/MIME,
Mutt intentar� verificar la firma y/o descifrarlo autom�ticamente. Ver
la secci�n sobre ``recetas para procmail'', en donde se comenta c�mo
cambiar de forma autom�tica el tipo MIME para los mensajes recibidos
cifrados o firmados, que no indican su tipo MIME correctamente.
6.1. Ficheros de configuraci�n opcionales
En las siguientes secciones se habla sobre las modificaciones al
fichero de configuraci�n de Mutt para poder usar ``PGP2'', ``PGP5'', y
``GnuPG'' con comodidad.
Para ello se usa un fichero de configuraci�n llamaremos .gnupgp.mutt
(el nombre es inventado y le podr�amos llamar de cualquier otro modo,
siempre y cuando indiquemos el origen de este fichero de configuraci�n
en el fichero de configuraci�n principal ~/.muttrc.
Esto se hace incluyendo el origen (d�nde est� situado) completo del
fichero de configuraci�n .gnupgp.mutt, en una l�nea al final del
fichero ~/.muttrc. El directorio en el que situemos �ste u otros
ficheros opcionales de configuraci�n puede ser cualquiera, siempre y
cuando tengamos los permisos correctos de acceso a �l (en un cap�tulo
anterior lo incluimos dentro del directorio ~/Mail/), o podemos crear
un directorio dentro de nuestro directorio de usuario, con un nombre
aleatorio:
~$ mkdir mutt.varios
en el que copiaremos (o crearemos) el fichero de configuraci�n
opcional
source ~/mutt.varios/.gnupgp.mutt
De este modo Mutt aceptar� las variables de configuraci�n en
Este sistema es �til para evitar tener un fichero de configuraci�n
desordenado y demasiado grande, y puede ser usado para poner cualquier
otro grupo de variables de configuraci�n en otro fichero aparte. Por
ejemplo, de modo parecido aunque no igual, si usamos vim como el
editor por defecto en Mutt, le podemos indicar a .muttrc que use un
fichero de configuraci�n .vimrc distinto al que usamos cuando usemos
vim sobre la l�nea de comandos. Para ello, copiaremos primero
~/.vimrc a nuestro directorio ficticio para ficheros de configuraci�n
opcionales ~/mutt.varios/ y le daremos un nombre distinto (vg.
vim.mutt):
$ cd /home/usuario
~$ cp .vimrc mutt.varios/vim.mutt
a continuaci�n cambiaremos las variables de configuraci�n que deseamos
que sean distintas en vim como editor de Mutt, y finalmente
modificaremos
set editor="/usr/bin/vim -u ~/mutt.varios/vim.mutt"
Con esta �ltima l�nea estamos indicando a Mutt que, en lugar de usar
su editor interno por defecto, use un editor externo, Vim, con las
opciones de configuraci�n que deseamos.
6.2. Variables de Configuraci�n General
Hay un n�mero de variables que nos servir�n para el uso de cualquiera
de los tres sistemas de cifrado p�blico con Mutt por igual. �stas
variables son del tipo booleano, y aceptan las opciones set (activada)
o unset (desactivada).
En el fichero de configuraci�n (bien sea ~/.muttrc, o
~/mutt.varios/.gnupgp.mutt, o el que decidamos), el signo de
almohadilla (#) es un comentario libre y no se interpreta. Por tanto,
lo usaremos aqu� delante de la aclaraci�n a cada una de las variables:
unset pgp_autosign
# si esta variable est� activada, Mutt nos pedir� firmar todo el
# correo saliente. ``(1)''
unset pgp_autoencrypt
# si esta variable est� activada, Mutt nos pedir� cifrar todo el
# correo saliente. ``(1)''
set pgp_encryptself
# guardar una copia cifrada de todos los mensajes que se env�en
cifrados
# (precisa de la variable de configuraci�n general set
copy=yes).
set pgp_replysign
# al responder a un mensaje firmado, requerir que el mensaje de
respuesta
# sea tambi�n firmado.
set pgp_replyencrypt
# al responder a un mensaje cifrado, requerir que nuestra
respuesta
# tambi�n vaya cifrada.
set pgp_verify_sig=yes
# �queremos que se verifique autom�ticamente las firmas de los
mensajes
# entrantes? �por supuesto que s�!
set pgp_timeout=<n>
# eliminar la contrase�a de la memoria intermedia cada <n>
# segundos.``(2)''
set pgp_sign_as=
# �qu� clave quiero usar por defecto para firmar los mensajes
salientes?
# Nota: es posible especificar un id de usuario en lugar de un id
de
# clave, pero esto podr�a confundir si tenemos el mismo id de
usuario
# para distintas claves.
set pgp_strict_enc
# usar codificaci�n �quoted-printable� siempre que PGP la
# requiera.
unset pgp_long_ids
# no usar identificadores de claves de 64 bits, usar de 32 bits.
set pgp_sign_micalg=<algo>
# algoritmo de comprobaci�n de la integridad de un mensaje, en
donde
# <algo> es uno de los siguientes:``(3)''
�
pgp-mda5
para claves RSA
�
pgp-sha1
para claves DSS (DSA)
�
pgp-rmd160
En las tres subsecciones siguientes se especificar�n las variables a
configurar para cada una de las versiones. La cuarta subsecci�n
explica los cambios en las variables en caso de que usemos m�s de una
versi�n.
(1) dado que el cont�nuo requerimiento por parte de Mutt para que
firmemos o cifremos todos los mensajes salientes puede representar un
inconveniente, es deseable dejar esta variable desactivada. Esto es
especialmente as� en el caso del cifrado, ya que no dispondremos de
las claves p�blicas de todos los destinatarios.
(2) depende del n�mero de mensajes que firmemos o descifremos
generalmente, nos interesar� mantener la contrase�a en la memoria
durante m�s o menos tiempo. Esta opci�n nos evita que tengamos que
introducir la contrase�a por cada mensaje que firmemos, o por cada
mensaje cifrado que leamos. Aviso: mantener la contrase�a en la
memoria es inseguro, especialmente en sistemas conectados a una red.
(3) esto s�lo es necesario para la clave con la que hayamos
configurado para firmar. Cuando la clave la escojamos desde el men�
de composici�n, Mutt se encargar� de calcular el algoritmo.
6.3. Variables de Configuraci�n para PGP2
Para utilizar PGP2 con Mutt-i es necesario a�adir las siguientes
l�neas al fichero ~/mutt.varios/.gnupgp.mutt:
set pgp_default_version=pgp2
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-md5
set pgp_v2=/usr/bin/pgp
set pgp_v2_pubring=~/.pgp/pubring.pgp
set pgp_v2_secring=~/.pgp/secring.pgp
Evidentemente, deber�n existir los ficheros ~/.pgp/pubring.pgp y
secring.pgp. M�s informaci�n sobre PGP2 con el comando man pgp.
6.4. Variables de Configuraci�n para PGP5
Para utilizar PGP5 con Mutt-i es necesario a�adir las siguientes
l�neas al fichero ~/mutt.varios/.gnupgp.mutt:
set pgp_default_version=pgp5
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-sha1
set pgp_v5=/usr/bin/pgp
set pgp_v5_pubring=~/.pgp/pubring.pkr
set pgp_v5_secring=~/.pgp/secring.skr
Evidentemente, deber�n existir los ficheros ~/.pgp/pubring.pkr y
secring.pkr. M�s informaci�n sobre PGP 5 con el comando man pgp5.
6.5. Variables de Configuraci�n para GnuPG
Para utilizar GnuPG con Mutt-i es necesario a�adir las siguientes
l�neas al fichero ~/mutt.varios/.gnupgp.mutt:
set pgp_default_version=gpg
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-sha1
set pgp_gpg=/usr/bin/gpg
set pgp_gpg_pubring=~/.gnupg/pubring.gpg
set pgp_gpg_secring=~/.gnupg/secring.gpg
Evidentemente, deber�n existir los ficheros ~/.gnupg/pubring.gpg y
secring.gpg. M�s informaci�n sobre GnuPG com el comando man gpg.gnupg,
man gpgm, y man gpg.
6.6. Variables de Configuraci�n Mixta
En el caso que deseemos tener m�s de uno de los tres sistemas a la
vez, es preciso modificar algunas de las variables que hemos comentado
anteriormente. En realidad tan s�lo se trata de eliminar la
redundancia en la versi�n configurada por defecto.
Si, por ejemplo, decidi�ramos usar GnuPG como el sistema a utilizar
por defecto, todas las teclas relacionadas con PGP/GnuPG de Mutt
llamar�an a �ste sistema para cualquier operaci�n de cifrar,
descifrar, firmar, verificar, etc...
$set_pgp_default una s�la vez, as�:
set pgp_default_version=gpg
con lo cual, y para el uso conjunto de los tres sistemas, la parte
correspondiente al fichero ~/mutt.varios/.gnupgp.mutt podr�a quedar
del siguiente modo:
set pgp_default_version=gpg # versi�n a usar por defecto
set pgp_key_version=default # clave que se usar� por defecto, en este
# caso la definir� gnupg
set pgp_receive_version=default # para descodificar usar� la versi�n que se
set pgp_send_version=default # haya configurado por defecto (gpg)
set pgp_gpg=/usr/bin/gpg # localizaci�n del binario de GnuPG
set pgp_gpg_pubring=~/.gnupg/pubring.gpg # fichero de claves pub. GnuPG
set pgp_gpg_secring=~/.gnupg/secring.gpg # fichero de claves secr. GnuPG
set pgp_v2=/usr/bin/pgp # localizaci�n del binario de PGP2
set pgp_v2_pubring=~/.pgp/pubring.pgp # fichero de claves pub. PGP2
set pgp_v2_secring=~/.pgp/secring.pgp # fichero de claves secr. PGP2
set pgp_v5=/usr/bin/pgp # localizaci�n del binario de PGP5
set pgp_v5_pubring=~/.pgp/pubring.pkr # fichero de claves pub. PGP5
set pgp_v5_secring=~/.pgp/secring.skr # fichero de claves secr. PGP5
7. Macros interesantes para mutt
Mutt es altamente configurable y puede modificar su forma de trabajo
de modo muy flexible si se hace un uso adecuado de las opciones de
.muttrc.
Aqu� se presentan algunas macros que ayudar�n a generar firmas
evitando seguir el est�ndar PGP/MIME, para enviarlas a destinatarios
que sabemos de cierto que no pueden verificar las firmas PGP/MIME, y
para editar el fichero de alias y volver a cargarlo sin salir de Mutt
(aunque esto �ltimo no est� relacionado con PGP/GnuPG, se presenta
como ejemplo para mostrar el poder de las macros en Mutt).
Es posible indicar a Mutt las combinaciones de teclado que queremos
utilizar para las opciones de PGP/GnuPG que deseamos implementar en el
correo electr�nico. Aun cuando algunas de estas opciones vienen
configuradas por defecto, podemos f�cilmente cambiarlas o a�adir otras
modificando la configuraci�n.
7.1. Firma sobre el propio texto del mensaje sin usar PGP/MIME con
PGP5
Antes de la existencia de PGP/MIME, la firma de un mensaje iba
incluida en el cuerpo del mensaje. Este caso sigue siendo com�n con
muchos lectores de correo.
En caso de que queramos firmar de esta forma, tenemos dos opciones,
dejar el tipo MIME del mensaje intacto o modificarlo como
application/pgp.
Para implementar estas dos formas de firmar en Mutt, a�adiremos las
l�neas siguientes al fichero ~/mutt.varios/mutt.macros. Previamente,
habremos indicado el origen de este fichero de configuraci�n opcional
al fichero de configuraci�n principal .muttrc; ver ``ficheros de
configuraci�n opcionales'':
macro compose \Cp "F/usr/bin/pgps\ny"
macro compose S "F/usr/bin/pgps\ny^T^Uapplication/pgp; format=text; x-action=sign\n"
y de esta forma, pulsando <Ctrl>p o S podremos incluir la firma
digital en el adjunto del mensaje sobre el que est� situado el cursor
en la pantalla, en la que se encontrar� el mensaje listo para ser
enviado.
7.2. Firma sobre el propio texto del mensaje sin usar PGP/MIME con
GnuPG
Igual que en el caso anterior, pero con GnuPG. Las macros quedan de la
siguiente manera:
macro compose \CP "Fgpg --clearsign\ny"
macro compose \CS "Fgpg --clearsign\ny^T^Uapplication/pgp; format=text; x-action=sign\n"
7.3. Edici�n del fichero de alias y recarga del mismo
Con esta macro para incluir en ~/mutt.varios/macros.mutt puedes editar
con vi (modificando la linea puedes usar otro editor) el fichero de
alias sin salir de Mutt pulsando <Alt>a.
macro index \ea "!vi ~/Mail/.alias\n:source =.alias\n"
7.4. M�s ejemplos de macros
El siguiente listado ha sido obtenido de Roland Rosenfeld y presenta
macros para cambiar el �sistema de firmado/cifrado por defecto� y
firmar sin PGP/MIME con GnuPG:
# ~/Mail/.muttrc.macros
# Fichero de configuraci�n del teclado en Mutt-i
# copiado, modificado y traducido del original:
#
################################################################
# The ultimative Key-Bindings for Mutt #
# #
# (c) 1997-1999 Roland Rosenfeld <
[email protected]> #
# #
# $ Id: keybind,v 1.36 1999/02/20 19:36:28 roland Exp roland $ #
################################################################
#
# Para su correcto funcionamiento, a�adir al fichero de
# configuraci�n ~/.muttrc la l�nea:
# source ~/Mail/.muttrc.macros
#
# Generic keybindings
# (�para todos los men�s de Mutt excepto el del paginador!)
# Con las tres siguientes podemos cambiar el sistema de cripto que
# estemos utilizando por defecto:
# <ESC>1 para GnuPG
macro generic \e1 ":set pgp_default_version=gpg ?pgp_default_version\n"\
"Switch to GNU-PG"
# <ESC>2 para PGP2
macro generic \e2 ":set pgp_default_version=pgp2 ?pgp_default_version\n"\
"Switch to PGP 2.*"
# <ESC>5 para PGP5
macro generic \e5 ":set pgp_default_version=pgp5 ?pgp_default_version\n"\
"Switch to PGP 5.*"
# index, OpMain, MENU_MAIN
# (Men� principal)
# La siguiente s�lo funciona desde el men� principal (el que nos
# encontramos nada m�s abrir Mutt). La combinaci�n de las teclas
# <CTRL>K nos permite extraer las claves p�blicas de un mensaje si las
# hubiere (esto se sabe porque el mensaje viene precedido por la letra
# K):
macro pager \Ck ":set pipe_decode pgp_key_version=pgp2\n\e\ek:set pgp_key_version=pgp5\n\e\ek:set pgp_key_version=gpg\n\e\ek:set pgp_key_version=default nopipe_decode\n"\ "Extract PGP keys to PGP2, PGP 5, and GnuPG keyrings"
# pager, OpPager, MENU_PAGER
# (Men� del Paginador)
# Permite las mismas operaciones que en el primer caso, y con las mismas
# combinaciones de claves, pero en este caso desde el men� del
# paginador:
macro pager \e1 ":set pgp_default_version=gpg ?pgp_default_version\n"\
"switch to GNUPG"
macro pager \e2 ":set pgp_default_version=pgp2 ?pgp_default_version\n"\
"switch to PGP 2.*"
macro pager \e5 ":set pgp_default_version=pgp5 ?pgp_default_version\n"\
"switch to PGP 5.*"
# compose, OpCompose+OpGerneric, MENU_COMPOSE
# (Men� de composici�n)
# Las siguientes operaciones se realizan desde el men� de composici�n.
# Esto es, una vez hemos compuesto el mensaje y lo cerramos para
# enviarlo, justo antes de presionar la tecla "Y" que nos permita
# pas�rselo al MTA.
# En este caso creamos un men� que se abre al presionar la tecla "P".
# Las opciones de este men� las ligamos a MENU_PGP. Estas son las
# opciones de uso principal (codificaci�n y firma).
bind compose p pgp-menu
# Como muchos programas no son capaces de implementar las
# espicificaciones de MIME/PGP (especialmente los de M$), las teclas
# <CTRL>P nos permitir�n firmar los mensajes "a la antigua"
# (Application/PGP):
macro compose \CP "Fgpg --clearsign\ny"
# A continuaci�n, <CTRL>S nos permitir� firmar "a la MIME/PGP" con la
# clave que tengamos definida por defecto. Esta macro no es necesaria
# ya que lo mismo podemos hacer desde el men� "P":
macro compose \CS "Fgpg --clearsign\ny^T^Uapplication/pgp; format=text; x-action=sign\n"
Es posible a�adir m�s macros, y algunas otras vienen ya configuradas
por defecto en nuevas versiones de Mutt. Algunas otras opciones
incluyen:
� <CTRL>K (extraer claves p�blicas adjuntas a un mensaje)
� <ESC>K (adjuntar una clave p�blica a un mensaje)
� <CTRL>F (al usar la contrase�a para firmar o descodificar un
mensaje, �sta queda grabada en memoria. De este modo podemos
borrar la contrase�a de la memoria)
� etc...
Para ver qu� otras opciones tenemos activadas basta con ir al men� de
ayuda (?) desde el men� en que nos encontremos.
8. Algunas �recetas� para Procmail
8.1. autom�ticamente Configuraci�n de Procmail para devolver las
claves p�blicas
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.
8.2. Verificaci�n y descifrado autom�ticos de mensajes firmados sin
PGP/MIME
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 <
[email protected]>
Subject: Actualizaci�n S.O.
To: Sufrido Usuario <
[email protected]>
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.
8.3. Cambio del tipo MIME para mensajes con claves p�blicas sin
PGP/MIME
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.
9. correo y plataformas Intercambio de mensajes firmados/cifrados
entre diferentes clientes de
Inicialmente, las firmas PGP se a�adian al final del texto que
deseaban firmar. Posteriormente, se incluyo el tipo MIME
application/pgp para indicar que el bloque a continuaci�n contenia
firma o cifrado PGP, y finalmente con la especificaci�n de PGP/MIME se
consigui� separar la firma de los bloques a los que afectaba, de modo
que no fueran modificados en absoluto y alguien que no tuviese PGP
pudiese ver el mensaje exactamente como fue enviado (no cuando est�
cifrado, evidentemente) sin a�adidos al principio y al final de PGP.
La situaci�n actual es tal que existen pocos clientes de correo
capaces de integrarse con PGP para ofrecer PGP/MIME, de modo que suele
ser necesario enviar mensajes firmados digitalmente de modo que con
clientes de correo que no soportan PGP/MIME puedan ser verificadas las
firmas.
En Linux, los clientes de correo disponibles que cumplen la
especificaci�n PGP/MIME son mutt-i y pine. En Windows, solo los
clientes de correo Eudora en sus versiones 3.x y 4.x soportan
PGP/MIME. Si conoce otros clientes que lo soporten esperamos su
mensaje indic�ndonoslo, para incluirlo aqu�.
10. Programas y versiones utilizados
Para el desarrollo de esta documentaci�n hemos utilizado las
siguientes versiones de mutt:
� Mutt 0.93i - con esta versi�n de mutt no se puede utilizar GnuPG.
� Mutt 0.95.3i - todas las versiones de PGP y GnuPG son utilizables.
Y las siguientes versiones de PGP y GnuPG:
� PGPi 5.0
� GnuPG 0.4.3
� GnuPG 0.9.4
11. M�s informaci�n
La documentaci�n original a partir de la cual ha sido obtenido este
documento puede ser encontrada en las paginas man de mutt, pg, pgp5,
gnupg, procmail, en los directorios correspondientes de /usr/doc y en
las paginas de los paquetes en la world wide web:
� P�gina Oficinal de Mutt -
http://www.mutt.org
� P�gina Pricipal de GnuPG -
http://www.gnupg.org
� P�gina internacional de PGP -
http://www.pgpi.com
� P�gina Oficinal de Procmail -
http://www.procmail.org
Las recomendaciones (request for comments, RFC) que hacen referencia a
temas tratados en el documento son las siguientes:
� 1847 - Security Multiparts for MIME: Multipart/signed and
Multipart/encripted
� 1848 - MIME Object Security Services
� 1991 - PGP Message Exchange Formats
� 2015 - MIME Security with Pretty Good Privacy (PGP)
� 2440 - OpenPGP Message Format
y pueden ser encontradas en /usr/doc/doc-rfc y en diversos lugares de
la world wide web, como
http://metalab.unc.edu y
http://nic.mil.
Puedes solicitar informaci�n sobre las RFCs en
[email protected]
12. Anexo: El INSFLUG
El INSFLUG forma parte del grupo internacional Linux Documentation
Project, encarg�ndose de las traducciones al castellano de los Howtos,
as� como de la producci�n de documentos originales en aquellos casos
en los que no existe an�logo en ingl�s, centr�ndose, preferentemente,
en documentos breves, como los COMOs y PUFs (Preguntas de Uso
Frecuente, las FAQs. :) ), etc.
Dir�jase a la sede del Insflug para m�s informaci�n al respecto.
En ella encontrar� siempre las �ltimas versiones de las traducciones
�oficiales�: www.insflug.org. Aseg�rese de comprobar cu�l es la
�ltima versi�n disponible en el Insflug antes de bajar un documento de
un servidor r�plica.
Adem�s, cuenta con un sistema interactivo de gesti�n de fe de erratas
y sugerencias en l�nea, motor de b�squeda espec�fico, y m�s servicios
en los que estamos trabajando incesantemente.
Se proporciona tambi�n una lista de los servidores r�plica (mirror)
del Insflug m�s cercanos a Vd., e informaci�n relativa a otros
recursos en castellano.
En
http://www.insflug.org/insflug/creditos.php3 cuenta con una
detallada relaci�n de las personas que hacen posible tanto esto como
las traducciones.
�Dir�jase a
http://www.insflug.org/colaboracion/index.php3 si desea
unirse a nosotros!.
�Cartel� Insflug,
[email protected].