GnuPG/es

This guide will teach Gentoo Linux users the basics of using GnuPG; a tool for secure communication.

Lo que el lector aprenderá de esta guía
Esta guía asume que el lector está familiarizado con la criptografía de clave pública, cifrado y firmas digitales. Si no es el caso, eche un vistazo al manual oficial de GnuPG, en particular al segundo capítulo, y luego vuelva a este artículo.

Esta guía ofrece instrucciones a los usuarios de Gentoo sobre cómo instalar GnuPG, cómo crear un par de claves, cómo agregar claves a un anillo de claves, cómo enviar una clave pública a un servidor de claves y cómo firmar, cifrar y verificar o decodificar tanto los mensajes enviados como los recibidos. Los lectores también aprenderán a cifrar archivos para evitar que otros lean el contenido de los mensajes.

Otro software
En un nivel muy básico, se debe hacer emerge de GnuPG. Actualmente muchas aplicaciones ofrecen algún tipo de soporte para PGP por lo es una buena idea definir la variable USE. Si queremos un cliente de correo que pueda utilizar GnuPG contamos con las siguientes alternativas:
 * PinePGP.
 * Mutt . Un cliente de correo basado en texto pequeño pero muy potente.
 * Thunderbird . El cliente de correo de Mozilla.
 * Evolution . Un cliente similar a Microsoft Outlook de GNOME.
 * KMail . El cliente de correo de KDE.
 * Puede ser interesante instalar KGPG cuando se utiliza el entorno de escritorio KDE. Este pequeño programa permite la generación de pares de claves, importar claves desde ficheros ASCII, firmar las claves importadas y exportar claves entre otras ingeniosas características.

Crear una clave
Para crear una clave, utilice la orden gpg --gen-key. La primera vez que se lanza, se crearán algunos directorios que son esenciales para una operación e implementación correctas de GnuPG, lánzela de nuevo para crear las claves:

En este momento se puede elegir el tipo de clave que quiere usar. La mayoría de los usuarios elegirán la predeterminada RSA y RSA. Lo siguiente a elegir es el tamaño de la clave, recuerde que cuanto mayor sea la clave, mejor, pero no utilice un tamaño superior a 2048 con claves DSA/ElGamal. Normalmente 2048 es más que suficiente para comunicaciones normales a través del correo electrónico.

Después del tamaño viene la fecha de expiración. Cuanto antes sea esta fecha, mejor. Sin embargo, la mayoría de los usuarios usan claves que nunca expiran o tienen una fecha de expiración de dos o tres años.

Ahora es el momento de introducir información personal sobre la clave del usuario. Cuando se envía la clave pública a otros usuarios, es importante escribir una dirección de correo electrónico (contrariamente a una dirección de correo electrónico falsa).

Ahora teclee una contraseña dos veces. Es una buena idea utilizar una contraseña fuerte. Si alguien consigue la clave privada y obtiene la contraseña, podrán suplantar al usuario enviando mensajes firmados en su nombre como si se tratara del usuario legítimo. El usuario malicioso podría engañar a los contactos víctima que creen que los mensajes los envía el usuario legítimo. Esto puede causar problemas muy serios.

A continucación, GnuPG generará una clave. Mover el ratón, navegar por la web o escuchar audio ayudará a acelerar el proceso ya que GnuPG generará datos aleatorios incrementando la seguridad del par de claves.

Generar un certificado de revocación
Después de crear las claves, se debe crear un certificado de revocación. Hacer esto le permite al usuario revocar su clave en caso que algo desagradable ocurra (piense en un usuario con malas intenciones que obtenga el control de la clave o frase de paso).

La orden gpg --list-keys muestra las claves en el llavero de claves públicas. Se puede usar para ver el ID de la clave y poder crear el certificado de revocación. Es buena idea hacer una copia del directorio y del certificado de revocación (en formato armadura ASCII, ) a un medio seguro (un CD-R o una memoria USB que se guarde en un lugar seguro). Recuerde que puede usar para revocar las claves y hacerlas inutilizables en el futuro.

