Para poder comunicarse con otros, el usuario debe intercambiar las claves
públicas.
Para obtener una lista de las claves en el fichero («anillo») de
claves públicas, se puede usar la opción de la línea de órdenes --list-keys.
javier:~$ gpg --list-keys
/home/javier/.gnupg/pubring.gpg
--------------------------------
pub 1024D/D58711B7 1999-09-24 Javier (Paramo S.L.) <javier@casa.es>
sub 1024g/92F6C9E3 1999-09-24 |
Para poder enviar una clave pública a un interlocutor, antes hay que
exportarla. Para ello se usará la opción de la línea de órdenes --export.
Es necesario un argumento adicional para poder identificar la clave pública
que se va a exportar.
Como en la opción anterior --gen-revoke, hay que usar el
identificador de clave o cualquier parte del identificador de usuario para
identificar la clave que se desea exportar.
javier:~$ gpg --output javi.gpg --export javier@casa.es |
La clave se exporta en formato binario, y esto puede no ser conveniente
cuando se envía la clave por correo electrónico o se publica en una página
web.
Por tanto, GnuPG ofrece una opción de la línea de órdenes --armor[1]
que fuerza que la salida de la orden sea generada en formato armadura-ASCII,
parecido a los documentos codificados con uuencode.
Por regla general, cualquier salida de una orden de GnuPG, v.g.. claves,
documentos cifrados y firmas, pueden ir en formato armadura-ASCII añadiendo a
la orden la opción --armor.
javier:~$ gpg --armor --output javi.asc --export javier@casa.es
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v0.9.8 (GNU/Linux)
Comment: For info see http://www.gnupg.org
[...]
-----END PGP PUBLIC KEY BLOCK----- |
Se puede añadir una clave pública al anillo de claves públicas mediante la
opción --import.
javier:~$ gpg --import arancha.gpg
gpg: key B63E132C: public key imported
gpg: Total number processed: 1
gpg: imported: 1
javier:~$ gpg --list-keys
/home/javier/.gnupg/pubring.gpg
--------------------------------
pub 1024D/D58711B7 1999-09-24 Javier (Paramo S.L.) <javier@casa.es>
sub 1024g/92F6C9E3 1999-09-24
pub 1024D/B63E132C 1999-09-24 Aranzazu (A.G.deZ.) <arancha@nav.es>
sub 1024g/581A915F 1999-09-24 |
Una vez que la clave haya sido importada, es necesario validarla.
GnuPG usa un potente y flexible modelo de confianza que no requiere que el
usuario dé validez personalmente a cada clave que importe.
Sin embargo, algunas claves pueden necesitar que el usuario les dé validez de
forma personal.
Una clave se valida verificando la huella digital de la clave, y firmando
dicha clave para certificar su validez.
La huella digital se puede ver con la opción de la línea de órdenes
--fingerprint, pero para
certificar la clave hay que editarla.
javier:~$ gpg --edit-key arancha@nav.es
pub 1024D/B63E132C created: 1999-09-24 expires: never trust: -/q
sub 1024g/581A915F created: 1999-09-24 expires: never
(1) Aranzazu (A.G.deZ.) <arancha@nav.es>
Command> fpr
pub 1024D/B63E132C 1999-09-24 Aranzazu (A.G.deZ.) <arancha@nav.es>
Fingerprint: 4203 82E2 448C BD30 A36A 9644 0612 8A0F B63E 132C |
La verificación de las claves es un punto débil en criptografía de clave
pública, por lo tanto el usuario debe asegurarse de que la huella digital es
correcta.
Al mostrar una huella digital, ésta debería comprobarse con la clave de su
propietario.
Esto puede hacerse en persona o por teléfono, o por medio de otras maneras,
siempre y cuando el usuario pueda garantizar que la persona con la que se
está comunicando sea el auténtico propietario de la clave.
Una vez verificada, el usuario puede firmar la clave para validarla.
Command> sign
pub 1024D/B63E132C created: 1999-09-24 expires: never trust: -/q
Fingerprint: 4203 82E2 448C BD30 A36A 9644 0612 8A0F B63E 132C
Aranzazu (A.G.deZ.) <arancha@nav.es>
Are you really sure that you want to sign this key
with your key: "Javier (Paramo S.L.) <javier@casa.es>"
Really sign? y
You need a passphrase to unlock the secret key for
user: "Javier (Paramo S.L.) <javier@casa.es>"
1024-bit DSA key, ID D58711B7, created 1999-09-24
Enter passphrase: |
Una vez firmada, el usuario puede comprobar la clave para obtener un listado
de las firmas que lleva y para ver la firma que le acaba de añadir.
Cada identificador de usuario tendrá una o más autofirmas, así como una
firma por cada usuario que haya validado la clave en cuestión.
Command> check
uid Aranzazu (A.G.deZ.) <arancha@nav.es>
sig! B63E132C 1999-09-24 [self-signature]
sig! D58711B7 1999-09-24 Javier (Paramo S.L.) <javier@casa.es>
Command> quit |