El Signal Protocol ( Protocolo de señal , anteriormente conocido como TextSecure Protocol) es un protocolo criptográfico creado por Open Whisper Systems para proporcionar cifrado de extremo a extremo para llamadas de voz, videollamadas [1] y mensajes instantáneos . El protocolo fue desarrollado por Open Whisper Systems en 2013 y se introdujo por primera vez en la aplicación TextSecure de código abierto , que luego se fusionó con la aplicación.señal. Varias aplicaciones de código cerrado, como WhatsApp , afirman haber implementado este protocolo, que aseguran cifra las conversaciones de "más de mil millones de personas en todo el mundo" [3] . Facebook Messenger también afirma ofrecer este protocolo para "conversaciones secretas" adicionales, al igual que Google Allo para su "modo de incógnito".
El protocolo combina Double Ratchet Algorithm , prekeys y Extended Diffie-Hellman Triple Key Exchange (3-DH) [4] y utiliza Curve25519 , AES-256 y HMAC - SHA256 como primitivas [5] .
El desarrollo del protocolo Signal fue iniciado en 2013 por Trevor Perrin y Moxie Marlinspike , de Open Whisper Systems . El objetivo de esta organización es desarrollar un conjunto de aplicaciones móviles fáciles de usar para una comunicación segura. La organización se fundó en 2013 y está formada por un pequeño grupo de desarrolladores financiados por donaciones y subvenciones, así como por una gran comunidad de desarrolladores voluntarios. La primera versión del protocolo, TextSecure v1, se basó en el protocolo de mensajería extraoficial (OTR) para sistemas de mensajería instantánea [7] .
El 24 de febrero de 2014, Open Whisper Systems presentó el protocolo TextSecure v2 [8] , que fue portado al algoritmo Axolotl Ratchet [9] . La idea de Axolotl Ratchet se basa en el intercambio de claves efímeras que introdujo OTR y lo combina con un trinquete de claves simétricas, inspirado en el protocolo de mensajería instantánea Silent Circle (SCIMP) [10] . Esto fue capaz de implementar soporte para comunicación asíncrona ("mensajes fuera de línea") como su principal característica nueva, así como una mayor robustez contra el orden de mensajes sesgados y facilitó el soporte de conversaciones con múltiples participantes [4] . Axolotl Ratchet recibió su nombre del ajolote anfibio en peligro de extinción que tiene una extraordinaria capacidad para regenerar extremidades perdidas. Los desarrolladores llaman a este algoritmo autorreparación, ya que deshabilita automáticamente el acceso de un atacante a los textos sin formato de los mensajes posteriores después de que la clave de la sesión se ve comprometida [10] .
La tercera versión del protocolo, TextSecure v3, introdujo algunos cambios en las primitivas criptográficas y el protocolo de conexión . En octubre de 2014, investigadores de la Ruhr University Bochum publicaron un análisis de TextSecure v3 [5] . Entre otros resultados, presentaron un ataque de intercambio de claves desconocido en el protocolo, pero en general encontraron que era seguro [11] .
En marzo de 2016, los desarrolladores cambiaron el nombre del protocolo a protocolo Signal. También cambiaron el nombre del algoritmo Axolotl Ratchet a Double Ratchet Algorithm para distinguir mejor entre el algoritmo y el protocolo completo [12] porque algunos usaron el nombre Axolotl cuando se referían al protocolo completo [12] .
A partir de octubre de 2016, Signal Protocol se basó en el protocolo TextSecure v3, pero con cambios criptográficos adicionales . En octubre de 2016, investigadores de la Universidad de Oxford en el Reino Unido, la Universidad Australiana de Tecnología de Queensland y la Universidad McMaster de Canadá publicaron un análisis formal del protocolo . Llegaron a la conclusión de que este protocolo es criptográficamente seguro .
El protocolo proporciona confidencialidad , integridad, autenticación , consistencia de participantes, verificación de destino, secreto de envío, seguridad posterior al compromiso ( Post-Compromise Security , conocida como Future Secrecy), preservación de la causalidad, desacoplamiento de mensajes, rechazo de mensajes, rechazo de No proporciona anonimato y requiere servidores para transmitir mensajes y almacenar información de clave pública [4] .
El protocolo Signal también admite chats grupales encriptados de extremo a extremo. El protocolo de chat grupal es una combinación de un trinquete doble emparejado y un cifrado de multidifusión. Además de las funciones proporcionadas por el protocolo uno a uno, el protocolo de chat grupal brinda consistencia de los participantes, tolerancia a los trastornos, resiliencia de mensajes , equidad computacional, equidad de confianza, mensajería de subgrupos y contracción y expansión del número de participantes [4] .
Para la autenticación, los usuarios pueden comparar manualmente las huellas dactilares de la clave pública a través de un canal externo. Esto permite a los usuarios verificar las identidades de los demás y evitar ataques de intermediarios . Una implementación también puede usar un mecanismo de confianza de primer uso para notificar a los usuarios cuando la clave de un corresponsal ha cambiado [14] .
El protocolo Signal no impide que las empresas almacenen información sobre cuándo y con quién se comunican los usuarios [14] [15] . Por lo tanto, puede haber diferencias en la forma en que los proveedores de servicios de mensajería eligen manejar esta información. La política de privacidad de Signal establece que las identificaciones de los destinatarios solo se almacenan en los servidores de Signal durante el tiempo que sea necesario para transmitir cada mensaje. En junio de 2016, Moxie Marlinspike le dijo a The Intercept "La información más cercana a los metadatos que almacena el servidor Signal es la última vez que cada usuario se conecta al servidor, y esa información se reduce a un día en lugar de una hora, un minuto. ." y segundos" [15] .
Open Whisper Systems introdujo por primera vez el protocolo en su aplicación TextSecure . Más tarde combinaron la aplicación TextSecure con una llamada de voz encriptada llamada RedPhone y la rebautizaron como Signal. RedPhone usó ZRTP para encriptar sus llamadas. En marzo de 2017, Signal cambió a un nuevo sistema de llamadas basado en WebRTC [1] , que también introdujo la capacidad de realizar videollamadas [16] . El nuevo sistema de llamadas Signal utiliza el protocolo Signal para el cifrado de extremo a extremo [1] .
En noviembre de 2014, Open Whisper Systems anunció una asociación con WhatsApp para proporcionar cifrado de extremo a extremo mediante la incorporación del protocolo Signal en todas las plataformas de clientes de WhatsApp [17] . Open Whisper Systems declaró que ya incluyeron el protocolo en el último cliente de WhatsApp para Android y que pronto se admitirán otros clientes, mensajes grupales/ medios y verificación de claves [18] . El 5 de abril de 2016, WhatsApp y Open Whisper Systems anunciaron que habían terminado de agregar el cifrado de extremo a extremo a "todas las comunicaciones" en WhatsApp y que los usuarios ahora pueden verificar las claves de los demás [19] [20] . En febrero de 2017, WhatsApp anunció una nueva función de estado de WhatsApp que utiliza el protocolo Signal para asegurar su contenido [21] .
En septiembre de 2015, G Data Software lanzó una nueva aplicación de mensajería llamada Secure Chat que utiliza el protocolo Signal [22] [23] .
En septiembre de 2016, Google lanzó una nueva aplicación de mensajería llamada Allo que tiene un modo de incógnito opcional que usa el protocolo Signal para el cifrado de extremo a extremo [24] [25] .
En octubre de 2016, Facebook lanzó un modo adicional llamado Conversaciones secretas en Facebook Messenger , que proporciona cifrado de extremo a extremo mediante el protocolo Signal [26] [27] [28] [29] .
En enero de 2018, Open Whisper Systems y Microsoft anunciaron la incorporación del soporte del protocolo Signal a un modo de Skype opcional llamado Conversaciones privadas [30] [31] .
En febrero de 2020, se lanzó el nuevo mensajero de sesión (anteriormente Loki Messenger), que se basa en el protocolo Signal y admite el cifrado de extremo a extremo. Descentralización declarada en blockchain y trabajo a través de enrutamiento de cebolla.
El protocolo Signal ha influido en otros protocolos criptográficos. El 3 de mayo de 2016, Viber declaró que su protocolo de cifrado es una implementación personalizada que utiliza los mismos enfoques que el Protocolo de señal [32] [33] . El 9 de mayo de 2016, los desarrolladores de Wire declararon que su protocolo de cifrado Proteus se basa en el protocolo Signal [34] [35] .
El algoritmo de doble trinquete , que se introdujo como parte del protocolo Signal, también ha sido adoptado por otros protocolos. OMEMO es una extensión del protocolo abierto XMPP que se introdujo en la aplicación de mensajería Conversations y fue aprobada por la XMPP Standards Foundation (XSF) en diciembre de 2016 como XEP-0384 [36] . Matrix es un protocolo de comunicaciones abierto que incluye Olm, una biblioteca que proporciona cifrado de extremo a extremo opcional en todas las salas mediante una implementación del algoritmo de doble trinquete .
Open Whisper Systems mantiene las siguientes bibliotecas de protocolo Signal en GitHub :