Cuando ya generamos una clave, y el certificado de revocación esta también creado, podemos empezar a jugar un poco y todo comienza con el firmado de clave propias y ajenas (sin firmar las claves públicas de los demás no vamos a poder encriptar datos para estas personas).
Con lo cual lo primero que vamos a necesitar hacer es enviar nuestra clave pública a alquien. Esto se puede hacer de varias formas, podemos tomar el archivo ``pubring.gpg'' y enviarlo por correo electrónico (o algun otro medio), aunque hay que tener en cuenta una cosa antes de enviar por correo electrónico nuestra clave pública, en algunos casos puede ser necesario enviar esta clave en texto plano y no en formato ``binario'' como se encuentra el archivo ``pubring.gpg''. Para hacer exportar nuestra clave pública (o cualquier otra que tengamos en nuestro base de datos de claves públicas) se puede ejecutar el siguiente comando:
La salida de este comando será un choclo de caracteres ASCII algo
incomprensible, pero lo importante de esto es que en ASCII y no formato
binario. Si queremos enviar la salida a un archivo podemos utilizar el
símbolo mayor o la opción --output <archivo> del gpg. Por ejemplo
Este archivo deberíamos enviarselo a quien sea que necesitemos para que lo firme.
Cuando nuestro amigo recibe este comando va a ejecutar los siguientes comando (luego de hablar con nosotros por telefono y verificar que la clave que le enviamos esta ``entera''):
Para verificar que la clave pública que recibimos es la correcta se pueden hacer algunas cosas más, además de hablar por telefono con el dueño, si la persona que nos envió la clave suele publicar correos en internet (listas de correo, news groups, etc.) podríamos ver alguno de estos correos publicado y ver si en la firma de cada correo esta su código de identificación de la clave o su fingerprint. Estos dos datos son útiles para poder identificar una clave pública rapidamente. El fingerprint es una serie de dígitos hexadecimales que esta pensados para decirlos por telefono rápidamente (son 8 grupos de 4 dígitos hexa), el código de la clave pública es un número mucho más chico que identifica una clave.
Si encontramos correos del dueño de esta clave publicados en Internet (digamos que dos o tres en diferentes sitios) podriamos llegar a pensar que estamos seguros que la clave que recibimos es la clave correcta. Imaginate que quien sea que haya modificado la clave pública que recibiste debería también crackear todos los sitios donde el dueño publicó su fingerprint o código de clave y modificar todos estos correos, suena medio loco que alguien tenga la capacidad (y el tiempo) de hacer esto, no?
Bueno, volviendo a la firma de una clave pública ajena .... Una vez que nuestro amigo recibió la clave, la verificó y la importó, ya esta todo listo para que la firme.
El comando que va a ejecutar es el siguiente:
Al ejecutar este comando, nuestro amigo entra en un subshell que le permite hacer varias cosas, entre ellas, firmar claves. Fijate que uno de los argumentos que nuestro amigo le pasó al gpg fue mi dirección de correo, dado que lo que le enviamos fue mi clave pública él debe importar y luego editar las opciones de mi clave pública.
Para firmar la clave lo que él debe ejecutar en este subshell es sign (firmar en inglés), y luego save (guardar en inglés).
La alternativa para hacer esto es (luego de importar la clave, por supuesto) ejecutar:
En cualquiera de las dos formas, el gpg nos preguntará nuestra frase. Si la frase es correcta firmará la clave publica.
Una vez realizado estas acciones nuestro amigo va a poder encriptar datos y enviarmelos a mi (dado que la clave pública que recibió es la mia).
Él deberá hacer lo mismo que hice yo y seguramente yo le devolveré el favor firmando su clave pública.