encryption – En el cifrado de extremo a extremo, ¿no es necesario confiar en el servidor?

Pregunta:

Aplicaciones como WhatsApp utilizan cifrado de extremo a extremo. WhatsApp dice que solo los usuarios comparten una clave específica y ningún tercero puede ver los mensajes. Pero no entiendo cómo los dos usuarios se ponen de acuerdo sobre la clave compartida. Debe haber sido transferido a través de los servidores de WhatsApp. De esa forma, WhatsApp conocería la clave compartida, ¿verdad? Ayúdame a comprender cómo se comparten las claves en el cifrado de extremo a extremo.

Respuesta:

El cifrado de extremo a extremo en un canal con un espía, como el servidor de WhatsApp, funciona mediante el uso de un hechizo matemático llamado acuerdo de clave Diffie-Hellman. Lo que sigue no es realmente cómo funciona WhatsApp, * pero explora algunas de las ideas de alto nivel para responder de manera concreta a la pregunta sin perderse en los detalles sangrientos completos de todo sobre el protocolo, que defiende contra muchas más amenazas de las que preguntaste.

Alice y Bob acuerdan los parámetros públicos $ p $ y $ g $, digamos $$ p = 2 ^ {2048} – 2 ^ {1984} – 1 + 2 ^ {64} (\ lfloor2 ^ {1918} \ pi \ rfloor + 124476) $$ y $ g = 2 $. Cuando Alice quiere tener una conversación con Bob, elige un número entero $ a $ con $ 0 \ leq a <(p – 1) / 2 $ uniformemente al azar, calcula el resto después de dividir $ g ^ a $ por $ p $, escribe $ g ^ a \ bmod p $ y transmite $ g ^ a \ bmod p $ por el canal. Bob lo hace de manera similar: elige $ b $ uniformemente al azar en el mismo rango, calcula $ g ^ b \ bmod p $ y transmite $ g ^ b \ bmod p $ por el canal.

Por una notable hazaña de las matemáticas, cuando Alice recibe $ g ^ b \ bmod p $, puede calcular $ (g ^ b \ bmod p) ^ a \ bmod p $, y resulta ser lo mismo que $ g ^ {ab} \ bmod p $. Bob hace lo mismo: dado $ g ^ a \ bmod p $, calcula $ (g ^ a \ bmod p) ^ b \ bmod p $ y obtiene el mismo número que $ g ^ {ab} \ bmod p $.

Nadie ha descubierto la notable hazaña de las matemáticas que permitiría a alguien que conoce $ g ^ a \ bmod p $ y $ g ^ b \ bmod p $ pero no $ a $ o $ b $ ellos mismos calcular también $ g ^ {ab } \ bmod p $.

Por lo tanto, Alice y Bob pueden compartir un secreto, $ g ^ {ab} \ bmod p $, a través de un canal sin revelar a un fisgón cuál es el secreto. Luego, convertirán esto en una clave secreta corta, digamos $ k = \ operatorname {SHA3-256} (g ^ {ab} \ bmod p) $ de 256 bits, tal vez con SHA3-256, y procedan a usarlo para cifrado de clave simétrica como AES-CTR.

Pero eso no es todo. ¿Qué pasa si no es solo un espía, sino nuestro amigo Mallory quien, además de tener un nombre molesto sin género, intercepta activamente los mensajes en tránsito? Mallory podría fingir ser Bob para Alice y Alice para Bob, y hacer un par de acuerdos clave Diffie-Hellman, y establecer secretos compartidos con Alice y Bob, y luego escuchar a escondidas todos los mensajes que intercambian. El servidor de WhatsApp está en condiciones de hacer esto.

Para frustrar este subterfugio de secretos compartidos por conversación , Alice y Bob utilizan además la autenticación a largo plazo . Alice genera un número $ \ alpha $ como $ a $ y pone $ g ^ \ alpha \ pmod p $ en la guía telefónica, o se lo muestra a Bob en la pantalla de su teléfono; Bob hace lo mismo con $ \ beta $. Por lo tanto, tienen un secreto compartido a largo plazo $ \ kappa = \ operatorname {SHA3-256} (g ^ {\ alpha \ beta} \ pmod p) $. Ahora, cuando Alice quiere tener una conversación con Bob, usa el protocolo por conversación, pero en lugar de transmitir solo $ g ^ a \ bmod p $, transmite $ (g ^ a \ bmod p, \ operatorname {KMAC256} _ \ kappa (g ^ a \ bmod p)) $.

Cuando Bob recibe un mensaje candidato $ (A, t) $, primero verifica si $ t = \ operatorname {KMAC256} _ \ kappa (A) $ antes de procesarlo. Si no, deja caer el mensaje al suelo y lo ignora. Solo Alice y Bob pueden calcular la función $ \ operatorname {KMAC256} _ \ kappa $, porque solo Alice y Bob conocen el secreto $ \ kappa $.

Luego, en lugar de simplemente encriptar su conversación real con $ k = \ operatorname {SHA3-256} (g ^ {ab} \ bmod p) $ usando AES-CTR, ellos encriptan y autentican su conversación usando AES-GCM. El servidor de WhatsApp puede invertir bits en mensajes cifrados con AES-CTR sin que Alice o Bob se den cuenta, aunque solo Alice y Bob conocen la clave secreta, pero sin conocer la clave secreta, el servidor de WhatsApp no puede cambiar nada en los mensajes cifrados y autenticado usando AES-GCM sin que Alice y Bob se den cuenta.

¿Qué pasa si Alice y Bob no pueden intercambiar $ g ^ \ alpha \ bmod p $ y $ g ^ \ beta \ bmod p $ en las pantallas de sus teléfonos porque nunca se han conocido en persona? Tienen que consultar la guía telefónica, que publica WhatsApp. Cuando Alice consulta a WhatsApp para obtener la clave de identidad pública a largo plazo de Bob $ g ^ \ beta \ bmod p $, WhatsApp podría suplantarla y mentir al respecto, y si Alice más tarde revisa la pantalla del teléfono de Bob, detectará el subterfugio porque no lo hará. coincida con la clave que entregó el servidor de WhatsApp.

Por otro lado, si WhatsApp no falsifica la identidad pública a largo plazo de Bob en el directorio telefónico, Alice lo recordará en su directorio personal. Si el servidor de WhatsApp alguna vez intenta hacerse pasar por Bob cuando Alice intenta iniciar una conversación, Alice lo detectará. Este modelo de autenticación a veces se denomina TOFU o confianza en el primer uso . También lo encontrará en el protocolo ssh.

Hay un problema: a veces, la clave de identidad de Bob cambia, como cuando obtiene un teléfono nuevo. ¿Qué debería hacer Alice en ese caso? En Signal , la aplicación no enviará ningún mensaje nuevo en nombre de Alice; le notificará que algo anda mal y le preguntará qué hacer. En WhatsApp, de forma predeterminada, § la aplicación volverá a intentar automáticamente con la nueva clave de identidad de Bob, en un intento de reducir los obstáculos de usabilidad para los usuarios que no entienden esto, lo que llevó a un enorme alboroto sobre los informes de los medios de comunicación de la elección, que de alguna manera empequeñeció una vulnerabilidad mucho peor en la aplicación que filtraba el texto de lo que estaba escribiendo si parecía una URL.

Al final, dado que WhatsApp, parte de Facebook, proporciona el software y no le permite escudriñarlo, ciertamente tienen el poder de leer y hacerse pasar por sus mensajes, que probablemente piensen seriamente que nunca abusarán. Eso es mejor que permitir que todos en la ruta de Internet entre Alice y Bob, como el acosador que está sentado a algunas mesas en la cafetería en la misma red wifi que Alice, por eso fue tan dañino para The Guardian informar sin aliento en una puerta trasera en WhatsApp como lo hizo.

Incluso si su teléfono habló TLS a los servidores de WhatsApp con un certificado anclado, aún es más fácil diseñar pistas de auditoría para cambios maliciosos en la agenda telefónica que diseñar pistas de auditoría para espionaje por parte de los servidores de WhatsApp, ya sea ​​por un atacante técnico que explota un vulnerabilidad de software, por un empleado descontento de LOVEINT, o por una intervención telefónica ordenada por un tribunal.

Entonces, ¿pueden terceros leer sus mensajes de WhatsApp? No, no es probable, y se necesitaría un ataque activo por parte de WhatsApp en sí, similar al tipo que Apple se negó a hacer por el FBI, para que ellos leyeran sus mensajes.


* WhatsApp afirma utilizar el protocolo Signal ( documentación técnica ).

Detalles técnicos: $ p $ es un número primo seguro , lo que significa que es un número primo de la forma $ p = 2q + 1 $ donde $ q $ también es primo. $ g $ es un módulo de residuo cuadrático $ p $, y por lo tanto tiene orden $ q $, lo que significa que hay $ q $ residuos posibles distintos de $ g ^ x $ cuando se dividen por $ p $ para cualquier número entero $ x $. Las potencias de $ g $ módulo $ p $ forman un subgrupo del grupo multiplicativo de enteros $ (\ mathbb Z / p \ mathbb Z) ^ \ times $. Nada de esto es importante para que entiendas cómo compartir secretos en un canal público, pero te proporciono las palabras clave para que sigas si quieres seguir estudiando.

Alice en realidad no calcula, por ejemplo , 2 ^, y luego divide el resultado entre $ p $; en su lugar, utiliza un algoritmo de exponenciación modular para que sea posible obtener una respuesta antes de que el universo se consuma.

§ Algo de esto es configurable: los usuarios conscientes que deben usar WhatsApp, como un periodista cuyo único contacto con una fuente es WhatsApp, deben estudiar las opciones de privacidad y seguridad de WhatsApp .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım