[safa] Juntada & Signing Party

14 views
Skip to first unread message

Dario Rodriguez

unread,
Dec 1, 2011, 9:03:48 AM12/1/11
to safa...@googlegroups.com
Gente,

Por ahora somos todos de Argentina, y para mayor simpleza, somos todos
de La Plata. Pensaba en la posibilidad de que el proyecto crezca, y el
consiguiente riesgo de confianza que sufriría el grupo.

No soy de las personas que son confianzudas, y me interesa guardar la
capacidad de confianza de SAFA mediante el método más efectivo de la
actualidad: Una red criptográfica de confianza. Llamenle como quieran,
sea anillo de llaves o lo que sea.

Lo que haríamos es juntarnos, aclarar algunas dudas, conocernos
personalmente, y hacer una verificación de huellas de las llaves.

Ustedes, aparte, generarían claves de firmado, después las suben a un
servidor de claves y quedamos. Con las huellas de las claves
verificadas en papel, cada uno baja las claves verificadas del
servidor, revisa las huellas para ver que sean las mismas que se
verificaron, y de ser iguales las firma.

Al firmar, se genera la llave firmada, y se envia al dueño. Después
usamos un programita para mapear la red de claves y vemos cómo quedó
la red de confianza en cuanto a firmas, lo que sería nuestra PKI.

Muchos de uds, sino todos, nunca habrán usado esta metodología, pero
como parte de la juntada podemos explicar cómo trabaja una PKI y la
enorme importancia de tener claves firmadas.

Los que esten interesados en aprender más, pueden ver estos sitios:

http://linuxreviews.org/howtos/gnupg/signingparty/#ss1.1
http://www.archivistica.net/monograficos/Firma_electronica/firma_electronica.htm

¿Les parece que organicemos?

--
Dario

Nicolas Palumbo

unread,
Dec 1, 2011, 7:29:38 PM12/1/11
to safa...@googlegroups.com
Para mi es buena fecha el Lunes 5, tipo 18/19 en la facu. Yo soy de quilmes

2011/12/1 Dario Rodriguez <soft....@gmail.com>:

> --
> --------------------
> Recibes esto porque estas suscrito a "safa-dcs" en GoogleGroups.
> Puedes enviar correo a: safa...@googlegroups.com
> Para desuscribirte, envia un correo a: safa-dcs+u...@googlegroups.com
> Mas info: http://groups.google.com/group/safa-dcs
> S.A.F.A. - More than just version controlling

Dario Rodriguez

unread,
Dec 1, 2011, 8:06:04 PM12/1/11
to safa...@googlegroups.com
2011/12/1 Nicolas Palumbo <napa...@gmail.com>:

> Para mi es buena fecha el Lunes 5, tipo 18/19 en la facu. Yo soy de quilmes
>

Yo no puedo, tengo parcial, es más, creo que es a esa hora maso... tipo 19

martin kretowicz

unread,
Dec 1, 2011, 11:04:42 PM12/1/11
to safa...@googlegroups.com
Yo 5 y 6 de Diciembre tengo final. 
 
PD: En estos momentos estoy viviendo en Capital Federal xD
 
 
 

Dario Rodriguez

unread,
Dec 2, 2011, 6:40:33 AM12/2/11
to safa...@googlegroups.com
Parece q mucho no le pegue con lo de la simpleza. Bueno pero todos en
algun momento estaremos en LP. Ese es el momento justo para la juntada
y la Signing. El problema es: ¿Cuando es ese momento?

2011/12/2 martin kretowicz <mart...@gmail.com>:

Nicolas Palumbo

unread,
Dec 2, 2011, 6:59:47 AM12/2/11
to safa...@googlegroups.com
a partir del 5 al 9 de diciembre puedo ir algun dia tb tipo 18/19.


2011/12/2 Dario Rodriguez <soft....@gmail.com>:

Alfredo Gore

unread,
Dec 2, 2011, 7:04:06 AM12/2/11
to safa...@googlegroups.com
Viernes 9? trabajo hasta las 14:00 hs ese dia.

Martin Mingo Suarez

unread,
Dec 2, 2011, 8:59:07 AM12/2/11
to safa...@googlegroups.com
Yo a partir del miércoles 7 estoy libre todos los días después de las 4 pm, así que organicen y me avisas

Alfredo Gore

unread,
Dec 2, 2011, 9:08:36 AM12/2/11
to safa...@googlegroups.com
El viernes si no me equivoco es feriado. Yo trabajo igual pero es feriado.

Martin Mingo Suarez

unread,
Dec 2, 2011, 9:40:44 AM12/2/11
to safa...@googlegroups.com
yo probablemente también trabaje el 8 y 9 que son feriados

Dario Rodriguez

unread,
Dec 2, 2011, 10:31:17 AM12/2/11
to safa...@googlegroups.com
Yo el 9 podría

¿Todos saben generar una clave para firmar?

Estaba pensando que una firma criptográfica se hace una vez y se
verifica cientos, así que sería mejor usar claves RSA/RSA, que es más
rápido verificando que DSA, y al fin y al cabo ambos se basan en
capacidad de procesamiento de una u otra forma, por ahi RSA-4096 /
RSA-4096 puede parecer exagerado, pero podemos extender la fecha de
expiración a 5 años. La otra opción es usar DSA2 y confiar en que no
encuentren más colisiones en SHA1 =P

Como sea, si alguien no sabe como hacerlo avise y mando un mini tuto
de GPG para generar un par de claves, de la forma RSA/RSA (RSA master
para firmar / RSA subkey para encriptar) más la generación de
cerificados de revoque y agregar info útil a la llave, como casillas
de correo o foto (no creo, pero bue)... cosas q una vez firmada la
hacen un pequeño DNI criptográfico.

Saludos
--
Dario

Nicolas Palumbo

unread,
Dec 2, 2011, 10:35:21 AM12/2/11
to safa...@googlegroups.com
yo ya tengo mi keypair hace anios. Supongo que puedo usar el mismo.
Creo que era DSA/ElGamal ,pero ahora no me acuerdo.
Esta en la maquina de casa

2011/12/2 Dario Rodriguez <soft....@gmail.com>:

Dario Rodriguez

unread,
Dec 2, 2011, 11:03:01 AM12/2/11
to safa...@googlegroups.com
2011/12/2 Nicolas Palumbo <napa...@gmail.com>:

> yo ya tengo mi keypair hace anios. Supongo que puedo usar el mismo.
> Creo que era DSA/ElGamal ,pero ahora no me acuerdo.
> Esta en la maquina de casa
>

Yo también tengo, aunque pienso generar una. Eso porque soy un maniático.

Es así: En realidad, depende de para que lo suelas usar, y de la forma
que pretendamos para la PKI, a demás de que tu clave no haya sido
comprometida JAMAS.

Si usabas esa clave para algún proyecto privado, es mejor que no la
uses acá, porque sería expuesta a mucho público, exponiendo también tu
relación con ese proyecto a través de las firmas (si estaba firmada).
A parte, crear una PKI totalmente cerrada es óptimo porque no aparecen
nodos extraños al usar algo como sig2dot/neato, es decir, obtenemos un
grafo de la red de confianza relacionada únicamente con un proyecto.
Eso en cuanto a consideraciónes de infraestructura.

Por otro lado una DSA/Elgamal de 128 bits no es una clave segura para
plantear a 5 años más. No es larga, y usa SHA1 para el hash. Por otro
lado, las firmas resultan mucho más cortas, lo cual es conveniente.
RSA genera firmas espantosamente largas, pero verifica más rápido. Eso
en cuanto al algoritmo.

Por último, en cuanto a comprometer la clave. Tu clave privada está
comprometida si:

- La pusiste en un pendrive y no sabes en cuántas máquinas estuvo.
- La usaste en algún momento en una máquina que no era tuya.
- La pasaste alguna vez por correo electrónico, messenger, etc.

y cualquier otra forma de uso que no sea vos en tu maquina, y algun
respaldo guardado o llevado a todas partes (tipo llavero), incluso un
teclado prestado puede considerarse un riesgo en potencia (instalar un
logger en el teclado físico no es tan difícil hoy en día)

Para las claves también deberías tener generado un certificado de
cancelación, cosa que si te olvidas el pass puedas publicar esa
cancelación previamente generada.

Como sea, la decisión de la clave a usar es de cada uno.

Saludos
--
Dario

martin kretowicz

unread,
Dec 2, 2011, 11:37:32 AM12/2/11
to safa...@googlegroups.com
Yo a partir del 7 de diciembre puedo a partir de las 15:00.
 
PD: Con respecto a las claves nunca genere una, se que se puede hacer con GnuPG pero no tengo mucha idea.

Saludos

Dario Rodriguez

unread,
Dec 2, 2011, 10:14:37 PM12/2/11
to safa...@googlegroups.com
2011/12/2 martin kretowicz <mart...@gmail.com>:

Ok, yo paso un tuto para claves RSA/RSA y si puedo, uno para claves
DSA/Elgamal o lo q sea.

Saludos
--
Dario

Dario Rodriguez

unread,
Dec 3, 2011, 12:20:00 AM12/3/11
to safa...@googlegroups.com
OK, empecemos. Voy a escribir pausado para que puedan leer e interpretar de a poco porque en realidad es simple, solo q son muchos pasos. Al principio, tengan en cuenta estas definiciones:

1) HASH: Una funcion de hash devuelve una huella digital. Casos de funciones de hash, o "digest algorithms" para GPG, son MD5, SHA1, etc... Las funciones de hash son las clásicas sumas de comprobación. Si yo obtengo el HASH de un archivo, no puedo obtener el archivo a partir del HASH. Con una funcion de HASH me puedo asegurar que si el archvo cambia en un solo punto, el HASH cambia, por eso son garantía de incorruptibilidad.
La idea teórica de un HASH es que no tenga COLISIONES, o sea, que no pueda obtener el mismo HASH para 2 archivos distintos, o dos cadenas distintas, por ejemplo.

2) ENCRIPTACION SIMETRICA: Básicamente significa que necesito el PASSWORD para ENCRIPTAR, y necesito el PASSWORD para desencriptar. El ejemplo histórico es el sistema ENIGMA que se usaba en la 2da guerra mundial. En computación está XOR, y los modernos DES, AES, Blowfish, etcétera... GPG usa cifrados simétricos en parte del proceso.

3) CRIPTOGRAFIA ASIMETRICA DE CLAVE PUBLICA (encriptacion): Es parte de lo que GPG hace. Se trata de un concepto matemático sencillo, pero computacionalmente irreversible o incalculable. Por ejemplo, el problema de la factorización de números grandes en sus factores primos, o el cálculo de la función PHI de Euclides para números grandes es imposible. En el caso de la función PHI, depende directamente de la factorización de un número en sus factores primos.
Estos problemas, bien tratados, permiten que sea fácil encriptar con la clave pública, y fácil desencriptar con la clave privada, pero es computacionalmente imposible desencriptar usando solo la clave pública.
Entonces la clave pública funciona como un candado, y la privada como la llave. Emitimos cientos de candados, pero SOLO UNA llave, o dos.
La encriptación asimétrica permite que cualquiera ENCRIPTE mensajes para mi, o sea, cerrarlos con un candado. Pero solo YO tengo la llave, así que nadie podrá ver el mensaje, excepto YO. Esa es la CLAVE PRIVADA.

4) CRIPTOGRAFIA ASIMETRICA DE CLAVE PUBLICA (firmado): Otra parte de GPG. Se trata del proceso inverso a la encriptación, e incluye el HASH. En la encriptación, CUALQUIERA encripta con mi clave pública, y SOLO YO desencripto. En FIRMADO (SIGNING), SOLO YO encripto, y CUALQUIERA desencripta. Por eso las claves de cifrado y firmado son distintas... funcionan a la inversa. Una firma es un HASH encriptado. Como solo YO lo pude encriptar, cualquiera que lo desencripte con mi clave pública, sabe que ese mensaje provino de MI. Eso permite lo que se llama NO REPUDIO de un mensaje. Si un mensaje está firmado por mi, y yo digo tener en secreto mi clave privada, entonces NO puedo decir que ese mensaje no provino de mi. En algunos países, esto es una ley, y una firma criptográfica tiene valor para hacer transferencias bancarias ya que es más segura que los contratos firmados. DSA usa normalmente SHA-1 para el hash, por eso genera firmas cortas.

