Criptografía Asimétrica

Para cifrar un mensaje, el emisor utilizará la clave pública del receptor, y a su vez, el receptor descifrará este mensaje haciendo uso de su clave privada. Lo que se cifra con la pública del receptor solamente se puede descifrar con la privada del receptor y viceversa.

Comparado con la clave simétrica, ahora el emisor no necesita conocer y proteger una clave propia (privada); es el receptor quien tiene el par de claves.

Estas claves se generan a la vez y se encuentran relacionadas matemáticamente entre sí mediante funciones de un solo sentido; resulta prácticamente imposible descubrir la clave privada a partir de la pública. Aunque un tercer individuo conozca la clave pública no podrá descifrar porque le falta la clave privada que nunca es comunicada.

Criptografía Asimétrica
Imagen Libro McGraw-Hill

Ventajas. Resuelve los problemas de la de la clave simétrica:

  • No necesitamos canales seguros para comunicar la clave pública que utilizaremos en el proceso de cifrado. Podemos adjuntarla en nuestros correos, añadirla al perfil de nuestras redes sociales, …
  • Soluciona el conocimiento de claves y canales. Si somos 4 empleados en la empresa, necesitamos 4 claves no 6 como en la asimétrica.

Desventajas:

Las veremos al final, cuando comprendamos el concepto.

Para entender la criptografía simétrica leer artículo, https://jesusfernandeztoledo.com/criptografia-simetrica/

Vamos al lío:

1. Instalar gpg.

Esta misma herramienta también es válida para cifrado simétrico.

2. Generamos el par de claves.

En el proceso de generación de las claves nos preguntarán el Tipo de clave. Las dos primeras opciones ofrecen 2 algoritmos, por lo tanto, generan dos pares de claves: en total 4 claves, dos públicas y dos privadas. El motivo es que generalmente se utiliza una clave (un par) para cifrar y otra diferente (otro par) para firmar, como veremos en el siguiente punto.

Elegiremos la opción 2 que usa dos algoritmos distintos, y así podremos ver claramente cuándo se utiliza cada clave.

3. Tamaño de la clave del algoritmo DSA.

Elegimos 3072 para mayor seguridad, por consiguiente tardará más en generarla. Si no ponemos nada por defecto aplicará 2048.

4. Período de validez de la clave.

Ya estamos advertidos de los problemas que supone proteger la clave privada. Por si la perdemos, conviene fijar una fecha de caducidad para que no se pueda usar más allá de ese día.

Yo elegiré 1 año. Si elegimos 0, la clave nunca caduca, y es un riesgo de seguridad.

5. En este paso generamos la clave pública.

Nos piden datos de nosotros para que se identifique bien la clave que es nuestra. Hay que tener en cuenta que entregamos la clave pública a mucha gente, y ellos tendrán las claves públicas de muchas personas.

El llavero puede almacenar varias llaves, de hecho estamos generando dos pares ahora mismo.

6. En este paso generamos la clave privada.

Es la clave privada que protege la clave pública, es decir, es la clave simétrica, por lo tanto debe ser una clave difícil de averiguar por otra persona, debería de ser de más de 8 de longitud, contener minúsculas, mayúsculas, números y caracteres especiales.

Y por lo tanto ya hemos terminado el proceso de generar las claves simétricas, se llaman simétricas porque una va asociada a la otra.

Entropía: es la aleatoriedad recogida por un Sistema Operativo o una aplicación para su uso en criptografía o para otros usos que requieran datos aleatorios. Mover el ratón, abrir una ventana, navegar por internet, …, es necesario, para generar esta entropía.

Debajo de pub aparece la huella digital, huella de la clave o fingerprint.

  • pub de tipo DSA es la clave pública con tamaño de clave 3072.
  • fingerprint. Debajo de pub aparece la huella digital, huella de la clave o fingerprint.
  • uid que es la identificación del propietario.
  • sub, sub-llave pública, que es la clave subordinada de tipo ElGamal con tamaño de clave 3072.

7. Directorio HOME de usuario.

En el directorio HOME del usuario se ha creado un directorio oculto llamado .gnupg donde se guardan los ficheros internos que utiliza la herramienta.

El fichero pubring.kbx contiene las claves públicas y privadas. Por supuesto el fichero está cifrado.

8. Listar las claves públicas. (Fichero /home/jesus/.gnupg/pubring.kbx)

o bien

9. Listar las claves privadas. (Fichero /home/jesus/.gnupg/pubring.kbx)

o bien
IMPORTANTE: La –K es MAYÚSCULA

Realizamos una pausa para aclarar conceptos.

pub llave pública

sub sub-llave pública

sec llave secreta

ssb sub-llave secreta

Anillo de claves (llavero) se guardan claves públicas y privadas.

