GnuPG Grupos de Firmas (Keysigning Party) COMO

V. Alex Brennen (vab@cryptnet.net)

v1.0.8, 09 de Mayo de 2003


Este documento describe el protocolo y los métodos a seguir para mantener y participar en un Grupo de Firmas utilizando la implementación de GNU PGP, GnuPG. Se explican los protocolos de firmado, respuestas a las preguntas más frecuentes y como crear un buen par de llaves para que otros las firmen.

1. Prólogo del Grupo de Firmas

2. Organizando el Grupo

3. Participando en el Grupo

4. Glosario

5. Información Relevante y otras fuentes

6. Sobre este documento


1. Prólogo del Grupo de Firmas

1.1 Qué es exactamente un Grupo de Firmas?

Un Grupo de Firmas es la forma de reunir a personas que utilizan sistemas criptográficos tipo PGP con el propósito de permitir a dichas personas el firmado mútuo. Los Grupos de Firmas sirven para extender la confianza por la red. También los grupos de Firmas son una gran escusa para discutir temas políticos o sociales bajo una fuertes medidas de seguridad criptográfica, libertades individuales, soberanías e incluso implementar tecnologías criptográficas o posibles trabajos de software criptográfico gratuito.

1.2 Qué es una Llave firmada?

El Firmado de llaves es el acto de firmar digitalmente una llave pública y un id asociado con dicha llave. La Firma nos sirve para verificar que el id y la llave pública pertenecen realmente a la entidad que aparece en la firma que representa esa llave.

Cada uno puede firmar su propia llave pública y los id asociados a ella, o otras entidades y asociarlas a la llave pública.

En esencia, las firmas validan las llaves públicas. Es una forma de validar una llave pública y una identidad gracias a una tercera parte. Esta es la forma en la cuál las firmas crean un sistema de confianza.

1.3 Qué es un sistema de confianza?

Un sistema de confianza es el término utilizado para describir la relación de confianza entre un grupo de firmas. La firma es un enlace, o una ramificación, en el sistema de firmas de confianza. Estos enlaces son llamados Vias de confianza (Trust Paths). Las Vías de Confianza pueden ser bidireccionales o de una única dirección. El ideal de un sistema de confianza es que cada uno esté conectado de forma bidireccional con los demás. De hecho, cada uno confia en que cada llave pertence a su propietario legítimo. El sistema de confianza es la suma de la confianza de todos las vías de confianza, o enlaces, entre todas las firmas participantes. Aquí tienes un ejemplo visual de un sistema de confianza.

1.4 Puedes darme un ejemplo aplicativo de llaves firmadas?

Como ejemplo podemos explicar que Alicia y Benito crean sus propias llaves con GPG y firmadas en un Grupo de Firmas. En el Grupo, Alicia y Benito verifican otras llaves y luego las firman. GPG, por defecto, firma de forma automáticamente la llave pública asociada a la llave privada cuando se crea. Entonces Alicia y Benito tienen como mínimo dos firmas validando sus llaves. La llave de Alicia ha sido firma por ella misma y por la firma de Benito, mientras que la llave pública de Benito está firmada por él mismo y por Alicia.

En un futuro, Alicia y Benito conocen a Carmen. Carmen crea un par de llaves y les dice a Alicia y a Benito que les enviará su llave pública. Pero a Alicia no le gusta Carmen y no quiere que Benito intercambie comunicaciones cifrada con ella. Ambas, Alicia y Carmen, crean nuevas llaves que dicen ser de Carmen y ambas se la envia a Benito. Ambas llaves tienen una firma, la firma asociada a la llave privada. Benito no sabe cuál es realmente la llave de Carmen, pero ésta se entera de que Benito tiene dos llaves suyas y sospecha de Alicia. Carmen, ahora enfadada, quiere obtener información que utilizar contra Alicia y para obtener dicha información Carmen debe comprometer las comunicaciones entre Alicia y Benito. Para hacerlo, Carmen decide falser un correo hacia Benito diciendo que ella es Alicia y que ha creado una nueva Llave Pública. En el correo, Carmen incluye la "nueva" llave de Alicia (que en realidad es la falsa que ha generado Carmen). Sin embargo Benito está seguro de que es un truco, porque Benito tiene dos llaves de Alicia, una de las cuales ha sido firmada por multiples personas (él mismo y Alicia) verificando que proviene de Alicia, mientras que la otra llave (la falsa de Carmen) sólo tiene su propia firma.

