GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué es la criptografía de clave pública? (Cómo funcionan las VPN, Parte 2)

Este artículo de la serie "Cómo funcionan las VPN" describe cómo funciona la criptografía de clave pública (cifrado asimétrico). Si ya estás perdido, ¡no entres en pánico! Esta serie de artículos está escrita para explicar los conceptos y métodos detrás de las VPN sin necesidad de profundizar en las matemáticas que las impulsan.

Si es completamente nuevo en el concepto de VPN, consulte esta introducción. Si ya sabes un poco sobre cómo funcionan las VPN y quieres saber un poco más, esta serie es para ti. Cada artículo aborda un aspecto de los medios por los cuales una VPN ayuda a proteger los datos al contar una historia que sirve como metáfora de los mecanismos lógicos involucrados. Estas historias involucran a dos personas, Adam y Burt, que intentan guardar un secreto y una tercera persona, Cesar, que trata de descubrir su secreto de manera nefasta. Dado que las VPN no tienen un equivalente físico perfecto en el mundo, puede haber algunos elementos que extiendan los límites de la credibilidad (por ejemplo, César tiene acceso a un rayo duplicador). Recuerda, es solo una historia...

Cada artículo también tiene secciones expandibles (indicadas con el engranaje icon) que contienen una explicación un poco más profunda que es algo más técnica pero que evita perderse demasiado en las matemáticas. Estas secciones relacionan los eventos de la historia un poco más con los componentes o pasos de encriptación o autenticación, pero no son necesarias para obtener una comprensión básica del tema.

Adam y Burt ya descubrieron la debilidad de usar una caja de seguridad con una llave simétrica compartida para mantener las cosas seguras. Entonces, Burt les propone que prueben un nuevo método en el que cada uno de ellos tenga su propio conjunto único de claves (cifrado asimétrico).

Criptografía de clave pública

La criptografía de clave pública es una metodología de encriptación asimétrica que busca mantener la confidencialidad sin tener que compartir una clave secreta a través de un canal inseguro (como el correo electrónico no encriptado). En esta explicación, Adam y Burt tienen cada uno un candado único, pero para el resto de este ejemplo, cubriremos el candado y las llaves de Burt (el candado y las llaves de Adam funcionarán de la misma manera). Cada cerradura tiene dos propiedades especiales:primero, la cerradura tiene dos llaves distintas y relacionadas que pueden funcionar con ella, y segundo, cada llave que funciona con la cerradura solo puede girar en la cerradura en una dirección; por el bien de este ejemplo, solo giran en el sentido de las agujas del reloj.

Claves emparejadas

Las dos claves en este sistema asimétrico solo funcionan como un par. Si Burt volviera a teclear esta cerradura, necesitaría crear dos nuevas claves. Para que sea más sencillo distinguir las dos teclas, Burt las codifica por colores. Uno lo hace verde y el otro rojo. Burt mantiene segura la clave roja (su clave privada), pero puede hacer que la clave verde esté ampliamente disponible para cualquiera que la desee (su clave pública). Esto puede sonar contradictorio. Pero una característica importante de estas claves es que, si bien están relacionadas, es prácticamente imposible descifrar una clave basándose en el conocimiento de la otra. Como tal, una clave puede estar disponible públicamente sin revelar nada sobre su contraparte.


Sistemas criptográficos de clave pública.

Estas claves, en el uso real, se denominan claves públicas y privadas (las designaciones de colores son para ayudar a explicación un poco más fácil de seguir). La generación de estas claves implica algunas matemáticas bastante ingeniosas y complicadas. (Estos algoritmos comienzan con cálculos que involucran el producto de dos números primos muy grandes y están mucho más allá del alcance de este ejemplo). Los algoritmos comunes que se usan en la criptografía de clave pública incluyen RSA (llamado así por sus creadores, Rivest, Shamir y Adleman), DSA /DSS (algoritmo de firma digital/estándar de firma digital) y ECDSA (algoritmo de firma digital de curva elíptica). En cambio, este último algoritmo utiliza las matemáticas alrededor de las curvas elípticas y es al menos tan intimidante para los reacios a las matemáticas como el algoritmo RSA.

La cerradura en el sentido de las agujas del reloj (cómo funcionan las llaves)

Además de funcionar como parte de un par, estas teclas solo funcionan en la cerradura en una dirección. Por ejemplo, Burt usa la llave verde (pública) para asegurar la cerradura, lo que requiere media vuelta en la cerradura. Dado que la cerradura solo funciona en una dirección, la llave verde no puede desbloquear la cerradura invirtiendo la dirección como una cerradura ordinaria. En este punto, debido a la naturaleza especial de este mecanismo de bloqueo, la única forma de desbloquearlo es usar la clave roja (privada) emparejada.

De esta forma, cuando la cerradura está asegurada con la llave verde (pública), sólo la persona que posee la llave roja (privada) puede abrirla. Así es como Burt puede hacer que la llave verde esté ampliamente disponible para el público. Puede enviar una copia de la llave verde a Adam (incluso podría poner una copia a disposición del público para que la recoja o la duplique). Cualquiera que tenga una copia de esta llave verde puede cerrar esta cerradura y, en ese momento, solo Burt, suponiendo que mantenga segura su llave roja (privada), puede abrir la cerradura. Ahora, cuando Adam quiere enviar algo de forma segura a Burt, puede usar la clave verde (pública) de Burt. Del mismo modo, Adam tendría su propio par de llaves, y también podría poner su llave verde a disposición de Burt (o cualquier otra persona).

Ahora, si nuestro bueno para nada César intentara descifrar este método de seguridad, necesitaría descifrar dos cerraduras diferentes para obtener toda la conversación. Incluso si pudiera pasar solo uno, solo podría ver la mitad de la conversación.


Cifrado unidireccional.

Este uso de cifrado unidireccional se emplea en algunos intercambios de correo electrónico seguros, como con el uso de PGP (Pretty Good Privacy) o GPG (Gnu Privacy Guard). Si alguna vez ha visto la mención de la clave pública PGP o GPG de alguien (y probablemente un bloque de texto de aspecto aleatorio que era la clave en sí), puede ver por qué se puede publicar como parte de una firma de correo electrónico o un documento de acceso público. sitio web. Con esa clave, cualquiera puede cifrar un correo electrónico que solo el poseedor de la clave privada (el destinatario) puede descifrar.

Una caja cerrada dos veces

Aquí es donde Burt tiene una idea inteligente. Coloca algunas ilustraciones para el cómic en el que él y Adam están trabajando en una caja, coloca su candado en la caja y la asegura con su llave verde (pública). Ahora, él es la única persona (ya que tiene la única copia de la llave roja) que puede abrir esta caja. Le envía esta caja a Adam.

Adam, al no tener una copia de la llave roja (privada) de Burt, no puede abrir la cerradura. Pero puede colocar su propio candado en la caja. Asegura este candado con su propia llave verde (pública). Adam le devuelve esta caja cerrada dos veces a Burt.

Burt obtiene la caja, y la única forma en que puede abrirla es si tiene su propia llave roja y la llave roja de Adam. Pero Adam mantiene su llave roja tan secreta como Burt mantiene su propia llave roja, por lo que Burt no podrá abrir la caja. Burt, sin embargo, no quiere abrir la caja; recuerde, él comenzó este proceso, por lo que quiere que Adam obtenga el arte contenido dentro de la caja. Sin embargo, puede abrir su propia cerradura con su propia llave roja (privada). Cuando hace esto, la única seguridad en la caja es el candado que aseguró Adam.

Burt le devuelve la caja a Adam, y ahora Adam, usando su llave roja, abre el candado restante. Burt ha enviado este paquete con éxito y seguridad. Este método agrega un par de capas de seguridad, ya que hay dos capas de bloqueo/cifrado y el hecho de que nunca es necesario intercambiar ninguna clave compartida a través de un medio potencialmente inseguro. Sin embargo, no es un sistema muy eficiente si necesitan enviar y recibir mensajes más seguros de manera más oportuna.


Duplique el cifrado.

Esta capacidad es una de las características interesantes de las matemáticas detrás de la criptografía de clave pública. Un mensaje se puede cifrar varias veces; luego, al descifrarlo, ese descifrado se puede hacer en cualquier orden. Funciona de forma conmutativa como funcionan algunas funciones matemáticas simples. Por ejemplo, si tuviera que comenzar con el número 10 y sumar otros tres números, por ejemplo, 3, 5 y 7 (entonces, 10 + 3 + 5 + 7 para obtener 25), podría restarlos de su total en cualquier orden para volver al mismo número original (25 – 5 – 7 – 3 =10). Por supuesto, las matemáticas detrás de esta criptografía son significativamente más complejas.

Una cerradura robusta y complicada

Entonces, aunque Adam y Burt ahora han desarrollado un método de criptografía de clave pública, no está exento de inconvenientes. Este método de caja cerrada dos veces para mantener la comunicación segura toma tres veces más tiempo por mensaje. Además, los métodos de criptografía de clave pública tienden a ser más laboriosos a la hora de realizar el cifrado o descifrado. En el ejemplo anterior, imagina que en lugar de que cada llave gire media vuelta en la cerradura, requiere 10 rotaciones completas. ¡Eso significaría 40 rotaciones (Burt bloquea (10) + Adam bloquea (10) + Burt desbloquea (10) + Adam desbloquea (10)) por mensaje!

Hay, sin embargo, una ventaja en esta ineficiencia. Si César usara un dispositivo que pudiera simular cualquier llave, y suponiendo que para abrir una de estas cerraduras se requieren las 10 rotaciones completas solo para ver si esa llave funciona, entonces el tiempo que le llevaría probar cada combinación de llaves (un tiempo bruto ataque de fuerza) aumenta por un factor de 10 también.


Cómo las claves más grandes mejoran la seguridad.

La longitud de una clave de cifrado se mide en bits. Cuanto mayor sea la longitud de bit de la clave, más resistente se descubrirá esa clave a través de intentos de craqueo de fuerza bruta. Cuanto mayor sea la longitud de bits de la clave, también significa que aumenta el trabajo requerido para realizar el cifrado o descifrado. Sin embargo, dado que los algoritmos de cifrado asimétrico y simétrico funcionan de diferentes maneras, las longitudes de sus claves no son directamente comparables. Por ejemplo, una clave RSA (asimétrica) de 1024 bits tiene aproximadamente la misma fuerza que una clave simétrica de 80 bits. Hay herramientas disponibles para comparar las longitudes relativas de las claves entre los diferentes métodos de encriptación, como la que mantiene BlueKrypt, que pueden ayudar a iluminar la diferencia en el costo computacional entre estos métodos.

Estas diferencias resaltan uno de los principales enigmas de la seguridad informática:seguridad frente a comodidad. El trabajo realizado para mejorar uno a menudo se realiza a expensas del otro. Aumentar la longitud de bits de la clave de cifrado aumenta su fuerza, pero también significa que llevará más tiempo realizar ese cifrado y descifrado. Cuando se toman medidas para mejorar la comodidad, como aumentar el poder de cómputo o reducir la longitud de la clave, esas mismas medidas también significan que se requiere menos trabajo para adivinar con éxito la clave a través de métodos de fuerza bruta.

Más información en la serie "Cómo funcionan las VPN"

Parte 1:Algoritmos de cifrado simétrico
Parte 3:Intercambio de claves compartidas
Obtenga más información sobre los servicios de Atlantic.Net, incluido el alojamiento de VPS.


Linux
  1. ¿Qué es un Makefile y cómo funciona?

  2. ¿Qué es NGINX? ¿Como funciona?

  3. ¿Qué es un servidor web y cómo funciona un servidor web?

  4. ¿Qué es Shared Key Exchange (Cómo funcionan las VPN, Parte 3)?

  5. cómo actualizar homebrew con Cron en Mac os

Cómo configurar la clave pública y privada SSH en Linux

¿Qué es Docker? ¿Como funciona?

Cómo agregar una clave pública SSH al servidor

¿Qué es el comando fuente en Linux y cómo funciona?

¿Cómo funciona un balanceador de carga? ¿Qué es el equilibrio de carga?

¿Qué es el cifrado de clave simétrica? (Cómo funcionan las VPN, Parte 1)