Cifrado de extremo a extremo
Resumen
El cifrado de extremo a extremo (en inglés, End-to-End Encryption, E2EE) es un método de cifrado en el que los datos se cifran en el dispositivo del emisor y solo pueden descifrarse en el dispositivo del receptor. Está diseñado para que los servidores del trayecto y el responsable del servicio se limiten a retransmitir los datos cifrados, sin poder descifrar el contenido. Es un método cuyo uso se ha extendido en el ámbito de las aplicaciones de mensajería, pero hasta qué punto cada servicio aplica E2EE por defecto cambia según las modificaciones que haga el proveedor en sus especificaciones.
La diferencia con el cifrado habitual
El cifrado de las comunicaciones con HTTPS (TLS) cifra el canal entre el cliente y el servidor. Sin embargo, como en el servidor los datos se procesan ya descifrados, el administrador del servidor o un atacante que haya entrado en él pueden leerlos.
Con E2EE, el servidor solo guarda o reenvía los datos cifrados tal cual. Como el diseño mantiene la clave privada necesaria para descifrar dentro del dispositivo del receptor, la confidencialidad del contenido se conserva aunque el servidor se vea comprometido. Ahora bien, esta es una propiedad del diseño que parte de que la clave no sale del dispositivo, y esa premisa se rompe si la clave se confía a una vía de copia de seguridad o si el propio dispositivo se ve comprometido. Esta diferencia marca mucho cuando se produce un incidente de seguridad en el lado del servidor.
Cómo funciona el intercambio de claves
El núcleo técnico de E2EE está en cómo compartir de forma segura las claves de cifrado con la otra parte. En E2EE se suelen usar métodos basados en el intercambio de claves Diffie-Hellman. Cada usuario genera un par de clave pública y clave privada e intercambia la clave pública. Cada parte deriva el mismo secreto compartido a partir de la clave pública del otro y de su propia clave privada, y lo usa para cifrar los mensajes.
El protocolo Signal, además, para lograr el secreto perfecto hacia adelante (Forward Secrecy), usa una clave distinta para cada mensaje y la desecha. Está diseñado para que, aunque se filtre la clave de un mensaje, no sirva para descifrar los demás mensajes.
El papel del cifrado en los servicios de preguntas anónimas
En los servicios de preguntas anónimas son pocos los casos en que se aplica E2EE al propio contenido de las preguntas. Esto se debe a que las preguntas parten de que el dueño del buzón las responde o las muestra en la página pública, y a que hace falta filtrar el contenido en el lado del servidor. Para filtrar, el servidor tiene que poder leer el texto en claro, algo que por estructura es incompatible con E2EE.
Aun así, los datos personales, como la dirección IP del remitente, se guardan cifrados. En este caso no se usa E2EE, sino cifrado de clave simétrica en el lado del servidor (AES-256). La seguridad en la operación se garantiza limitando de forma estricta el acceso a la clave de descifrado. E2EE no lo resuelve todo, y lo importante es elegir el método de cifrado según los requisitos del servicio.