5) CRIPTOGRAFIA HIBRIDA: Esto es precisamente lo que hace GPG. Estos métodos involucran varias formas de cifrado para complicar la tarea a posibles atacantes. Por ejemplo, se encripta un archivo con AES (simétrico), entonces se necesita la contraseña para desencriptarlo... bien: GPG encripta la contraseña del cifrado simétrico, mediante la clave pública. Entonces si alguien logra desencriptar el paquete asimétrico, obtiene una contraseña, y necesita saber para qué algoritmo simétrico sirve. A demás, para mantener el secreto de la clave privada, GPG la guarda mediante un algoritmo simétrico, así cada vez que la quieras usar la debes desencriptar (te pide tu password).

===============================================

Ahora si: Una clave de GPG contiene una clave MAESTRA, y varias claves SUBORDINADAS. Cada clave tiene un ALGORITMO, una LONGITUD, y un TIPO, obviamente. Y se calcula algo importante: SU HASH o HUELLA.
A demás de todo esto, una clave GPG es como un documento. Le agregamos nombres, apellido, direcciones de e-mail, foto y una descripción. Todo esto forma parte de la clave, y cada máquina tiene un ANILLO de claves, públicas y privadas (sería el llavero).

Ah! Y algo importante, a demás de eso, la clave tiene un ID, que es un número corto en HEXA.

Cuando creamos una clave GPG, deberíamos empezar por crear una clave maestra para firmar. Esto se hace así porque teniendo esta, podemos firmar una clave de encriptación. Lo importante son las firmas.


Creando una clave:
**********************************************


Empezamos con:

 $ gpg --gen-key

En las versiones modernas de GPG, la clave por defecto es RSA/RSA, o sea RSA para firmar, y una clave subordinada RSA para encriptar. Les recomiendo elegir esa de entre la lista de claves para generar:

 $ gpg --gen-key
 gpg (GnuPG) 1.4.11; Copyright (C) 2010 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 y RSA (predeterminado)
    (2) DSA y Elgamal
    (3) DSA (sólo firmar)
    (4) RSA (sólo firmar)
 ¿Su selección?: 1

Luego de esto, tendrán la opción de elegir la longitud de la clave RSA, esto es su fortaleza. Les recomiendo usar una clave de 4096 bits, así la conservan algunos años:

 las claves RSA pueden tener entre 1024 y 4096 bits de longitud.
 ¿De qué tamaño quiere la clave? (2048) 4096
 El tamaño requerido es de 4096 bits

Ahora les pedirá un periodo de validez de la clave, a mi me parece prudente 5 años:

 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)? 5y
 La clave caduca jue 01 dic 2016 01:35:31 ART
 ¿Es correcto? (s/n) s

Ahora necesitarán ingresar sus datos:

 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) <hein...@duesseldorf.de>"

El comentario es como una descripción de la clave. Algunos solamente ponen frases filosóficas, otros describen el uso para el que generaron la clave, así no se les olvida luego con tantas claves:

 Nombre y apellidos: Dario A Rodriguez
 Dirección de correo electrónico: soft....@gmail.com
 Comentario: SAFA - Development Control System
 Ha seleccionado este ID de usuario:
     «Dario A Rodriguez (SAFA - Development Control System) <soft....@gmail.com

Ahora les pide la PASS para el cifrado simetrico de la clave privada...
y pide entropía... esto significa mucho mucho RANDOM. Muevan el mause, abran programas, hagan un find desde /, no se, lo que sea. Lo importante es que el generador de números aleatorios escoja sus 2 números primos. Lo azaroso en elegir 2 números primos de semejante tamaño es que nadie nadie los pueda descubrir.

Una vez terminada la recogida de entropía, termina la generación de la clave!!

FELICIDADES, son dueños de una clave RSA/RSA de 4096 bits de fortaleza, ahora...



CERTIFICADO DE CANCELACION:
**********************************************

Con:

 $ gpg --list-keys

Se listan las claves del anillo. Lo que necesitan de la clave es su ID de clave.

 pub   4096R/789D025D 2011-12-03 [[caduca: 2016-12-01]]
 uid                  Dario A Rodriguez (SAFA - Development Control System) <soft....@gmail.com>
 sub   4096R/7737780B 2011-12-03 [[caduca: 2016-12-01]]

En este caso, 4096R significa "RSA de 4096 bits", y el ID es 789D025D para la clave PUBLICA, o sea, la MAESTRA. Y la clave marcada con SUB es una clave RSA SUBORDINADA, para encriptar.

Bien, entonces usamos el ID de la clave para editarla, o en este caso, para generar un Certificado de Cancelacion o REVOCACION.

 $ gpg --output 789D025D.asc --gen-revoke 789D025D

El certificado es corto, pero si lo publicamos en el servidor de claves donde este nuestra clave, la clave se dará por inválida para todos los que actualicen. Esto se trata de circular un certificado de NO CONFIANZA.

Podemos imprimir el certificado, y guardarlo en un lugar seguro. Nadie debe tener acceso o podrían publicar el certificado y anular nuestra clave. Pero si nuestra clave se ve comprometida, incluso por robo del equipo, podemos publicar el certificado y anular la clave.



EXPORTAR LA CLAVE:
************************************************

Finalmente, desearemos exportar la clave. Armor le dice a GPG que debe usar armaduraASCII en lugar de generar un binario, así podremos intercambiar la clave pública con COPY-PASTE:

$ gpg --armor --output dario-safa-pubkey.asc --export soft....@gmail.com

Pero por favor, usen un server, y si publican la clave, que sea dando la URL del server de claves, porque eso les permite SUBIR y DISTRIBUIR el CERTIFICADO DE CANCELACION.


Ufff... estoy agotado, necesito cerveza
Saludos
--
Dario

Osvaldo Falabella

unread,
Dec 3, 2011, 11:57:28 AM12/3/11
to safa...@googlegroups.com
muy bueno! muy claro!



Saludos
--
Dario

--

Dario Rodriguez

unread,
Dec 5, 2011, 3:01:31 PM12/5/11
to safa...@googlegroups.com


---------- Forwarded message ----------
From: Dario Rodriguez <soft....@gmail.com>
Date: 2011/12/5
Subject: Re: [safa] Juntada & Signing Party
To: Osvaldo Falabella <ofal...@gmail.com>


2011/12/5 Dario Rodriguez <soft....@gmail.com>
mandenme a mi casilla (no a la lista) lo siguiente:

 - id de la clave
 - nombre y apellidos tal y como estan en el uid de la clave
 - huella de la clave
 - tipo y longitud de la clave

Me olvidaba. Para obtener el fingerprint de la clave pueden hacer:

 $ gpg --fingerprint  789D025D

En realidad, esta otra deberia darles suficiente informacion:

 $ gpg -v --fingerprint  789D025D

Si no pueden con esa forma, pueden intentar este otro camino:

 $ gpg --edit-key  789D025D

Reemplazando 789D025D por su ID de clave. Y una vez dentro:

 > fpr

Les arroja una huella en hexa. Esa es la que tienen que usar. Luego hacen:

 > quit

...para salir de la linea de comandos de GPG.


Saludos
--
Dario

Dario Rodriguez

unread,
Dec 5, 2011, 3:03:01 PM12/5/11
to safa...@googlegroups.com
Se lo mande a Ova sin querer y le di FW

Eso pasa por escribir a 1000, sepan disculpar!

--
Dario

Alfredo Gore

unread,
Dec 6, 2011, 8:33:04 AM12/6/11
to safa...@googlegroups.com
La singing party donde seria? a mi se me ocurre falkner, ya que si vamos temprano (20:00hs) es tranquilo y la cerveza es rica :P. Ademas a mi me queda muy cerca, pero entiendo que no a todo el mundo. Si alguien tiene una mejor propuesta...?



--
Dario

--
Reply all
Reply to author
Forward
0 new messages