Translation(s):

(!) ?Discusión


Key Signing Party

Key Signing Party (KSP) es una actividad que se realiza cuando un grupo de personas con relativa confianza se reúnen, como tienen cierto grado de confianza y pueden validar físicamente su identidad comparten sus llaves PGP o compatibles (como las creadas con GnuPG). Generalmente durante dicha actividad la persona se presenta e identifica, para ello puede validar su identidad con una identificación oficial de su país, un pasaporte, licencia de conducir, carné del seguro médico u otros, no obstante algunas personas debido a la trayectoria de amistad con la persona les bastaría con un simple "Soy yo", otras por el contrario desean reunirse varias con la persona antes de compartir las llaves.

Durante dichas actividades no puede existir sentimientos de rechazo, si no mas bien de respeto, que una persona rechace compartir sus firmas no significa que no sea tu amigo o que no lo vaya a hacer en un futuro, simplemente necesita obtener un grado de confianza mayor. Nadie está obligado en un KSP a compartir sus llaves.

¿Que debo hacer?

Es conveniente que usted tenga conocimiento sobre el uso de llaves PGP o compatibles, como crearlas, con que fin crearlas, no obstante en esta guía le ayudará a crear su llave PGP (tal vez la primera). Es conveniente que esté enterado de que si es su primera llave PGP las personas podrían no firmar su llave.

Existen dos pasos antes del KSP, los llamaremos Antes y Después, no obstante es conveniente que realice la preparación del software y de su sistema operativo antes de la actividad para facilitar el proceso.

Es posible que durante la organización del KSP se instruyan requerimientos para crear las llaves, modifique los pasos según se le indique.

Antes

Usted deberá contar una nueva llave PGP o compatible, esta llave podría ser una nueva, una para reemplazar una llave comprometida o una llave que superó su fecha de caducidad.

Instalar el software necesario

Una excelente alternativa para crear llaves compatibles con PGP es GnuPG, puede instalarlo ejecutando lo siguiente:

aptitude install gnupg

Crear una llave GPG

Existe un archivo de configurar para GnuPG en su directorio $HOME, pero este no está creado, simplemente ejecute en la consola:

gpg --list-keys

Esto listará las llaves que tenga en su sistema, si tiene, también creará el archivo ~/.gnupg/gpg.conf (note que es un directorio escondido).

Edite el archivo, por ejemplo con vim:

vim.tiny ~/.gnupg/gpg.conf

Y agregue al final las siguientes líneas:

personal-digest-preferences SHA256
cert-digest-algo SHA256
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed

Ahora vamos a proceder a crear la llave:

gpg --gen-key

Siga los pasos del asistente, es importante que sus datos sean reales y que su correo corresponda correctamente. Va a obtener una salida similar a la siguiente

emonge@debian:~$ gpg --gen-key
gpg (GnuPG) 1.4.12; Copyright (C) 2012 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Por favor seleccione tipo de clave deseado:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sólo firmar)
   (4) RSA (sólo firmar)
Su elección: 1
las claves RSA pueden tener entre 1024 y 4096 bits de longitud.
¿De qué tamaño quiere la clave? (2048) 
El tamaño requerido es de 2048 bits
Por favor, 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)? 1y
La clave caduca sáb 13 jul 2013 14:39:56 CST
¿Es correcto? (s/n) s

Necesita un identificador de usuario para identificar su clave. El programa
construye el identificador a partir del Nombre Real, Comentario y Dirección
de Correo Electrónico de esta forma:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Nombre y apellidos: Roberto Gomez Bolanos
Dirección de correo electrónico: el.chavo@del8.com
Comentario: Chanfle
Ha seleccionado este ID de usuario:
    "Roberto Gomez Bolanos (Chanfle) <el.chavo@del8.com>"

¿Cambia (N)ombre, (C)omentario, (D)irección o (V)ale/(S)alir? V

Necesita una frase contraseña para proteger su clave secreta.

Introduzca frase contraseña: 

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.

Luego de este paso usted tendrá la llave creada.

Envía la nueva llave a un servidor público

Muy probablemente sabe que las llaves PGP tienen dos llaves, una privada y una pública, en el siguiente paso vamos a subir la llave pública a un servidor para que las demás personas puedan firmarla y otras tareas.

Para subir la llave se necesita identificarla, puede listar todas las llaves que están en su computadora con el siguiente comando:

