La semana pasada, Google anunció un cambio que pronto podría hacer que sus 2 mil millones de usuarios de Android en todo el mundo sean mucho más difíciles de vigilar: el gigante tecnológico dice que está lanzando una versión beta de su aplicación de mensajería de Android que ahora usará cifrado de extremo a extremo por defecto.Efectivamente, Google ha comenzado a implementar el cifrado de extremo a extremo para Rich Communication Service, el estándar de mensajería de texto que el gigante de la industria está impulsando como alternativa a los SMS. Ese nivel de cifrado, aunque se limita a las conversaciones uno a uno, está diseñado para evitar que alguien más escuche a escondidas, ni los operadores telefónicos, ni las agencias de inteligencia, ni un delincuentes informático que se haya apoderado del enrutador Wi-Fi local; ni siquiera el propio Google tendrá las claves para descifrar y leer esos miles de millones de mensajes.
La noticia no es solo una victoria para la privacidad global. También es una ventaja para un sistema de cifrado en particular: el protocolo Signal, que está en camino de dar cuenta de la mayoría de las conversaciones de texto en tiempo real del mundo. Dado que este protocolo se convierte en el estándar de facto para la mensajería cifrada en la mayoría de los principales servicios, vale la pena comprender qué lo distingue de otras formas de mensajería cifrada de extremo a extremo.
Es posible que ya conozca Signal gracias a la popular aplicación de mensajería de texto cifrada de extremo a extremo con el mismo nombre, creada por cypherpunk Moxie Marlinspike y en los últimos años alojada por la organización sin fines de lucro Signal Foundation. Signal, la aplicación, tiene una reputación incomparable de seguridad y privacidad, con el respaldo del informante de la NSA, Edward Snowden, y el fundador de WhatsApp, Brian Acton, quien dejó WhatsApp en 2018 para desempeñarse como director ejecutivo de Signal Foundation.
Pero el sistema de cifrado subyacente que diseñó Marlinspike y en el que se construye Signal, conocido como el protocolo Signal, se ha extendido mucho más allá de su aplicación homónima. WhatsApp adoptó por primera vez el protocolo Signal en 2014 para cifrar de extremo a extremo todos los mensajes entre teléfonos Android, en lo que Marlinspike dijo a WIRED fue «la mayor implementación de cifrado de extremo a extremo jamás realizada».
WhatsApp lo activó de forma predeterminada para los más de mil millones de usuarios dos años después. Poco después, Google implementó el cifrado de extremo a extremo a través del protocolo Signal como una función de suscripción para su ahora desaparecido Allo Messenger y en su servicio de video chat Duo y Facebook siguió agregándolo como una característica opcional de «Conversaciones secretas» en Facebook Messenger unos meses después.
La decisión de Google de integrar el protocolo Signal en la aplicación de mensajería de Android de forma predeterminada representa la mayor colección de teléfonos nuevos que han adoptado el estándar en años, con cientos de millones de dispositivos más. Entonces, ¿por qué los gigantes tecnológicos del mundo han elegido Signal como su protocolo de cifrado de referencia?
Perfect Forward Secrecy
Su característica sobresaliente, dice el profesor de ciencias de la computación y criptógrafo de Johns Hopkins, Matthew Green, es cómo implementa lo que se conoce como «Perfect Forward Secrecy». Con la mayoría de los sistemas de cifrado, cuando se instala una aplicación en un teléfono, crea un par de claves permanente que se utiliza para cifrar y descifrar mensajes: una clave «pública» que se envía al servidor de mensajería y se utilizará para identificar al usuario, y una clave «privada» que nunca sale del teléfono del usuario.
Sin embargo, si esa clave privada se ve comprometida de alguna manera, como si alguien hackea o incauta su teléfono, eso potencialmente deja todos sus mensajes vulnerables al descifrado. Incluso si ha eliminado mensajes de su teléfono, la clave puede descifrar cualquier mensaje cifrado que los espías hayan logrado registrar cuando viajaron originalmente a través de la red.
Sin embargo, el protocolo Signal utiliza un sistema llamado «Double Ratchet» (2013) que cambia la clave después de cada mensaje. Para ello, genera una colección de pares de claves temporales para cada usuario, además de las claves permanentes. Cuando alguien envía un mensaje a un contacto a través de una aplicación que utiliza el protocolo Signal, la aplicación combina los pares temporales y permanentes de claves públicas y privadas para que ambos usuarios creen una clave secreta compartida que se utiliza para cifrar y descifrar ese mensaje. Dado que la generación de esta clave secreta requiere acceso a las claves privadas de los usuarios, solo existe en sus dos dispositivos. Y el sistema de claves temporales del protocolo Signal, que se repone constantemente para cada usuario, le permite generar una nueva clave compartida después de cada mensaje.
Es decir, después de un intercambio de claves inicial, el algoritmo gestiona la renovación y el mantenimiento continuos de las claves de sesión de corta duración. Combina un denominado «trinquete» (ratchet) criptográfico basado en el intercambio de claves Diffie-Hellman (DH) y una función de derivación de claves (KDF), como una función hash. Este comportamiento obligaría al atacante a interceptar toda la comunicación entre las partes, ya que pierde el acceso tan pronto como se transmite un mensaje sin interceptar. Esta propiedad más tarde se denominó Future Secret o Post-Compromise Security.
«Cada vez que envía un mensaje, su clave se actualiza», dice Green. «Eso significa que si le roban el teléfono a la hora X, cualquier mensaje que envíe antes de la hora X debería estar seguro». Esa seguridad falta, señala Green, en iMessage de Apple, otra aplicación de mensajería popular que usa cifrado de extremo a extremo pero no ofrece un secreto directo perfecto.
Es importante tener en cuenta que Perfect forward es inútil si los usuarios no eliminan sus mensajes periódicamente. Si el teléfono de alguien es incautado o robado con todos sus mensajes intactos, será tan visible para quien tenga el teléfono en la mano como para el propietario original.
La aplicación Signal ofrece mensajes que desaparecen y que se eliminan automáticamente después de un cierto límite de tiempo y WhatsApp también está implementando una función de eliminación automática, después de pasar años sin una. Los usuarios de mensajería de Android, de manera crucial, tendrán que eliminar manualmente cualquier mensaje que quieran proteger para obtener todos los beneficios del protocolo Perfect forward.
La popularidad de Signal no se debe no solo a esa característica, sino simplemente a su reputación como un «protocolo de código abierto, transparente y bien diseñado». Ha existido durante bastante tiempo, y su adopción en WhatsApp, Facebook Messenger y la aplicación Signal en sí está tan analizada, que cualquier error grave se habría detectado y solucionado hace años. Para los usuarios, también, no está de más cambiar de cualquier servicio de mensajería no cifrado que pueda estar usando a uno que implemente el protocolo Signal.