Desde que WhatsApp actualizó sus condiciones de uso y su política de privacidad 2021, a todo el mundo le ha quedado claro que la verdadera diferencia entre las distintas aplicaciones de mensajería instantánea ya no son las funciones incorporadas, sino el nivel de privacidad de las conversaciones que son capaces de garantizar: en este sentido, Signal puede considerarse la alternativa más segura que existe a las “habituales” WhatsApp y Telegram.
Qué es Signal
Signal Private Messenger (su nombre completo) es una aplicación de software gratuita y de código abierto para Android, iOS y computadoras desktop Windows, Mac y Linux que utiliza el cifrado de extremo a extremo para proteger los mensajes de texto, imagen y audio y vídeo, así como las conversaciones telefónicas entre los usuarios de la propia aplicación.
Además, Signal es el único sistema de mensajería que combina el protocolo Extended Triple Diffie-Hellman (X3DH), el algoritmo Double Ratchet, las pre-claves y utiliza Curve25519, AES-256 y HMAC-SHA256 como herramientas criptográficas.
Signal: un poco de historia
“Mucho antes de saber que se iba a llamar Signal, ya sabíamos lo que queríamos que fuera. En lugar de compararnos con la criptografía del resto del mundo, queríamos ver si podíamos desarrollar una criptografía que funcionara para el resto del mundo. En aquel momento, el consenso de la industria era en gran medida que la criptografía sería inutilizable, pero nosotros empezamos con la idea de que la comunicación privada podía ser sencilla”, dijeron Moxie Marlinspike y Brian Acton, fundador y promotor de la primera empresa sin ánimo de lucro dedicada a la innovadora solución de comunicación que ahora se considera “más segura” que ninguna otra.
Las fechas son importantes: Signal nace en 2013 y tiene sus bases en el protocolo Open Whisper System exactamente igual que WhatsApp, y aparece para integrarse precisamente a este último. Pero Brian sale de WhatsApp en 2017 y en 2018 y, gracias a 50.000.000 de dólares de fondos que obtiene de organizaciones sin ánimo de lucro, crea Signal, una solución de comunicación segura que tiene unas reglas básicas, definitivamente en competencia con WhatsApp y a favor de la seguridad.
La seguridad de los mensajes como primera regla
Signal no puede descifrar ni acceder al contenido de los mensajes o las llamadas. La aplicación pone en cola los mensajes encriptados de extremo a extremo en sus servidores únicamente para su entrega a dispositivos temporalmente desconectados (como un teléfono con poca batería). El historial de mensajes se almacena en los dispositivos de los usuarios, no en los servidores.
Obviamente, en los servidores se almacena parte de la información técnica, incluidos los tokens de autenticación, pero generados aleatoriamente, las claves criptográficas, los tokens push y otro material necesario para establecer llamadas y transmitir mensajes. Signal limita esta información técnica adicional al mínimo necesario para el funcionamiento de los servicios.
Además de permitir comunicarse con cualquier usuario en cualquier parte del mundo con mensajes y llamadas de voz o vídeo en HD, Signal siempre ha contado con una función adicional, denominada remitente sellado, que reduce aún más la información “visible” en tránsito durante una llamada. Mientras que los sistemas normales y las apps comunes de mensajería y comunicación exponen al menos los datos del emisor y del receptor, Signal oculta estos datos incluso en la fase inicial de la llamada y gracias a lo que se llama en broma “Deus SGX machina” garantiza un nivel de encriptación decididamente más robusto que el de sus competidores.
SGX (Software Guard Extensions) permite a las aplicaciones crear un “Securenclave” (zonas de claves seguras) aislado del sistema operativo y el núcleo del host, similar a tecnologías como TrustZone de ARM. Las “zonas de claves seguras” de SGX también admiten la confirmación remota, que proporciona una garantía criptográfica del código que se ejecuta en un enclave remoto a través de una red. Y partiendo de la frase de contraseña o PIN del usuario, los clientes utilizan Argon2 para ampliarla en una clave de 32 bytes.
Para los no iniciados, Argon2 es una función de derivación de claves criptográficas que permite derivar una o más claves criptográficas a partir de una clave maestra (la llave maestra) o de otra información disponible, como una contraseña, tanto una palabra como una frase. Como muestra de su seguridad, Argon 2 resultó ganador en el Concurso de Hashing de Contraseñas en julio de 2015 ofreciendo la mejor resistencia al cracking de la GPU y a los ataques del lado del cliente.
Seguridad y privacidad de los contactos
Opcionalmente, Signal puede averiguar qué contactos de la libreta de direcciones del usuario son ya usuarios de Signal, utilizando un servicio diseñado para proteger la privacidad de los contactos de los usuarios, pero no lo hace por defecto. La aplicación también funciona sin acceso a la libreta de direcciones; en sus inicios, era única. No exigía permisos especiales, no pedía la geolocalización y tenía mucho cuidado de no compartir nada con nadie.
La información de los contactos en el dispositivo del usuario puede ser encriptada y transmitida de forma segura al servidor para determinar qué contactos están ya registrados, pero de nuevo sólo si el usuario lo desea.
Sin embargo, en aras de la equidad, cabe señalar que hay casos en los que Signal puede tener que compartir los datos de un usuario:
- para satisfacer cualquier ley, reglamento, proceso legal o solicitud gubernamental aplicable;
- hacer cumplir las condiciones aplicables aceptadas por los usuarios, incluida la investigación de posibles infracciones;
- para detectar, prevenir o abordar de otro modo el fraude, la seguridad o los problemas técnicos;
- para proteger los derechos, la propiedad o la seguridad de la propia Signal, de sus usuarios o del público, según lo exija o permita la ley.
Así que incluso Signal, en los casos anteriores, podría tener o querer compartir los datos de algunos usuarios, pero desde luego no parece querer hacerlo con ánimo de lucro, a diferencia de otras apps de mensajería y de todas formas no puede proporcionar lo que no tiene. Esta es también una de las razones por las que la Comisión Europea dice que es más seguro (seguridad, privacidad) que WhatsApp.
Cómo descargar y registrarse en Signal
La aplicación Signal está disponible para Android, iOS y Desktop: entonces puedes descargarla desde las distintas tiendas y markets, sólo tienes que buscar “Signal” y seleccionar la propia aplicación -asegurándote de que es la versión original, es decir, el Private Messenger de Open Whisper Systems, sin olvidar que es propiedad de Twitter.
Dependiendo de la plataforma elegida, basta con hacer clic en GET para descargar la aplicación y luego en INSTALL para encontrar la aplicación que se ejecuta en su dispositivo. Evidentemente, hay que registrarse y activar el sistema.
En particular, para los usuarios de iPhone, tienes que escribir tu número de teléfono y pulsar Activar este dispositivo. Recibirás un código de seis dígitos por SMS que deberás copiar en la aplicación, confirmando la operación con Enviar código de verificación.
Los usuarios de Android, por su parte, tendrán que introducir su número de teléfono, pulsar Registro y esperar a que la aplicación verifique el número de teléfono. Cuando hayas terminado, se te preguntará si quieres establecer Signal como tu aplicación de mensajería predeterminada, lo que te permitirá enviar, recibir y leer tanto mensajes de Signal como mensajes SMS clásicos. Es importante recordar, sin embargo, que Signal no cifrará las conversaciones realizadas con mensajes de texto SMS antiguos.
Desde un punto de vista práctico, el procedimiento de instalación y activación de Signal es por tanto muy sencillo y transparente para el usuario.
Sin embargo, técnicamente las cosas son mucho más complejas. En el momento de la instalación (y periódicamente después), todos los agentes de Signal generan una serie de claves criptográficas y se registran en un servidor de distribución de claves. En concreto, cada agente genera las siguientes claves privadas DH:
- clave de la “identidad” a largo plazoikP;
- un prekP a medio plazo “prekey firmado”;
- un eprek múltiple a corto plazo “de una sola vez”.
Las claves públicas correspondientes a estos valores se suben al servidor, junto con una firma onprekusingik. Estos se denominan colectivamente “paquetes de pre-llaves”.
Signal y WhatsApp: las diferencias
Como ya se ha escrito, está claro que la primera diferencia entre Signal y WhatsApp está en los conceptos de privacidad que Signal aumenta y gestiona a favor del usuario, mientras que WhatsApp sigue dejando algunas dudas sobre cómo se “interpretan” y reutilizan los datos.
Signal y Telegram: las diferencias
De nuevo, al igual que con Confide u otras apps similares (hay muchas) los conceptos de seguridad de Telegram son superiores a los de WhatsApp, pero el uso de diferentes tipos de chat hacen que Telegram sea menos amigable para el usuario medio.
En Telegram, de hecho, tienes Chats en la nube y Chats secretos, así como diferentes parámetros para cada uno: en resumen, es definitivamente menos práctico aunque no necesariamente menos seguro.
Conclusiones
A la vista de lo dicho hasta ahora, es obligado un razonamiento: ¿por qué es gratuita una aplicación que le costó a Brian Acton al menos 50 millones de dólares? No olvidemos tampoco que una cadena de seguridad es tan fuerte como su eslabón más débil: si el generador de números aleatorios se volviera predecible, ¿podría comprometer las comunicaciones con futuros colegas?
La respuesta es potencialmente sí, pero antes de que eso ocurra Signal añadirá definitivamente políticas de seguridad adicionales.