¿Sabes cómo se realiza el intercambio de claves criptográficas de forma segura y por medio de internet? La criptografía de clave pública es un sistema más reciente, comparado con el de clave privada. Este sistema significa que cada usuario cuenta con una clave pública y una clave privada para facilitar el intercambio seguro y confidencial de información.
La infraestructura de clave pública (PKI) es un sistema en el cual el emisor de un mensaje encripta datos con la clave pública del receptor, y este último desencripta la información por medio de su propia clave privada. Estas dos claves se encuentran relacionadas y, de este modo, se puede realizar un cifrado de extremo a extremo, que protege los mensajes de intervenciones maliciosas de terceros.
No obstante, en muchas ocasiones, los servidores de los usuarios requieren intercambiar claves privadas de un extremo a otro. Por supuesto, esta clave se podría transmitir de manera física. Sin embargo, en un escenario realista, es necesario aceptar que la mayoría de la información hoy en día se transmite a través de la red.
Entonces ¿cómo se puede enviar una información tan confidencial a través de un canal inseguro? A continuación, te explicaremos cómo funciona un intercambio de claves criptográficas.
Intercambio de claves criptográficas
Supón que Alice y Bob necesitan comunicarse por medio de internet. Sin embargo, primero necesitan compartirse una clave privada. ¿Cómo se puede compartir la clave por medio de un canal inseguro, que está siendo observado por Eve, un intermediario malicioso?
Intercambio de claves criptográficas Diffie-Hellman
El algoritmo matemático de Diffie-Hellman fue diseñado especialmente para poder intercambiar información privada por medio de canales inseguros. Se basa en una función matemática que le permite a los usuarios compartir un secreto, por medio de un sistema de infraestructura de clave pública. Para comprenderlo mejor, existe un ejemplo con botes de pintura que sirve para ilustrar cómo funciona este algoritmo.
Ejemplo de los botes de pintura
- Supón que Alice y Bob comienzan con un bote de pintura del mismo color, que sirve para representar la clave pública. Este color es de conocimiento público y puede verlo Eve.
- Después, tanto Alice como Bob le agregan un color secreto cada uno, que sirve para representar la clave privada de cada uno. Solo ellos, por supuesto, conocen su color privado y es uno diferente para cada uno.
- Ahora, Alice y Bob intercambian los botes de pintura por medio de un canal público que Eve puede ver.
- Finalmente, Alice y Bob le agregan su color secreto a la mezcla que reciben y, finalmente, los dos tendrán un bote del mismo color.
Propiedades matemáticas
El algoritmo de intercambio de claves criptográficas Diffie-Hellman funciona de forma muy similar al ejemplo de los botes de pintura. Matemáticamente, es posible gracias a las propiedades de un tipo de exponenciación, conocida como exponenciación modular.
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaLas propiedades de la exponenciación modular que permitirán hacer el intercambio de claves privadas son:
- A^B modC = (AmodC)^B modC
- (A^B)^C = (A^C)^B
- Dado A = a^b modC, con a y C conocidos, encontrar b a partir de A cuando b y C son números muy grandes es prácticamente imposible (problema del logaritmo discreto). En cambio, calcular A es relativamente fácil con un algoritmo de exponenciación modular.
En el lenguaje de programación Python, el comando “pow()” es la función para ejecutar una exponenciación modular.
¿Cómo funciona el algoritmo Diffie-Hellman en criptografía?
Ya hemos visto el ejemplo de los botes de pintura y las propiedades matemáticas que permiten llevar este algoritmo a la práctica. Ahora, veremos cómo se aplica exactamente en el ámbito de la criptografía.
Dado:
- p = un número muy grande, predeterminado por los creadores del algoritmo.
- g = un número primo pequeño, que también está predeterminado.
- a = clave privada del emisor.
- b = clave privada del receptor.
- A = clave pública del emisor.
- B = clave pública del receptor.
- s = secreto.
Entonces:
- a = rand (0,p). Es decir, un número aleatorio entre 0 y p.
- A = g^a modp
Y:
- b = rand (0,p)
- B = g^ modp
Por lo tanto, el secreto (s) que comparten el emisor y el receptor sería:
- s = B^a modp
- s = A^b modp
Ambas expresiones de s darán el mismo resultado, gracias a las propiedades matemáticas que describimos antes, que, además, también impedirán que un intermediario descifre las claves a partir de los valores públicos de A y B.
Vulnerabilidad del algoritmo Diffie-Hellman
El algoritmo de Diffie-Hellman es vulnerable a un ataque de intermediario o man in the middle attack, ya que Eve (el intermediario malicioso) podría crear su propia clave privada para alterar los mensajes que envían Alice y Bob. Por eso, se han desarrollado certificados de internet (como el SSL) que permiten validar la autenticidad de la información que se envía a través de la red.
En conclusión, el intercambio de claves criptográficas por medio del algoritmo Diffie-Hellman es seguro, siempre y cuando se vea reforzado por este tipo de certificados y, así, es como los usuarios pueden comunicarse información totalmente confidencial y segura por medio de un canal inseguro como lo es internet.
Ya conoces cómo funciona un protocolo seguro de intercambio de claves criptográficas. Si quieres aprender más y convertirte en un experto en ciberseguridad, ha llegado el momento de presentarte nuestro Bootcamp Ciberseguridad. Gracias a esta formación intensiva, podrás especializarte en este ámbito del sector IT en menos de 7 meses. ¡No sigas esperando e inscríbete ya!