gpg --list-keys

Debe obtener un resultado similar al siguiente:

/home/lavecindad/.gnupg/pubring.gpg
-------------------------------
pub   4096R/170434B2 2012-07-08 [caduca: 2013-07-08]
uid                  Roberto Gomez Bolanos (Chanfle) <el.chavo@del8.com>
sub   4096R/BDF456E8 2012-07-08 [caduca: 2013-07-08]

Ahora vamos a tomar el siguiente dato: 170434B2 ese será el identificar de su llave. Con el siguiente comando puede enviar la llave al servidor:

gpg --keyserver subkeys.pgp.net --send-key 170434B2

Existen muchos servidores de llaves PGP alrededor del mundo, no obstante ellos replican la información de las llaves entre ellos, si sube una llave a otro servidor este replicará al que utilizó la primera vez, considere que esto podría llevar algo de tiempo.

Obtener su huella digital

Para que los usuarios puedan compartir la información entre ellos es necesario identificarlo de alguna manera, para ello se utiliza el "fingerprint" o huella digital. Usted puede conocer la suya con el siguiente comando:

gpg --fingerprint 170434B2

Con lo cual obtendrá un mensaje similar al siguiente:

pub   4096R/170434B2 2012-07-08 [caduca: 2013-07-08]
uid                  Roberto Gomez Bolanos (Chanfle) <el.chavo@del8.com>
      Huella de clave = 9ETD 0853 68BE 493B 36D4  311Z A270 92D6 1704 12B2
sub   4096R/BDF456E8 2012-07-08 [caduca: 2013-07-08]

Es posible que necesite imprimir este dato para entregarlo a las personas con las cuales desee compartir su llave. También es posible que el dato deba ser enviado a un organizador de la actividad para que tabule los datos y los facilite en formato digital a los demás participantes del KSP. Existen otras maneras de presentar la información de su llave las cuales serán indicadas por los organizadores del KSP.

Muy seguramente la actividad pueda realizarse en idioma inglés, si ejecuta el comando anterior de la siguiente manera:

LANG=C gpg --fingerprint 170434B2

Obtendrá el mismo resultado pero en inglés.

Durante la actividad

Esta es la parte divertida que usted disfrutará y a propósito no la mencioné como paso en el wiki... ¡porque es mas divertido!

Durante el KSP usted deberá presentarse físicamente con una identificación con fotografía, ya sea la oficial de su país, licencia de conducir, carné de seguro médico o uno mas práctico como el pasaporte, algunas personas podrían solicitar mas de una identificación.

Dependiendo de la persona, podría bastar con conocerlo durante una gran cantidad de años, haber dormido en su casa en la niñez o emborracharse en un país extranjero.

Sea cual sea la posición de la persona con la que se desea compartir la llave, hay que respetar "sus condiciones".

En las KSP llegan personas que tienen años de compartir sus llaves con muchas personas, incluso existen "rankings" que indican el grado de confianza de las llaves de las personas, entre mas personas firman las llaves mas ranking se obtiene, así como no es lo mismo que te firme la llave Don Ramón a que te la firme Doña Clotilde, es muy probable que la gente sienta mas afecto por Don Ramón y tenga mas firmas que Doña Clotilde, además Don Ramón podría tener las firmas de Quico y la Chilindrina, mientras que Doña Clotilde tiene la del Señor Hurtado. Lo cual posiciona mejor a Don Ramón.

Después

Si todo sale bien... muy seguramente tendrá que trabajar varias firmas, para ello necesita instalar varias herramientas que facilitarán el trabajo. Generalmente recomiendo esperar a que la persona de mas rango firmen tus llaves y luego le firmas tu a ellos, además la persona de mayor rango podría considerar que no es seguro compartir la llave contigo, pero durante la KSP parecía que si lo iban a hacer, eso podría ahorrarte tiempo valioso.

Los siguientes pasos se pueden realizar antes de la actividad, pero por cuestiones de ilustración se organizó en el wiki así

Debian tiene un paquete especializado para la firma de llaves, puede instalarlo con:

aptitude install signing-party

Existe una herramienta que automatiza un poco el proceso de que usted realice el firmado, se llama caff, vamos a indicarle que utilice la misma configuración que tiene GnuPG según se configuró anteriormente o según indicaron en el KSP. Este proceso debe realizarse con el mismo usuario que creo la llave PGP.