Este ejemplo tan sencillo puede complicarse muchisimo más. Puedes leer más documentación sobre PGP o un buen libro de PKI para ejemplos más detallados. El ejemplo explica claramente las bases del firmado y su importancia. Carmen no podrá introducir su falsa llave de Alicia por que existe un sistema de confianza entre Benito y Alicia.

Sin embargo, las firmas y los sistemas de confianza no garantizan la credibilidad de las llaves. Por ejemplo, cuando Benito y Alicia conocieron por primera vez a Carmen, esta traía a un amigo consigo: David. David tenia creadas unas llaves falsas para Alicia y Benito, firmadas por él mismo y por las llaves falsas resultando que cada firma poseía tres firmas y se las había enviado a Carmen. Carmen posee una serie de falsas firmas. Como las firmas pueden ayudar a Carmen a resistir un ataque? Bien, hay que decir que todas las firmas que la gente intercambia existen en un servidor de llaves público. Si Carmen hubiese buscado en el servidor de llaves las llaves de Alicia y Benito, encontraría dos pares de llaves para Alicia y para Benito. Si Alicia y Benito recopilaron veinte firmas en el Grupo de Firmas es obvio que Carmen podría confiar en las llaves con mayor cantidad de firmas que no en las llaves con sólo tres firmas. Carmen debería sopechar algo más sobre la existencia de esas llaves públicas, podría sospechar de las fechas de generación y del sistema de confianza de dichas llaves. Las veinte llaves del Grupo de Firmas han sido firmadas veinte o más veces en diferentes periodos de tiempos, muchas de ellas firmadas por Alicia, Benito y por otras personas. Ese no sería el caso si David hubiese generado veinte falsas llaves con un falsa confianza.

1.5 Por qué debo firmar mi llave en grupo

Existen tres razones principales para tener tantas firmas como se pueda.

La primera y la más importante, debes tener la mayor cantidad de firmas para expandir tus vías de confianza. Cuanto más profundo y extrechamente interconectado sea el sistema de confianza, más difícil será comprometerlo. Esto tiene un significado especial para Free Software Community (Comunidad de Software Libre), sean desarrolladores o usuarios. Los miembros de esta comunidad delegan sobre la tecnología criptográfica PGP la protección e integridad de sus paquetes de software, avisos de seguridad y anuncios. La fuerza y robustez del sistema de confianza es directamente proporcional a la fuerza de protección que PGP provee a la comunidad.

La segunda razón es que los grupos de Firmas ayudan a otras personas a integrarse dentro de la cultura de las seguridad y les anima a adquirir conocimientos sobre PGP y otras tecnologias de criptografía. Para conseguir toda la fuerza de la criptografía la gente debe usarla y usarla correctamente.

Finalmente, los grupos de Firmas ayudan a construir comunidades. Ayudan a juntar nuevos conocimientos y discusiones importantes sobre libertades civiles, cripto-derechos y regulación de internet. La discusión es importante por que no sólo es el primer paso, pero es el paso antes de la acción. Ahora que estoy escribiendo este artículo no existen sistemas de seguridad demasiado complejos en el mundo. Si trabajas para construir un sistema de seguridad en tu localidad, es muy probable que esos primeros participantes sean los líderes asentando las bases de internet en su comunidad. Ellos son los individuos que podrán escoger construir el sistema criptográfico seguro y sus protocolos dentro de la infraestructura local, si pueden escoger. La integración de sistemas y protocolos pueden transformar sistemas como el Carnivore del FBI en inservibles.


2. Organizando el Grupo

2.1 El Coordinador

No es difícil organizar y coordinar un Grupo de Firmas. Sin embargo a parte de las tareas normales de invitar a la gente, seleccionar un lugar y una fecha, el coordinador tiene otras tareas claves específicas a su responsabilidad. Eso, normalmente, incluye el suministro de una lista de llaves para cada participante y una determinación de la estructura del Grupo.

2.2 Como debe de estar estructurado el Grupo?

Hay dos formas de conducir un Grupo de Firmas de forma Estructurada -- de forma centralizada o de forma descentralizada. La mejor forma de determinar como hacerlo es dependiendo del número de participantes y la atmósfera del local donde se lleva a cabo la Fiesta. Los requisitos básicos del Grupo son que los participantes se verifiquen unos a otros las llaves y las identidades. Dados estos resquisitos básicos el coordinador puede introducir algunas variaciones a estos dos tipos.

Un Grupo centralizada es un asunto más organizado donde se trabaja bien con un grupo pequeño o medio de personas. Los participantes envian la información de sus llave pública al coordinador quién las anota en una lista. Cada participante, tal como van llegando al Grupo, recibirá una copia de la lista, reunidos todos, cada participante será llamado por el cordinador.
El particiapante comprobará que los datos son correctos respecto a la lista dada por el coordinador. Si el participante está seguro que su llave es la misma que la facilitada por el coordinador, entonces el participante leerá su huella digital ante los demás participantes para que estos puedan comprobar que sea la correcta. Si es correcta, los participantes deberán marcarlo en su hoja. Esto es necesario para evitar errores o falsedades en la hoja creada por el coordinador. Hasta que todos hayan comprobado la llave del participante, entonces el coordinador podrá llamar a otro participante y así sucesivamente.

Una vez que todas las llaves han sido verificadas, los participantes y el coordinador rogará a los participantes que formen una línea con sus identificaciones bien visibles. La persona en cabeza de la fila caminará hacia abajo de la fila comprobando los IDs. Si la ID es correcta y se ha validado lo que se ha dicho sobre la llave al principio del encuentro, entonces se pondrá una segunda marca en su lista. Sólo la llave que tenga dos marcas será firmada.

Un Grupo de Firmas descentralizada es básicamente libre albedrío. Los participantes se espera que se mezclen informalmente y buscarán a otros participantes cuyas llaves no hayan sido firmadas aún. Mientras duré el evento, cada uno verificará la llave y el ID de cada persona. los grupos descentralizadas permiten incluir más fácilmente a gente nueva. En un Grupo Descentralizada, es importante para el coordinador anime a cada uno a que se asegure de que se ha reunido con todo el mundo, almenos para la validación de la llave. En este caso no es necesario hacer una lista de llaves y de huellas, aunque es una buena práctica.

Los Grupos Centralizadas son ideales para conferencias, durante la comida, reuniones informales en casa de alguien o en algún restaurante, etc. Las descentralizadas son mucho más practicas cuando hay un gran número de gente y el lugar es un bar o un sitio muy ruidoso, o grupos particularmente escandalosos y difíciles de manejar.

2.3 Anunciando el Grupo

Cuanto más conocida sea el Grupo, mejor. Se puede anunciar el Grupo via listado de correo LUG, o a otras listas relacionadas con la informática dentro de tu localidad, incluso poniendo un anunció en el prensa.

Si estas creando un sistema de confianza en tu comunidad, es buena idea intentar atraer a usuarios de PGP activos porque ellos son los principales interesados en mantener los grupos de Firmas. La mejor forma de encontrar a la gente es hablando con aquellas personas que se encuentran en las listas de correo con firma PGP o buscando en el servidores de llaves aquellos cuentas de correo que puedan pertenecer a tu localidad. Por ejemplo, las cuentas de correo con el dominio de una universidad o una gran compañia de tu localidad, puede que encuentres un alto número de interesados en el Grupo de Firmas.

Aquí encontrarás algunos ejemplos de anuncios:

2.4 Generando la lista de llaves

Si vas a utilizar un formato de Fiesta estructurada se necesita que cada participante tenga una lista de llaves de todo el mundo, el coordinador tendrá que imprimir muchos listados. Dichos listados suelen recopilarse en el siguiente formato:
Llave IDPropietarioHuellaTamaño TipoLlave Válida?ID Válido?
992A4B3FV. Alex Brennen < vab@cryptnet.net > 0EC8 B0E3 052D FC4C 208F 76EB FA92 0973 992A 4B3F1024DSA  

He escrito un programa en perl para crear un documento HTML con el formato de arriba. El programa que genera la lista de llaves está disponible bajo terminos de licencia: GNU General Public License (GPL).

Una copia de esta lista de llaves debe de ser impresa y entrega a cada uno de los participantes. El coordinador puede imprimir el listado él mismo o enviar un correo para que cada participante se lo imprima él mismo, o puede colgarlo en una página web para que los participantes lo impriman.

2.5 Resultado gráfico de la web de confianza

Nada gusta más al usuario que los gráficos con muchos colores. Por ello, crear un gráfico del sistema de confianza establecido en tu entorno puede motivar a la gente a participar, viendo los progresos obtenidos.

Puedes obtener un sencillo gráfico, de todas las llaves firmadas en tu sistema de seguridad convirtiendo esa información en un fichero de puntos, el cuál puede ser tratado por programas tipo DOT o NEATO. Un programa de Darxus que fue escrito en perl convierte las llaves y firmas de un anillo en un fichero de puntos y este está disponible bajo los términos de GPL. Para poder obtener dicho gráfico necesitas bajarte el programa de Darxus sig2dot.pl y el graphviz de AT&T Research. La restricción es que no se puede generar un gráfico de más de cien nodos por problemas de que el ordenador puede necesitar mucha memória.

Las instrucciones para dibujar el sistema de confianza de un anillo gpg estan incluidas en el poprio script: sig2dot.pl o pueden encontrarse en el paquete de Debian. Aquí hay un enlace a un gráfico de sistema de confianza que fue creado con sig2dot.pl y neato. Existe más información disponible en la página de Debian.


3. Participando en el Grupo

3.1 El Participante
  1. Generar un par de llaves
  2. Enviar la llave pública al servidor de llaves (o al Coordinador)
  3. Enviar los detalles de tu llave pública al coordinador
  4. Ir a el Grupo de Firmas
  5. Verificar los detalles de su llave
  6. Verificar los detalles de la llave de los demás
  7. Verificar la identidad para los IDs que se va a firmar
  8. Firmar todos aquellos IDs y llaves que se hayan Verificado
  9. Enviar todas las llaves que se han firmado al servidor de llaves (o a su propietario)
3.2 Qué hay que llevar a el Grupo
  1. Tu mismo - No puedes participar virtualmente
  2. Dos identificaciones con foto - Licencia de conducir y pasaporte
  3. Detalles de las propias llaves: ID, Tipo, Huella y Tamaño
  4. Un bolígrafo/lápiz
3.3 Qué No hay que llevar
  1. Un ordenador.
3.4 Por qué no debes traer un PC

No se deben llevar ordenadores a los grupos porque los programas pueden haber sido alterados de tal forma que comprometan la seguridad del PGP.

Si alguien llevase un ordenador y todos utilizasen ese ordenador para firmar las llaves, nadie sabría si en dicho ordenador hay un grabador de teclas (KeyLogger) activo, o la versión del GPG ha sido modificada o incluso el Kernel de Linux, o que el teclado está especialmente modificado, cualquiera de estas cosas pueden capturar las llaves secretas de aquellos que utilicen el ordenador.

La utilización de un ordenador en una fiesta también deja la puerta abierta para ataques desde el exterior o ataques complejos con las llaves débiles, modificaciones que llaves secretas o incluso infecciones con virus en los propios ejecutables del GPG que pueden debilitar tus llaves secretas en el futuro.

3.5 Generando el par de llaves

El proceso de crear un par de llaves es sencillo, basicamente sólo necesitas ejecutar gpg --gen-key. Sin embargo, recomiendo que también generes un certificado de cancelación para tus llaves en caso de perdida de la llave secreta (eso significa que has olvidado la palabra clave o has pedido la llave secreta). El comando para generar el certificado de cancelación puede encontrarse en el apartado 3.7 de este documento.

Los siguientes pasos deben ser utilizados con la suficientes seguridad, por ejemplo:

Algunas personas se sienten más seguras utilizando estas medidas básicas, por ejemplo si tienes un ordenador portátil o de sobremesa con la que lees los mails, estarás más cómodo si guardas las llaves en ese ordenador. También puedes crear las llaves sin periódo de caducidad para poder ser identificado y para las comunicaciones habituales - puedes generar otro par de llaves para comunicaciones extremadamente más seguras (si las tienes). Las siguientes instrucciones deben de ser escritas bajo las mejores medidas de seguridad, no necesitas seguirlas todas, sólo aquellas para generar el par de llaves. Por otro lado, si eres extremadamente paranoico como yo siguiendos las siguientes directivas te proveerá temporalmente con una sensación de fugaz calma que necesitas sentir en este momento.

Las siguientes instrucciones deben seguirse con la mayor seguridad (paranoia) posible, por ejemplo:

1) Ve a www.gnupg.org y bajate la última versión de gnupg: gnupg-x.x.x.tar.gz

Advertencia: Asegurate que estas utilizando almenos la versión 1.0.6 of GnuPG. ya que anteriores versiones tenian un fallo de seguridad.

2) Comprueba la firma y el MD5 Checksum del programa GnuPG:

bash$ gpg --verify gnupg-x.x.x.tar.gz.sig gnupg-x.x.x.tar.gz
bash$ md5sum gnupg-x.x.x.tar.gz

3) Extraer los archivos, configurarlos, compilarlos e instalarlos:

bash$ tar xvzf gnupg-x.x.x.tar.gz
bash$ cd gnupg-x.x.x
bash$ ./configure
bash$ make
bash$ su
bash# make install
bash# exit
bash$ cd

Si estas compartiendo el sistema donde instalas el GnuPg con otros usuarios, debes también querer poner el gpg en la root de esta forma su ejecució será más segura. Si lo haces así, debes comprobar el md5 y la firma del pgp para estar seguro de no estar instalando un troyano.

4) Consigue un disquette para almacenar las llaves y formatealo.

bash$ /sbin/mkfs.ext2 /dev/fd0

4a) Montar el disquette y haz un directorio para tus llaves:

bash$ mount /mnt/floppy
bash$ mkdir /mnt/floppy/.gnupg

y si es necesario (y dependiendo del acceso a fd0):

bash$ chown <your_uid>:<your_gid> /mnt/floppy/.gnupg

4b) Crea un enlace desde tu directorio local hacia el disquette

bash$ ln -s /mnt/floppy/.gnupg .gnupg

5) Crear un par de llaves

bash$ gpg --gen-key

5a) Seleccionar el tipo de llave que quieres - La que nos suguiere es suficiente.

Please select what kind of key you want:
(1) DSA and ElGamal (default)
(2) DSA (sign only)
(4) ElGamal (sign and encrypt)
Your selection? <return>

5b) Seleccionar el tamaño: 2048

DSA keypair will have 1024 bits.
About to generate a new ELG-E keypair.
minimum keysize is 768 bits
default keysize is 1024 bits
highest suggested keysize is 2048 bits
What keysize do you want? (1024) 2048<return>
Do you really need such a large keysize? yes<return>

5c) Seleccionar un periodo de caducidad: 5 años es suficiente

Requested keysize is 2048 bits
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) 5y<return>
Key expires at Sun Sep 21 16:17:15 2005 EDT
Is this correct (y/n)? y<return>

5d) Introduce tu nombre y tu direccion(es) de correo electrónico...

Real name: Demo User<return>
Email address: demo@nonexistent.nowhere<return>
Comment:
You selected this USER-ID:
"Demo User <demo@nonexistent.nowhere>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O<return>

5e) Escoje una frase clave, debes escoger una buena lo sufientemente larga para no ser adivinada y lo suficientemente fácil para que no te olvides de ella. Si te olvidas de la frase no podrás recuperar tus llaves.

5f) Mueve el raton y haz algunos clicks en el escritorio o ejecuta una búsqueda grande. GPG está buscando números aleatorios para crear las las llaves, de esta forma introducirás mas aleatoriedad interrumpiéndole. interrumpe.

6) Modifica la llave si quieres, por ejemplo si tienes multiples cuentas de correo que quieras añadir como válidas a tu llave:

bash$ gpg --list-secret-keys

/home/demo/.gnupg/secring.gpg
----------------------------
sec 1024D/C01BAFC3 2000-09-21 Demo User <demo@nonexistent.nowhere>
ssb 2048g/7A4087F3 2000-09-21
bash$ gpg --edit-key C01BAFC3
Command> help
Command> adduid
[...]
Command> save

7) Envia tus llaves a un servidor:

[vab@firster vab]$ gpg --keyserver <servidor> --send-key <ID_Llave>

Debes ver un mensaje de éxito como este:

gpg: success sending to `<servidor>' (status=200)

3.6 Publicando tu llave en un servidor de llaves

Hay gente que cree que es importante mantener su llave pública en secreto ya que le otorga mayor seguridad en sus comunicaciones. Esto es cierto por que un servidor puede ser manipulado o comprometido y enviar llaves públicas de forma incorrecta. Por ello, la llave pública que se envia a los servidores no debe ser la última actualización de la misma. Por ejemplo, firmas adicionales pueden ser añadidas a la llave pública local pero no subidas al servidor de llaves. Eso es así porque la llave pública del par de llaves es necesaria para realizar cierto ataques en criptosistemas. Estos ataques dificilmente podrán tener éxito, no importa si la llave pública es emitida, ya que la fuerza del par de llave reside en mantener oculta la llave secretra.

Yo no recomiendo que mantengas tu llave pública en secreto por que eso desanima a los demás usuarios que utilizan PGp en sus comunicación contigo. Para evitar la posibilidad de que el servidor esté comprometido o haya sido alterado en su retorno de llaves pública es recomendable que publiques las huellas de tu llave dentro de un fichero .signatura o en tu página web, para evitar la posibilidad de que alguien ataque tu llave pública y de esa forma comprometa la seguridad de tus comunicaciones, puedes generar otro par de llaves adicional (que caduque en horas o en dias) para cada una de las comunicaciones e intercambios de llaves.

Si no deseas que tu llave esté en un servidor, no debes realizar el último paso e indicar al coordinador del Grupo de Firmas que tu llave firmada no debe subirse al servidor de llaves. El coordinador puede extraer los detalles de tu llave y reenviarlos a los demás participantes via correo encriptado, o por otros métodos, adjuntando una nota indicando que deben devolverse una vez firmado en vez de subirlar al servirdor de llaves.

3.7 Generando un Certificado de Cancelación

Este paso es opcional.

La creación y almacenamiento del Certificado de Cancelación te permitirá cancelar tu llave pública en cualquier momento que pierdas acceso a tu llave privada o esta se vea comprometida: fallo del soporte, ataque, olvido de frase secreta. Si quieres cancelar la llave pública incluso cuando no tienes acceso a la llave privada, entonces debes generar un Certificado de Cancelación y almacenarlo en un lugar seguro. Puedes incluso imprimir una copia del certificado para poder entrarla manualmente, por si falla el medio de almacenaeje.

Si el Certificado de Cancelación queda comprometido, la persona que lo comprometa podrá cancelar la llave pública en circulación, sin embargo no podrá acceder a la llave secreta y tampoco podrá generar falsas firmas, desencriptar mensajes o cualquier otra cosa que pueda hacer el usuario del par de llaves. Realmente lo único negativo de esto es que deshabilita el par de llaves.

3.9 Cancelando tus llaves.

El comando GnuPG para crear un Certificado de Cancelación es:

bash$ gpg --output revcert.asc --gen-revoke <ID_Llave>

9) Envia la información al Coordinador indicándole que vas a asistir a el Grupo de Firmas. El siguiente comando te permite imprimir la información necesaria y que debes enviar al coordinador si no utilizas un ser servidor de llaves, pueden enviar la información encriptada al coordinador.

bash$ gpg --fingerprint <ID_LLave>

10) Desmontar el disquette y expulsarlo:

bash$ umount /mnt/floppy

Nota: Para una máxima seguridad, puedes llevarte contigo el disquette allá donde vayas o puedes dejarlo en un lugar seguro, encerrado en tu escritorio, etc. DO DEBES dejar tus llaves accesibles por internet.

11) Ir a el Grupo de Firmas.

3.8 Firmando de otras llaves

Paso 1: Obtener un copia de la llave.

Normalmente se obtiene de los servidores de llaves, sin embargo si la llave no está disponible en el servidor puedes importarla utilizando gpg --import. Si trabajas con servidores de llaves, el siguiente comando te servirá para descargar la llave publica e incorporarla en tu anillo público.

bash$ gpg --keyserver <servidor> --recv-keys <ID_Llave>

Si recibes un error, significa que el servidor está sobrecargado. Por favor, inténtalo dentro de unos segundos.

Paso 2: Huella y verificado de llave

bash$ gpg --fingerprint <ID_Llave>

GPG imprimirá la huella del usuario <ID_Llave> (la llave que se acaba de descargar). Comprobamos la huella con la que tenemos en el listado del Grupo de Firmas. Nota: No compruebes la huella de tu listado contra la huella que aparece en la web del servidor, ya que puede no haberte enviado la misma llave.

Paso 3: Firmar una llave

bash$ gpg --sign-key <Key_ID>

Si tienes multiples llaves privadas, debes especificar cuál de todas tu llaves privadas es la que va a firmar la llave pública, este es el comando:

bash$ gpg --default-key <ID_a_usar> --sign-key <ID_Llave>

Si tienes problemas con llaves tipo RSA es por que probablemente estés utilizando una versión antigua de GnuPg. Versiones anteriores a la 1.0.3 no incluye compatibilidad con RSA. Nota: Debes desintalar la versión antigua, para comprobar que versión estas utilizando usa el siguiente comando:

bash$ gpg --version

Paso 4: Devolver o subir la llave firmada

Si estas trabajando con una entidad que no quiere que su llave esté en un servidor público, deberás devolver la llave pública firmada a su propietario por el método que él eliga - normalmente encriptada. No debes enviar la llave pública firmada al servidor sin el permiso de su propietario. Publicar una llave reduce levemente la seguridad del par de llaves, por lo tanto está mal visto publicar una llave si su propietario no lo desea.

Pero normalmente trabajarás con servidores de llaves. Si es el caso, deberás enviar la llave pública firmada de vuelta al servidor con el siguiente comando:

bash$ gpg --keyserver <servidor> --send-key <ID_Llave>

Verás un mensaje de éxito como este:

gpg: success sending to `<servidor>' (status=200)

