Criptografía. Llaves Publicas y Privadas. Tarea 3
A tod@s… Hola.
Hoy, hablaremos de Criptografía, específicamente mostrare como crear y utilizar las llaves publicas y privadas en el proceso de Encriptación y firma de correos electrónicos, comencemos conociendo los conceptos que se van a manejar en este post.
Criptografía: La criptografía (del griego κρύπτω krypto, «oculto», y γράφω graphos, «escribir», literalmente «escritura oculta»)
Su objetivo principal es cifrar/descifrar la informacion por medio tecnicas especiales y simbolos para enviar un mensaje ( informacion) por un canal seguro / no seguro a un receptor quien a su vez estara en capacidad de leer la informacion como persona
Criptografía Simétrica: La criptografía simétrica es el método criptográfico que usa una misma clave para cifrar
y descifrar mensajes. Las dos partes que se comunican han de ponerse de acuerdo de
antemano sobre la clave a usar. Una vez ambas tienen acceso a esta clave, el remitente
cifra un mensaje usándola, lo envía al destinatario, y éste lo descifra con la misma.”
Criptografia Asimetrica: La criptografía asimétrica es por definición aquella que utiliza dos claves diferentes para cada usuario, una para cifrar que se le llama clave pública y otra para descifrar que es la clave privada.
El nacimiento de la criptografía asimétrica se dio al estar buscando un modo más práctico de intercambiar las llaves simétricas.
IMPORTANTE:
Actualmente la Criptografía asimétrica es muy usada; sus dos principales aplicaciones son el intercambio de claves publicas y la firma digital.
Firma Digital: Se puede definir como una cadena de caracteres que se agrega a un archivo digital que hace el mismo papel que la firma convencional que se escribe en un documento de papel ordinario.
Entrando mas en el tema central del Post, la herramienta que vamos a utilizar sera GPG2 sobre la terminal de Kali Linux 2.0, esta herramienta ya viene instalado en el Sistema Operativo.
Como funciona PGP?
Esta criptografía se basa en dos claves distintas . Una de las claves se denomina pública y la otra privada. La clave pública (como su nombre indica) puede hacerse pública, por contra la clave privada sólo es conocida por el propietario de la misma. Cuando una persona quiere firmar digitalmente un mensaje usa su clave privada, de esta forma cualquier persona que posea la clave pública del remitente podrá comprobar que el mensaje ha sido firmado correctamente. Para cifrar un mensaje se usa la clave pública del destinatario, así cuando éste reciba el mensaje podrá usar su clave privada para descifrarlo y por tanto sólo él puede ver el contenido del mensaje
Para Windows tambien existen diversas herramientas de criptografía, entre las mas utilizadas:
Windows:
Mac OS X:
Linux:
- Kleopatra (KDE)
También existen otros software que tienen integrado herramientas de Criptoanalis:
- OpenSSL
- TrueCrypt
Ahora veremos el funcionamiento del juego de llaves publica y privada, desde el proceso de creación, hasta el proceso de encriptación y desencriptación de correos.
1.Creación de llaves.
$ gpg2 –gen-key
Comenzamos el proceso de la creación de la llave publica y privada
Posteriormente, debemos indicar el tipo de cifrado que usaremos para nuestras llaves. La diferencia entre estas opciones, esta en el tipo de algoritmo a utilizar. Usaremos la opción dos (2) DSA y ElGamal
Paso siguiente, escogeremos el tamaño de la llave, la opción mas recomendada es 2048, esta es la mas segura, según mi experiencia.
Deberemos escoger el tiempo de caducidad de la llave, esto hace referencia al tiempo de validez que tendrá dicho juego de llaves, para nuestro ejemplo, nuestras llaves no tendrán fecha de caducidad.
Después, debemos ingresar nuestro nombre, apellido, correo electrónico y un comentario (este ultimo es opcional).
2. Exportación de llaves
$ gpg2 –export nombre_usuario > nombre_usuario-pub.gpg
Con este comando exportaremos en Binario nuestra llave publica.
Seguido importamos la llave publica que nos compartieron
$ gpg2 –import nombre_usuario2-pub.gpg
Generar un archivo de texto y firmarlo y cifrarlo.
Modo binario
$ gpg2 –recipient nombre_usuario2 –sign –encrypt test.txt
Modo ASCII
$ gpg2 –recipient nombre_usuario2 –armor –sign –encrypt test.txt
Después digitamos la clave que se le asigno y posteriormente gpg2 nos genera un nuevo archivo .pgp, el cual ya se encuentra encriptado.
Enviar y recibir el mensaje cifrado al compañero de la tarea
Después de esto, pasaremos a desencriptar los archivos que nos sean enviados con los siguientes pasos.
Descifrar el mensaje recibido mediante nuestra clave privada, el proceso verifica la firma
Modo binario
$ gpg2 –decrypt test.txt.gpg > test.txt
Modo ASCII
$ gpg2 –decrypt test.txt.gpg > test.asc.txt
Estos son los pasos a seguir para generar una llave publica, exportarlas, importarlas y un pequeño ejemplo de su funcionamiento.
Saludos!
Neox!