24x7 Linux Página personal y profesional HTML 4.01 válido CSS válido
Lector de noticias slrn

Los grupos de noticias de Internet, más conocidos como grupos de news, son foros que tratan una temática concreta y en la que sus participantes intervienen mediante el envío de mensajes similares en formato y normas de "buena educación" a los de correo electrónico. Si bien se puede usar un programa de correo electrónico para enviar y leer mensajes de las news (y de hecho algunos programas son a la vez clientes de correo y de grupos de noticias), lo más habitual es usar programas específicos para dicha tarea.

De entre todos los programas para leer y enviar mensajes a estos foros slrn sobresale por encima de los demás (al menos, en la opinión del que redacta estas líneas). Y no es porque sea el programa más vistoso (es un lector en modo texto), sino porque lo (mucho) que hace lo hace bien, es eficiente y ligero en recursos consumidos, y lo que no hace se puede añadir de manera sencilla, gracias a su arqitectura modular. La página oficial de slrn se encuentra aquí, donde podrá conocer más a fondo el aspecto y funcionalidad del programa.

Sin embargo, este artículo se centra en un aspecto muy concreto: el soporte para PGP y GPG del lector. Ambos estándares (y sus correspondientes implementaciones) proporcionan al usuario la posibilidad de cifrar y firmar principalmente correo electrónico, o cualquier otro tipo de datos, como archivos en general. En el caso de las news el protocolo NNTP (Network News Transport Protocol) usado para el envío de los mensajes a los foros no proporciona mecanismos para identificar al usuario real que lo ha remitido, puesto que al igual que sucede con el correo electrónico las cabeceras de los mensajes son fácilmente falseables.

Lo que permiten PGP y GPG, usando mecanismos criptográficos de clave pública, es la posibilidad de asociar un mensaje o un archivo con el autor real del mismo. Cada persona que quiera dar constancia a los demás de que los mensajes que parecen provenir de él son realmente suyos deber´ generar su clave (en realidad son dos) PGP o GPG (el segundo es un estándar libre similar al primero, que está sujeto a diversas patentes y del que sólo hay implementaciones comerciales) y firmar con ella los mensajes que escriba. Así (obviamos los detalles, que serán motivo de un artículo aparte) los receptores del mensaje podrán asociar el mismo con el firmante, puesto que la firma del mensaje depende de la clave de cada usuario, clave que si no es robada sólo el poseedor legítimo de la misma podrá usar.

De esta manera podremos tener la certeza casi absoluta que un determinado mensaje ha sido escrito por la persona que dice ser. Las suplantaciones de personas en Internet, en foros como las listas de correo, las news o el correo electrónico directo están a la orden del día y no suelen ser precisamente con nobles intenciones. Hay pocas cosas más irritantes que regresar de unas pequeñas vacaciones desconectado de Internet para encontrarse el buzón lleno de mensajes reprob´ndonos nuestra actitud en determinado foro, para acabar descubriendo que algún gracioso nos ha suplantado durante nuestra ausencia y ha echado por tierra nuestra reputación con mensajes del todo inapropiados, y con la única finalidad de causar daño.

Pues bien, slrn, que no tiene soporte nativo para GPG (del que hablaremos en exclusiva de ahora en adelante) permite conectar con una implementación libre de dicho estándar llamada GnuPG (The GNU Privacy Guard). En la página de GnuPG dispone de información interesante al respecto y de enlaces para descargar el programa, en el muy extraño caso de que su sistema operativo no tenga paquetes ya precompilados. Instale este programa en su máquina antes de continuar, puesto que resulta imprescindible.

La extensión de las características de slrn y la conexión con otros programas se realiza mediante scripts en S-Lang. Es un lenguaje sencillo similar al C, pero no debe preocuparse por aprender a usarlo, alguien ya lo ha hecho por usted y mantiene un completo script para usar GPG desde slrn. Se trata de Emmanuele Bassi, que en esta página mantiene esta y otras extensiones para slrn, con instrucciones de instalación.

De todas las extensiones existentes descargue el archivo gnupg.sl, y cópielo en su directorio de configuración personal de slrn, típicamente $HOME/.slrn. El propio archivo descargado contiene la documentación y la información acerca de los cambios de cada nueva versión. Para que el programa lea el archivo con las extensiones para firmar mensajes deberá añadir las siguientes directivas a su archivo de configuración de slrn, típicamente $HOME/.slrnrc:

% Añadido para firmar nuestros mensajes y verificar la firma de los demás
set macro_directory "/home/usuario/.slrn/"
interpret "/home/usuario/.slrn/gnupg.sl"

Si su versión de slrn es igual o inferior a la 0.9.7.2, si además de comprobar las firmas de los dem´s quiere firmar los mensajes que usted envíe, deberá crear un archivo $HOME/.slrn/my-hooks.sl con el siguiente contenido:

public define post_file_hook (file)
{
  gnupg->sign_article (file);
}

Y además deberá añadir al archivo $HOME/.slrnrc, justo a continuación de las líneas ya añadidas al mismo:

interpret "/home/usuario/.slrn/my-hooks.sl"

La configuración de slrn para usar GPG en la creación y comprobación de firmas digitales ya está terminada. Acuda a su grupo de news favorito, y localice un mensaje cualquiera que contenga, al final del mismo, líneas como:

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)

i1HLgcRAnU1Tb87QALi+06YAJ45sD8DBQE9d6tnZXLnG5DFRJmy8MdcsVgCggQk+
O++TW40gBYZ2Wz5lieJ39YY=
=bDSO
-----END PGP SIGNATURE-----

Pulse "V" (tecla V mayúscula) y se lanzará en segundo plano, gracias a las configuraciones llevadas a cabo, el programa gpg que a partir del mensaje tratará de averiguar la clave asociada al usuario, generar la firma del mensaje, y compararla con la añadida al final del mismo. Si ambas firmas coinciden podemos estar bastante seguros de que el autor real del mensaje es quien dice ser, mostrándose en pantalla un mensaje de éxito. Si la firma no coincide, no se pudo encontrar la clave para hacer la verificación, ésta ha expirado o sucede cualquier otro problema se nos notificará en un pop-up.

Para que todo esto funcione es necesario que tenga configurado GPG con un servidor de claves y las opciones necesarias para agregar a su "llavero" todas las claves que vaya encontrando con el uso del programa, por motivos de eficiencia, de manera automática. Para ello deberá editar su archivo de configuración personal $HOME/.gnupg/gpg.conf y tener líneas similares a las siguientes:

# Servidor de claves públicas PGP/GPG
keyserver x-hkp://wwwkeys.eu.pgp.net
# Cuando cualquier programa busque una clave, añádela al llavero
keyserver-options auto-key-retrieve

Si queremos verificar que gpg está correctamente configurado podemos ejecutar desde consola una búsqueda cualquiera de claves, por ejemplo:

usuario@maquina:/tmp$ gpg --verbose --search-keys "Linus Torvalds"
gpg: buscando "Linus Torvalds" en el servidor HKP wwwkeys.eu.pgp.net
Keys 1-3 of 3 for "Linus Torvalds"
(1)     Linus Torvalds <vnixroot@netscape.com>
          1024 bit key CE904A82, created 1999-11-20
(2)     Linus Torvalds <torvalds@transmeta.com>
          1024 bit key 449FA3AB, created 1999-10-04
(3)     Linus Torvalds <Linus.Torvalds@Helsinki.FI>
          1024 bit key A86B35C5, created 1996-06-07
Enter number(s), N)ext, or Q)uit > 

Si sale algo como lo anterior entonces gpg funciona correctamente. En cualquier caso, en la web de GnuPG dispone de abundante documentación para instalar, configurar y usar este programa.

Última modificación: 06-January-2003 13:38:22 -0500

© 2002-2007 José Luis Domingo López. Todos los derechos reservados.
Contacte con el webmaster para informarle de fallos, incorrecciones o sugerencias.
Esta página cumple con los estándares HTML 4.01 y CSS2 del World Wide Web Consortium.