GNU PGP

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.

GNUpg (última edición 2009-01-30 21:56:22 efectuada por RicardoYanez)