La aplicación GnuPG (GNU Privacy Guard), te permitirá firmar y cifrar digitalmente cualquier archivo, documento o correo electrónico, mediante un sistema de claves públicas.
Éste sistema de claves públicas, consta de una clave pública y de una clave privada.
La clave pública es la que deberás entregar a los demás usuarios para que te puedan enviar archivos, documentos o correos electrónicos firmados o cifrados usando tu identidad.
La clave privada es la que usarás para comprobar y descifrar aquellos archivos, documentos o correos electrónicos que otros usuarios te envíen con tu clave pública.
Como ésta aplicación se encuentra disponible en todas las distribuciones GNU/Linux, sin necesidad de instalar en el sistema paquetes adicionales, pasaré a explicarte brevemente su uso:
Creación de la clave pública y privada
Para la creación de tu clave pública y privada, deberás abrir una terminal e introducir el siguiente comando:
Si es la primera vez que creas éste tipo de claves, se te creará en tu directorio principal la carpeta
'.gnupg', la cual contendrá los archivos
'pubring.gpg',
'secring.gpg',
'gpg.conf' y
'trustdb.gpg'.
La utilidad de los archivos anteriores es la siguiente:
- El archivo 'pubring.gpg', almacena las claves públicas.
- El archivo 'secring.gpg', almacena las claves privadas.
- El archivo 'gpg.conf', almacena la configuración del propio programa.
- El archivo 'trustdb.gpg', almacena la base de datos de confianza.
Lo primero que se te solicitará al ejecutar el comando anterior, es la elección del tipo de clave que deseas emplear (RSA por defecto).
A continuación, se te pedirá el tamaño en bits que tendrá tu clave, que por defecto será de 2048 bits.
Una vez seleccionado el tamaño de la clave, se te solicitará que especifiques su periodo de validez, que por defecto será 0 (nunca caduca).
Una vez hayas elegido el periodo de validez, se te solicitará que introduzcas tu nombre y apellidos, dirección de correo electrónico y un breve comentario, para la creación del identificador de tu clave.
Finalmente, se te pedirá que introduzcas una contraseña para proteger tu clave y dará comienzo el proceso de creación de la misma.
Creación de la clave de revocación
La finalidad de la clave de revocación, es anular aquella clave que ya no deseas seguir utilizando o que sospechas que ha sido comprometida.
Para su generación, deberás ejecutar el siguiente comando:
- $ gpg --output clave-revocación.key --gen-revoke clave-ID
Deberás importar previamente la clave de revocación para poder usarla.
- $ gpg --import clave-revocación.key (solicitará la contraseña de la clave a revocar)
Una vez recovada la clave, no podrás volver a firmar, codificar o verificar, mensajes o archivos que hagan uso de la clave revocada.
Mostrar las claves públicas y privadas disponibles
- $ gpg --list-public-keys
- $ gpg --list-secret-keys
Exportar la clave pública y privada
- $ gpg --armor --output clave_publica.key --export clave-ID
- $ gpg --armor --output clave_privada.key --export-secret-key clave-ID
Si quieres salvar todas tus claves, tan sólo tendrás que copiar el contenido del directorio
'.gnupg' en algún lugar seguro (pendrive) y volver a restaurar su contenido cuando sea necesario.
Importar la clave pública y privada
Para realizar la importación de la clave pública y privada, deberás primero importar la clave pública y después la privada.
- $ gpg --import clave_publica.key
- $ gpg --allow-secret-key-import --import clave_privada.key
Borrar clave pública y privada
Para el borrado tanto de la clave pública como de la privada, deberás borrar antes la clave pública y después la privada, de lo contrario obtendrás un mensaje de error.
- $ gpg --delete-key clave-ID
- $ gpg --delete-secret-key clave-ID
Cifrar y descifrar mensajes
- $ gpg --armor --recipient clave-ID --encrypt mensaje.txt ó
- $ gpg --recipient clave-ID --encrypt mensaje.txt
Si cifras cualquier documento con el parámetro (
--armor), obtendrás un archivo en formato texto con el mensaje cifrado y extensión (
.asc).
Por el contrario, si omites éste parámetro, obtendrás un archivo en formato binario con el mensaje cifrado y extensión (
.gpg).
Para realizar la descodificación de cualquier mensaje o archivo cifrado, se te solicitará la introducción de la contraseña de tu clave privada.
- $ gpg --decrypt mensaje.txt.asc ó
- $ gpg --decrypt mensaje.txt.gpg
Firmar y verificar la firma de mensajes o archivos
- $ gpg --clearsign mensaje.txt ó
- $ gpg --sign archivo.bin
Para realizar la firma y la verificación de mensajes o archivos se te solicitará la introducción de la contraseña de tu clave privada.
Si la firma la realizas con el parámetro (
--clearsign), obtendrás un archivo firmado en formato texto y extensión (
.asc).
Si por el contrario, la firma la realizas con el parámetro (
--sign), obtendrás un archivo firmado en formato binario y extensión (
.gpg).
En la firma de archivos binarios, puedes hacer que ésta se almacene en un archivo a parte y extensión (
.sig), de la siguiente forma:
- $ gpg --detach-sign archivo.binario
Para verificar la integridad de los archivos firmados o encriptados, deberás ejecutar el siguiente comando:
- $ gpg --verify mensaje.txt.asc ó
- $ gpg --verify archivo.binario.sig
Servidores de claves
Si quieres exportar una determinada clave pública a un servidor de claves, para que otros usuarios hagan uso de élla, deberás ejecutar el siguiente comando:
- $ gpg --keyserver nombre_servidor --send-keys clave-ID
Si por el contrario quieres importar una determinada clave pública almacenada en un servidor de claves, deberás ejecutar el siguiente comando:
- $ gpg --keyserver nombre_servidor --recv-keys clave-ID
Por último, si quieres buscar una determinada clave pública en un servidor de claves, deberás ejecutar el siguiente comando:
- $ gpg --keyserver nombre_servidor --search-keys clave-ID
Con ésto doy por concluido, éste pequeño tutorial sobre GnuPG.
Podrás obtener más información sobre el uso de ésta aplicación, mediante la ayuda proporcionada por la propia aplicación o a través de la documentación disponible en la propia página del proyecto GnuPG.