Guía completa de GnuPG (GPG) en Linux: cifrado, firmas y gestión de claves

Introducción

En el mundo actual, la protección de la información personal y profesional es una prioridad absoluta. Los sistemas operativos basados en Linux ofrecen una amplia gama de herramientas de seguridad, y entre ellas destaca GnuPG, comúnmente conocido como GPG. Esta implementación libre del estándar OpenPGP permite cifrar, firmar y verificar datos de forma confiable, garantizando confidencialidad, integridad y autenticidad. En este artículo exploraremos paso a paso cómo instalar GPG en distintas distribuciones de Linux, generar un par de claves, cifrar y descifrar archivos, firmar documentos y gestionar nuestro llavero de forma segura. Además, compartiremos buenas prácticas para mantener nuestras claves protegidas y evitar los errores más comunes que pueden comprometer la seguridad.

¿Qué es GnuPG?

GnuPG es una herramienta de cifrado simétrica y asimétrica que cumple con el estándar OpenPGP (RFC 4880). Su objetivo principal es proporcionar privacidad y autenticidad en la comunicación electrónica. Utiliza un sistema de claves públicas y privadas: la clave pública se comparte para cifrar datos o verificar firmas, mientras que la clave privada permanece secreta y se usa para descifrar o crear firmas digitales. Al ser software libre, su código está abierto a auditoría, lo que aumenta la confianza en su seguridad. Además, GPG está disponible en prácticamente todas las distribuciones de Linux y puede integrarse con clientes de correo, gestores de versiones y otros programas que requieran protección de datos.

Instalación en Linux

La mayoría de las distribuciones incluyen GnuPG en sus repositorios oficiales. En Debian, Ubuntu y derivados se instala con:

sudo apt update && sudo apt install gnupg

En Fedora, CentOS y RHEL se usa dnf o yum:

sudo dnf install gnupg2

En Arch Linux y sus derivados:

sudo pacman -S gnupg

Después de la instalación, se puede verificar la versión ejecutando gpg --version. Si se necesita la versión más reciente, se pueden compilar los fuentes desde el sitio oficial de GnuPG, pero para la mayoría de los usuarios los paquetes de la distribución son suficientes y reciben actualizaciones de seguridad oportunas.

Generación de un par de claves

Para crear un nuevo par de claves se ejecuta el asistente interactivo:

gpg --full-generate-key

El programa preguntará el tipo de clave (RSA y RSA es la opción predeterminada), el tamaño (2048 bits es aceptable, pero 4096 bits ofrece mayor seguridad), el período de validez y los datos de identificación (nombre, correo electrónico y comentario). Tras confirmar, se solicita una frase de paso que protege la clave privada en disco. Es fundamental elegir una frase robusta y memorizarla, ya que sin ella no se podrá usar la clave privada. Una vez finalizado, el llavero contiene tanto la clave pública como la privada, accesibles mediante gpg --list-keys y gpg --list-secret-keys.

Cifrado y descifrado de archivos

Para cifrar un archivo destinatario se usa la clave pública de la persona que lo recibirá:

gpg --output archivo.cifrado --encrypt --recipient nombre@dominio.com archivo.txt

El archivo resultante archivo.cifrado solo puede ser descifrado por quien posea la clave privada correspondiente. El descifrado se realiza con:

gpg --output archivo.txt --decrypt archivo.cifrado

Se pedirá la frase de paso de la clave privada. Si se desea cifrar con contraseña simétrica (sin usar claves públicas) se puede usar la opción --symmetric o -c, lo que genera un archivo protegido por una frase de paso que cualquiera que la conozca podrá abrir.

Firmar y verificar documentos

Una firma digital garantiza que el documento no ha sido alterado y confirma la identidad del remitente. Para firmar un archivo se ejecuta:

gpg --output archivo.firmado --sign archivo.txt

Esto crea un archivo binario que contiene tanto el contenido original como la firma. Si se prefiere una firma legible separado, se puede usar la opción --clear-sign:

gpg --clear-sign archivo.txt

El resultado es un archivo archivo.txt.asc que muestra el texto plano seguido de la firma en formato ASCII. Para verificar la firma se ejecuta:

gpg --verify archivo.firmado

o

gpg --verify archivo.txt.asc

GPG comprobará la firma usando la clave pública del firmante y mostrará si es válida o no.

Gestión de claves (exportar, importar, revocar)

Exportar una clave pública para compartirla se hace con:

gpg --armor --export nombre@dominio.com > clavepublica.asc

La opción --armor produce salida en formato ASCII legible. Para importar una clave pública ajena:

gpg --import clavepublica.asc

Del mismo modo, se puede exportar la clave privada (copia de seguridad) usando:

gpg --armor --export-secret-keys nombre@dominio.com > claveprivada.asc

Esta copia debe guardarse en un medio seguro y cifrado, pues quien la obtenga podría suplantar tu identidad. Si se sospecha que una clave ha sido comprometida, se puede revocar generando un certificado de revocación:

gpg --output revocacion.asc --gen-revoke nombre@dominio.com

Luego se importa el certificado al llavero y se publica en los servidores de claves para que otros usuarios dejen de confiar en ella.

Buenas prácticas y consejos de seguridad

  • Utiliza una frase de paso larga y única para proteger tu clave privada; considera usar un gestor de contraseñas.
  • Realiza copias de seguridad de tu llavero en un medio externo cifrado y almacénalo en un lugar seguro.
  • Prefiere claves RSA de 4096 bits o curves ellipticas (Ed25519) si tu versión de GPG las soporta.
  • Verifica siempre la huella (fingerprint) de las claves públicas antes de importarlas o usarlas para cifrar información sensible.
  • Mantén tu sistema y el paquete GnuPG actualizados para beneficiarte de los últimos parches de seguridad.
  • Evita usar la misma clave para múltiples propósitos (por ejemplo, firma y cifrado) si no es necesario; puedes crear subclaves especializadas.
  • Desactiva el almacenamiento en caché de la frase de paso en agentes si trabajas en entornos de alta seguridad.

Siguiendo estas recomendaciones podrás aprovechar al máximo la potencia de GnuPG en Linux, manteniendo tus comunicaciones y archivos protegidos frente a accesos no autorizados y manipulaciones.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol