La criptografía asimétrica (en inglés asymmetric key cryptography), también llamada criptografía de clave pública (en inglés public key cryptography) o criptografía de dos claves (en inglés two-key cryptography), es el método criptográfico que usa un par de claves para el envío de mensajes. Las dos claves pertenecen a la misma persona que ha enviado el mensaje. Una clave es pública y se puede entregar a cualquier persona, la otra clave es privada y el propietario debe guardarla de modo que nadie tenga acceso a ella. Además, los métodos criptográficos garantizan que esa pareja de claves sólo se puede generar una vez, de modo que se puede asumir que no es posible que dos personas hayan obtenido casualmente la misma pareja de claves.

Si el remitente usa la clave pública del destinatario para cifrar el mensaje, una vez cifrado, sólo la clave privada del destinatario podrá descifrar este mensaje, ya que es el único que la conoce. Por tanto se logra la confidencialidad del envío del mensaje, nadie salvo el destinatario puede descifrarlo.

Si el propietario del par de claves usa su clave privada para cifrar el mensaje, cualquiera puede descifrarlo utilizando su clave pública. En este caso se consigue por tanto la identificación y autentificación del remitente, ya que se sabe que sólo pudo haber sido él quien empleó su clave privada (salvo que alguien se la hubiese podido robar). Esta idea es el fundamento de la firma electrónica.

Los sistemas de cifrado de clave pública o sistemas de cifrado asimétricos se inventaron con el fin de evitar por completo el problema del intercambio de claves de los sistemas de cifrado simétricos. Con las claves públicas no es necesario que el remitente y el destinatario se pongan de acuerdo en la clave a emplear. Todo lo que se requiere es que, antes de iniciar la comunicación secreta, el remitente consiga una copia de la clave pública del destinatario. Es más, esa misma clave pública puede ser usada por cualquiera que desee comunicarse con su propietario. Por tanto, se necesitarán sólo n pares de claves por cada n personas que deseen comunicarse entre sí.

Las dos principales ramas de la criptografía de clave pública son:

  • Cifrado de clave pública: un mensaje cifrado con la clave pública de un destinatario no puede ser descifrado por nadie (incluyendo al que lo cifró), excepto un poseedor de la clave privada correspondiente, presumiblemete su propietario y la persona asociada con la clave pública utilizada. Su función es garantizar la confidencialidad del mensaje.
  • Firmas digitales: un mensaje firmado con la clave privada del remitente puede ser verificado por cualquier persona que tenga acceso a la clave pública de dicho remitente, lo que demuestra que este remitente tenía acceso a la clave privada (y por lo tanto, es probable que sea la persona asociada con la clave pública utilizada). Se asegura así que el mensaje no ha sido alterado, puesto que cualquier manipulación del mensaje repercutiría en un distinto resultado del algoritmo de resumen del mensaje (encoded message digest). Se utiliza para garantizar la autenticidad del mensaje.

Una analogía con el cifrado de clave pública es la de un buzón con una ranura de correo. La ranura de correo está expuesta y accesible al público; su ubicación (la dirección de la calle) es, en esencia, la clave pública. Alguien que conozca la dirección de la calle puede ir a la puerta y colocar un mensaje escrito a través de la ranura; sin embargo, sólo la persona que posee la llave (clave privada) puede abrir el buzón de correo y leer el mensaje.

Una analogía para firmas digitales es el sellado de un sobre con un sello personal. El mensaje puede ser abierto por cualquier persona, pero la presencia del sello autentifica al remitente.

Ejemplo de firma digital con clave asimétrica: David envía un mensaje a Ana

firma_digital_asimetrica

  1. David redacta un mensaje
  2. David firma digitalmente el mensaje con su clave privada
  3. David envía el mensaje firmado digitalmente a Ana a través de internet, ya sea por correo electrónico, mensajería instantánea o cualquier otro medio
  4. Ana recibe el mensaje firmado digitalmente y comprueba su autenticidad usando la clave pública de David
  5. Ana ya puede leer el mensaje con total seguridad de que ha sido David el remitente

Ahora visto un poco de teoría vamos a llevarlo a la práctica

Para poder realizar un cifrado asimétrico con el correo electrónico necesitamos en primer término una clave pública y otra privada, para crearlas y gestionar las claves vamos a instalar el programa Gpg4win para Windows

Lo descargamos desde la página de GnuPG https://www.gnupg.org/download/index.html

Pasamos a realizar la instalación

gpg4win

Kleopatra nos permite gestionar las claves

GPA es el asistente para generar claves públicas y privadas

Una vez instalado, ejecutamos GPA. El cual nos avisa de que no disponemos de una clave privada y nos recomienda a generarla en el momento

gpa

Para generar la clave nos pide nuestro nombre, un email, una contraseña y finalmente una carpeta para guardar el fichero generado

En la ruta

C:\Users\ASIR02\AppData\Roaming\gnupg

El archivo

secret-key-DB62EB00_12-12-2016.asc

Una vez creada la clave, le vamos a poner caducidad

Para ello vamos a utilizar ahora el programa Kleopatra

Edit Private Key –> Cambiar caducidad (Al 31/03/2017)

2016-12-27-11_14_28-win10x64-corriendo-oracle-vm-virtualbox

2016-12-27-11_36_33-win10x64-corriendo-oracle-vm-virtualbox

Ahora con el botón derecho sobre nuestro par de claves, vamos a exportar a un servidor que viene por defecto en Kleopatra

Unicamente se exportará nuestra clave pública

keys.gnupg.net

Export Certificates to Server –> Enviar la clave al servidor

Una vez exportada, podemos buscar nuestra clave por varios términos (Nombre, email o ID de clave)

2016-12-27-11_20_07-win10x64-corriendo-oracle-vm-virtualbox 2016-12-27-11_20_13-win10x64-corriendo-oracle-vm-virtualbox

2016-12-27-11_22_16-054-instalacion-gpgwin-crear-claves-copia-de-seguridad-de-las-claves-y-public

De la misma manera que hemos buscado nuestra clave, y conociendo cualquiera de los tres datos de otra persona, podemos buscar en el servidor su clave pública. Una vez encontrada, tendremos que validarla en Kleopatra y al añadirla nos pedirá la contraseña con la que hemos generado nuestra par de claves

2016-12-27-11_24_57-054-instalacion-gpgwin-crear-claves-copia-de-seguridad-de-las-claves-y-public

2016-12-27-11_25_07-054-instalacion-gpgwin-crear-claves-copia-de-seguridad-de-las-claves-y-public

Ahora ya podremos enviarle a esta persona un texto cifrado. Desde la extensión de Windows podemos cifrar y/o firmar cualquier documento para luego ser enviado mediante el correo electrónico

2016-12-27-11_29_05-win10x64-corriendo-oracle-vm-virtualbox

Lo normal es Firmar y encriptar un documento. Encriptarlo con la clave publica de la persona a la que vamos a enviarselo, y sólo esta persona con su par de claves podrá desencriptarlo. Y Firmarlo con nuestra clave privada para que sepa que hemos sido nosotros los que hemos enviado el documento, de esta manera no puede haber repudio y se asegura el destinatario que la persona que ha enviado el documento es quien dice ser.

Para poder realizar pruebas hemos importado las claves públicas de todos los compañeros

kleopatra_firmas-publicas

Así de esta manera las podemos ver en el anillo de claves del programa GPA

2016-12-27-11_37_40-win10x64-corriendo-oracle-vm-virtualbox


Utilizando un programa Thunderbird que gestione nuestro correo electrónico en vez desde la web e instalando una extensión enigmail.

Podremos directamente Firmar y Cifrar con nuestro par de claves los email que enviemos.

Para probar podemos:

Meter nuestra cuenta de correo de gmail como IMAP

Ahora desde el menú instalamos el complemento enigmail

Instalamos y reiniciamos el programa, y nos encuentra ya nuestro par de claves

Ahora al ir a crear un email, tendremos estas opciones (Encriptar, Firmar y Adjuntar mi clave pública)

2016-12-27-11_49_15-win10x64-corriendo-oracle-vm-virtualbox

Si colocamos cualquier otra cuenta de correo, tendremos que configurar la extensión enigmail para dicha cuenta de correo electrónico


Si no queremos instalar ningún programa y gestionamos nuestro correo vía web, tenemos una extensión (una entre muchas) para los navegadores web llamada mailvelope

Desde su página web podremos descargar la extensión para cada navegador o buscarla en su tienda de extensiones

https://www.mailvelope.com/

Con esta extensión nos permite crear desde cero nuestro par de claves, o importarlas en caso de ya tener uno o varios

mailvelopeconfiguracion

Para hacerlo más rápido, desde el programa GPA si ya tenemos ahí todas las claves que vamos a utilizar

Exportamos todas las claves públicas seleccionando todas

Y las importamos todas ahora en la extensión de Google Chrome Mailvelope

2016-12-27-11_57_08-win10x64-corriendo-oracle-vm-virtualbox

Ahora revisamos en las opciones de la extensión para ver si nuestro proveedor de correo existe en su lista, sino lo insertamos y de esta manera ya podremos Firmar y encriptar correos desde nuestro email vía web

Cuando vayamos a envíar un email nos tendría que aparecer este icono marcado en rojo

one

 

Anuncios