GNU PGP
Contents
-
GNU PGP
- Generar una llave PGP para firmar
- Identidad de la llave
- Huella digital de la llave
- Generar certificado de revocación
- Exportar llave pública
- Enviar tu llave pública a un servidor
- Importar una llave pública
- Borrar una llave importada
- Firmar una llave pública
- Encriptar un documento
- Desencriptar un documento
Para más información: El GNU Privacy Guard - GnuPG.org (Página Oficial)
Generar una llave PGP para firmar
Corre,
$ gpg --gen-key
Please select what kind of key you want: (1) DSA and Elgamal (default) (2) DSA (sign only) (5) RSA (sign only) Your selection?
Escoge el tipo de llave, (1) por omisión. Escoge (1).
DSA keypair will have 1024 bits. ELG-E keys may be between 1024 and 4096 bits long. What keysize do you want? (2048)
2048 bits por omisión. 2048 bits es suficienciente.
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) Llave no expira, por omisión.
Real name:
Ingresa tu nombre
Email address:
correo electrónico
Comment:
Comentario es opcional.
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?
Ingresa O.
Enter passphrase:
Ingresa una clave. Esta clave debe ser una clave muy segura. Piensa que es la clave que abre la llave.
Identidad de la llave
Para conocer el número de identidad de la llave corre,
$ gpg --list-keys nombre
En nombre puede ser reemplazado por cualquier información asociada a la llave, como nombre, apellido o correo electrónico.
El número se muestra en la línea que empieza con pub,
$ gpg --list-keys Debian Chile pub 1024D/EFD17969 2007-12-25 [expires: 2017-12-22] uid Debian Chile Archive Signing Key <aptmaster@debianchile.org> sub 2048g/B7994FE8 2007-12-25 [expires: 2017-12-22]
La identidad de la llave es el número EFD17969 (un número hexadecimal).
Huella digital de la llave
Toda llave PGP tiene una huella digital única. Para conocer la huella digital de tu llave corre,
$ gpg --fingerprint identidad_de_llave
La huella es la secuencia de números dados en Key fingerprint,
$ gpg --fingerprint EFD17969
pub 1024D/EFD17969 2007-12-25 [expires: 2017-12-22]
Key fingerprint = 31AC 734A 826E 03D4 80B7 0360 2C39 2DFE EFD1 7969
uid Debian Chile Archive Signing Key <aptmaster@debianchile.org>
sub 2048g/B7994FE8 2007-12-25 [expires: 2017-12-22]
Generar certificado de revocación
Para estar preparado cuando llegue el día en que se te olvide la contraseña o te la roben, debes crear un certificado de revocación y no dejar copia de este en tu sistema, así evitamos que un intruso lo ocupe tras conseguir leer el certificado. Lo primero que hacemos es crear uno:
$ gpg --output cert_revocacion.pgp --gen-revoke identidad_de_llave
lo imprimimos y guardamos en un lugar seguro, lejos de nuestro sistema y fuera de peligro. Luego lo borramos en forma "segura":
$ shred -fuz certificado.pgp
con shred "hacemos trozos pequeños" el certificado (machacamos el disco unas 25 veces), las opciones -f fuerza la escritura si es necesario, la opción -z deja con ceros el último machacado, y la opción -u es para borrar el archivo al final del proceso.
Exportar llave pública
Cuando queremos hacer pública nuestra llave pública y así enviarla por correo, colocarla en una página web, etc. :
$ gpg --armor --output llave_publica.pgp --export identidad_de_llave
la opción --armor le indica que se genere en formato ASCII, de lo contrario se genera en formato binario.
Enviar tu llave pública a un servidor
Enviar tu llave pública a un servidor es la forma más fácil y cómoda de publicación:
$ gpg --keyserver pgp.mit.edu --send-key identidad_de_llave
por supuesto que puedes utilizar otros servidores de claves públicas, se ha utilizado pgp.mit.edu únicamente de ejemplo, puedes encontrar una lista de servidores de claves públicas en: PGP: Public Key Servers
Importar una llave pública
Si la llave a importar está en un servidor público, recógela con,
$ gpg --keyserver pgp.mit.edu --recv-keys ID_LLAVE
en dónde ID_LLAVE es el número es la identidad de la llave pública. La llave es importada al llavero. Puedes verla haciendo una lista de las llaves del llavero,
$ gpg --list-public-keys pub 1024D/517D0F0E 2000-10-10 uid Linux Kernel Archives Verification Key <ftpadmin@kernel.org> sub 4096g/E50A8F2A 2000-10-10
Si la llave viene en un archivo, impórtala con,
$ gpg --import llave.pgp
Borrar una llave importada
Para borrar una llave pública importada corre,
$ gpg --delete-key ID_LLAVE
Firmar una llave pública
Una llave pública importada a tu llavero no será tratada como de confianza a no ser que la firmes. Primero busca un método para comprobar que la huella digital de la llave es la misma que la que generó su dueño.
Edita la llave en el llavero,
$ gpg --edit-key ID_LLAVE
Aparece el propmt Command>. Por ejemplo,
$ gpg --edit-key 517D0F0E
pub 1024D/517D0F0E created: 2000-10-10 expires: never usage: SCA
trust: unknown validity: unknown
sub 4096g/E50A8F2A created: 2000-10-10 expires: never usage: E
[ unknown] (1). Linux Kernel Archives Verification Key <ftpadmin@kernel.org>Obtiene la huella digital,
Command> fpr pub 1024D/517D0F0E 2000-10-10 Linux Kernel Archives Verification Key <ftpadmin@kernel.org> Primary key fingerprint: C75D C40A 11D7 AF88 9981 ED5B C86B A06A 517D 0F0E
Comprueba que esa huella corresponde a la llave. Si la llave es de un amigo, pídele la huella por fono u otro medio. Esto porque es absolutamente necesario establecer la relación llave-dueño.
Firma la llave,
Command> sign
Lo que hiciste es firmar la llave importada con tu propia llave. Ahora ambas son de confianza. Guarda la llave modificada,
Command> save
Encriptar un documento
Para encriptar un documento,
$ gpg --output documento.pgp [--armor] --encrypt --recipient ID_LLAVE documento
Solo la llave del receptor puede desencriptar el documento si es que ha importado a su llavero tu llave pública (mediante el archivo de la llave exportada o desde un servidor de llaves PGP públicas). La opción --armor es optativa, solo si quieres que documento.pgp sea un archivo ASCII. El receptor puede tambien puede ser tu llave.
Si deseas puedes borrar el archivo original con shred o wipe para que no quede rastro.
Desencriptar un documento
Para desencriptar un documento encriptado con otra llave, primero importa la llave a tu llavero, luego,
$ gpg [--output documento] --decrypt doccumento.gpg
La opción --output es optativa.