Cifrado y firma digital con GnuPG
M´aster en Econom´ıa Digital e Industrias Creativas
Miguel Vidal
Israel Herraiz
ETSIT, URJC
ETSICCP, UPM
Twitter: @mvidallopez
Twitter: @herraiz
1 de octubre de 2011
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
1 / 35
c(cid:13) 2011 Miguel Vidal, Israel Herraiz
Esta obra se distribuye bajo licencia
“Reconocimiento 3.0 Espa˜na” de Creative Commons.
http://creativecommons.org/licenses/by/3.0/es
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
2 / 35
´Indice
PGP, OpenPGP, GnuPG
PGP
OpenPGP
GnuPG
Gesti´on de claves p´ublicas
Exportar clave p´ublica
Firmado de claves
Ejemplo de firmado de una clave
Cifrado
Cifrado con clave p´ublica
Cifrado con clave sim´etrica
Firma digital
Firmar un documento
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
3 / 35
¿Qu´e es PGP?
• Pretty Good Privacy: primera implementaci´on popular del cifrado de
clave p´ublica (RSA).
• Creado en solitario por Phil Zimmermann en 1991, un activista de los
ciberderechos.
• Lo puso a disposici´on de todo el mundo (c´odigo fuente incluido) v´ıa
FTP.
• Se populariz´o r´apidamente y recibi´o caluroso apoyo de la comunidad
de cript´ografos para la versi´on 2.0 (1992).
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
4 / 35
¿Qu´e es PGP? (2)
• Zimmermann tuvo muchos problemas con la patente de RSA y fue
investigado por presunta violaci´on de las leyes de exportaci´on de
armas.
• Su caso fue finalmente archivado en 1996.
• Cre´o entonces una compa˜n´ıa (PGP Inc.) para explotar
comercialmente PGP.
• La patente RSA expir´o en septiembre del 2000.
• PGP Inc. fue adquirida por NAI y luego por PGP Corporation.
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
5 / 35
´Indice
PGP, OpenPGP, GnuPG
PGP
OpenPGP
GnuPG
Gesti´on de claves p´ublicas
Exportar clave p´ublica
Firmado de claves
Ejemplo de firmado de una clave
Cifrado
Cifrado con clave p´ublica
Cifrado con clave sim´etrica
Firma digital
Firmar un documento
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
6 / 35
OpenPGP
• Est´andar abierto para PGP propuesto por Zimmermann.
• Aceptado por la IETF en 1998.
• RFC 4880 (noviembre 2007), sucesor del RFC 2440.
• Tiene muchas implementaciones, sobre todo para clientes de correo.
• La implementaci´on libre de OpenPGP se llama GnuPG.
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
7 / 35
´Indice
PGP, OpenPGP, GnuPG
PGP
OpenPGP
GnuPG
Gesti´on de claves p´ublicas
Exportar clave p´ublica
Firmado de claves
Ejemplo de firmado de una clave
Cifrado
Cifrado con clave p´ublica
Cifrado con clave sim´etrica
Firma digital
Firmar un documento
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
8 / 35
GnuPG
• GNU Privacy Guard: Implementaci´on libre (GPLv3) de OpenPGP.
• Promovido por la FSF desde 1999.
• Fue apoyado por el Gobierno alem´an en sus inicios (financiaron la
documentaci´on y el port a Windows).
• Se basa en interfaz de l´ınea de comandos, con diversos frontends
gr´aficos.
• Existen ports a los sistemas operativos m´as utilizados (Windows,
MacOS, Linux...).
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
9 / 35
Descargar GnuPG
• Descargar e instalar GnuPG (hay versiones para Windows, MacOS,
Linux, *BSD...)
• Para MacOS X, Mac GPG: http://gpgtools.org
• Para Windows, gpg4win: http://gpg4win.org
• Hay GUIs: por ejemplo Seahorse para Gnome o WPA para Windows.
Opcional: podemos comprobar la integridad del fichero:
$ sha1sum gnupg−w 3 2 c l i − 1 . 4 . 1 0 b . e x e
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
10 / 35
Instalar GnuPG
La instalaci´on en Unix/Linux por medio del sistema de paquetes
correspondiente. Por ejemplo:
$ apt−g e t
$ p k g a d d −vv gnupg − 1 . 4 . 1 0 p0
i n s t a l l gnupg
# L i n u x ( Debian , Ubuntu )
# OpenBSD
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
11 / 35
Generar claves
Generamos nuestro par de claves (una privada y otra p´ublica):
$ gpg −−gen−k e y
Nos preguntar´a por el algoritmo a usar (RSA), tama˜no de clave (2048
bits), expiraci´on (0), nombre real, email y comentario.
Tambi´en desde l´ınea de comandos podemos pasar par´ametros:
$ gpg −−gen−k e y −t
r s a −b < b i t s 2048 o 4096>
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
12 / 35
Obt´en tu key ID
$ gpg −− l i s t −k e y s
/home/ m v i d a l / . gnupg / p u b r i n g . gpg
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
pub 1024D/ F724244F 1999−08−27
u i d M i g u e l V i d a l <m v i d a l @ g s y c . u r j c . es>
u i d M i g u e l V i d a l
u i d M i g u e l V i d a l <m v i d a l @ c o m p u t e r . org>
sub 1024 g/ A2B68952 1999−08−27
(URJC) <m i g u e l . v i d a l @ u r j c . es>
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
13 / 35
´Indice
PGP, OpenPGP, GnuPG
PGP
OpenPGP
GnuPG
Gesti´on de claves p´ublicas
Exportar clave p´ublica
Firmado de claves
Ejemplo de firmado de una clave
Cifrado
Cifrado con clave p´ublica
Cifrado con clave sim´etrica
Firma digital
Firmar un documento
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
14 / 35
Exporta tu clave p´ublica
Para poder enviar una clave p´ublica a otra persona (sin usar un servidor de
claves), tenemos que exportarla:
$ gpg −−armor −−o u t p u t m v i d a l . a s c −−e x p o r t m v i d a l
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
15 / 35
Importa una clave p´ublica
Para importar una clave p´ublica (sin servidor de claves) a nuestro anillo de
claves:
$ gpg −−i m p o r t m v i d a l . gpg
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
16 / 35
Sube tu clave a un servidor de claves
Publica tu clave en un servidor de claves:
$ gpg −−k e y s e r v e r pgp . r e d i r i s . e s −−send−k e y s F724244F
Que debe devolverte algo como:
$> gpg :
s e n d i n g k e y F724244F
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
17 / 35
Descarga una clave p´ublica
Descarga una clave p´ublica de un servidor de claves:
gpg −−k e y s e r v e r pgp . r e d i r i s . e s −−r e c v−k e y s
[ k e y i d ]
O tambi´en:
$ gpg −−k e y s e r v e r pgp . r e d i r i s . e s −−s e a r c h−k e y s FE0A7AF3
gpg : b u s c a n d o " FE0A7AF3 " de hkp s e r v i d o r pgp . r e d i r i s . e s
( 1 )
I s r a e l H e r r a i z < i s r a e l . h e r r a i z @ u p m . es>
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
18 / 35
Localizar un identificador de clave p´ublica
¿C´omo localizo la key ID de alguien?
http://www.rediris.es/keyserver
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
19 / 35
Localizar un identificador de clave p´ublica
¿C´omo localizo la key ID de alguien?
http://www.rediris.es/keyserver
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
19 / 35
´Indice
PGP, OpenPGP, GnuPG
PGP
OpenPGP
GnuPG
Gesti´on de claves p´ublicas
Exportar clave p´ublica
Firmado de claves
Ejemplo de firmado de una clave
Cifrado
Cifrado con clave p´ublica
Cifrado con clave sim´etrica
Firma digital
Firmar un documento
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
20 / 35
Firmar la clave de otra persona
1. Mostramos y solicitamos que se nos muestre un documento que
acredite la identidad de cada cual.
2. Intercambiamos nuestras claves p´ublicas o bien la huella digital con la
persona a la que vamos a firmarle la clave (y va a firmar la nuestra).
3. La huella digital puede entreg´arnosla en un papel y despu´es podemos
comprobar en nuestro ordenador que efectivamente coincide con la
clave p´ublica que poseemos de esa persona.
4. Una vez comprobado, podemos proceder a firmar su clave y otorgarle
confianza.
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
21 / 35
Firmar la clave de otra persona
Descarga y comprueba las huellas y claves de tus conocidos:
$ gpg −−k e y s e r v e r pgp . r e d i r i s . e s −−r e c v−k e y s
$ gpg −− f i n g e r p r i n t
[ k e y i d ]
[ k e y i d ]
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
22 / 35
Firmar la clave de otra persona
Firma cada una de las claves verificadas de tus conocidos, y s´ubelas al
servidor de claves:
$ gpg −−s i g n−k e y [ k e y i d ]
$ gpg −−k e y s e r v e r pgp . r e d i r i s . e s −−send−k e y s
[ k e y i d ]
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
23 / 35
Observaciones
• Solo se debe firmar una clave cuando se est´e totalmente seguro de
que dicha clave es aut´entica.
• Esto solo puede suceder si se recibe la clave en mano.
• Por eso, normalmente el procedimiento de firma se realiza
presencialmente.
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
24 / 35
´Indice
PGP, OpenPGP, GnuPG
PGP
OpenPGP
GnuPG
Gesti´on de claves p´ublicas
Exportar clave p´ublica
Firmado de claves
Ejemplo de firmado de una clave
Cifrado
Cifrado con clave p´ublica
Cifrado con clave sim´etrica
Firma digital
Firmar un documento
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
25 / 35
Ejemplo de firmado de una clave
$ gpg --sign-key herraiz
Orden> sign
¿Est´a realmente seguro de querer firmar esta clave
con su clave: "Miguel Vidal (URJC) <
[email protected]>"(F724244F)?
¿Firmar de verdad? s´ı
Orden> quit
¿Grabar cambios? s´ı
Si distribuimos nuestra clave p´ublica, ya aparecer´a con las firmas
efectuadas.
Miguel Vidal / Israel Herraiz
Cifrado y firma digital con GnuPG
01/10/2011
26 / 35
Resumen
1. Hay que asegurarnos de que quien nos da la clave es efectivamente
quien dice ser (algo
Comentarios de: Cifrado y firma digital con GnuPG (0)
No hay comentarios