sábado, 26 de enero de 2008

gnupg-Cifrado asimétrico

gnupg. un sistema criptografico libre.

¿Que podemos hacer con gnupg?.


.- Claves asimétricas.

Un problema de la encriptación de mensajes o archivos, es el ponerse de acuerdo con los passwords o claves para desencriptar un contenido. La solución asimétrica, consiste en que cada uno elije su password y lo que le mandan encriptado lo desencripta con su password. ¿Que no lo entiendes?, yo tampoco lo entendia y por eso pongo un ejemplo.

Tenemos dos amigos Juan y Pedro. Ambos quieren encriptarse cosas de modo que lo que le mande Juan a Pedro solamente lo puede desencriptar Pedro y lo que le mande Pedro a Juan, solo lo puede desencriptar Juan. ¿Como lo hacen?.
Pedro con el gnupg elije su password y crea un fichero que se llama clave publica que se lo envia a Juan, Juan cuando cifra (o encripta que es lo mismo) un fichero lo hace utilizando la clave pública de Pedro, el unico que puede desencriptar este fichero es Pedro que tiene el password.

De la misma forma Juan con el gnupg elije su password y crea un fichero que se llama clave publica que se lo envia a Pedro,Pedro cuando cifra (o encripta que es lo mismo) un fichero lo hace utilizando la clave pública de Juan, el unico que puede desencriptar este fichero es Juan que tiene el password.


¿Se ha entendido?.
Vamos a verlo un poco mas practico, pero sin mucho detalle todavía para que se entienda.

Juan crea la clave
Juan escribe en su terminal:
$gpg --gen-key,
Le pregunta unos datos, entre otros nos pide un password, esto genera algunos ficheros en algún sitio con información sobre estos datos.
Juan exporta su clave pública
Juan crea un ficherete con su clave pública de esta forma:
$gpg --export > juan.gpg
y este fichero se lo envia a Pedro.
Pedro recibe la clave pública de Juan.
Cuando Pedro recibe la clave pública de Juan, la integra en su sistema.
$gpg --import juan.gpg

Pedro tiene que enviar un fichero a Juan
Pedro tiene un fichero para Juan que se llama "ficheroparaenviar".
Pedro quiere enviarselo a Juan encriptado, y lo hace así.
$gpg --encrypt ficheroparaenviar > ficheroparajuan.gpg
(gpg le preguntará para quien quiere enviarlo).
Sólamente Juan podrá leer este fichero y se lo envía.

Juan recibe el fichero encriptado.

entonces Juan lo desencripta así:
$gpg --decrypt ficheroparajuan.gpg > ficherodepedro
le pedirá a Juan password que introdujo cuando creó la clave y ya esta.



!alto! !alto!, la operativa parece facil, pero es un lio enorme.
Pregunta:
-Es mucho mas facil el sistema de siempre, cifro con un password y envío el fichero a quien me de la gana.
¿Si quiero enviar el fichero a 5 personas tengo que encriptarlo cinco veces?.
Y aun con todo, esto es muy complicado.

Respuesta:
- De acuerdo, de acuerdo, pero este sistema de cifrado tiene sus ventajas, no hay el lio de passwords del sistema tradicional.
-No hace falta cifrar el fichero 5 veces si tienes que enviarlo a cinco personas, porque se puede cifrar con las cinco a la vez.
- En realidad esto está pensado para integrarse en programas que envian/reciben mensajes o ficheros como por ejemplo el correo. Si el cliente de correo te permite asignar una clave publica gpg a un destinatario, le enviaras los correos cifrados y si recibes un correo cifrado te preguntará el password.

No hay comentarios: