# Protocol de Signal

El protocol de Signal (anteriorment conegut com a protocol TextSecure) és un protocol criptogràfic no federat que proporciona xifratge d'extrem a extrem per a converses de veu i missatgeria instantània. El protocol va ser desenvolupat per Open Whisper Systems el 2013 i es va introduir per primera vegada a l'aplicació de codi obert TextSecure, que més tard es va convertir en Signal. Diverses aplicacions de codi propietari han implementat el protocol, com WhatsApp, que es diu que xifra les converses de "més de mil milions de persones a tot el món" o Google que proporciona xifratge d'extrem a extrem de manera predeterminada a tots els missatges de mòbil per RCS, amb les converses entre usuaris de la seva aplicació de missatges de Google per a converses individuals. Facebook Messenger també diu que ofereixen el protocol per a converses secretes opcionals, igual que Skype per a les seves converses privades.
El protocol combina l'algoritme de doble verificació, les tecles prèvies i una encaixada de mans de triple corba el·líptica Diffie–Hellman (3-DH), i utilitza Curve25519, AES-256 i HMAC-SHA256 com a algoritmes.

## Història

El desenvolupament del protocol de Signal va ser iniciat per Trevor Perrin i Moxie Marlinspike (Open Whisper Systems) el 2013. La primera versió del protocol, TextSecure v1, es basava en missatgeria fora de registre (OTR).
El 24 de febrer de 2014, Open Whisper Systems va presentar TextSecure v2, que va migrar a l'Axolotl Ratchet. El disseny de l'Axolotl Ratchet es basa en l'intercanvi de claus efímer que va introduir OTR i el combina amb un trinquet de clau simètrica modelat després del Silent Circle Instant Messaging Protocol (SCIMP). Va aportar suport per a la comunicació asíncrona ("missatges fora de línia") com a característica nova principal, així com una millor resistència amb un ordre distorsionat dels missatges i un suport més senzill per a converses amb diversos participants. L'Axolotl Ratchet va rebre el nom de la salamandra aquàtica Axolotl, en perill crític, que té capacitats d'autocuració extraordinàries. Els desenvolupadors es refereixen a l'algorisme com a autocuració perquè es desactiva automàticament que un atacant accedeixi al text net dels missatges posteriors després d'haver compromès una clau de sessió.
La tercera versió del protocol, TextSecure v3, va fer alguns canvis a les claus criptogràfiques i al protocol de cable. L'octubre de 2014, investigadors de la Universitat de Ruhr Bochum van publicar una anàlisi de TextSecure v3. Entre altres troballes, van presentar un atac desconegut de compartició de claus al protocol, però, en general, van trobar que era segur.
El març de 2016, els desenvolupadors van canviar el nom del protocol com a Protocol de Signal. També van canviar el nom de l'Axolotl Ratchet com a algorisme de Double Ratchet per diferenciar millor entre el trinquet i el protocol complet perquè alguns havien utilitzat el nom d'Axolotl quan es referien al protocol complet.
L'octubre de 2016, el Protocol Signal es basava en TextSecure v3, però amb alguns canvis criptogràfics addicionals. L'octubre de 2016, investigadors de la Universitats d'Oxford, la Queensland University of Technology, i la McMaster University van publicar una anàlisi formal del protocol, a formal analysis of the protocol, concloure que el protocol era criptogràficament sòlid.
El 2017 es va publicar una altra auditoria del protocol.

## Propietats

El protocol proporciona confidencialitat, integritat, autenticació, coherència del participant, validació de la destinació, secret directe, seguretat després del compromís (també conegut com a secret futur), preservació de la causalitat, invencibilitat de missatges, repudi de missatges, repudi de participació i asincronisme. No proporciona preservació de l'anonimat i requereix servidors per a la retransmissió de missatges i l'emmagatzematge de material de clau pública.
El protocol de Signal també admet xats de grup xifrats d'extrem a extrem. El protocol de xat en grup és una combinació de doble verificació per parells i xifratge multicast. A més de les propietats proporcionades pel protocol un a un, el protocol de xat en grup proporciona coherència dels altaveus, resiliència fora d'ordre, resiliència de missatges perduts, igualtat computacional, igualtat de confiança, missatgeria de subgrups, així com membres contractables i ampliables.

