DEBIAN PRO

DEBIAN PRO
DEBIAN

lunes, 5 de septiembre de 2016

GPG4USB es tu amigo.


Este post te explicará los conceptos básicos del sistema de Clave Pública/Privada (GPG gnu pretty privacity), anteriormente llamado PGP (Pretty Good Privacy) creado en 1991 por Phil Zimmermann.

Está pensado para que puedas entender los conceptos y aprender a usar la herramienta, algo que vengo usando desde 1999. (ver mis claves mas usadas en https://dcialdella.no-ip.com/dac.asc )

Mi idea al escribir el post es que le sirva a la gente que quiera entender que es GPG, solución gratuita, funcional y para mantener su privacidad.
Intenté hacerlo simple y corto pero no fue tan fácil.


ALGUNOS CONCEPTOS.
¿ Qué es GPG ?
Es un sistema criptográfico compuesto por una clave pública y privada, que permite entercambiar mensajes y ficheros entre personas garantizando la privacidad del mismo, garantizando el ORÍGEN emisor y que SOLO el DESTINO receptor pueda leerlo. También permite "LA FIRMA" de un mensaje para que un destinatario pueda garantizar que lo mandé yo mismo y no fué alterado en el camino.

Una explicación mas detallada, ver aqui https://es.wikipedia.org/wiki/Pretty_Good_Privacy

GPG4USB es un producto gratuito que utiliza GPG pero que permite tener los programas y las llaves en una carpeta. Esa carpeta se puede copiar y tener en un Pendrive (o donde la necesitemos). Sería la versión portátil y fácil de usar, con un GUI muy sencillo y al estar hecho bajo la licencia GPL nos garantiza la calidad y la auditoría de su código.

Los pasos para poder usar GPG son :

* Descargar GPG4USB (que es lo más fácil) de este sitio. https://gpg4usb.org/download.html

* Descomprimir la fichero en una carpeta, personalmente prefiero hacerlo en un PENDRIVE y llevarlo a todos lados. Si quiero usarlo, basta conectar el pendrive y darle doble-click al ejecutable. (mas sencillo imposible !!!!)

* Al ejecutarlo por primera vez, veremos algo como esto.


* A la derecha, veremos que ya tenemos una clave "pública" almacenada en nuestro programa. Es la clave usada por los desarrolladores, con un fingerprint ( F145 3A7A 02E5 4A6F CD41 5C87 80A4 4321 2ECD 733A ), aunque puede que en futuras versiones cambie. Si le damos botón derecho y "SHOW KEYDETAILS", veremos que se creó en el 2008. el email asociado gpg4usb@cpunk.de, la medida de la clave.


* Ahora tenemos que crearnos una clave personal. Será nuestra clave para enviar/recibir información y tiene el mismo valor que las llaves de nuestra casa/coche.
Como comentamos antes, el sistema se basa en un proceso que genera una clave "pública y otra privada". Como analogía, la clave privada es nuestra llave de casa y la llave pública la cerradura de casa. No es exactamente así pero como concepto nos sirve.
Ambas claves trabajarán en conjunto para realizar el proceso de "abrir" algo y también para que quien tenga "una copia de mi cerradura" y yo pueda meter mi llave y abrir, confirmará que esa cerradura es mia.

El proceso de generar la llave y la cerradura utiliza números primos muy grandes y es de los sistemas mas seguros que existen hoy en dia, si alquien quiere copiarnos la lalve o cerradura se dice que demorará cientos/miles de años para hacerlo.
En seguridad, el nivel de "SEGURO" se mide en cuanto tiempo se necesita para romperlo. Hoy en dia GPG es "lo mas seguro".

Para crear nuestra primer llave y candado (clave privada y pública) debemos ir a "KEYS", luego "MANAGE KEYS", luego "KEY" y "GENERATE KEY". En ese punto vamos a crearnos una clave.
Se pueden crear tantas claves como querramos, es gratuito y bueno dar diferentes llaves a diferentes personas.
También usar claves para la familia y otras para fines comerciales.
Y las combinaciones que querramos. Todo esto es gratis, fácil y sirve para tener mas seguridad.

Al crear la clave debemos asociar un nombre (ej: DAC Clave para amigos), un email (para que sea fácil de encontrar luego), un comentario (blabla), la longitud de la clave (hoy en dia la máxima longitud en bits es 4096), es gratis entonces usemos la clave mas grande..... y luego una contraseña que usaremos para validar que somos nosotros para poder usar la clave GPG.
Es decir, para poder encriptar, firmar o desencriptar un mensaje tengo que decirle al programa GPG4USB que "yo soy yo" usando esta clave.
Obviamente esta clave debe ser larga, con letras, números y símbolos especiales para que también sea segura. Lo mismo que cualquiera de nuestras claves de correo, web, etc...

* El proceso demorará unos segundos/minutos hasta que nos aparezca el mensaje de "COMPLETADO", en ese momento ya tendremos nuestra clave PRIVADA/PÚBLICA creada.



* En la ventana de la derecha, aparecerá una línea indicando que ya existe una nueva clave privada/pública (la que acabamos de crear). En mi caso tengo cientos de claves públicas de personas con las que me escribo y mis claves privadas.



* ¿ Qué hago con mi clave pública ahora ?
Botón de la derecha sobre la clave personal que me acabo de crear y selecciono "APPEND SELECT KEY TO TEXT", verán que aparece en la ventana de la izquierda un texto similar a este.
Arriba del mensaje dice "PUBLIC KEY" (Clave pública)

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQINBFcV8WkBEACr1HGdclejqG9X41/I1P1Nl+HOjeb0Gq62uVawr4b4/h76sZL/
rgpBG/Kf7enN6uIREQ7X7DCRACEzFEZ1pOfxe0cUiF6Isn9D7fAE9f7SWJE7PIEv
NUEBjs63MzxJLLa6wOuJuB/wmWYe0B3cWcksRXscFjXycgANJrIRbmNJjH3qS3Ny
.....
T3CdoNOz+3G4tBWC6guZDL+vuxE/7fkP/U28EbmH8RsEr8xIzKSsNDOkkeBBbwCx
ZGxczeuXZSeMgpukFEveHGdarN9xU5xfbICQg/h4qx4xdU9EHwz7XfYquLBcT8ft
ZkiDlET0uBlAMa6BR1ncnA==
=9Bl/
-----END PGP PUBLIC KEY BLOCK-----


Como pueden ver arriba de todo es mi CLAVE PÚBLICA.



* Esa clave se copiará a los servidores de claves en internet (pgp.mit.edu y otros) automáticamente.
No hay problemas en copiar mi clave en esos servidores, como tampoco hay problemas en darle mi clave PUBLICA a todos mis conocidos. Es "COMO SI FUERA MI CERRADURA", puedo dar copias porque la llave la tengo yo.

Ese texto generado (clave pública) se que puede copiar y enviar a todas las personas con las que quiero intercambiar mensajes encriptados o que puedan verificar que soy el generador de un contenido.

Cuando creamos la clave pusimos un email, eso quiere decir que otras personas podrán buscar nuestras claves en los servidores de claves públicas (como el del MIT) poniendo ese email. Si buscan dcialdella@gmail.com verán algunas de mis claves.

También es posible exportar la clave privada, lo veremos al final de todo. Sólo es recomendable tener la clave privada en un fichero texto aislado y sin acceso físico por nadie (caja fuerte). Esa clave nos representa y quien tenga ese fichero será nosotros mismos.


* Ahora el concepto principal de GPG.
Si tenemos la clave PUBLICA de alquien (nuestro amigo) le podemos enviar un mensaje encriptado (usando SU clave pública) y solamente él podrá leerlo (porque tiene SU clave privada).
Si él nos envia un mensaje usará nuestra clave pública, nosotros lo leeremos con nuestra clave privada.

Veamos un ejemplo, queremos enviarle un mensaje privado a los chicos que mantienen GPG4USB.

En la ventana de la izquierda escribo un texto, en la derecha SELECCIONE su clave pública.
Y luego pulso el botón de "ENCRYPT", arriba a la izquierda.


GPG4USB encriptó el texto y nosotros debemos copiarlo/pegarlo en el programa de correos que usemos.


Veremos arriba que dice "PGP MESSAGE", este texto es UN MENSAJE PGP encriptado.

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1

hQIMAxRjiX6x1+xoAQ/9Hkbu/OyETJVB/kdjbXoEXFdqd2yD9KoyjwH5DQ/HJ/MW
zLCJzYHdDhWEdJ9Fy+4awDEywQCyLHCdE/jHfcGhUhQdFn18GVFKv30Wjh/bvZb/
eYl4glKjJcHLUgGeO/Vo33QDq9OlYw989qMH12GNUzT8ya2pxVhcDQCYXwBiMmiz
09E09u0Fm6xFB3HQlyNisi69QOU6v0OckO8OMqc7EVDsRuwrcG4TkGJOQJAoVdz8
5SPyEkTfBxscwFjjph7yGZc2EjOhwnCdzAJENcwiBkFxMao/+vVRvrPYVAMC0lwB
BfSl4eowsK/SE19MGzcqhuXLj8Z3nQ/U8p8LsBHs20WqsLH6igKDPl6SnAdiV7+g
p45Flr52wM80j2FxRmqncP8vzL/NZqBe6B5nisZhjHJs3AWdk5GqfU8Lrw==
=RxYM
-----END PGP MESSAGE-----

* También tiene un botón de FILE, para encriptar y des-encriptar un fichero, seleccionamos el FICHERO INPUT (Entrada), el fichero OUTPUT (Salida encriptada) y que clave queremos usar (usará la clave pública de los destinatarios)


* Supongamos que escribo un texto en la ventana de la izquierda, y SELECCIONO la clave de alguien PERO NO SELECCIONO MI PROPIA CLAVE, el mensaje se encripta y SOLO el destinatario puede verlo. ESO ME EXCLUYE y yo no puedo des-encriptar el mensaje porque no estoy entre los destinatarios del mismo (o mi clave pública no se usó para encriptarlo).

En esta pantalla, encripté un mensaje para alguien y luego quiero desencriptarlo. No podré porque no tengo la clave PRIVADA del destino necesaria para ver el contenido.
Tuve y usé la clave pública de otro para encriptarlo, pero sin la clave privada del otro no puedo desencriptarlo.




* El último concepto es la firma de un mensaje.
En la ventana izquierda escribo un texto y selecciono "SIGN" (firmar), aparecerá un mensaje similar a este.
Se puede ver que dice "SIGNED MESSAGE, dentro está el texto en claro (no está encriptado, está firmado. Y debajo la firma.
Alguien puede pegarlo en su ventana y decir "VERIFY". Para garantizar que fué enviado usando mis llaves.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Esto es un mensaje firmado que garantiza que lo escribí yo.

dac
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBAgAGBQJXza6KAAoJEAKSVO1cS35oFuoP/A2xWepKrbvNOwVne8bdR8PT
QKftMDG1IBdEF80dHtr9n+7vm5pOUOdgI0Sw1kXLiQIcBAEBAgAGBQJXza6KAAoJ
EFrfEQONEt0KFuoP/21Ewph/D0zBSkMIjOelZrgoOFVlsUQzx+xXx/9f11bcYTWu
Y+C0XM2KsLcTKLQ+FGxXLmtkq8waP547qBkFKNFpv6z+LcnJHEJBF5kiookP
=YVwT
-----END PGP SIGNATURE-----




No hay comentarios:

Publicar un comentario