Cifrado y firma digital con GnuPG - GSyC

1 oct. 2011 - gpg −−keyserver pgp. rediris . es −−send−keys [ key id ]. Miguel Vidal / Israel Herraiz. Cifrado y firma digital con GnuPG. 01/10/2011. 23 / 35 ...
598KB Größe 27 Downloads 90 vistas
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 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 i n s t a l l gnupg # L i n u x ( Debian , Ubuntu ) $ p k g a d d −vv gnupg − 1 . 4 . 1 0 p0 # 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 u i d M i g u e l V i d a l (URJC) u i d M i g u e l V i d a l sub 1024 g/ A2B68952 1999−08−27

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 [ k e y i d ] $ gpg −− f i n g e r p r i n t [ 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) "(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 imposible de verificar si nos descargamos su clave de un repositorio p´ ublico o si nos la env´ıa por email). 2. Es importante entender y mantener la consistencia de las claves de confianza (y nunca firmar si el canal por el que la hemos recibido no es fiable). 3. A diferencia de otros sistemas de criptograf´ıa de clave p´ ublica que conf´ıan en una autoridad certificadora (CA), aqu´ı todo se basa en un sistema descentralizado de fuentes de confianza.

Miguel Vidal / Israel Herraiz

Cifrado y firma digital con GnuPG

01/10/2011

27 / 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

28 / 35

Cifrar y descifrar un documento El documento que se desea cifrar es la entrada, recipient es el destinatario y la salida es el documento cifrado: $ gpg −−o u t p u t documento . gpg −−e n c r y p t −− r e c i p i e n t \ f u l a n o @ f o o . e s documento Para descifrar (-d): $ gpg −−o u t p u t documento −−d e c r y p t documento . gpg

Miguel Vidal / Israel Herraiz

Cifrado y firma digital con GnuPG

01/10/2011

29 / 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

30 / 35

Cifrado sim´ etrico

1. Funcionalidad no muy conocida de pgp/gnupg. 2. No requiere uso de clave p´ ublica ni privada. ´ 3. Util para cifrar ficheros para uno mismo. 4. M´etodo r´apido para usar cifrado fuerte con usuarios que no usan gpg/pgp (mucho mejor que el cifrado f´acilmente crackeable de Word o de Winzip).

Miguel Vidal / Israel Herraiz

Cifrado y firma digital con GnuPG

01/10/2011

31 / 35

C´ omo cifrar con clave sim´ etrica gpg −−s y m m e t r i c f i l e n a m e

Salida ASCII (para intercambiar por email): gpg −−s y m m e t r i c −−armor f i l e n a m e (Se nos solicitar´ a una clave: no usar la misma contrase˜ na de nuestra clave privada.)

Para descifrar, se hace de la forma habitual: gpg −d f i l e n a m e

Miguel Vidal / Israel Herraiz

Cifrado y firma digital con GnuPG

01/10/2011

32 / 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

33 / 35

Firmar un documento El documento a firmar es la entrada y la salida es el documento firmado: gpg −−armor −−o u t p u t document . s i g −−s i g n document Verificar la integridad de un documento firmado: gpg −− v e r i f y document . s i g Si adem´as de verificar la firma queremos recuperar el documento: gpg −−o u t p u t document −−d e c r y p t document . s i g

Miguel Vidal / Israel Herraiz

Cifrado y firma digital con GnuPG

01/10/2011

34 / 35

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

35 / 35