### Autenticació

Per a l'autenticació, els usuaris poden comparar manualment les empremtes digitals de la clau pública a través d'un canal extern. Això fa que els usuaris puguin verificar les identitats dels altres i evitar un atac man-in-the-middle attack. Una implementació també pot optar per emprar un mecanisme de confiança en el primer ús per notificar als usuaris si la clau d'un corresponsal canvia.

### Metadades

El protocol de Signal no impedeix que una empresa reservi informació sobre quan i amb qui es comuniquen els usuaris. Per tant, hi pot haver diferències en la manera com els proveïdors de serveis de missatgeria decideixen gestionar aquesta informació. La política de privadesa de Signal estableix que els identificadors dels destinataris només es conserven als servidors de Signal mentre sigui necessari per transmetre cada missatge. El juny de 2016, Moxie Marlinspike va dir a The Intercept: "la informació més propera a les metadades que emmagatzema el servidor de Signal és l'última vegada que cada usuari es connecta al servidor, i la precisió d'aquesta informació es redueix al dia, en lloc de l'hora, minut i segon".
L'octubre de 2018, Signal Messenger va anunciar que havia implementat una funció de "remitent segellat" a Signal, que redueix la quantitat de metadades a les quals tenen accés els servidors de Signal ocultant l'identificador del remitent. La identitat del remitent es transmet al destinatari en cada missatge, però es xifra amb una clau que el servidor no té. Això es fa automàticament si el remitent es troba als contactes del destinatari o té accés al seu perfil de Signal. Els usuaris també poden habilitar una opció per rebre missatges de "remitent segellat" de persones que no tenen contacte i de persones que no tenen accés al seu perfil de Signal. Una escolta telefònica contemporània del dispositiu de l'usuari o dels servidors de Signal encara pot revelar que l'adreça IP del dispositiu va accedir a un servidor de Signal per enviar o rebre missatges en determinats moments.

## Ús

Open Whisper Systems va introduir per primera vegada el protocol a l'aplicació TextSecure. Més tard van fusionar una aplicació de trucada de veu xifrada anomenada RedPhone a TextSecure i la van canviar el nom de Signal.
El novembre de 2014, Open Whisper Systems va anunciar una associació amb WhatsApp per proporcionar xifratge d'extrem a extrem mitjançant la incorporació del protocol de Signal a cada plataforma de client de WhatsApp. Open Whisper Systems va dir que ja havien incorporat el protocol a l'últim client de WhatsApp per a Android i que el suport per a altres clients, missatges de grup/multimèdia i verificació de claus arribaran poc després. El 5 d'abril de 2016, WhatsApp i Open Whisper Systems van anunciar que havien acabat d'afegir el xifratge d'extrem a extrem a "totes les formes de comunicació" de WhatsApp i que els usuaris ja podien verificar les claus dels altres. El febrer de 2017, WhatsApp va anunciar una nova funció, WhatsApp Status, que utilitza el protocol de Signal per protegir el seu contingut. L'octubre de 2016, l'empresa matriu de WhatsApp , Facebook, també va desplegar un mode opcional anomenat Converses secretes a Facebook Messenger que proporciona xifratge d'extrem a extrem mitjançant una implementació del protocol de Signal.
El setembre de 2015, G Data Software va llançar una nova aplicació de missatgeria anomenada Secure Chat que utilitzava el protocol de Signal. G Data va suspendre el servei el maig de 2018.
El setembre de 2016, Google va llançar una nova aplicació de missatgeria anomenada Allo, que presentava un mode d'incògnit opcional que utilitzava el protocol de Signal per a l'encriptació d'extrem a extrem. El març de 2019, Google va suspendre Allo a favor de la seva aplicació Google Messages a Android. El novembre de 2020, Google va anunciar que utilitzaria el protocol de Signal per proporcionar xifratge d'extrem a extrem de manera predeterminada a totes les converses basades en RCS entre usuaris de la seva aplicació de missatges de Google, començant per converses individuals.
El gener de 2018, Open Whisper Systems i Microsoft van anunciar l'addició del suport del protocol de Signal a un mode opcional de Skype anomenat Converses privades.

## Influència

El protocol de Signal ha influït en altres protocols criptogràfics. El maig de 2016, Viber va dir que el seu protocol de xifratge és una implementació personalitzada que "utilitza els mateixos conceptes" que el protocol de Signal. Els desenvolupadors de Forsta han dit que la seva aplicació utilitza una implementació personalitzada del protocol de Signal.
L'algoritme de doble verificació que es va introduir com a part del protocol de Signal també ha estat adoptat per altres protocols. OMEMO és un protocol d'extensió XMPP (XEP) que es va introduir a l'aplicació de missatgeria Conversations i va ser aprovat per la XMPP Standards Foundation (XSF) el desembre de 2016 com a XEP-0384. Matrix és un protocol de comunicacions obert que inclou Olm, una biblioteca que proporciona xifratge opcional d'extrem a extrem habitació per habitació mitjançant una implementació de l'algoritme de trinquet doble. Els desenvolupadors de Wire han dit que la seva aplicació utilitza una implementació personalitzada de l'algoritme de trinquet doble.
Messaging Layer Security, una proposta de l'IETF, utilitza arbres de trinquets asíncrons per millorar de manera eficient les garanties de seguretat sobre el Double Ratchet de Signal.

## Implementacions

Signal Messenger manté una implementació de referència de la biblioteca Signal Protocol escrita en Rust sota la llicència AGPLv3 a GitHub. Hi ha enllaços a Swift, Java, TypeScript, C i altres llenguatges que utilitzen la implementació de referència Rust.
Signal va mantenir les biblioteques obsoletes següents:
* libsignal-protocol-c⁣: una biblioteca escrita en C amb permisos de llicència addicionals per a l'App Store d'Apple.
* libsignal-protocol-java⁣: una biblioteca escrita en Java.
També existeixen biblioteques alternatives escrites per tercers en altres idiomes, com TypeScript.

## Vegeu també

* Comparació de protocols de missatgeria instantània
* Comparació de biblioteques de criptografia

## Referències

* ↑ «WhatsApp's Signal Protocol integration is now complete». Signal. Signal Blog.. Arxivat de l'original el 29 January 2021. [Consulta: 5 abril 2016].
* 1 2 Bohn, Dieter. «Google is rolling out end-to-end encryption for RCS in Android Messages beta». The Verge. Vox Media, Inc., 19-11-2020. [Consulta: 28 novembre 2020].
* ↑ Unger et al. 2015, p. 241
* 1 2 Frosch et al. 2016
* 1 2 3 4 5 Cohn-Gordon et al. 2016
* ↑ «Protocol». Open Whisper Systems, 02-03-2014. Arxivat de l'original el 7 January 2015. [Consulta: 28 octubre 2016].
* ↑ Donohue, Brian. «TextSecure Sheds SMS in Latest Version». Threatpost, 24-02-2014. Arxivat de l'original el 15 February 2017. [Consulta: 14 juliol 2016].
* ↑ «ProtocolV2». Open Whisper Systems, 02-03-2014. Arxivat de l'original el 15 October 2014. [Consulta: 28 octubre 2016].
* 1 2 Marlinspike, Moxie. «Advanced cryptographic ratcheting». Signal Blog. Open Whisper Systems, 26-11-2013. Arxivat de l'original el 24 March 2017. [Consulta: 23 setembre 2016].
* ↑ Unger et al. 2015
* ↑ Pauli, Darren. «Auditors find encrypted chat client TextSecure is secure». The Register, 03-11-2014. Arxivat de l'original el 4 November 2014. [Consulta: 4 novembre 2014].
* 1 2 Marlinspike, Moxie. «Signal on the outside, Signal on the inside». Signal Blog. Open Whisper Systems, 30-03-2016. Arxivat de l'original el 28 December 2016. [Consulta: 9 abril 2016].
* ↑ Cohn-Gordon et al. 2016, p. 1
* ↑ Brook, Chris. «Signal Audit Reveals Protocol Cryptographically Sound». Threatpost. Kaspersky Lab, 10-11-2016. Arxivat de l'original el 14 February 2017. [Consulta: 11 novembre 2016].
* ↑ Cohn-Gordon et al. 2016
* ↑ N. Kobeissi. «Automated verification for secure messaging protocols and their implementations: A symbolic and computational approach». A: 2017 IEEE European Symposium on Security and Privacy (EuroS&P), 2017, p. 435–450. DOI 10.1109/EuroSP.2017.38. ISBN 978-1-5090-5762-7.
* 1 2 3 4 Unger et al. 2015
* 1 2 3 Rottermanner et al. 2015
* ↑ Rottermanner et al. 2015
* 1 2 Lee, Micah. «Battle of the Secure Messaging Apps: How Signal Beats WhatsApp». The Intercept, 22-06-2016. Arxivat de l'original el 19 February 2017. [Consulta: 8 octubre 2016].
* ↑ «Privacy Policy». Open Whisper Systems, n.d.. Arxivat de l'original el 29 April 2017. [Consulta: 8 octubre 2016].
* 1 2 Dan Goodin. «New Signal privacy feature removes sender ID from metadata». Ars Technica, 30-10-2018. Arxivat de l'original el 28 March 2019. [Consulta: 28 març 2019].
* 1 2 3 4 Lund, Joshua. «Technology preview: Sealed sender for Signal». signal.org. Signal Messenger, 29-10-2018. Arxivat de l'original el 24 November 2018. [Consulta: 16 abril 2019].
* ↑ Evans, Jon. «WhatsApp Partners With Open Whisper Systems To End-To-End Encrypt Billions Of Messages A Day». TechCrunch, 18-11-2014. Arxivat de l'original el 18 November 2014. [Consulta: 14 març 2016].
* ↑ Marlinspike, Moxie. «Open Whisper Systems partners with WhatsApp to provide end-to-end encryption». Open Whisper Systems, 18-11-2014. Arxivat de l'original el 18 November 2014. [Consulta: 14 març 2016].
* ↑ Lomas, Natasha. «WhatsApp completes end-to-end encryption rollout». TechCrunch, 05-04-2016. Arxivat de l'original el 6 April 2016. [Consulta: 5 abril 2016].
* ↑ «WhatsApp Status». WhatsApp. Facebook, 20-02-2017. Arxivat de l'original el 23 February 2017. [Consulta: 23 febrer 2017].
* ↑ Isaac, Mike. «Facebook to Add 'Secret Conversations' to Messenger App». The New York Times, 08-07-2016. Arxivat de l'original el 12 July 2016. [Consulta: 12 juliol 2016].
* ↑ «Messenger Starts Testing End-to-End Encryption with Secret Conversations». Facebook, 08-07-2016. Arxivat de l'original el 12 January 2018. [Consulta: 11 gener 2018].
* ↑ Seals, Tara. «G DATA Adds Encryption for Secure Mobile Chat». Infosecurity Magazine, 17-09-2015. Arxivat de l'original el 22 July 2016. [Consulta: 14 juliol 2016].
* ↑ «SecureChat». G Data. Arxivat de l'original el 7 May 2017. [Consulta: 14 juliol 2016].
* ↑ «G DATA Secure Chat wird eingestellt» (en alemany). G DATA Software AG., 18-05-2018. Arxivat de l'original el 26 April 2019. [Consulta: 26 abril 2019].
* ↑ Gibbs, Samuel. «Google launches WhatsApp competitor Allo – with Google Assistant». The Guardian, 21-09-2016. Arxivat de l'original el 7 January 2019. [Consulta: 21 setembre 2016].
* ↑ Porter, Jon. «Google is finally saying goodbye to Allo today». The Verge. Vox Media, 12-03-2019. Arxivat de l'original el 12 March 2019. [Consulta: 26 abril 2019].
* ↑ Klainer, Matt. «The latest on Messages, Allo, Duo and Hangouts», 05-12-2018. Arxivat de l'original el 13 April 2019. [Consulta: 26 abril 2019].
* ↑ Omara, Emad. «Messages End-to-End Encryption Overview». gstatic.com. Google, 01-11-2020. [Consulta: 28 novembre 2020].
* ↑ Lund, Joshua. «Signal partners with Microsoft to bring end-to-end encryption to Skype». Signal Blog. Open Whisper Systems, 11-01-2018. Arxivat de l'original el 2 February 2020. [Consulta: 13 gener 2018].
* ↑ «Viber Encryption Overview». Viber, 03-05-2016. Arxivat de l'original el 11 July 2016. [Consulta: 8 juliol 2017].
* ↑ Eyal, Ofir. «Canada, Germany and Australia are getting e2e encryption». Viber, 03-05-2016. Arxivat de l'original el 5 October 2016. [Consulta: 9 octubre 2016].
* ↑ «ForstaLabs/libsignal-node» (en anglès). GitHub. Forsta Inc., 03-02-2019. Arxivat de l'original el 13 June 2018. [Consulta: 6 febrer 2019].
* ↑ Andreas Straub. «XEP-0384: OMEMO Encryption». XMPP Standards Foundation website, 07-12-2016. Arxivat de l'original el 25 February 2017. [Consulta: 28 abril 2017].
* ↑ «Add attribution». GitHub. Wire Swiss GmbH, 09-05-2016. Arxivat de l'original el 7 May 2017. [Consulta: 9 octubre 2016].
* ↑ «Wire Security Whitepaper». Wire Swiss GmbH, 03-03-2016. Arxivat de l'original el 10 September 2018. [Consulta: 7 febrer 2019].
* ↑ Lomas, Natasha. «Encrypted messaging app Wire adds usernames so you can limit what you share with contacts». TechCrunch. Verizon Media, 16-12-2016. Arxivat de l'original el 9 February 2019. [Consulta: 8 febrer 2019].
* ↑ Barnes, Richard. «The Messaging Layer Security (MLS) Protocol». IETF, 22-12-2020. Arxivat de l'original el 5 June 2021.
* ↑ «signalapp/libsignal», 08-04-2024. [Consulta: 8 abril 2024].
* ↑ Privacy Research, LLC. «libsignal-protocol-typescript». github.com. [Consulta: 28 novembre 2020].

## Literatura

* Cohn-Gordon, Katriel; Cremers, Cas; Dowling, Benjamin; Garratt, Luke; Stebila, Douglas «A Formal Security Analysis of the Signal Messaging Protocol». . International Association for Cryptologic Research (IACR), 25-10-2016.
* (September 2016) "Internet Science" a INSCI 2016. Bagnoli, Franco 9934: 244–254, Florence, Italy: Springer. DOI:10.1007/978-3-319-45982-0_22
* (March 2016) "2016 IEEE European Symposium on Security and Privacy (EuroS&P)" a 2016 IEEE European Symposium on Security and Privacy (EuroS&P). : 457–472, Saarbrücken, Germany: IEEE. DOI:10.1109/EuroSP.2016.41
* (December 2015) "Privacy and Data Protection in Smartphone Messengers" a Proceedings of the 17th International Conference on Information Integration and Web-based Applications & Services (iiWAS2015). , ACM International Conference Proceedings Series
* (2015) "2015 IEEE Symposium on Security and Privacy" a Proceedings of the 2015 IEEE Symposium on Security and Privacy. : 232–249, IEEE Computer Society's Technical Committee on Security and Privacy. DOI:10.1109/SP.2015.22
* (2017) "More is Less: On the End-to-End Security of Group Chats in Signal, WhatsApp, and Threema". , International Association for Cryptologic Research (IACR)

## Enllaços externs

* Protocol de Signal - Lloc web oficial
* "TextSecure Protocol: Present and Future", talk by Trevor Perrin at NorthSec 2015 (video)