110.3 Lección 2
Versión: |
5.0 |
---|---|
Tema: |
110 Seguridad |
Objetivo: |
110.3 Protección de datos mediante cifrado |
Lección: |
2 de 2 |
Introducción
En la lección anterior aprendimos a utilizar OpenSSH para cifrar las sesiones de inicio de sesión remotas, así como cualquier otro intercambio de información posterior. Puede haber otros escenarios en los que quiera cifrar archivos o correos electrónicos para que lleguen a su destinatario de forma segura y libre de miradas indiscretas. También puede necesitar firmar digitalmente esos archivos o mensajes para evitar que sean manipulados.
Una gran herramienta para este tipo de usos es el GNU Privacy Guard (también conocido como GnuPG o simplemente GPG), que es una implementación libre y de código abierto del sistema propietario Pretty Good Privacy (PGP). GPG utiliza el estándar OpenPGP definido por el OpenPGP Working Group del Internet Engineering Task Force (IETF) en el RFC 4880. En esta lección revisaremos los fundamentos del GNU Privacy Guard.
Configuración básica de GnuPG, uso y revocación
Al igual que con SSH, el mecanismo subyacente a GPG es el de la criptografía asimétrica o criptografía de clave pública. Un usuario genera un par de claves que se compone de una clave privada y una clave pública. Las claves están relacionadas matemáticamente de tal manera que lo que se cifra con una sólo puede ser descifrado por la otra. Para que la comunicación se realice con éxito, el usuario debe enviar su clave pública al destinatario.
Configuración y uso de GnuPG
El comando para trabajar con GPG es gpg
. Puede pasarle una serie de opciones para realizar diferentes tareas. Empecemos por generar un par de claves como usuario carol
. Para ello, utilizaremos el comando gpg --gen-key
:
carol@debian:~$ gpg --gen-key gpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. gpg: directory '/home/carol/.gnupg' created gpg: keybox '/home/carol/.gnupg/pubring.kbx' created Note: Use "gpg --full-generate-key" for a full featured key generation dialog. GnuPG needs to construct a user ID to identify your key. Real name: (...)
Después de informarle (entre otras cosas) que el directorio de configuración ~/.gnupg
y su llavero público ~/.gnugpg/pubring.kbx
han sido creados, gpg
pasa a pedirle que proporcione su nombre real y su dirección de correo electrónico:
(...) Real name: carol Email address: carol@debian You selected this USER-ID: "carol <carol@debian>" Change (N)ame, (E)mail, or (O)kay/(Q)uit?
Si está de acuerdo con el USER-ID
resultante y pulsa O, se le pedirá una frase de contraseña (se recomienda que tenga suficiente complejidad):
┌──────────────────────────────────────────────────────┐ │ Please enter the passphrase to │ │ protect your new key │ │ │ │ Passphrase: │ (...)
Se mostrarán algunos mensajes finales que le informarán sobre la creación de otros archivos, así como de las propias claves, y entonces habrá terminado el proceso de generación de claves:
(...) We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: /home/carol/.gnupg/trustdb.gpg: trustdb created gpg: key 19BBEFD16813034E marked as ultimately trusted gpg: directory '/home/carol/.gnupg/openpgp-revocs.d' created gpg: revocation certificate stored as '/home/carol/.gnupg/openpgp-revocs.d/D18FA0021F644CDAF57FD0F919BBEFD16813034E.rev' public and secret key created and signed. pub rsa3072 2020-07-03 [SC] [expires: 2022-07-03] D18FA0021F644CDAF57FD0F919BBEFD16813034E uid carol <carol@debian> sub rsa3072 2020-07-03 [E] [expires: 2022-07-03]
Ahora puede ver lo que hay dentro del directorio ~/.gnupg
(el directorio de configuración de GPG):
carol@debian:~/.gnupg$ ls -l total 16 drwx------ 2 carol carol 4096 Jul 3 23:34 openpgp-revocs.d drwx------ 2 carol carol 4096 Jul 3 23:34 private-keys-v1.d -rw-r--r-- 1 carol carol 1962 Jul 3 23:34 pubring.kbx -rw------- 1 carol carol 1240 Jul 3 23:34 trustdb.gpg
Expliquemos el uso de cada archivo:
opengp-revocs.d
-
Aquí se guarda el certificado de revocación que se creó junto con el par de claves. Los permisos de este directorio son bastante restrictivos, ya que cualquiera que tenga acceso al certificado podría revocar la clave (más información sobre la revocación de claves en la siguiente subsección).
private-keys-v1.d
-
Este es el directorio que guarda sus claves privadas, por lo que los permisos son restrictivos.
pubring.kbx
-
Este es su llavero público. Almacena sus propias claves públicas, así como cualquier otra importada.
trustdb.gpg
-
La base de datos de confianza. Esto tiene que ver con el concepto de Web of Trust (que está fuera del alcance de esta lección).
Note
|
La llegada de GnuPG 2.1 trajo consigo algunos cambios significativos, como la desaparición de los archivos |
Una vez creado su par de claves, puede ver sus claves públicas con gpg --list-keys
que mostrará el contenido de su llavero público:
carol@debian:~/.gnupg$ gpg --list-keys /home/carol/.gnupg/pubring.kbx ------------------------------ pub rsa3072 2020-07-03 [SC] [expires: 2022-07-03] D18FA0021F644CDAF57FD0F919BBEFD16813034E uid [ultimate] carol <carol@debian> sub rsa3072 2020-07-03 [E] [expires: 2022-07-03]
La cadena hexadecimal D18FA0021F644CDAF57FD0F919BBEFD16813034E
es su huella digital de clave pública.
Note
|
Además del |
Distribución y revocación de claves
Ahora que tiene su clave pública, debe guardarla (es decir, exportarla) en un archivo para ponerla a disposición de sus futuros destinatarios. Ellos podrán utilizarla para encriptar archivos o mensajes destinados a usted (como es el único que posee la clave privada, también será el único capaz de desencriptarlos y leerlos). Del mismo modo, tus destinatarios también la utilizarán para descifrar y verificar sus mensajes/archivos cifrados o firmados. El comando a utilizar es gpg --export
seguido del USER-ID
y una redirección al nombre del archivo de salida que elija:
carol@debian:~/.gnupg$ gpg --export carol > carol.pub.key carol@debian:~/.gnupg$ ls carol.pub.key openpgp-revocs.d private-keys-v1.d pubring.kbx trustdb.gpg
Note
|
Pasando la opción |
Como ya hemos dicho, ahora debe enviar su archivo de clave pública (carol.pub.key
) al destinatario con el que quiere intercambiar información. Por ejemplo, enviemos el archivo de clave pública a ina
en el servidor remoto halof
utilizando scp
(secure copy):
carol@debian:~/.gnupg$ scp carol.pub.key ina@halof:/home/ina/ Enter passphrase for key '/home/carol/.ssh/id_ecdsa': carol.pub.key 100% 1740 775.8KB/s 00:00 carol@debian:~/.gnupg$
ina
está ahora en posesión de carol.pub.key
. La utilizará para encriptar un archivo y enviarlo a carol
en la siguiente sección.
Note
|
Otro medio de distribución de claves públicas es mediante el uso de servidores de claves: sube su clave pública al servidor con el comando |
Terminemos esta sección hablando de la revocación de claves. La revocación de claves debe ser utilizada cuando sus claves privadas han sido comprometidas o retiradas. El primer paso es crear un certificado de revocación pasando a gpg
la opción --gen-revoke
seguida del USER-ID
. Puede preceder a --gen-revoke
con la opción --output
seguida de una especificación de nombre de archivo de destino para guardar el certificado resultante en un archivo (en lugar de imprimirlo en la pantalla del terminal). Los mensajes de salida a lo largo del proceso de revocación son bastante autoexplicativos:
sonya@debian:~/.gnupg$ gpg --output revocation_file.asc --gen-revoke sonya sec rsa3072/0989EB7E7F9F2066 2020-07-03 sonya <sonya@debian> Create a revocation certificate for this key? (y/N) y Please select the reason for the revocation: 0 = No reason specified 1 = Key has been compromised 2 = Key is superseded 3 = Key is no longer used Q = Cancel (Probably you want to select 1 here) Your decision? 1 Enter an optional description; end it with an empty line: > My laptop was stolen. > Reason for revocation: Key has been compromised My laptop was stolen. Is this okay? (y/N) y ASCII armored output forced. Revocation certificate created. Please move it to a medium which you can hide away; if Mallory gets access to this certificate he can use it to make your key unusable. It is smart to print this certificate and store it away, just in case your media become unreadable. But have some caution: The print system of your machine might store the data and make it available to others!
El certificado de revocación se ha guardado en el archivo evocation_file.asc
(asc
para el formato ASCII):
sonya@debian:~/.gnupg$ ls openpgp-revocs.d private-keys-v1.d pubring.kbx revocation_file.asc trustdb.gpg sonya@debian:~/.gnupg$ cat revocation_file.asc -----BEGIN PGP PUBLIC KEY BLOCK----- Comment: This is a revocation certificate iQHDBCABCgAtFiEEiIVjfDnnpieFi0wvnlcN6yLCeHEFAl8ASx4PHQJzdG9sZW4g bGFwdG9wAAoJEJ5XDesiwnhxT9YMAKkjQiMpo9Uyiy9hyvukPPSrLcmtAGLk4pKS pLZfzA5kxa+HPQwBglAEvfNRR6VMxqXUgUGYC/IAyQQM62oNAcY2PCPrxyJNgVF7 8l4mMZKvW++5ikjZwyg6WWV0+w6oroeo9qruJFjcu752p4T+9gsHVa2r+KRqcPQe aZ65sAvsBJlcsUDZqfWUXg2kQp9mNPCdQuqvDaKRgNCHA1zbzNFzXWVd2X5RgFo5 nY+tUP8ZQA9DTQPBLPcggICmfLopMPZYB2bft5geb2mMi2oNpf9CNPdQkdccimNV aRjqdUP9C89PwTafBQkQiONlsR/dWTFcqprG5KOWQPA7xjeMV8wretdEgsyTxqHp v1iRzwjshiJCKBXXvz7wSmQrJ4OfiMDHeS4ipR0AYdO8QCzmOzmcFQKikGSHGMy1 z/YRlttd6NZIKjf1TD0nTrFnRvPdsZOlKYSArbfqNrHRBQkgirOD4JPI1tYKTffq iOeZFx25K+fj2+0AJjvrbe4HDo5m+Q== =umI8 -----END PGP PUBLIC KEY BLOCK-----
Para revocar efectivamente su clave privada, ahora necesita fusionar el certificado con la clave, lo que se hace importando el archivo del certificado de revocación a su llavero:
sonya@debian:~/.gnupg$ gpg --import revocation_file.asc gpg: key 9E570DEB22C27871: "sonya <sonya@debian>" revocation certificate imported gpg: Total number processed: 1 gpg: new key revocations: 1 gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: next trustdb check due at 2022-07-04
Anote sus claves ahora y se le informará sobre su clave revocada:
sonya@debian:~/.gnupg$ gpg --list-keys /home/sonya/.gnupg/pubring.kbx pub rsa3072 2020-07-04 [SC] [revoked: 2020-07-04] 8885637C39E7A627858B4C2F9E570DEB22C27871 uid [ revoked] sonya <sonya@debian>
Por último, pero no por ello menos importante, asegúrese de que la clave revocada esté disponible para cualquier parte que tenga claves públicas asociadas a ella (incluidos los servidores de claves).
Usar GPG para cifrar, descifrar, firmar y verificar archivos
En la sección anterior, carol
envió su clave pública a ina
. La usaremos ahora para discutir cómo GPG puede encriptar, desencriptar, firmar y verificar archivos.
Cifrado y descifrado de archivos
En primer lugar, ina
debe importar la clave pública de carol
(carol.pub.key
) a su llavero para poder empezar a trabajar con ella:
ina@halof:~> gpg --import carol.pub.key gpg: /home/ina/.gnupg/trustdb.gpg: trustdb created gpg: key 19BBEFD16813034E: public key "carol <carol@debian>" imported gpg: Total number processed: 1 gpg: imported: 1 ina@halof:~> gpg --list-keys /home/ina/.gnupg/pubring.kbx ---------------------------- pub rsa3072 2020-07-03 [SC] [expires: 2022-07-03] D18FA0021F644CDAF57FD0F919BBEFD16813034E uid [ unknown] carol <carol@debian> sub rsa3072 2020-07-03 [E] [expires: 2022-07-03]
A continuación creará un archivo escribiendo algún texto en él y luego lo encriptará usando gpg
(como no firmó la clave de carol
, se le preguntará explícitamente si quiere usar esa clave):
ina@halof:~> echo "This is the message ..." > unencrypted-message ina@halof:~> gpg --output encrypted-message --recipient carol --armor --encrypt unencrypted-message gpg: 0227347CC92A5CB1: There is no assurance this key belongs to the named user sub rsa3072/0227347CC92A5CB1 2020-07-03 carol <carol@debian> Primary key fingerprint: D18F A002 1F64 4CDA F57F D0F9 19BB EFD1 6813 034E Subkey fingerprint: 9D89 1BF9 39A4 C130 E44B 1135 0227 347C C92A 5CB1 It is NOT certain that the key belongs to the person named in the user ID. If you really know what you are doing, you may answer the next question with yes. Use this key anyway? (y/N) y
Desglosemos el comando gpg
:
--output encrypted-message
-
Especificación del nombre del archivo para la versión encriptada del archivo original (
mensaje-encriptado
en el ejemplo). --recipient carol
-
Especificación del
ID de usuario
del destinatario (carol
en nuestro ejemplo). Si no se proporciona, GnuPG lo pedirá (a menos que se especifique--default-recipient
). --armor
-
Esta opción produce una salida blindada ASCII, que puede copiarse en un correo electrónico.
--encrypt unencrypted-message
-
Especificación del nombre del archivo original a cifrar.
Ahora puede enviar el mensaje encriptado a carol
en debian
usando scp
:
ina@halof:~> scp encrypted-message carol@debian:/home/carol/ carol@debian's password: encrypted-message 100% 736 1.8MB/s 00:00
Si ahora se conecta como carol
e intenta leer el mensaje encriptado
, confirmará que en realidad está encriptado y, por tanto, es ilegible:
carol@debian:~$ cat encrypted-message -----BEGIN PGP MESSAGE----- hQGMAwInNHzJKlyxAQv/brJ8Ubs/xya35sbv6kdRKm1C7ONLxL3OueWA4mCs0Y/P GBna6ZEUCrMEgl/rCyByj3Yq74kuiTmzxAIRUDdvHfj0TtrOWjVAqIn/fPSfMkjk dTxKo1i55tLJ+sj17dGMZDcNBinBTP4U1atuN71A5w7vH+XpcesRcFQLKiSOmYTt F7SN3/5x5J6io4ISn+b0KbJgiJNNx+Ne/ub4Uzk4NlK7tmBklyC1VRualtxcG7R9 1klBPYSld6fTdDwT1Y4MofpyILAiGMZvUR1RXauEKf7OIzwC5gWU+UQPSgeCdKQu X7QL0ZIBS0Ug2XKrO1k93lmDjf8PWsRIml6n/hNelaOBA3HMP0b6Ozv1gFeEsFvC IxhUYPb+rfuNFTMEB7xIO94AAmWB9N4qknMxdDqNE8WhA728Plw6y8L2ngsplY15 MR4lIFDpljA/CcVh4BXVe9j0TdFWDUkrFMfaIfcPQwKLXEYJp19XYIaaEazkOs5D W4pENN0YOcX0KWyAYX6r0l8BF0rq/HMenQwqAVXMG3s8ATuUOeqjBbR1x1qCvRQP CR/3V73aQwc2j5ioQmhWYpqxiro0yKX2Ar/E6rZyJtJYrq+CUk8O3JoBaudknNFj pwuRwF1amwnSZ/MZ/9kMKQ== =g1jw -----END PGP MESSAGE-----
Sin embargo, como está en posesión de la clave privada, puede descifrar fácilmente el mensaje pasando a gpg
la opción --decrypt
seguida de la ruta al archivo cifrado (se requerirá la frase de contraseña de la clave privada):
carol@debian:~$ gpg --decrypt encrypted-message gpg: encrypted with 3072-bit RSA key, ID 0227347CC92A5CB1, created 2020-07-03 "carol <carol@debian>" This is the message ...
También puede especificar la opción --output
para guardar el mensaje en un nuevo archivo sin cifrar:
carol@debian:~$ gpg --output unencrypted-message --decrypt encrypted-message gpg: encrypted with 3072-bit RSA key, ID 0227347CC92A5CB1, created 2020-07-03 "carol <carol@debian>" carol@debian:~$ cat unencrypted-message This is the message ...
Firma y verificación de archivos
Además de encriptar, GPG también puede utilizarse para firmar archivos. La opción --sign
es relevante aquí. Comencemos creando un nuevo mensaje (message
) y firmándolo con la opción --sign
(se requerirá la frase de contraseña de su clave privada):
carol@debian:~$ echo "This is the message to sign ..." > message carol@debian:~$ gpg --output message.sig --sign message (...)
Desglose del comando gpg
:
--output message
-
Especificación del nombre de la versión firmada del archivo original (
mensaje.sig
en nuestro ejemplo). --sign message
-
Ruta de acceso al archivo original.
Note
|
Con |
A continuación transferiremos el archivo a ina
en halof
usando scp mensaje.sig ina@halof:/home/ina
. De vuelta como ina
en halof
, ahora puede verificarla usando la opción --verify
:
ina@halof:~> gpg --verify message.sig gpg: Signature made Sat 04 jul 2020 14:34:41 CEST gpg: using RSA key D18FA0021F644CDAF57FD0F919BBEFD16813034E gpg: Good signature from "carol <carol@debian>" [unknown] (...)
Si también quiere leer el archivo, tiene que desencriptarlo a un nuevo archivo (mensaje
en nuestro caso) usando la opción --output
:
ina@halof:~> gpg --output message --decrypt message.sig gpg: Signature made Sat 04 jul 2020 14:34:41 CEST gpg: using RSA key D18FA0021F644CDAF57FD0F919BBEFD16813034E gpg: Good signature from "carol <carol@debian>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: D18F A002 1F64 4CDA F57F D0F9 19BB EFD1 6813 034E ina@halof:~> cat message This is the message to sign ...
Agente GPG
Completaremos esta lección tocando brevemente el tema de gpg-agent
. El gpg-agent
es el demonio que gestiona las claves privadas para GPG (se inicia a petición de gpg
). Para ver un resumen de las opciones más útiles, ejecute gpg-agent --help
o gpg-agent -h
:
carol@debian:~$ gpg-agent --help gpg-agent (GnuPG) 2.2.4 libgcrypt 1.8.1 Copyright (C) 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Syntax: gpg-agent [options] [command [args]] Secret key management for GnuPG Options: --daemon run in daemon mode (background) --server run in server mode (foreground) --supervised run in supervised mode -v, --verbose verbose -q, --quiet be somewhat more quiet -s, --sh sh-style command output -c, --csh csh-style command output (...)
Note
|
Para más información, consulte la página man de |
Ejercicios guiados
-
Complete la tabla proporcionando el nombre de archivo correcto:
Descripción Archivo Base de datos de confianza
Directorio de certificados de revocación
Directorio de claves privadas
Lector de claves públicas
-
Responda a las siguientes preguntas:
-
¿Qué tipo de criptografía utiliza GnuPG?
-
¿Cuáles son los dos componentes principales de la criptografía de clave pública?
-
¿Cuál es el
KEY-ID
de la huella digital de la clave pública07A6 5898 2D3A F3DD 43E3 DA95 1F3F 3147 FA7F 54C7
? -
¿Qué método se utiliza para distribuir las claves públicas a nivel global?
-
-
Ponga los siguientes pasos en el orden correcto con respecto a la revocación de la clave privada:
-
Poner la clave revocada a disposición de sus corresponsales.
-
Crear un certificado de revocación.
-
Importar el certificado de revocación a su llavero.
El orden correcto es:
Paso 1:
Paso 2:
Paso 3:
-
-
En cuanto al cifrado de archivos, ¿qué implica la opción
--armor
en el comandogpg --output encrypted-message --recipient carol --armor --encrypt unencrypted-message
?
Ejercicios de exploración
-
La mayoría de las opciones
gpg
tienen una versión larga y otra corta. Complete la tabla con la versión corta correspondiente:Versión larga Versión corta --armor
--output
--recipient
--decrypt
--encrypt
--sign
-
Responda a las siguientes preguntas sobre la exportación de claves:
-
¿Qué comando utilizaría para exportar todas sus claves públicas a un archivo llamado
all.key
? -
¿Qué comando utilizaría para exportar todas sus claves privadas a un archivo llamado
all_private.key
?
-
-
¿Qué opción de
gpg
permite llevar a cabo la mayoría de las tareas relacionadas con la gestión de llaves presentando un menú? -
¿Qué opción de
gpg
permite realizar una firma en texto claro?
Resumen
Esta lección ha cubierto GNU Privacy Guard, una excelente opción para cifrar/descifrar y firmar/verificar digitalmente los archivos. Usted aprendió:
-
Cómo generar un par de claves.
-
Cómo listar las llaves en su llavero.
-
El contenido del directorio
~/.gnupg
. -
Qué son
USER-ID
yKEY-ID
. -
Cómo distribuir las claves públicas a sus corresponsales.
-
Cómo dividir globalmente las claves públicas a través de servidores de claves.
-
Cómo revocar las claves privadas.
-
Cómo encriptar y desencriptar archivos.
-
Cómo firmar y verificar los archivos.
-
Los fundamentos del GPG-Agent.
El siguiente comando fue discutido en esta lección:
gpg
-
Herramienta de cifrado y firma OpenPGP.
Respuestas a los ejercicios guiados
-
Complete la tabla proporcionando el nombre de archivo correcto:
Descripción Archivo Base de datos de confianza
trustdb.gpg
Directorio de certificados de revocación
opengp-revocs.d
Directorio de claves privadas
private-keys-v1.d
Lector de claves públicas
pubring.kbx
-
Responda a las siguientes preguntas:
-
¿Qué tipo de criptografía utiliza GnuPG?
Criptografía de clave pública o asimétrica.
-
¿Cuáles son los dos componentes principales de la criptografía de clave pública?
Las claves pública y privada.
-
¿Cuál es el
KEY-ID
de la huella digital de la clave pública07A6 5898 2D3A F3DD 43E3 DA95 1F3F 3147 FA7F 54C7
?FA7F 54C7
-
¿Qué método se utiliza para distribuir las claves públicas a nivel global?
Key servers.
-
-
Ponga los siguientes pasos en el orden correcto con respecto a la revocación de la clave privada:
-
Poner la clave revocada a disposición de sus corresponsales
-
Crear un certificado de revocación
-
Importar el certificado de revocación a su llavero
El orden correcto es:
Paso 1:
Crear un certificado de revocación
Paso 2:
Importar el certificado de revocación a su llavero
Paso 3:
Poner la clave revocada a disposición de sus corresponsales
-
-
En cuanto al cifrado de archivos, ¿qué implica la opción
--armor
en el comandogpg --output encrypted-message --recipient carol --armor --encrypt unencrypted-message
?Produce una salida blindada ASCII, que permite copiar el archivo cifrado existente resultante en un correo electrónico.
Respuestas a los ejercicios de exploración
-
La mayoría de las opciones
gpg
tienen una versión larga y otra corta. Complete la tabla con la versión corta correspondiente:Versión larga Versión corta --armor
-a
--output
-o
--recipient
-r
--decrypt
-d
--encrypt
-e
--sign
-s
-
Responda a las siguientes preguntas sobre la exportación de claves:
-
¿Qué comando utilizaría para exportar todas sus claves públicas a un archivo llamado
all.key
?gpg --export --output all.key
ogpg --export -o all.key
-
¿Qué comando utilizaría para exportar todas sus claves privadas a un archivo llamado
all_private.key
?gpg --export-secret-keys --output all_private.key
ogpg --export-secret-keys -o all_private.key
(--export-secret-keys
puede ser sustituido por--export-secret-subkeys
con un resultado ligeramente diferente — consulteman pgp
para más información).
-
-
¿Qué opción de
gpg
permite llevar a cabo la mayoría de las tareas relacionadas con la gestión de llaves presentando un menú?--edit-key
-
¿Qué opción de
gpg
permite realizar una firma en texto claro?--clearsign