Felicidades, el firmado de llave pública ha terminado y tu firma ha sido incluida en su llave pública. Se han establecido las vías de confianza.

3.9 Cancelando tus llaves

En el momento que sospeches que tu llave secreta ha sido comprometida, debes cancelarla de forma inmediata. La cancelación de llaves tiene lugar añadiendo una firma de cancelación dentro de tu llave pública. La cancelación de una llave pública sugiere que la llave ya no es válida (segura) y no debe usarse. Cuando se libera un Certificado de Cancelación este no puede retrocederse.

Piensa que tu llave PGP se ha distribuido (está en circulación) para los demás desde un punto central (servidor de llaves) al cuál se accede cada vez para obtenerla, debes distribuir o poner en circulación el Certificado de Cancelación de la misma forma que has distribuido tu llave pública. Para poner en circulación el certificado de cancelación de la misma forma que tu llave pública sólo hay que subirla al servidor de llaves públicas. Si no lo has subido por razones de seguridad, puede que ahora si debas subir el Certificado de Cancelación al servidor de llaves. En ese caso deberás plantearte una leve inseguridad como resultado de publicar tu llave en un servidor de llaves y reducir el peligro de que alguien no se entere de que tu llave ha sido cancelada.

El comando para crear el Certificado de Cancelación es:

bash$ gpg --output revcert.asc --gen-revoke <key_id>

Si tienes sospechas de como o cuando tu llave ha sido comprometida y generaste un certificado de cancelación en su momento, deberías de crear un nuevo certificado que cancele tu par de llaves, ya que en openPGP se puede dar un motivo por el cuál se cancela el par de llaves e incluso se puede añadir unas cuantas lineas de texto. Enviar este nuevo Certificado de Cancelación sobre el antiguo es mucho mejor, ya que el texto es más específico que el inicial.


4. Glosario

Llave - Uno o más bits de información usados para procesos de encriptación y desencriptación.

Huella - Si PGP, un valor que identifica a la llave generada por un método de "hash" de su contenido.

Par de Llaves - En la criptografía pública, una par de llaves consiste en una llave pública y otra privada o secreta, ambas estan relacionadas.

Anillo - Una colección de llaves. Este término se utiliza en relación al PGP donde el anillo consiste en una colección de uno a más paquetes de llaves.

Servidor de Llaves - Es un sistema donde se almacena llaves. Estos servidores se utilizan para recuperar llaves públicas de personas con las cuales no se ha contactado.

Grupo de Firmas - Reunión de personas que utilizan tecnología de encriptación PGP con el propósito de permitier que otra gente firme sus llaves públicas mutuamente para extender las vías de confianza.

openPGP - El estandard abierto que define el sistema de seguridad del PGP.

Pretty Good Privacy [PGP] - Software Privado desarrollado por Phil Zimmermann, en el cuál se incluye criptografía pública, el estandard en el formato de llaves y con criptografía simétrica.

Llave Pública - En la cripografía pública, la llave del par de llaves que es compartida.

Anillo Público - Un anillo de llaves públicas. Este término esta relacionado con PGP.

Radix - Un método de codificación de datos que es transmitido por un canal que sólo soporta 8 bits. Por ejemplo, un correo o UseNet.

Llave Secreta - En la criptografía pública, en el par de llaves la que se debe mantener segura.

Anillo Secreto - Una colección de llaves secretas. Este término se utiliza en relación al PGP donde el anillo consiste en una colección de uno a más paquetes de llaves.

Vias de Confianza - Una ruta de confianza que va desde una entidad hasta otra. En PGP, este es el enlace que va entre dos llaves públicas

Sistema de Confianza - Colleción de firmas basado en las vías de confianza sobre un usuario concéntrico que es el modelo que provee la autentificación. La confianza que hay entre un grupo de llaves.


5. Información Relevante y otras fuentes

5.1 Lista de servidores públicos

  1. CryptNET Keyserver Network
    1. gnv.keyserver.cryptnet.net
  2. pgp.net
    1. wwwkeys.us.pgp.net
    2. wwwkeys.nl.pgp.net
    3. wwwkeys.ch.pgp.net
    4. wwwkeys.uk.pgp.net
    5. wwwkeys.cz.pgp.net
    6. wwwkeys.de.pgp.net
    7. wwwkeys.dk.pgp.net
    8. wwwkeys.es.pgp.net
  3. www.keyserver.net Network
    1. search.keyserver.net
    2. seattle.keyserver.net
    3. germany.keyserver.net
    4. belgium.keyserver.net
    5. finland.keyserver.net
    6. thailand.keyserver.net
  4. pgp.ai.mit.edu
  5. pgp.cc.gatech.edu
  6. pgp.es.net
  7. pgp.rediris.es
  8. pgp.uk.demon.net
  9. pgp.uni-mainz.de
  10. pgp.nic.ad.jp
  11. ds.carnet.hr

5.2 Enlaces a documentos relacionados

5.3 Programas Relacionados

5.4 Webs Relacionadas

5.5 Normativa RFCs Relacionada

5.6 Fotografias de los grupos


6. Sobre este documento

Copyright (c) 2000 - 2003 V. Alex Brennen.

El permisó está garantizado para copiar, distribuir y/o modificar este documento bajo los términos de la GNU Free Documentation License, Version 1.1 o cualquier otra verisón publicada por Free Software Foundation.

Este documeto se encuentra en http://members.fortunecity.com/keyparty/gpg-party.html

6.1 Versiones

Version 1.0.0, 2000.10.01 Initial Release.

Version 1.0.1, 2000.10.03 Format/Writing changes, private public keys info.

Version 1.0.2, 2000.12.07 HTML (Bad Link) Fix.

Version 1.0.3, 2001.01.14 Simplification revisions, graphing, keyserver security/etiquette information, perl code, announcement examples, additional material, and general fixes.

Version 1.0.4, 2001.06.21 Revocation information added: 3.5, 3.7. RFC info added: 4.4. Keyserver list and web site links updated.

Version 1.0.5, 2003.03.24 Glossary Added: 4. Pictures Added: 5.5. Minor corrections, additional material, and formatting changes.

Version 1.0.6, 2003.03.24 New Content: Zimmermann-Sassaman Method, Brennen Method. General document clean-up.

Version 1.0.7, 2003.05.07 Added German Translation

Version 1.0.8, 2003.05.09 Added Section 5.3 Related Programs

6.2 Traducciones

Este documento se encuentra sólo disponible para los siguientes idiomas:

[en] English

[de]German (Local Mirror)

[si] Slovenian (Local Mirror)

[es] Spanish (Local Mirror)

Si conoces alguna otra traducción o quieres traducirlo a algún otro idioma, por favor, hazmelo saber para que se pueda distribuir o enlazar con la nueva versión traducida.

6.3 Contribuciones

V. Alex Brennen (Principal Author)

Darxus (Graphing Code (sig2dot.pl & sigtrace.pl))

Bostjan Muller (Slovenian Translation)

Gerfried Fuchs (German Translation)

Alex Bergonzini (Spanish Translation)