Página siguiente Página anterior Índice general

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 .gnupgp.mutt, y a continuación indicaremos el origen en el fichero .muttrc con el comando source, del siguiente modo:

source ~/mutt.varios/.gnupgp.mutt

De este modo Mutt aceptará las variables de configuración en .gnupgp.mutt como si estuvieran directamente especificadas en .muttrc.

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 .muttrc para que refleje este cambio:

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="0xABC123D4"

# ¿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)

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...
Para ello debemos definir la variable de configuración $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


Página siguiente Página anterior Índice general