Exportar claves
Para exportar una clave, teclee gpg --armor --output larry.asc --export larry@gentoo.org. Casi siempre podrá utilzar el ID de la clave o algo que la identifique (en este ejemplo hemos usado una dirección de correo electrónico). Larry tiene ahora un archivo que puede enviar a sus amigos, o poner en su sitio web para que otros se comuniquen con él de forma segura.

Importar claves
To add keys to a public keyring the following steps should be taken:
 * 1) Import the key;
 * 2) Check the key fingerprint;
 * 3) After verifying the key fingerprint, validate it.

Ahora agregaremos la clave pública de Luis Pinto (un amigo mio) a nuestro llavero de claves públicas. Despúes de hablar con él por teléfono y de haberle preguntado por su huella digital, comparo esta huella con la salida de la orden fpr. Como la clave es auténtica, la agrego al llavero de claves públicas. En este caso particular, la clave de Luis expira el 2003-12-01 entonces se me preguntará si quiero que mi firma en su clave expire en el mismo día.

Enviar claves a los servidores de claves
Ahora que se ha generado la clave, probablemente sea buena idea enviarla a un servidor de claves. Hay un montón de servidores de claves en el mundo y muchos de ellos intercambian claves entre sí. En el siguiente ejemplo, vamos a enviar la clave de la vaca Larry al servidor keys.gnupg.net. El envío de claves se hace mediante HTTP, por lo que si se necesita usar un proxy para el tráfico HTTP, no se debe olvidar configurarlo (export http_proxy= http://maquina_proxy:puerto/ ). La orden para enviar la clave es: gpg --keyserver keys.gnupg.net --keyserver-options honor-http-proxy --send-key 75447B14 donde  es el ID de la clave. Si no se necesita un proxy HTTP se puede quitar la opción.

También es buena idea enviar al servidor las claves de otras personas que Larry ha firmado. Podríamos enviar la clave de Luis Pinto al servidor. De esta forma alguien que confía en la clave de Larry puede usar la firma que ha puesto ahí para confiar en la clave de Luis.

Obtener claves desde los servidores de claves
Ahora buscaremos la clave de Gustavo Felisberto y agregarla al llavero de claves de la vaca Larry (solo en el caso que no se haya enterado que Gustavo Felisberto es la persona que escribió esta guía :&#41;).

Echando un vistazo a la respuesta del servidor, es posible comprobar que se han enviado pocas claves, sin embargo solo se utiliza. Ahora la vaca Larry puede obtener la clave y firmala si confía en su procedencia.

¿Qué es un Agente GPG?
Hay casos cuando se está trabajando con ciertas aplicaciones donde se usa la clave GPG muy frecuentemente, lo que significa se debe teclear la contraseña frecuentemente. En el pasado, muchas aplicaciones ofrececían un mecanismo de cacheo de la contraseña. Esto hace más fácil la vida de los usuarios ya que las contraseñas se introducían de forma automática. Sin embargo, inhabilitaba el poder compartir esta caché con otros programas (¿Sería esto seguro?) y forzaba a las aplicaciones a reinventar la rueda una y otra vez.

Un agente GPG es una aplicación no incluida en GPG que se utiliza para mantener en caché la contraseña de forma estándar y segura. Permite a las aplicaciones usar GPG de forma concurrente: si teclea la contraseña mientras trabaja en una aplicación, otra puede trabajar con GPG sin pedir reiteradamente la contraseña para acceder a la clave, siempre y cuando el se configure correctamente el agente GPG.

Gentoo proporciona algunas aplicaciones de agente GPG. El paquete se puede considerar como referencia, y será la opción principal en este artículo.

Configurar gpg-agent y pinentry
GnuPG incluye gpg-agent. Pinentry es una herramienta de ayuda que es utilizada por gpg-agent para solicitar la contraseña en una ventana gráfica. Se puede utilizar de tres formas: Puede mostrar una ventana utilizando GTK+, QT, o la librerías curses (dependiendo de los ajustes USE definidos en ).

Si se instaló con más de un tipo de gestión de ventana, es posible elegir entre las ventanas utilizando la orden eselect-pinentry</tt>:

A continuación, cree un archivo llamado e introduzca las siguientes líneas que definen el tiempo de espera por defecto para mantener al contraseña (por ejemplo, 30 minutos) y la aplicación que se llamará cuando se recupere la contraseña por primera vez (por ejemplo, la versión GTK+ de Pinentry).

Ahora configure GnuPG para que use un agente cuando sea conveniente. Edite y agregue la siguiente línea:

Ahora el sistema está (casi) listo para usar el agente GPG.

Iniciar automáticamente el agente GPG
Si se utiliza KDE como entorno de escritorio, se debe editar el fichero (para todo el sistema) o  (para el usuario local). Para que KDE inicie automáticamente el agente GPG se debe añadir la siguiente orden al fichero adecuado a nuestras preferencias.

Además, elimine los comentarios de las siguientes líneas en  (para todo el sistema) o añádalo a  (para el usuario local):

Cuando se utiliza un escritorio distinto a KDE, se debe poner esa línea (la misma que se menciona arriba) en el fichero (si se usa la orden startx</tt>) para invocar el GUI o el fichero  (si se usa XDM, GDM, KDM, ...).

Cifrar y firmar
Supongamos que Larry tiene un archivo que quiere enviar a Luis. Larry puede cifrarlo, firmarlo, o cifrarlo y firmarlo. Cifrarlo significa que solo Luis podrá abrirlo. La firma le indica a Luis que el archivó realmente lo creó Larry.

Las tres órdenes siguientes harán solo eso: cifrar, firmar y cifrar/firmar.

Esto creará archivos binarios. Cuando se quieren crear archivos ASCII, únicamente se agrega una opción  al principio de la orden.

Descifrar y verificar firmas
Suponga que Larry ha recibido un archivo cifrado dirigido a ella. La orden utilizada para descifrarlo es gpg --output document --decrypt documento_cifrado.gpg</tt>. Esto descifrará el documento y verificará la firma (si es que hay una).

Cifrar y descifrar sin claves
Es posible cifrar archivos usando contraseñas en lugar de claves. La contraseña funcionará como la clave y se utilizará como cifrado simétrico. Se puede cifrar el archivo con gpg --symmetric</tt>, el descifrado usa la misma orden como se ha mencionado anteriormente.

GnuPG le pedirá una una contraseña y su verificación.

Características avanzadas
Hay algunas características avanzadas agradables en GnuPG. Para encontrarlas, abra el archivo

Busque las dos líneas anteriores y elimine los comentarios. Con estas modificaciones realizadas, cada vez que GnuPG necesite comprobar una firma y no encuentre la clave pública en el llavero de claves local, contactará con el servidor de claves en keys.gnupg.net e intentará obtenerla la clave pública del servidor.

Otra orden interesante es gpg --refresh-keys</tt>. Ésta contactará con el servidor de claves definido en el fichero de configuración y refrescará las claves públicas del llavero. Puede buscar claves revocadas, nuevos IDs y nuevas firmas en las claves. Es prudente lanzar esta orden una o dos veces al mes, ya que si un usuario revoca sus claves esto nos puede indicar que ya no se puede confiar en ellas.

Acerca de las firmas en los correos electrónicos
El 95% del tiempo GnuPG se utiliza para el firmado y cifrado de mensajes de correo electrónico o para leer mensajes firmados y cifrados.

Hay dos formas de firmar o cifrar un correo electrónico con GnuPG, la antigua y nueva. En la antigua, los mensajes aparecían en texto plano sin formato posible y los archivos adjuntos estaban sin firmar o sin cifrar, a continuación se muestra un ejemplo de un mensaje firmado a la antigua:

Mensajes como éste no son buenos en el mundo actual, en el que hay hemosas interfaces gráficas y lectores de correo que comprenden HTML.

Para solucionar esto se creó una extensión a MIME (Extensiones de Correo de Internet Multipropósito). Esto añade un campo al mensaje de correo electrónico que notifica al programa lector de correo que el contenido completo del mensaje está firmado o cifrado. El problema es que no todos los lectores de correo soportan estas características. Algunos incluso desordenan el contenido (el programa Microsoft Outlook es famoso por no funcionar bien con esto).

Kgpg
Kgpg es un fantástico GUI para GnuPG. La ventana principal ofrece un área para pegar el texto que se desea firmar o cifrar, la forma opuesta también es correcta: Se puede introducir también el texto en formato armadura ASCII que se desea descrifrar.

Desde la ventana principal se puede descifrar texto (se necesita la contraseña), cifrar ficheros y firmar texto pegado.

Seahorse
Seahorse pretende ser un interfaz GUI de GnuPG para el escritorio Gnome. El software ha evolucionado rápido, pero aún carece de muchas características importantes que se pueden encontrar en Kgpg o en la versión de línea de órdenes.

KMail
Si se ha definido el ajuste USE, KMail se compilará con soporte gpg y podrá cifrar y descifrar mensajes de correo electrónico PGP en línea así como cifrar mensajes OpenPGP/MIME. Para descifrar mensajes OpenPGP/MIME (la mayoría de los usuarios lo querrán) se necesita tener corriendo un agente GPG.

Para verificar si KMail está configurado adecuadamente, vaya a. Se debería listar un entorno basado en GpgME y la casilla OpenPGP debería estar marcada. Si está listada pero en color gris, haga clic en. Si el entorno permanece en color gris esto indica que KMail no está funcionando correctamente.

Cuando no se pierda el control de KMail, lea la official página PGP de KMail para obtener más información.

Claws-Mail
Este lector de correo electrónico es muy rápido con buzones de correo grandes, tiene todas las buenas características que uno quiere en un programa de este tipo y funciona bastante bien con GPG. El único problema es que no funciona con las firmas PGP antiguas, así que cuando reciba correos de ese tipo tendrá que comprobar las firmas manualmente.

Para usar una clave GPG con Claws-Mail vaya a. Una vez allí, elija qué clave va a utilizar. Probablemente la mayoría de los usuarios podrán trabajar con la clave por defecto.

Algunos problemas
He tenido algunos problemas con fotos en las claves. Verifique la versión que está usando. Si tiene la versión GnuPG 1.2.1-r1 o mayor probablemente no tenga problemas, puede tener problemas con versiones más antiguas. A la mayoría de los servidores de claves tampoco le gustan mucho las claves con fotos, por lo que es mejor no añadir fotos.

Las últimas versiones de GnuPG no parecen funcionar con la orden gpg --send-keys</tt> que se usó para enviar todas las claves del llavero al servidor de claves.

¿Qué no se ha incluido aquí?
La herramienta gpg</tt> es muy compleja, permite al usuario hacer mucho más de lo que se ha cubierto aquí. Este documento está indicado para usuarios novatos en GnuPG. Para más información, eche un vistazo al sitio web oficial de GnuPG.

Este artículo no cubre herramientas como pgp4pine</tt>, gpgpine</tt>, evolution</tt> ni herramientas GPG para Windows.

Créditos
El Manual GnuPG de John Michael Ashley es un buen libro para principiantes.

Swift (Sven Vermeulen) por animarme a reescribir esta guía.

A todos los miembros del equipo #gentoo-doc, tíos, moláis.

Gracias a Tiago Serra por apoyarme en el estudio de la privacidad.