Tabla de Contenidos

Uso de llaves de cifrado GPG

La privacidad es un valor impostergable en un sistema de cómputo. Puedes aprender a cifrar mensajes de correo electrónico en el ambiente Texto-plano.xyz. Para ello debes utilizar el criptosistema GnuPG.

Este criptosistema ofrece un mecanismo de cifrado para mensajes de punto a punto. Cada punto (remitente y receptor) posee dos tipos de clave: una llamada Clave Privada, y otra que se combina con la anterior pero que debe compartirse con el resto de tus destinatarios de correo: la Clave Pública.

En texto-plano, podrás utilizar el programa de correo electrónico Mutt para enviar y recibir correo electrónico convencional. Pero si adicionalmente utilizas el criptosistema, podrás asegurar el envío y recepción de correo cifrado y firmado digitalmente con Mutt.

Sigue este tutorial para poder usar el criptosistema.

1. Crea un par de llaves PGP

En primer lugar, genera el necesario par de llaves (privada y pública) asociadas a tu dirección de correo electrónico. Ingresa el comando:

gpg --full-generate-key

Aparecerá en tu terminal el siguiente diálogo. Completa el nombre y la dirección del correo electrónico:

gpg (GnuPG) 2.2.36; Copyright (C) 2022 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Por favor seleccione tipo de clave deseado:
   (1) RSA y RSA (por defecto)
   (2) DSA y ElGamal
   (3) DSA (sólo firmar)
   (4) RSA (sólo firmar)
  (14) Existing key from card
Su elección: 

Pulsa 1 para indicar tipo de llave RSA y RSA. Cuando se te solicite el tamaño puedes indicar 4096. Si lo deseas, puedes elegir que el par de llaves no caduque nunca (opción 0) y confirma que todo es correcto.

Introduce los datos para identificar la llave, por ejemplo:

Se te indicará:

Está usando el juego de caracteres 'utf-8'.
Ha seleccionado este ID de usuario:
    "Fulana Mengana (en la tilde en castellano) <fulana@texto-plano.xyz>"

¿Cambia (N)ombre, (C)omentario, (D)irección o (V)ale/(S)alir? v

Acepta los cambios presionando la tecla v.

Si estás inaugurando tu criptosistema en el entorno texto-plano, se te solicitará ahora que ingreses ahora una contraseña de criptosistema (y confirmarla), a fin de proteger tu llavero (“Key-Ring”). Naturalmente, si ya hubieses utilizado el criptosistema previamente, se te solicitará ingresar la contraseña del llavero que le introdujiste al momento de su creación.

El Keyring (“llavero”) es el programa almacenamiento del criptosistema, y te permite controlar todas tus acciones de encriptación, de modo que toma nota de la contraseña del llavero y consérvala a en un lugar seguro. Su directorio de acceso exclusivo y reservado es ~/.gnupg/

Una vez concluido se te informará:

gpg: clave XXXXXXXX marcada como de confianza absoluta
gpg: certificado de revocación guardado como ''/home/fulana/.gnupg/openpgp-revocs.d/xxxxxxxxxx.rev''

gpg: clave pública y secreta creadas y firmadas.
pub   rsa4096 aaaa-mm-dd
      Huella de clave = zzzz zzzz zzzz zzzzz zzzz  zzzz zzzz zzzz zzzz zzzz
uid                  Fulana Mengana [fulana@texto-plano.xyz]
sub   rsa3072/ZZZZZZZZ aaaa-mm-dd

2. Comparte tu llave pública PGP con terceros

Quienes deseen descifrar tu correo encriptado deben contar con tu llave pública almacenada en un fichero. Primero deberás exportar una copia de tu cable pública con un comando similar a este:

gpg --export --armor fulana@texto-plano.xyz > ~/fulana_tp_publica.asc

Este ejemplo creará en tu directorio de usuari@ un fichero de llave pública denominado fulana_tp_publica.asc.

Hazlo público de las manera que desees:

Para hacer esto desde la shell, podrías modificar el siguiente bloque de comandos de ejemplo:

cp ~/fulana_tp_publica.asc ~/public_html/ ;
acthtml ;
cp ~/fulana_tp_publica.asc /var/www/caja/$USER/ ;
actcaja ;
cp ~/fulana_tp_publica.asc ~/public_gopher/ ;
cp ~/fulana_tp_publica.asc ~/.pgpkey

También podrías anunciarlo a nuestra comunidad mediante gab, recurriendo a un comando similar a este:

gab -m "Agréguense mi llave pública con: gpg –-import /var/www/caja/$USER/fulana_tp_publica.asc"

3. Agrega a tu criptosistema la llave pública PGP de un tercero

Para poder enviarle correo electrónico cifrado a un tercero, deberás incorporar a tu critosistema la llave pública de dicha persona. La misma tendrá la misma forma que tu propia llave pública: es un fichero .asc, o eventualmente .gpg.

Las llaves públicas suelen dejarse disponibles en un sitio web personal, o incluso puedes solicitarlas al destinatario por medio directo o electrónico - incluso abierto.

Suponiendo que te hacen llegar por correo electrónico no cifrado la llave pública del destinatario pepita@texto-plano.xyz, consistente en un fichero de llave pública denominado pepita_tp.asc, la incorporarás a tu criptosistema con el comando:

gpg –-import pepita_tp.asc

Sólo si la llave está intacta, el sistema la incorporará. En tal caso te devolverá algo como:

gpg: key YYYYYY: Clave pública importada.
gpg: número total procesada: 1
gpg:              importada: 1


4. Revisa las llaves almacenadas en el criptosistema

Podrás revisar las llaves públicas contenidas en tu criptosistema con el comando:

gpg –k

y este informará las llaves públicas de terceros contenidas en tu llavero, de una forma similar a esta:

/home/fulana/.gnupg/pubring.gpg
------------------------------
pub   4096R/YYYYYYY aaaa-mm-dd
uid                  Fulana Mengana
sub   4096R/ZZZZZZ aaaa-mm-dd

pub   2048R/3DE3f869 aaaa-mm-dd
uid                  Pepita TP
sub   2048R/C3CFF358 aaaa-mm-dd

5. Valida las Llaves del Criptosistema

Por favor revisa Cómo validar las llaves de terceros

6. Eliminar llave de terceros

Si opcionalmente deseas remover alguna llave particular de un tercero de tu llavero, utiliza:

gpg --delete-key (id. de llave)

Revisa las llaves del criptosistema para verificar que se haya eliminado.

7. Eliminar llave propia

Solo debes eliminar tu llave privada si estás absolutamente seguro. Te impedirá descifrar mensajes que terceros podrían enviarte utilizando la llave pública asociada a la misma.

Si deseas eliminar tu propia llave privada (y la llave pública asociada, naturalmente), primero lístala con -K (nota que es K mayúscula, en lugar de utilizar -k, que lista las claves públicas solamente):

gpg -K

Tras identificarla, elimínala con:

gpg --delete-secret key (id.de llave privada)

Aportado originalmente por ~peron en Uso de correo cifrado con GNUPG