10. Comunicar nuestra llave/clave pública.

Ahora tenemos que comunicar nuestra llave/clave pública a quien esté interesado en enviarnos un mensaje cifrado. Para ello primero tenemos que sacarla del llavero.

-a (armor) para que el resultado no sea binario.

-o (output) para guardarlo directamente en un fichero, si no, aparece por la salida estándar.

/tmp/jesus.pub directorio donde vamos a exportar la clave pública y nombre que le vamos a poner a la clave pública.

Jesús Fernández Toledo uid de la clave pública.

11. Enviar mensaje cifrado a Jesús Fernández Toledo desde otro usuario con la clave pública de Jesús Fernández Toledo.

Como hemos puesto la clave pública de Jesús Fernández en el directorio /tmp, cualquier usuario que se logué en el sistema puede acceder a ese directorio a por la clave pública de Jesús Fernández.

También el usuario Jesús Fernández Toledo podría enviar su clave pública a través de correo-e, whatsapp, …

Me logueo como alumno.

Importo la llave pública de Jesús Fernández Toledo y se creará una carpeta oculta .gnupg en el usuario alumno.

Ahora podemos consultar las llaves disponibles en el llavero de alumno.

12. Ahora creamos un fichero en alumno y lo ciframos con la clave pública de Jesús Fernández Toledo para enviárselo.


-v (verbose) para obtener más información del proceso de cifrado.

–encrypt indica que deseamos cifrado asimétrico.

–recipient va seguido del uid (identificador) de la clave pública que queremos utilizar.

Si falla con Jesús Fernández Toledo, usar el correo como uid

Una vez introducido el comando nos avisa que no hay seguridad de que esa clave pública sea realmente la clave pública de Jesús Fernández Toledo. Cualquiera podría haber cambiado el fichero /tmp/jesus.pub antes de que el alumno hiciera el import de las claves.

Como ayuda, el comando nos muestra la Huella de la clave (fingerprint) y nos pide la confirmación de que es la clave que queremos utilizar.

Podemos volver a la sesión de Jesús Fernández Toledo, y obtener la huella de su clave pública y compararla con la que aparece en la sesión de alumno.

Para obtener el fingerprint,

Efectivamente la huellas coinciden, y podemos confiar en que la clave importada en alumno es correcta.

13. Descifrar el mensaje enviado por alumno a Jesús Fernández Toledo con la clave primaria de Jesús

Para ello iniciamos sesión en Jesús

Y el comando nos solicita la contraseña que da acceso a la clave privada. En la ventana aparece qué clave necesita, en nuestro caso la clave del algoritmo ElGamal.

Podemos elegir que el sistema recuerde esa clave, no es recomendable por seguridad, podrían coger nuestro ordenador mientras vamos al baño y descifrar nuestros mensajes.

Una vez escrita la clave/contraseña privada aparecerá el mensaje por pantalla que nos ha enviado alumno.

Problemas de la criptografía asimétrica:

  • Poco eficientes (tardan bastante en aplicar las claves en los documentos). Por eso se usan los esquemas híbridos (SSH).
  • Ataques criptográficos: Analizan paquetes cifrados.
  • Hay que proteger la clave privada. Para eso lo que se hace es tener un fichero de llaves o llavero (keyring) que está protegido mediante cifrado simétrico, es decir, hay que meter una clave que descifra el llavero para poder usar la clave privada.

Hay que realizar una copia de seguridad del llavero, por si disco duro se daña. Por lo tanto deberemos incluirlo en la política de backups de la empresa.

  • Transportar la clave privada. Mejor solución: Tarjeta inteligente. Tipos:
  1. Tarjeta de memoria (flash). Equivalente a una memoria flash. Se limita a almacenar el llavero. Cuando se introduce en el lector, el ordenador hace una copia temporal del llavero y trabaja con el introduciendo el usuario la clave simétrica (clave privada).
  2. Tarjeta Procesadora (chip). La tarjeta de memoria es peligrosa porque hemos expuesto nuestro llavero. En cambio en las tarjetas procesadoras las claves también están almacenadas, pero nunca salen de la tarjeta. Cualquier cifrado que necesite nuestra clave privada se realiza en el propio chip.

Ejemplos: tarjeta SIM, para poder usarla hay que introducir el pin. DNI electrónico. Tarjeta bancaria.

Tarjeta Procesadora

Atendiendo a la interfaz, las tarjetas inteligentes se clasifican en:

    • Tarjeta de contacto: El lector necesita tocar los contactos metálicos del chip para leer la información.
  • Tarjeta de contacto
    • Tarjeta sin contacto: El lector utiliza tecnologías inalámbricas para leer del chip.

Tarjeta Sin Contacto

Y colorín colorado este cuento se ha acabado.

 

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies ACEPTAR

Aviso de cookies