====== 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 [[usar_tu_casilla_de_correo_con_mutt_en_texto-plano|correo electrónico convencional]]. Pero si adicionalmente utilizas el criptosistema, podrás asegurar el [[enviar_correo_cifrado_con_mutt|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:
* Nombre y apellidos: Fulana Mengana
* Dirección de correo electrónico: fulana@texto-plano.xyz
* Comentario: en la tilde en castellano
Se te indicará:
Está usando el juego de caracteres 'utf-8'.
Ha seleccionado este ID de usuario:
"Fulana Mengana (en la tilde en castellano) "
¿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:
* Enviáselo adjunto por correo electrónico a quien desees;
* Copia este fichero a tu [[caja]] de Texto-plano;
* Cópialo a tu directorio ''~/public_hmtl'' para dejarlo disponible en [[uso de html|tu página web]];
* Cópialo a tu directorio ''~/public_gopher/'' para distribuirlo desde tu [[gopher|gopherhole]];
* Puedes publicarlo en tu [[finger]] de texto-plano;
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 [[validar llaves de terceros|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 [[https://texto-plano.xyz/~peron/inst/pgp/gnupg.html|Uso de correo cifrado con GNUPG]]