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"[1] 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.[2] 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),[3] i utilitza Curve25519, AES-256 i HMAC-SHA256 com a algoritmes.[4] HistòriaEl 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).[5][6] El 24 de febrer de 2014, Open Whisper Systems va presentar TextSecure v2,[7] que va migrar a l'Axolotl Ratchet.[5][8] 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).[9] 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.[10] 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ó.[9] La tercera versió del protocol, TextSecure v3, va fer alguns canvis a les claus criptogràfiques i al protocol de cable.[5] L'octubre de 2014, investigadors de la Universitat de Ruhr Bochum van publicar una anàlisi de TextSecure v3.[4][5] Entre altres troballes, van presentar un atac desconegut de compartició de claus al protocol, però, en general, van trobar que era segur.[11] 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[12] perquè alguns havien utilitzat el nom d'Axolotl quan es referien al protocol complet.[13][12] L'octubre de 2016, el Protocol Signal es basava en TextSecure v3, però amb alguns canvis criptogràfics addicionals.[5] 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.[14][15] El 2017 es va publicar una altra auditoria del protocol.[16] PropietatsEl 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.[17] No proporciona preservació de l'anonimat i requereix servidors per a la retransmissió de missatges i l'emmagatzematge de material de clau pública.[17] 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.[17] 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.[17] 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.[18] Això fa que els usuaris puguin verificar les identitats dels altres i evitar un atac man-in-the-middle attack.[18] 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.[18] MetadadesEl protocol de Signal no impedeix que una empresa reservi informació sobre quan i amb qui es comuniquen els usuaris.[19][20] 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.[21] 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".[20] 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.[22][23] La identitat del remitent es transmet al destinatari en cada missatge, però es xifra amb una clau que el servidor no té.[23] Això es fa automàticament si el remitent es troba als contactes del destinatari o té accés al seu perfil de Signal.[23] 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.[23] 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.[22] ÚsOpen 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.[24] 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.[25] 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.[26] El febrer de 2017, WhatsApp va anunciar una nova funció, WhatsApp Status, que utilitza el protocol de Signal per protegir el seu contingut.[27] 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.[28][29] El setembre de 2015, G Data Software va llançar una nova aplicació de missatgeria anomenada Secure Chat que utilitzava el protocol de Signal.[30][31] G Data va suspendre el servei el maig de 2018.[32] 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.[33] El març de 2019, Google va suspendre Allo a favor de la seva aplicació Google Messages a Android.[34][35] 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.[2][36] 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.[37] InfluènciaEl 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.[38][39] Els desenvolupadors de Forsta han dit que la seva aplicació utilitza una implementació personalitzada del protocol de Signal.[40] 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.[41] 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.[42][43][44] 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.[45] ImplementacionsSignal Messenger manté una implementació de referència[46] 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:
També existeixen biblioteques alternatives escrites per tercers en altres idiomes, com TypeScript.[47] Vegeu també
Referències
Literatura
Enllaços externs
|