  Mutt-i, GnuPG y PGP Como
  Andrs Seco AndresSH@ctv.es y J.Horacio M.G.
  homega@ciberia.es
  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 rpida indi
  cando los posibles problemas que pueden surgir al enviar correo fir
  mado o cifrado para ser ledo por clientes de correo que no se ajustan
  a las especificaciones PGP/MIME definidas en la RFC2015 y por otros
  sistemas operativos. Incluye adems un ejemplo de configuracin de
  procmail para enviar las claves pblicas de forma automtica a peti
  ciones recibidas por correo electrnico, como si de un servidor de
  claves se tratara.
  ______________________________________________________________________

  ndice General:

  1.      Introduccin

  2.      Copyright y descarga de responsabilidad

  3.      Nota sobre el intercambio de correo desde/hacia internet

  4.      Configuracin de mutt

  5.      PGP y GnuPG

  5.1.    PGP2

  5.2.    PGP5

  5.3.    GnuPG

  6.      Integracin de PGP y Mutt

  6.1.    Ficheros de configuracin opcionales

  6.2.    Variables de Configuracin General

  6.3.    Variables de Configuracin para PGP2

  6.4.    Variables de Configuracin para PGP5

  6.5.    Variables de Configuracin para GnuPG

  6.6.    Variables de Configuracin 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.    Edicin del fichero de alias y recarga del mismo

  7.4.    Ms ejemplos de macros

  8.      Algunas recetas para Procmail

  8.1.    Configuracin de Procmail para devolver las claves pblicas
  automticamente

  8.2.    Verificacin y descifrado automticos de mensajes firmados sin
  PGP/MIME

  8.3.    Cambio del tipo MIME para mensajes con claves pblicas sin
  PGP/MIME

  9.      Intercambio de mensajes firmados/cifrados entre diferentes
  clientes de correo y plataformas

  10.     Programas y versiones utilizados

  11.     Ms informacin

  12.     Anexo: El INSFLUG
  ______________________________________________________________________

  1.  Introduccin

  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
  rpida un lector de correo con seguridad de firmas y cifrado digital.

  Para esto se incluirn ficheros de configuracin de ejemplo que
  servirn para la puesta en marcha. Para obtener el mximo rendimiento
  y usar todas las caractersticas de los programas que se utilizarn
  ser necesario leer la documentacin adjunta a cada programa y
  reconfigurar dichos ficheros de configuracin que se incluyen como
  ejemplos.

  Adems, se comentarn algunos problemas derivados de la falta de
  seguimiento de la recomendacin RFC2015 sobre PGP/MIME por parte de
  muchos programas de correo electrnico, tanto en Linux como en otros
  sistemas operativos.

  Ser presentado tambin un ejemplo de configuracin de procmail de
  forma que puedan ser enviadas las claves pblicas de manera automtica
  a la recepcin de mensajes que las soliciten.

  Nos gustara dar las gracias a Roland Rosenfeld roland@spinnaker.de,
  Christophe Pernod xtof.pernod@wanadoo.fr, Denis Alan Hainsworth
  denis@cs.brandeis.edu y Angel Carrasco acarrasco@jet.es por sus
  correcciones y sugerencias.

  2.  Copyright y descarga de responsabilidad

  Este documento es copyright  1999 Andrs Seco y J. Horacio M.G., y es
  un documento libre. Puedes distribuirlo bajo los trminos 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 informacin y otros contenidos en este documento son lo mejor de
  nuestros conocimientos. Sin embargo, hemos podido cometer errores. As
  que deberas determinar si deseas seguir las instrucciones que se
  encuentran en este documento.

  Nadie es responsable de cualquier dao en sus ordenadores y cualquier
  otra prdida por el uso de la informacin contenida aqu.

  LOS AUTORES Y MANTENEDORES NO SON RESPONSABLES DE CUALQUIER DAO
  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
  electrnico entre el equipo local y otros equipos (en red local o en
  internet). Dicho intercambio debe ser realizado mediante programas que
  acten 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 mtodo de envo/recepcin 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> <usuario@dominio.net>
       escribir aqu el texto, y finalizar con un punto en la lnea siguiente

  es que debes tener instalado algn tipo de MTA que se encargue de la
  transferencia de mensajes. En caso contrario, puedes encontrar
  documentacin al respecto en las pginas 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.  Configuracin de mutt

  El siguiente fichero de ejemplo es vlido para comenzar a usar Mutt de
  forma bsica incluyendo caminos para los ficheros de alias, mensajes
  enviados y mensajes postpuestos. Se puede realizar una mayor
  personalizacin 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 <Nombre@dominio.com>
  source =.alias

  Es necesario que exista el directorio ~/Mail, que es el que aparece
  como un signo de igual que en el fichero de configuracin
  ~/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.

  Tambin hay que personalizar la linea my_hdr con el nombre y la
  direccin de correo electrnico adecuados. En el fichero
  ~/Mail/.signature se puede incluir la firma que aparecer en todos los
  mensajes que se enven.

  Este fichero de configuracion puede llegar a hacerse muy grande, por
  lo que es comn separar algunos de sus comandos en ficheros
  diferentes. Por lo pronto, son facilmente separables las lineas de
  configuracin de PGP o GnuPG y las macros de teclado que
  personalicemos. Para ello seria necesario aadir 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 configuracin de PGP o
  GnuPG que ms adelante se comentan.

  Para una informacin ms extensiva y completa sobre el uso y
  configuracin de Mutt, as como de caractersticas 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 pblicas (anillo de claves pblicas) y el fichero con
  las claves privadas (anillo de claves privadas). Conviene probar
  previamente PGP desde la lnea 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 codificacin nuevo, todava en
  desarrollo aunque muy avanzado, de cdigo abierto y libre, en muchos
  aspectos superior a PGP (ver GnuPG mini como en
  http://www.insflug.org/documentos/GPG-Mini-Como/).

  Aclararemos tambin que PGP, al ser un sistema desarrollado en los
  EE.UU., est sujeto a ciertas leyes sobre la exportacin de programas
  que incluyen cdigo criptogrfico;  por esta razn existe una versin
  internacional para casi todas las versiones numricas, 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 configuracin pgp-i.conf y los ficheros con los anillos de
  claves pblicas 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 todava muchos usuarios tienen instalado slo la versin de
  PGP2.

  Para el correcto funcionamiento de PGP5, en el directorio ~/.pgp, se
  encontrarn los anillos de claves pblicas y privadas (pubring.pkr y
  secring.skr respectivamente), as como el fichero de configuracin
  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
  configuracin ~/.pgp/pgp.cfg de PGP5 lo crearemos como un enlace
  simblico al fichero de configuracin ~/.pgp/pgp-i.conf,

       ~/.pgp$ ln -s pgp-i.conf pgp.cfg

  aadiendo las siguientes lneas 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 ningn 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 (adems de que su implementacin y desarrollo es
  principalmente en Linux).

  Las claves generadas por GnuPG son del tipo DSA/ElGamal (Digital
  Signature Algorithm, tambin 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 configuracin
  e interaccin con PGP2 y PGP5).

  6.  Integracin de PGP y Mutt

  La operacin 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 opcin p. Una vez elegida la
  operacin 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 algn destinatario con los que
  tienen clave pblica 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 contrasea de la
  memoria con el juego de teclas <Ctrl>F.  A continuacin repetiremos la
  operacin de enviar el mensaje (y) y tendremos que volver a
  introducir la contrasea.

  Mutt, en este caso, usar PGP/MIME para enviar el mensaje, de modo que
  aparecer un nuevo adjunto al mensaje con la firma (si slo 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
  versin 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 acompaando al mensaje como un
  adjunto, sino que aparezca en el mismo cuerpo del mensaje. Para este
  modo, ver la seccin 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 automticamente. Ver
  la seccin sobre ``recetas para procmail'', en donde se comenta cmo
  cambiar de forma automtica el tipo MIME para los mensajes recibidos
  cifrados o firmados, que no indican su tipo MIME correctamente.

  6.1.  Ficheros de configuracin opcionales

  En las siguientes secciones se habla sobre las modificaciones al
  fichero de configuracin de Mutt para poder usar ``PGP2'', ``PGP5'', y
  ``GnuPG'' con comodidad.

  Para ello se usa un fichero de configuracin llamaremos .gnupgp.mutt
  (el nombre es inventado y le podramos llamar de cualquier otro modo,
  siempre y cuando indiquemos el origen de este fichero de configuracin
  en el fichero de configuracin principal ~/.muttrc.

  Esto se hace incluyendo el origen (dnde est situado) completo del
  fichero de configuracin .gnupgp.mutt, en una lnea al final del
  fichero ~/.muttrc.  El directorio en el que situemos ste u otros
  ficheros opcionales de configuracin puede ser cualquiera, siempre y
  cuando tengamos los permisos correctos de acceso a l (en un captulo
  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 configuracin
  opcional

       source ~/mutt.varios/.gnupgp.mutt

  De este modo Mutt aceptar las variables de configuracin en

  Este sistema es til para evitar tener un fichero de configuracin
  desordenado y demasiado grande, y puede ser usado para poner cualquier
  otro grupo de variables de configuracin 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 configuracin .vimrc distinto al que usamos cuando usemos
  vim sobre la lnea de comandos.  Para ello, copiaremos primero
  ~/.vimrc a nuestro directorio ficticio para ficheros de configuracin
  opcionales ~/mutt.varios/ y le daremos un nombre distinto (vg.
  vim.mutt):

       $ cd /home/usuario
       ~$ cp .vimrc mutt.varios/vim.mutt

  a continuacin cambiaremos las variables de configuracin 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 lnea estamos indicando a Mutt que, en lugar de usar
  su editor interno por defecto, use un editor externo, Vim, con las
  opciones de configuracin que deseamos.

  6.2.  Variables de Configuracin General

  Hay un nmero de variables que nos servirn para el uso de cualquiera
  de los tres sistemas de cifrado pblico con Mutt por igual.  stas
  variables son del tipo booleano, y aceptan las opciones set (activada)
  o unset (desactivada).

  En el fichero de configuracin (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 aclaracin 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 enven
        cifrados
        # (precisa de la variable de configuracin general set
        copy=yes).

     set pgp_replysign
        # al responder a un mensaje firmado, requerir que el mensaje de
        respuesta
        # sea tambin firmado.

     set pgp_replyencrypt
        # al responder a un mensaje cifrado, requerir que nuestra
        respuesta
        # tambin vaya cifrada.

     set pgp_verify_sig=yes
        # queremos que se verifique automticamente las firmas de los
        mensajes
        # entrantes? por supuesto que s!

     set pgp_timeout=<n>
        # eliminar la contrasea 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 podra confundir si tenemos el mismo id de
     usuario
     # para distintas claves.

     set pgp_strict_enc
     # usar codificacin 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 comprobacin 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 especificarn las variables a
  configurar para cada una de las versiones.  La cuarta subseccin
  explica los cambios en las variables en caso de que usemos ms de una
  versin.

  (1) dado que el contnuo 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 pblicas de todos los destinatarios.

  (2) depende del nmero de mensajes que firmemos o descifremos
  generalmente, nos interesar mantener la contrasea en la memoria
  durante ms o menos tiempo.  Esta opcin nos evita que tengamos que
  introducir la contrasea por cada mensaje que firmemos, o por cada
  mensaje cifrado que leamos.  Aviso: mantener la contrasea en la
  memoria es inseguro, especialmente en sistemas conectados a una red.

  (3) esto slo es necesario para la clave con la que hayamos
  configurado para firmar.  Cuando la clave la escojamos desde el men
  de composicin, Mutt se encargar de calcular el algoritmo.

  6.3.  Variables de Configuracin para PGP2

  Para utilizar PGP2 con Mutt-i es necesario aadir las siguientes
  lneas 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, debern existir los ficheros ~/.pgp/pubring.pgp y
  secring.pgp. Ms informacin sobre PGP2 con el comando man pgp.

  6.4.  Variables de Configuracin para PGP5

  Para utilizar PGP5 con Mutt-i es necesario aadir las siguientes
  lneas 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, debern existir los ficheros ~/.pgp/pubring.pkr y
  secring.pkr. Ms informacin sobre PGP 5 con el comando man pgp5.

  6.5.  Variables de Configuracin para GnuPG

  Para utilizar GnuPG con Mutt-i es necesario aadir las siguientes
  lneas 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, debern existir los ficheros ~/.gnupg/pubring.gpg y
  secring.gpg. Ms informacin sobre GnuPG com el comando man gpg.gnupg,
  man gpgm, y man gpg.

  6.6.  Variables de Configuracin Mixta

  En el caso que deseemos tener ms de uno de los tres sistemas a la
  vez, es preciso modificar algunas de las variables que hemos comentado
  anteriormente.  En realidad tan slo se trata de eliminar la
  redundancia en la versin configurada por defecto.

  Si, por ejemplo, decidiramos usar GnuPG como el sistema a utilizar
  por defecto, todas las teclas relacionadas con PGP/GnuPG de Mutt
  llamaran a ste sistema para cualquier operacin de cifrar,
  descifrar, firmar, verificar, etc...
  $set_pgp_default una sla 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 podra quedar
  del siguiente modo:

       set pgp_default_version=gpg     # versin 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 versin que se
       set pgp_send_version=default    # haya configurado por defecto (gpg)

       set pgp_gpg=/usr/bin/gpg        # localizacin 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         # localizacin 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         # localizacin 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 ayudarn a generar firmas
  evitando seguir el estndar 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 electrnico. Aun cuando algunas de estas opciones vienen
  configuradas por defecto, podemos fcilmente cambiarlas o aadir otras
  modificando la configuracin.

  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 comn 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, aadiremos las
  lneas siguientes al fichero ~/mutt.varios/mutt.macros.  Previamente,
  habremos indicado el origen de este fichero de configuracin opcional
  al fichero de configuracin principal .muttrc; ver ``ficheros de
  configuracin 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.  Edicin 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.  Ms 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 configuracin del teclado en Mutt-i
  # copiado, modificado y traducido del original:
  #
  ################################################################
  # The ultimative Key-Bindings for Mutt                         #
  #                                                              #
  # (c) 1997-1999 Roland Rosenfeld <roland@spinnaker.rhein.de>   #
  #                                                              #
  # $ Id: keybind,v 1.36 1999/02/20 19:36:28 roland Exp roland $ #
  ################################################################
  #
  # Para su correcto funcionamiento, aadir al fichero de
  # configuracin ~/.muttrc la lnea:
  # source ~/Mail/.muttrc.macros
  #

  # Generic keybindings
  # (para todos los mens 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 slo funciona desde el men principal (el que nos
  # encontramos nada ms abrir Mutt).  La combinacin de las teclas
  # <CTRL>K nos permite extraer las claves pblicas 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 composicin)
  # Las siguientes operaciones se realizan desde el men de composicin.
  # Esto es, una vez hemos compuesto el mensaje y lo cerramos para
  # enviarlo, justo antes de presionar la tecla "Y" que nos permita
  # pasrselo 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 (codificacin 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 permitirn firmar los mensajes "a la antigua"
  # (Application/PGP):

  macro   compose \CP     "Fgpg --clearsign\ny"

  # A continuacin, <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 aadir ms macros, y algunas otras vienen ya configuradas
  por defecto en nuevas versiones de Mutt.  Algunas otras opciones
  incluyen:

    <CTRL>K (extraer claves pblicas adjuntas a un mensaje)

    <ESC>K (adjuntar una clave pblica a un mensaje)

    <CTRL>F (al usar la contrasea para firmar o descodificar un
     mensaje, sta queda grabada en memoria.  De este modo podemos
     borrar la contrasea 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.  automticamente Configuracin de Procmail para devolver las
  claves pblicas

  Aunque no es el objetivo de este Como, comentaremos que la forma ms
  segura de obtener la clave pblica de una persona es que ella misma
  nos la prova en mano.

  Como en muchas ocasiones este mtodo no es posible (distancia que
  separa a los interesados) las personas se pueden enviar por correo
  electrnico las claves pblicas o buscarlas en un servidor de claves,
  pero ninguno de los mtodos garantiza que la clave obtenida sea
  realmente de quien parece ser su poseedor, a menos que mediante una
  comunicacin de otro tipo que consideremos seguro (buscar en la guia
  de telfonos al propietario y pedirle que nos lea la huella de su
  clave pblica para confirmar que es la misma de la clave que hemos
  obtenido por el metono no seguro).

  Lo que presentamos a continuacin es un ejemplo de receta para
  aadir en .procmailrc del procesador de correo Procmail para devolver
  automticamente su clave pblica al remitente cuando reciba un mensaje
  con un determinado texto en la lnea 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
  pblica 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 lnea 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.  Verificacin y descifrado automticos 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, cul si no?),
  ste nos lo reconoce como tal y comprueba la veracidad de la firma
  siempre que tengamos la clave pblica 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 verificacin, 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 Corporacin <bill@reboot.com>
  Subject: Actualizacin S.O.
  To: Sufrido Usuario <pepe@casa.es>

  Sufrido usuario:

  le comunicamos que puede usted adquirir la ltima actualizacin del
  programa O.E. con la adquisicin de nuestro sistema operativo reboot99
  por el mdico 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 tendramos que guardarlo en un fichero y
  hacerlo desde la lnea de comandos.  Sin embargo, es posible convertir
  estos mensajes con Procmail para que Mutt los reconozca como MIME/PGP.
  Basta con aadir 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 pblicas sin
  PGP/MIME

  Cuando recibes una clave pblica desde un MUA sin soporte PGP/MIME,
  debes salvar la clave en disco y despues insertarla en tu anillo
  pblico de llaves, pero, incluyendo estas lineas en .procmailrc puedes
  realizar la insercin 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 aadian al final del texto que
  deseaban firmar.  Posteriormente, se incluyo el tipo MIME
  application/pgp para indicar que el bloque a continuacin contenia
  firma o cifrado PGP, y finalmente con la especificacin 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 aadidos al principio y al final de PGP.

  La situacin 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
  especificacin 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 indicndonoslo, para incluirlo aqu.

  10.  Programas y versiones utilizados

  Para el desarrollo de esta documentacin hemos utilizado las
  siguientes versiones de mutt:

    Mutt 0.93i - con esta versin 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.  Ms informacin

  La documentacin 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:

    Pgina Oficinal de Mutt - http://www.mutt.org

    Pgina Pricipal de GnuPG - http://www.gnupg.org

    Pgina internacional de PGP - http://www.pgpi.com

    Pgina 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 informacin sobre las RFCs en RFC-INFO@ISI.EDU

  12.  Anexo: El INSFLUG

  El INSFLUG forma parte del grupo internacional Linux Documentation
  Project, encargndose de las traducciones al castellano de los Howtos,
  as como de la produccin de documentos originales en aquellos casos
  en los que no existe anlogo en ingls, centrndose, preferentemente,
  en documentos breves, como los COMOs y PUFs (Preguntas de Uso
  Frecuente, las FAQs. :) ), etc.

  Dirjase a la sede del Insflug para ms informacin al respecto.

  En ella encontrar siempre las ltimas versiones de las traducciones
  oficiales:  www.insflug.org. Asegrese de comprobar cul es la
  ltima versin disponible en el Insflug antes de bajar un documento de
  un servidor rplica.

  Adems, cuenta con un sistema interactivo de gestin de fe de erratas
  y sugerencias en lnea, motor de bsqueda especfico, y ms servicios
  en los que estamos trabajando incesantemente.

  Se proporciona tambin una lista de los servidores rplica (mirror)
  del Insflug ms cercanos a Vd., e informacin relativa a otros
  recursos en castellano.

  En http://www.insflug.org/insflug/creditos.php3 cuenta con una
  detallada relacin de las personas que hacen posible tanto esto como
  las traducciones.

  Dirjase a http://www.insflug.org/colaboracion/index.php3 si desea
  unirse a nosotros!.

  Cartel Insflug, cartel@insflug.org.

