Signal: Un protocolo para unirlos a todos (o casi todos)
Siempre he dicho que «no es paranoia si de verdad te persiguen«, esa frase no es mía, a principios de los 90 ya aparecía en «Paranoia«, un juego de rol sobre un tema que, si bien podría ser un futuro distópico, cada día es más real:
El juego se ambienta en el Complejo Alfa, una inmensa ciudad subterránea controlada por El Ordenador, un sistema de inteligencia artificial esquizofrénico, que fue programado para procurar la felicidad de sus habitantes, felicidad que es obligatoria. Sus protocolos de acción incluye la ejecución sumaria ante cualquier indicio de anormalidad en su sociedad «perfecta». El problema es que todos los ciudadanos tienen, por lo menos, dos motivos de traición: pertenecer a una sociedad secreta y tener un poder mutante. Además, el mismo ordenador da órdenes contradictorias que en caso de no ser cumplidas en su totalidad (lo que muchas veces resulta imposible), también son motivo de traición.
Extraído de: https://es.wikipedia.org/wiki/Paranoia_(juego_de_rol)
Hoy día todos tenemos, al menos, un motivo para evitar que nos espíen, todas rozan la paranoia, aunque casos como el de Edward Snowden demuestran que el espionaje masivo existe y es efectivo aunque nos parezca ciencia ficción y conspiraciones varias. Muchos conocen SITEL y se echan las manos a la cabeza, aunque este sistema entra dentro de la legalidad y requiere que un judicial lo avale para llevarlo a cabo, poco se sabe de otros proyectos 2000 veces más grandes y sujeto a menos controles como ECHELON o PRISM que, además de ser indiscriminados y automatizados, incluyen llamadas, emails, y cualquier tipo de comunicación que se os ocurra.
Esto es sólo el «espionaje gubernamental»… luego tenemos el «espionaje empresarial» que, aunque no lo parezca, es mucho peor.
Uno puede pensar que, mientras uno no haga nada ilegal o sospechoso, no tiene que preocuparse… que la seguridad es lo primordial y que si nos espían es para velar por nosotros…. que nadie va a leer o escuchar nuestra comunicaciones mientras preguntamos por cómo se encuentra un familiar porque ¿a quién le interesa?, pero la verdad es que, aunque no te lo creas, les interesa a todos…
Por esta razón, en el mundo de la informática nos toca ponernos las pilas en cuanto a la seguridad y evitar que una comunicación pueda ser interceptada, grabada, transcrita, analizada y procesada por algoritmos con, a saber qué fin, y por esta razón aparecen las necesidades de que TODA, absolutamente TODA comunicación de datos, esté cifrada y sea difícil o imposible obtenerla.
Protocolo SIGNAL
Ese es justamente el objetivo del «Protocolo Signal«, un protocolo de mensajería aunque utilizado por muchos otros sistemas de comunicaciones (voz, vídeo, transmisión de archivos, etc.), que consiste en el cifrado punto a punto entre dos personas que hablan entre sí evitando que un tercero pueda obtener el contenido de la comunicación.
Este protocolo Signal viene a implementar el conocido end-to-end encryption que ahora está tan de moda en todas las aplicaciones de mensajería, y que todas ellas se han basado en el mismo protocolo Signal, aunque luego cada una ha hecho su propia implementación.
Nota: Telegram utiliza otro protocolo similar aunque diferente llamado MTProto.
A muchos les sonará ese «Protocolo Signal» por su aplicación principal «Signal«, una herramienta de mensajería que se centra en la seguridad y que hasta la propia Comisión Europea ha seleccionado como herramienta de comunicación interna para evitar utilizar otras de «dudosa reputación».
Otro apunte interesante, que si bien podría ser una estrategia publicitaria podría ser cierta y le daría más importancia a este método de cifrado es el hecho de que el gobierno de los EEUU no ha podido descifrar los mensajes y piden «ayuda», por lo que la empresa detrás de este protocolo está pensando en no ofrecer este servicio en EEUU por las presiones que está recibiendo.
Este protocolo E2EE (end-to-end encryption) garantizaría la privacidad necesaria para mantener una conversación fuera de las miradas externas incluso aunque llegasen a entrar en la conversación.
Un buen ejemplo de esto lo hemos visto en un vídeo de Jitsi en el que prueban la multi-videoconferencia con E2EE:
Es un paso adelante, quizá (como decía al comienzo del artículo) algo triste el hecho de tener que andar con cifrados y complicándolo todo para tener una mínima privacidad en nuestras conversaciones.
No obstante, aunque seamos muy amigos de la privacidad hay algo inmutable: lo privado solo puede serlo mientras no salgamos fuera.
Qué no es E2EE
Y es que actualmente, toda integración se tiene que hacer sin cifrar, por lo que, al final siempre hay un punto de inseguridad que tenemos que ser conscientes que existe (si, un poco paranoicos siempre somos).
Por ejemplo: Si una centralita VoIP en la que se cifra todo el tráfico SIP y todo el audio RTP para que puedan hablar entre ellos de forma segura, tienen que entender que su comunicación irá cifrada y seguramente su conversación será plenamente privada.
No obstante, si se hace una llamada al exterior, hay un momento que el audio cifrado desaparece y pasa a estar cifrado únicamente hasta el servidor, por lo que a partir de ahí, TODO irá en abierto, ya que la PSTN no va cifrada (ya sea móvil o fijo).
Si tengo dos protocolos diferentes cifrados y necesito conectarlos para que se comuniquen entre ellos, en el lugar donde se comunican ambos protocolos, ahí tocará descifrar para poder pasar de un protocolo al otro.
Esto NO es E2EE (end-to-end encryption) y es justamente lo que ocurre con muchos servicios que se ofrecen hoy día… que sí ofrecen comunicaciones cifradas, pero no pueden ofrecerla de usuario a usuario ya que utilizan diferentes protocolos.
Seguramente en un futuro sí se puede ofrecer un cifrado más completo, más compatible y más seguro, pero de momento, si necesitamos un cifrado que nos garantice cierta privacidad, sólo podemos contentarnos con hablar en el mismo servicio, ya sea Signal, Whatsapp, Telegram, Jitsi, etc… que nuestro interlocutor.
¿Cómo se puede usar E2EE en VoIP?
En VoIP sí es posible ofrecer E2EE, sólo que hay que usar un sistema algo antiguo y poco extendido: ZRTP (Zimmermann Real-time Transport Protocol -del creador de PGP-) y que requiere de un cliente especial que sea capaz de utilizar este sistema RTP.
Por supuesto, el hecho de usar ZRTP no es algo habitual y tampoco cómodo de cara a una empresa que quiera algo de seguridad, para eso siempre está el SIP bajo TLS y SRTP, esto debería ser un MUST en un entorno de información muy confidencial o con ciertos riesgos de robo de información… no obstante, lo bueno es que está ahí, es software libre, gratis y se puede utilizar si hace falta.
No obstante, lo llamativo de todo esto es el hecho de que un protocolo como Signal pueda ser utilizado por muchas otras empresas de mensajería para ofrecer algo que ninguna de ellas ofrecía por sí sola y es una mínima seguridad, algo que posiblemente en un futuro sea obligatorio que todos los servicios implementen y más sabiendo lo que sabemos hoy día, pero de momento ya nos sentimos algo más seguros sabiendo que nuestros mensajes con gifs de gatitos no serán leídos por empresas y organismos que quieren hacer un perfil en función de las palabras y comentarios que hagamos. Algo es algo.
Más información
Si os interesa conocer mejor cómo funciona el protocolo Signal, en esta página podéis encontrar una descripción mucho más detallada y profunda:
https://medium.com/@justinomora/demystifying-the-signal-protocol-for-end-to-end-encryption-e2ee-ad6a567e6cb4
y por supuesto, en su página oficial está la documentación oficial y ñas librerías para Java, C y Javascript: https://signal.org/docs/
Como decía, la aplicación Telegram utiliza otro protocolo diferente de E2EE llamado MTProto : https://core.telegram.org/mtproto