$ grep ^cert-digest-algo ~/.gnupg/gpg.conf
cert-digest-algo SHA512
$ mkdir -p ~/.caff/gnupghome
$ mv ~/.caff/gnupghome/gpg.conf ~/.caff/gnupghome/gpg.conf.old
$ ln -s ~/.gnupg/gpg.conf ~/.caff/gnupghome/gpg.conf

caff requiere que usted tenga configurado correctamente un MTA (un Agente de Transporte de Correo) en su computadora, esa configuración sale del alcance de esta guía, pero sería conveniente que verifique el Wiki de Debian con un ejemplo de configuración para el agente sSMTP.

Ahora debe crear el archivo ~/.caffrc y configurar las opciones según sus preferencias, el archivo debe tener un aspecto similar al siguiente:

# .caffrc -- vim:ft=perl:
# This file is in perl(1) format - see caff(1) for details.

$CONFIG{'owner'} = 'Roberto Gomez';
$CONFIG{'email'} = 'el.chavo@del8.com';
$CONFIG{'gpg-sign-args'} = "save";
$CONFIG{'keyserver'} = "pgp.mit.edu";
$CONFIG{'caffhome'}    = $ENV{'HOME'}.'/.caff';
# Specify the last 16 characters of your key
$CONFIG{'keyid'} = [ qw{R2709276170434B2} ];
$CONFIG{'also-encrypt-to'} = [ qw{E2709276170434B2} ];

# Mail template to use for the encrypted part
$CONFIG{'mail-template'} = << 'EOM';
Hola,

please find attached the user id{(scalar @uids >= 2 ? 's' : '')}
{foreach $uid (@uids) {
$OUT .= "\t".$uid."\n";
};}of your key {$key} signed by me.

If you have multiple user ids, I sent the signature for each user id
separately to that user id's associated email address. This gives you
also the chance to upload only specific signatures if you don't want
my signature on all your user ids.

You can import the signatures by running each through `gpg --import`.

Note that I did not upload your key to any keyservers. If you want this
new signature to be available to others, please upload it yourself.

With GnuPG this can be done using
    gpg --keyserver subkeys.pgp.net --send-key {$key}

If you have any questions, don't hesitate to ask.

Saludos

{$owner}

EOM

Algunas líneas importantes:

$CONFIG{'owner'} : Debe indicar su nombre
$CONFIG{'email'} : Debe indicar su correo electrónico, en efecto el que utilizó para firmar la llave
$CONFIG{'keyid'} = [ qw{R2709276170434B2} ]; : Los últimos 16 caracteres del fingerprint de su llave
$CONFIG{'also-encrypt-to'} = [ qw{E2709276170434B2} ]; : Los últimos 16 caracteres del fingerprint de su llave

Ahora bien, para firmar la llave usted obtuvo el fingerprint de la llave de la persona que quiso compartirla con usted durante el KSP.

Debe indicarle a caff que utilice dicho fingerprint para firmar las llaves. Por ejemplo:

caff -mR 9ETD085368BE493B36D456ZA2709RT6170412B2

Note que al poner el fingerprint no deben haber espacios entre los caracteres.

caff enviará un correo a la persona con el mensaje encriptado con su llave y listo para ser firmado por la otra persona.

Ahora tocará hacer lo contrario, importar las llaves. Para ello recibiremos un archivo con la llave encriptada, el primero paso es des encriptar el mensaje, para ello ejecute:

gpg --decrypt msg.asc > msg.firmado 

En la pantalla se le solicitará la contraseña de su llave, y si la introduce correctamente se almacenará en el archivo la llave..

Para importar la llave ejecute lo siguiente:

gpg --import < msg.firmado

Se le solicitará confirmar la acción y eso es todo, tendrá entre sus círculos de confianza la llave de su conocido.

Es conveniente que suba de nuevo la llave a los servidores,

gpg --keyserver subkeys.pgp.net --send-key 170434B2

Otro página del wiki sobre firmas de llaves, en Inglés: http://wiki.debian.org/Keysigning

Instrucciones para firmar llaves del Debconf 12 realizado en Managua, en Inglés http://people.debian.org/~anibal/ksp-dc12/ksp-dc12.html

Otrá página de Debian que explica como firmar llaves, en Inglés: http://keyring.debian.org/creating-key.html

Manual del paquete kspsig: https://github.com/tmarble/kspsig