Veamos cómo funciona GPG.
- Necesitaremos un par de claves pública/privada. Para generarlas haremos:
$ gpg --gen-key
La primera vez que lo ejecutemos creará el directorio ~/.gnupg y los archivos:
- ~/.gnupg/gpg.conf: archivo de configuración de GPG.
- ~/.gnupg/pubring.gpg (binario): archivo de claves públicas (anillo).
- ~/.gnupg/secring.gpg (binario): archivo de claves privadas (anillo).
- ~/.gnupg/trustdb.gpg (binario): base de datos de confianza.
A continuación tendremos que responder a una serie de preguntas:
- Tipo de clave
Por favor seleccione tipo de clave deseado: (1) DSA y ElGamal (por defecto) (2) DSA (sólo firmar) (5) RSA (sólo firmar) Su elección:
Seleccionamos el tipo de clave por defecto, 1.
- Longitud de la clave
El par de claves DSA tendrá 1024 bits Las claves ELG-E pueden tener entre 1024 y 4096 bits de longitud ¿De qué tamaño quiere la clave? (2048)
Seleccionamos la longitud por defecto, 2048.
- Caducidad
Especifique el período de validez de la clave. 0= la clave nunca caduca <n>= la clave caduca en n días <n>w= la clave caduca en n semanas <n>m= la clave caduca en n meses <n>y= la clave caduca en n años ¿Validez de la clave (0)?
Seleccionamos un año: 1y.
- Identificador de usuario
Necesita un identificador de usuario para identificar su clave. El programa construye el identificador a partir del Nombre, Comentario y email de esta forma: "Heinrich Heine (Der Dichter) <[email protected]>" Nombre y apellidos: frans berns Email: [email protected] Comentario: francis Ha seleccionado este ID de usuario: "frans berns (francis) <[email protected]>" ¿Cambiar (N)ombre, (C)omentario, (D)irección, (V)ale o (S)alir?
Si está bien pulsamos (V)ale y continuamos.
- Passphrase
Necesita una Frase contraseña para proteger su clave privada Introduzca Frase contraseña: Repita Frase contraseña:
Una vez introducidos todos los datos, generará el par de claves. Durante este proceso GPG recoge datos aleatorios que usará para generar las claves:
++++++++++++++++++ Es necesario generar muchos bytes aleatorios. Es una buena idea realizar alguna otra tarea (trabajar en otra ventana/consola, mover el ratón, usar la red y los discos) durante la generación de números primos. Esto da al generador de números aleatorios mayor oportunidad de recoger suficiente entropía. ++++++++++++++++++
Cuando termine nos mostrará el mensaje final:
~/.gnupg/trustdb.gpg: se ha creado base de datos de confianza. Clave ED4B2ABA marcada como de confianza absoluta. Claves pública y secreta creadas y firmadas. Comprobando base de datos de confianza: 3 dudosas necesarias, 1 completa necesaria. Modelo de confianza PGP: Nivel: 0 Validez: 1 Firmada: 0 Confianza: 0-, 0q, 0n, 0m, 0f, 1u Siguiente comprobación de base de datos de confianza el 2007-04-09 pub 1024D/ED4B2ABA 2006-04-09 [caduca: 2007-04-09] Huella de clave: C8F1 06C9 27C9 C2D1 2205 95F3 14BB 1129 ED4B 2ABA uid frans berns (francis) <[email protected]> sub 2048g/D223B5B2 2006-04-09 [caduca: 2007-04-09]
- Para comprobar si se han generado las claves, las listamos:
- listamos las claves públicas (de momento sólo está la nuestra):
$ gpg --list-keys /home/francis/.gnupg/pubring.gpg -------------------------------- pub 1024D/ED4B2ABA 2006-04-09 [caduca: 2007-04-09] uid frans berns (francis) <[email protected]> sub 2048g/D223B5B2 2006-04-09 [caduca: 2007-04-09]
El UID lo utilizaremos cuando tengamos que seleccionar una clave. El UID de nuestra clave es ED4B2ABA.
- listamos las claves privadas:
$ gpg --list-secret-keys /home/francis/.gnupg/secring.gpg -------------------------------- sec 1024D/ED4B2ABA 2006-04-09 [caduca: 2007-04-09] uid frans berns (francis) <[email protected]> ssb 2048g/D223B5B2 2006-04-09
- listamos las claves públicas (de momento sólo está la nuestra):
- Para conocer el fingerprint de la clave cuyo UID es ED4B2ABA, haremos (si no especificamos
el UID obtendremos los fingerprint de todas las claves):
$ gpg --fingerprint ED4B2ABA Huella de clave: C8F1 06C9 27C9 C2D1 2205 95F3 14BB 1129 ED4B 2ABA
Vemos que el UID de una clave son los últimos 8 caracteres de su fingerprint. El fingerprint lo utilizaremos para comprobar las claves que recibamos antes de certificarlas, y con nuestra clave para dárselo en mano o por teléfono a otros usuarios.
- Podemos editar los parámetros de una clave con el comando:
$ gpg --edit-key ED4B2ABA
Entraremos en modo interactivo, donde disponemos de numerosos comandos. Por ejemplo, para modificar la fecha de caducidad ejecutaremos el comando:
Command> expire
Nos pedirá la passphrase y guardaremos los cambios con:
Command> save
- Para ver los certificados de las claves públicas que tenemos, haremos:
$ gpg --list-sigs /home/francis/.gnupg/pubring.gpg -------------------------------- pub 1024D/ED4B2ABA 2006-04-09 [caduca: 2007-04-09] uid frans berns(francis)<[email protected]> sub 2048g/D223B5B2 2006-04-09 [caduca: 2007-04-09] sig ED4B2ABA 2006-04-09 frans berns(francis)<[email protected]>
Vemos que sólo tiene nuestro certificado.
- Podemos borrar claves:
- para borrar la clave pública cuyo UID es aa8e6a57, haremos:
$ gpg --delete-key aa8e6a57
- para borrar la clave privada cuyo UID es ED4B2ABA, haremos:
$ gpg --delete-secret-key ED4B2ABA
- para borrar la clave pública cuyo UID es aa8e6a57, haremos:
- Una vez que se tiene el sistema funcionando necesita ser mantenido:
- para mantener actualizados los niveles de confianza, haremos:
$ gpg --refresh-keys
- para actualizar las claves del servidor, por si alguién añade un certificado
a una clave y lo envía al servidor, haremos:
$ gpg --check-trustdb
- para mantener actualizados los niveles de confianza, haremos: