Una inmersión profunda en el cifrado de extremo a extremo: ¿Cómo funcionan los sistemas de cifrado de llave pública?
Última actualización: January 01, 2025
Si aún no lo has hecho, te recomendamos que leas algunas guías antes de ésta, para ayudarte a consolidar algunos de los conceptos que se tratan aquí: ¿Qué debo saber sobre El cifrado?, Conceptos llave de El cifrado y Verificación de llaves.
Si se utiliza correctamente, el cifrado de extremo a extremo puede ayudar a proteger el contenido de tus mensajes, textos y archivos para que no puedan ser leídos por nadie excepto por sus destinatarios. Las herramientas de encriptación de extremo a extremo hacen que los mensajes sean ilegibles para los fisgones de la red, así como para los propios proveedores de servicios. También pueden demostrar que un mensaje procede de una persona concreta y no ha sido alterado.
Las herramientas de encriptación de extremo a extremo, antes complicadas de configurar, son mucho más fáciles de utilizar que antes. Una herramienta de mensajería segura como Signal es un buen ejemplo de aplicación que utiliza El cifrado de extremo a extremo para cifrar los mensajes entre el remitente y el destinatario sin dejar de ser fácil de usar. Incluso las plataformas más grandes, como WhatsApp y Facebook Messenger, admiten el cifrado de extremo a extremo sin que tengas que hacer ningún tipo de configuración previa.
El tipo de cifrado del que hablamos en esta guía, en el que se basan las herramientas de cifrado de extremo a extremo, se denomina cifrado de llave pública (a veces denominada cifrado de llave pública).
Comprender los principios subyacentes del cifrado de llave pública te ayudará a utilizar estas herramientas con seguridad. Hay límites a lo que el cifrado de llave pública puede y no puede hacer, y es útil comprender esos límites
¿Qué hace el cifrado?
He aquí cómo funciona el cifrado al enviar un mensaje secreto:
- Un mensaje claramente legible se encripta primero en un mensaje cifrado que es incomprensible para cualquiera que lo mire ("hola mamá" se convierte en "OhsieW5ge+osh1aehah6").
- El mensaje codificado se envía por Internet, donde, si están mirando, los fisgones sólo verían el mensaje cifrado ("OhsieW5ge+osh1aehah6").
- Cuando llega a su destino, el destinatario previsto, y sólo el destinatario previsto, tiene alguna forma de descifrarlo y convertirlo de nuevo en el mensaje original ("OhsieW5ge+osh1aehah6" se convierte de nuevo en "hola mamá").
Cifrado simétrico: Una historia de pasar notas secretas con una sola llave
Empecemos con un ejemplo de la historia: el cifrado César.
Julia quiere enviar a su amigo César una nota que diga "Nos vemos en el jardín". Pero no quiere que la vean sus compañeros de clase.
Si Julia pasa la nota tal cual, ésta pasa por un montón de compañeros intermediarios antes de llegar a César. Aunque neutrales, los intermediarios siguen siendo entrometidos y pueden echar un vistazo al mensaje antes de pasarlo. También pueden hacer copias del mensaje antes de pasarlo y registrar la hora a la que Julia envía su mensaje a César.
Así que, para proteger la privacidad de la conversación, Julia podría decidir cifrar su mensaje con una "llave de tres", desplazando las letras del alfabeto de tres en tres. Por ejemplo, A sería D, B sería E, y así sucesivamente.
Si Julia y César utilizan una llave simple de tres para cifrar, y una llave de tres para descifrar, entonces su mensaje cifrado en galimatías podría ser suficiente para engañar a sus compañeros, pero seguiría siendo fácil de descifrar. Cualquiera de sus compañeros podría "usar fuerza bruta" para averiguar la llave probando todas las combinaciones posibles hasta averiguar una o dos palabras. En otras palabras, pueden adivinar persistentemente hasta obtener la respuesta para descifrar el mensaje.
El método de desplazar el alfabeto tres caracteres es un ejemplo histórico de cifrado utilizado por Julio César, de ahí el cifrado César. Cuando hay una sola llave para cifrar y descifrar, como en este ejemplo, se denomina cifrado simétrico.
El cifrado César es una forma débil de cifrado simétrico. Afortunadamente, El cifrado ha avanzado mucho desde entonces. En lugar de limitarse a desplazar las letras de un mensaje unos pocos caracteres, ahora las llaves pueden utilizar las matemáticas y la ayuda de los computadores para crear una larga cadena de números mucho más difícil de descifrar.
El cifrado simétrico tiene muchos fines prácticos, pero no aborda los siguientes problemas: ¿Qué pasa si alguien puede espiar y esperar a que Julia y César compartan la llave, y luego robar la llave para descifrar sus mensajes? ¿Y si esperan a que Julia y César revelen de algún modo que el secreto para descifrar sus mensajes era la llave de tres?
¿Cómo pueden César y Julia sortear este problema?
La mejor respuesta actual es el cifrado de llave pública. En el cifrado de llave pública, las llaves de cifrado y descifrado son diferentes, y es perfectamente seguro compartir la llave pública siempre que la llave privada se mantenga en privado.
Cifrado de llave pública: Historia de dos llaves
Veamos el problema más de cerca: ¿Cómo envía el remitente la llave simétrica al destinatario sin que nadie espíe también esa conversación?
El cifrado de llave pública (también conocida como cifrado asimétrico) tiene una buena solución para esto. Permite que cada persona de una conversación cree dos llaves o llaves: una llave pública y una llave privada. Las dos llaves están conectadas y, a pesar del nombre, no son tanto "llaves" como números muy grandes con ciertas propiedades matemáticas. Si cifras un mensaje utilizando la llave pública de una persona, ésta puede descodificarlo utilizando su llave privada correspondiente.
Ahora, Julia y César han dejado atrás el envío de notas en papel en clase y utilizan sus computadores para enviar mensajes cifrados mediante cifrado de llave pública. Todos los compañeros de clase que se pasaban las notas en el ejemplo anterior se sustituyen por los computadores que actúan como intermediarios entre Julia y César: Los respectivos puntos Wi-Fi de Julia y César, los proveedores de servicios de Internet y sus servidores de correo electrónico. En realidad, puede haber cientos de computadores entre Julia y César que faciliten esta conversación, y al igual que los entrometidos compañeros de clase, estos intermediarios hacen y almacenan copias de los mensajes de Julia y César cada vez que pasan.
No les importa que los intermediarios puedan verlos comunicarse, pero quieren que el contenido de sus mensajes siga siendo privado.
En primer lugar, Julia necesita la llave pública de César. César envía su llave pública a través de un canal inseguro, como el correo electrónico sin cifrar. (Buenas noticias: las aplicaciones de comunicación modernas harán esto en nombre de César, eliminando el paso manual, pero los pasos manuales siguen siendo un buen ejemplo de cómo funciona esto).
A César no le importa que los intermediarios tengan acceso a ella porque la llave pública es algo que puede compartir libremente (la metáfora de la llave se rompe aquí; no es del todo correcto pensar en la llave pública como una llave literal; de nuevo: es un número muy grande con ciertas propiedades matemáticas, a menudo codificado como una cadena de caracteres). Para mayor seguridad, César envía su llave pública a través de varios canales, un correo electrónico y un mensaje de texto, para que sea más difícil que los intermediarios envíen una de sus propias llaves públicas a Julia en su lugar.
Julia recibe el archivo de la llave pública de César. Ahora, Julia puede cifrar un mensaje para él. Escribe: "Nos vemos en el jardín".
Envía el mensaje cifrado. Sólo está cifrado para César.
Tanto Julia como César pueden entender el mensaje, pero a cualquier otra persona que intente leerlo le parecerá un galimatías. Pero los intermediarios pueden seguir viendo los metadatos, como el asunto, las fechas, el remitente y el destinatario.
Como el mensaje está cifrado con la llave pública de César, sólo César y el remitente (Julia) pueden desbloquearlo y leer su contenido.
César puede leer el mensaje utilizando su llave privada.
Recapitulando:
- El cifrado de llave pública permite que alguien envíe su llave pública en un canal abierto e inseguro. Hoy en día, las aplicaciones de comunicación se encargan de este paso por ti.
- Tener la llave pública de un amigo te permite cifrar los mensajes que le envíes.
- Tu llave privada se utiliza para descifrar los mensajes cifrados destinados a ti.
- Los intermediarios, como los proveedores de servicios de correo electrónico, los proveedores de servicios de Internet y los que están en sus redes, pueden ver los metadatos durante todo este tiempo. Esto incluye detalles como quién envía qué a quién, a qué hora se recibe, cuál es el asunto, que el mensaje está encriptado, etc.
Otro problema: ¿qué pasa con la suplantación de identidad?
En el ejemplo de Julia y César, los intermediarios pueden ver los metadatos todo el tiempo.
Pero supongamos que uno de los intermediarios es un mal actor. Por mal actor entendemos alguien que pretende perjudicarte intentando robar o interferir en tu información. Este mal actor quiere espiar el mensaje de Julia a César.
Digamos que este mal actor es capaz de engañar a Julia para que obtenga el archivo de llave pública equivocado para César. Julia no se da cuenta de que en realidad no se trata de la llave pública de César. Así que, en lugar de César, el malhechor recibe el mensaje de Julia, le echa un vistazo y se lo pasa a César.
El malhechor podría decidir cambiar el contenido del archivo antes de pasárselo a César. Por ejemplo, podría cambiar "Nos vemos en el jardín" por "Nos vemos en la cafetería".
Pero la mayoría de las veces, el mal actor decide dejar el contenido sin modificar. Así, el mal actor reenvía el mensaje de Julia a César como si no hubiera pasado nada, César sabe que ha quedado con Julia en el jardín y, para su sorpresa, ¡el mal actor también está allí!
Esto se conoce como "ataque de hombre en el medio" o "ataque de máquina en el medio".
Por suerte, el cifrado de llave pública tiene un método para evitar los ataques de intermediario mediante algo llamado "verificación de huella digital". Esto se hace mejor en la vida real cuando es posible. Tú tendrías a mano tu huella digital de llave pública, y tu amigo comprueba dos veces que todos y cada uno de los caracteres de tu huella digital de llave pública coinciden con los que ellos tienen para tu huella digital de llave pública. Es un poco tedioso, pero merece la pena hacerlo.
Diferentes aplicaciones cifradas de extremo a extremo también tienen una forma de comprobar las huellas dactilares, aunque hay variaciones sobre cómo se llama la práctica y cómo se implementa. En algunos casos, leerás detenidamente cada carácter de la huella digital y te asegurarás de que coincide con lo que ves en tu pantalla frente a lo que tu amigo ve en la suya. En otros, podrías escanear un código QR en el teléfono de otra persona para "verificar" su dispositivo". En el ejemplo siguiente, Julia y César pueden encontrarse en persona para verificar las huellas de sus teléfonos escaneando los códigos QR del otro utilizando la cámara de su teléfono.
Para ver un ejemplo de cómo es este método en la práctica, echa un vistazo a la de Signal opción "Verificar número de seguridad" o a la función "Verificar código de seguridad" de WhatsApp.
Si no puedes permitirte el lujo de reunirte en persona, puedes compartir tu huella dactilar a través de otro canal seguro, como otra aplicación de mensajería cifrada de extremo a extremo o en una videollamada.
En el ejemplo siguiente, César envía su huella dactilar de llave pública a Julia utilizando otra aplicación cifrada de extremo a extremo en su smartphone.
Para repasar:
- Un ataque de intermediario se produce cuando alguien intercepta el mensaje que envías a otra persona. El atacante puede alterar el mensaje y transmitirlo, o simplemente escuchar a escondidas.
- El cifrado de llave pública te permite hacer frente a los ataques de intermediario proporcionando formas de verificar las identidades del destinatario y del remitente. Esto se hace mediante la "verificación de huella digital".
- Además de utilizarse para cifrar un mensaje a tu amigo, la llave pública de tu amigo también viene con una "huella digital de llave pública". Puedes utilizar la huella digital para verificar la identidad de tu amigo.
- La llave privada se utiliza para cifrar mensajes, así como para firmar digitalmente mensajes como si fueran tuyos (más sobre esto más adelante).
Firmas
Sabemos que, si cifras un mensaje con una determinada llave pública, sólo puede descifrarse con la llave privada correspondiente. Lo contrario también es cierto: si cifras un mensaje con una determinada llave privada, sólo puede ser descifrado por su llave pública correspondiente.
¿Por qué sería útil? Supón que escribes un mensaje que dice "Prometo pagar a Aazul 100 $", y luego lo convirtieras en un mensaje secreto utilizando tu llave privada. Cualquiera podría descifrar ese mensaje. Pero sólo una persona podría haberlo escrito: la persona que tiene tu llave privada. Y si has hecho un buen trabajo manteniendo a salvo tu llave privada, eso significa que tú, y sólo tú, podrías haberlo escrito. Al cifrar el mensaje con tu llave privada, te has asegurado de que sólo puede proceder de ti.
En otras palabras, has hecho con este mensaje digital lo mismo que hacemos cuando firmamos un mensaje en el mundo real, por eso este proceso se conoce como "firmar" un mensaje.
La firma es también uno de los varios métodos que pueden hacer que los mensajes sean a prueba de manipulaciones. Si alguien intentara cambiar tu mensaje de "Prometo pagar a Aazul 100 $" a "Prometo pagar a Ming 100 $", no podría volver a firmarlo utilizando tu llave privada. Un mensaje firmado garantiza que procede de la fuente correcta y que no ha sido manipulado en tránsito.
En revisión: Uso del cifrado de Llave pública
Repasemos. El cifrado de llave pública te permite cifrar y enviar mensajes de forma segura a cualquier persona cuya llave pública conozcas.
Si otros conocen tu llave pública:
- Pueden enviarte mensajes secretos que sólo tú puedes descifrar utilizando tu llave privada correspondiente.
- Puedes firmar tus mensajes con tu llave privada para que los destinatarios sepan que los mensajes sólo pueden proceder de ti.
- Hoy en día, las aplicaciones de mensajería gestionan tus llaves pública y privada y disponen de un mecanismo más fácil de usar para verificar esas llaves, lo que facilita que cualquiera pueda utilizar el cifrado de llave pública sin darse cuenta siquiera de que la está utilizando.
Y si conoces la llave pública de otra persona
- Puedes descodificar un mensaje que haya firmado y saber que realmente procede de él.
El cifrado de llave pública se vuelve más útil cuando más personas conocen tu llave pública. Puedes compartir tu llave pública con cualquiera que quiera comunicarse contigo, no importa quién la vea.
La llave pública viene emparejada con un archivo llamado llave privada. Puedes pensar en la llave privada como en una llave real que debes proteger y mantener a salvo. Tu llave privada se utiliza tanto para cifrar como para descifrar mensajes.
Si tu llave privada se borra accidentalmente de tu dispositivo, no podrás descifrar tus mensajes cifrados. Si alguien copia tu llave privada (ya sea por acceso físico a tu ordenador, por malware en tu dispositivo o si compartes accidentalmente tu llave privada), otros podrán leer tus mensajes cifrados. Pueden hacerse pasar por ti y firmar mensajes afirmando que los has escrito tú.
No es inaudito que los gobiernos roben llaves privadas de los computadores de personas importantes (llevándose los computadores o instalando malware en ellos mediante acceso físico o ataques de phishing). Esto anula la protección que ofrece el cifrado de llave privada.
Es como decir que tienes una cerradura imposible de forzar en la puerta, pero alguien puede robarte la llave, copiarla y luego volver a metértela en el bolsillo. Entonces, podrían entrar en tu casa sin forzar la cerradura.
Esto vuelve a tu plan de seguridad: determina cuáles son tus riesgos y afróntalos adecuadamente. Si crees que alguien se tomaría muchas molestias para intentar conseguir tu llave privada, quizá no quieras utilizar una solución de cifrado de extremo a extremo en el navegador. En su lugar, puedes optar por almacenar tu llave privada en tu propio Computador o teléfono, en lugar de en el Computador de otra persona (como en la nube o en un servidor).
El cifrado de llave pública en la práctica
Hemos repasado el cifrado simétrico y el cifrado de llave pública como explicaciones separadas, pero el cifrado de llave pública también utiliza el cifrado simétrico. El cifrado de llave pública cifra una llave simétrica, que luego se utiliza para descifrar el mensaje real.
Pretty Good Privacy (PGP ) ya casi no se utiliza, pero sigue siendo un ejemplo de protocolo que utiliza tanto el cifrado simétrico como el cifrado de llave pública (asimétrica). Utilizar herramientas de encriptación de extremo a extremo como PGP te hará muy consciente de las prácticas del cifrado de llave pública, porque tienes que hacer varios pasos manualmente. La mayor parte de lo que hace PGP está oculto al usuario en las herramientas de comunicación modernas, pero como PGP requiere tantos pasos manuales, sigue siendo útil explicar cómo funciona el cifrado de extremo a extremo.
¿Qué son exactamente las llaves y cómo se relacionan entre sí?
El cifrado de llave pública se basa en la premisa de que hay dos llaves: una para cifrar y otra para descifrar. Puedes enviar una llave pública a través de un canal inseguro, como Internet. Puedes publicar esta llave pública en todas partes, en lugares muy públicos, y no comprometer la seguridad de tus mensajes cifrados.
La llave pública viene emparejada con un archivo llamado llave privada. Puedes pensar en la llave privada como en una llave real que tienes que proteger y mantener a salvo. Tu llave privada se utiliza tanto para cifrar como para descifrar mensajes.
Veamos cómo funciona esto en un algoritmo criptográfico de llave pública de uso común llamado RSA (Rivest-Shamir-Adleman). RSA se utiliza a menudo para generar pares de llaves para correos electrónicos cifrados con PGP.
La llave pública y la llave privada se generan y enlazan juntas. Ambas se basan en los mismos números primos secretos. La llave privada representa dos números primos secretos.
Metafóricamente, la llave pública es el número producto: está formada por los mismos dos números primos muy grandes utilizados para hacer la llave privada. Es muy difícil averiguar qué dos números primos grandes crearon la llave pública.
Este problema se conoce como "factorización de primos", y algunas implementaciones del cifrado de llave pública aprovechan esta dificultad para que los computadores resuelvan cuáles son los números primos componentes. El cifrado moderna nos permite utilizar números primos elegidos al azar, ridículamente gigantescos y difíciles de adivinar tanto para los humanos como para los computadores.
El punto fuerte aquí es que las personas pueden compartir sus llaves públicas a través de canales inseguros para poder cifrarse mutuamente. En el proceso, nunca revelan cuál es su llave privada (números primos secretos) porque, en primer lugar, nunca tienen que enviar su llave privada para descifrar mensajes.
Para que el cifrado de llave pública funcione, el emisor y el receptor necesitan las llaves públicas del otro.
Otra forma de verlo es que la llave pública y la llave privada se generan juntas, como un símbolo yin-yang. Están entrelazadas.
La llave pública se puede buscar y compartir. Puedes distribuirla a quien quieras. Puedes publicarla en tus redes sociales (si no te importa que revele la existencia de tu dirección de correo electrónico). Puedes ponerla en tu sitio web personal.
La llave privada debe mantenerse a salvo y cerca. Sólo tienes una. No querrás perderla, compartirla o hacer copias de ella que puedan flotar por ahí, ya que hace más difícil mantener la privacidad de tus mensajes privados.
El cifrado moderna de llave pública en la práctica: El doble trinquete de Signal
Con el tiempo, los protocolos de mensajería han evolucionado para ofrecer propiedades adicionales que mejoren la seguridad y la usabilidad. Esto ha cambiado la forma en que todos nos relacionamos con el cifrado a lo largo de los años, pasando de una experiencia transparente pero torpe a algo que ocurre en segundo plano sin que nos demos cuenta. Un ejemplo de esto es el "Algoritmo de doble trinquete" de Signal. Para entender mejor cómo funciona, deberíamos empezar por repasar algunos aspectos específicos llave de protocolos anteriores.
Privacidad Bastante Buena (PGP)
Como ya se ha explicado, PGP es una aplicación única de encriptación asimétrica y encriptación simétrica, y se suele utilizar para cifrar el correo electrónico en un contexto de mensajería. Con PGP, el cifrado asimétrico se utiliza para cifrar una llave simétrica, que luego se utiliza para cifrar un mensaje. PGP permite la comunicación asíncrona, pero una llave comprometida una sola vez revelaría el contenido de todos los mensajes, pasados y futuros. Por tanto, si alguien consiguiera acceder a tu llave, tendría acceso a todos los mensajes que hayas enviado (o vayas a enviar).
PGP ya no es tan popular como antes, pero algunas aplicaciones de mensajería utilizan un tipo de cifrado similar. Por lo general, estas aplicaciones siguen teniendo los problemas de recuperación de intrusiones y de secreto de archivo de intrusiones que tiene la versión de correo electrónico.
Extraoficialmente (OTR)
OTR fue en su día un complemento popular de los primeros clientes de chat de mensajería, como Pidgin, y se utilizaba para comunicarse en servicios como Google Hangouts. Para que OTR funcione, ambas partes deben estar conectadas para establecer una sesión, lo que limita su uso.
Con OTR, cada mensaje de ida y vuelta es una "sesión". Esto significa que si se filtra una sola llave, sólo se verán comprometidos los mensajes de esa sesión, no los anteriores ni los posteriores. Si un usuario enviara varios mensajes seguidos, la filtración de una llave los revelaría todos, pero no nada anterior ni posterior. El intercambio de llaves se adhiere a los mensajes, por lo que constantemente se vuelven a obtener nuevas llaves.
Desde el punto de vista de la seguridad, esto es estupendo, porque si un atacante accediera de algún modo a esa llave, sólo tendría acceso a un único mensaje. Pero la usabilidad de OTR no es genial. Como ambas partes tienen que estar conectadas, no es bueno para la mensajería asíncrona, ni siquiera después de la configuración, porque la nueva llave sólo se cambia después de que ambas partes hayan enviado mensajes. Esto significa que el material de la llave debe mantenerse hasta que la otra parte responda. Además, el seguimiento de mensajes fuera de orden -la función de los clientes de mensajería que mantiene los mensajes en orden lineal según el momento en que se envían y reciben- se complica. El orden de los mensajes no sólo es importante para la legibilidad de la conversación, sino que también es crucial para que El cifrado funcione realmente. Si un mensaje se envía fuera de orden, la aplicación del receptor puede no saber qué llave utilizar para descifrarlo.
Protocolo de Mensajería Instantánea de Círculo Silencioso (SCIMP)
SCIMP fue un protocolo provisional pionero en el uso de un "doble trinquete". Un trinquete doble es cuando cada remitente tiene su propia cadena personal de llaves, cada una derivada de la anterior. Esto significa que el material de las llaves puede descartarse con seguridad una vez enviado el mensaje.
Imagínate un trinquete. Cada vez que giras el trinquete, se crea una nueva llave para cada mensaje. Si un atacante consigue acceder a esa llave de algún modo, ya no podrá leer ningún mensaje anterior porque, una vez enviado el mensaje, la carraca vuelve a girar para crear una nueva llave. Pero podrían utilizar esa llave para hacer una copia del trinquete, lo que les permitiría leer todos los mensajes futuros. Las dos personas de una conversación tienen un trinquete personal que gira con cada mensaje. Esto está diseñado para impedir que un atacante retroceda en una conversación para leer los mensajes anteriores, aunque una persona haya enviado varios mensajes seguidos.
SCIMP proporciona "secreto hacia adelante", lo que significa que el compromiso de una llave no revelaría los mensajes anteriores (este nombre es confuso, pero impide que se lean los mensajes más antiguos aunque se comprometa una llave en el futuro). Pero SCIMP no proporciona ningún "secreto futuro" o "recuperación de intrusión" (que se utiliza para evitar que se lean los mensajes enviados después de que una llave se vea comprometida). Además, esperar mensajes fuera de orden significa retener ese material llave durante cierto tiempo.
Algoritmo de doble trinquete de Signal
Signal utiliza una combinación de OTR y SCIMP para soportar la mensajería asíncrona. En su blog, Signal explica la filosofía de diseño de la siguiente manera "Queríamos un trinquete que combinara lo mejor de ambos mundos: el secreto óptimo hacia adelante que proporciona un trinquete de iteración de hash como SCIMP, así como las agradables propiedades de secreto futuro que proporciona un trinquete DH como OTR, con la menor cantidad posible de los aspectos negativos de ambos".
En Signal, cada persona tiene un trinquete personal al estilo SCIMP que gira cuando envía un nuevo mensaje (pero la otra persona no ha respondido). Pero cada vez que se intercambian mensajes de ida y vuelta, se crea una nueva sesión, como vimos en OTR.
Al integrar ambas tecnologías, un atacante necesitaría descifrar casi todos los mensajes individualmente. Técnicamente, si el usuario A tiene un largo flujo de mensajes sin que la otra persona B responda, y se filtra la llave, el atacante podrá ver cada nuevo mensaje enviado por A hasta que B responda y se avance en la sesión.
El algoritmo de trinquete doble de Signal toma la idea de las cadenas de llaves SCIMP -que protegen cada mensaje individual, aunque un usuario esté "enviando mensajes dobles"- y las convierte en minicadenas que cuelgan de cada paso de un trinquete OTR. Esto garantiza que la conversación recibe una nueva llave cada vez que responde un nuevo usuario. Además, reduce las idas y venidas necesarias al introducir una tercera cadena de "llave raíz".
Una de las grandes innovaciones de Signal fue poder iniciar conversaciones de forma asíncrona utilizando un intercambio de llaves sin conexión. Dado que configurar la llave de encriptación del siguiente mensaje sólo requiere dos pasos y no tres, uno de esos pasos puede prepararse con antelación y guardarse en el servidor de Signal. Las llaves secretas relevantes no se crearán hasta que alguien utilice ese material para realizar un cálculo y obtener la información de su llave compartida, por lo que es seguro prepublicarlas. Signal las llama "prellaves". Para una versión menos simplificada, consulta aquí o aquí para la versión post-cuántica.
Metadatos: Lo que El cifrado de llave pública no puede hacer
El cifrado de llave pública consiste en garantizar que el contenido de un mensaje sea secreto, auténtico y no manipulado. Pero esa no es la única preocupación sobre privacidad que puedes tener. Como hemos señalado, la información sobre tus mensajes -los metadatos- puede ser tan reveladora como su contenido.
Si intercambias mensajes cifrados con un disidente conocido de tu país, puedes correr peligro por el simple hecho de comunicarte con él, aunque esos mensajes no se descifren. En algunos países, puedes enfrentarte a penas de cárcel por negarte a descifrar mensajes cifrados. Cada herramienta de mensajería cifrada recopila una cantidad diferente de metadatos. Por ejemplo, WhatsApp también está cifrado de extremo a extremo, pero recopila más metadatos que Signal.
Ahora que ya conoces el cifrado de llave pública, prueba a utilizar una herramienta de cifrado de extremo a extremo como Signal.