Protocollo Signal

Protocollo Signal
software
Schema dell'algoritmo di Double Ratchet, una componente del protocollo Signal
Schema dell'algoritmo di Double Ratchet, una componente del protocollo Signal
Schema dell'algoritmo di Double Ratchet, una componente del protocollo Signal
GenereCrittografia
SviluppatoreFondazione Signal
Ultima versione0.68.0 (27 marzo 2025)
Sistema operativoMultipiattaforma
LinguaggioTypeScript
Java
Rust
C
Swift
LicenzaGNU Affero General Public License, versione 3
(licenza libera)
Sito websignal.org/docs

Il protocollo Signal, in inglese Signal Protocol, (precedentemente noto come protocollo TextSecure) è un protocollo crittografico non federato che fornisce la crittografia end-to-end per i messaggi e le chiamate di messaggistica istantanea.[1] Il protocollo è stato sviluppato da Open Whisper Systems nel 2013[1] ed è stato introdotto nell'app open source TextSecure, la quale, in seguito, è stata rinominata Signal. A partire dal 2018 il protocollo è sviluppato dalla fondazione Signal ed è distribuito con licenza libera AGPLv3.

Diverse applicazioni con codice proprietario hanno implementato questo protocollo, come WhatsApp, che crittografa le conversazioni di "oltre un miliardo di persone in tutto il mondo"[2] o Google che fornisce la crittografia end-to-end per impostazione predefinita a tutte le conversazioni RCS individuali tra gli utenti dell'app Google Messaggi.[3] Anche Facebook Messenger offre il protocollo per le "Conversazioni segrete", così come Skype per le sue "Conversazioni private".

Il protocollo combina l'algoritmo di Double Ratchet, le prechiavi (chiavi pubbliche effimere monouso caricate in anticipo su un server centrale) e un handshake Diffie–Hellman a tripla curva ellittica (3-DH),[4] e utilizza Curve25519, AES-256 e HMAC-SHA256 come primitive crittografiche.[5]

Lo sviluppo del protocollo Signal è iniziato nel 2013 grazie a Trevor Perrin e Moxie Marlinspike (Open Whisper Systems). La prima versione del protocollo, TextSecure v1, era basata sul protocollo di messaggistica Off-the-record (OTR).[6][7] Il 24 febbraio 2014, Open Whisper Systems ha introdotto TextSecure v2,[8] la seconda versione del protocollo basata su Axolotl Ratchet.[6][9] Il design dell'Axolotl Ratchet si basa sullo scambio di chiavi effimere introdotto da OTR e lo combina con un ratchet a chiave simmetrica basato sul protocollo di messaggistica istantanea Silent Circle (SCIMP).[10] Ha introdotto il supporto per la comunicazione asincrona come sua principale nuova caratteristica, oltre a una migliore resilienza con un ordine distorto dei messaggi e un supporto più semplice per le conversazioni con più partecipanti.[11] L'Axolotl Ratchet prende il nome da una salamandra acquatica, l'Axolotl, in grave pericolo di estinzione, dotata di straordinarie capacità di autoguarigione. Gli sviluppatori si riferiscono all'algoritmo come auto-riparante perché impedisce automaticamente a un aggressore di accedere ai messaggi successivi dopo aver compromesso una chiave di sessione.[10]

La terza versione del protocollo, TextSecure v3, ha apportato alcune modifiche alle primitive crittografiche e al protocollo di comunicazione.[6]

Nell'ottobre 2014, i ricercatori dell'università della Ruhr a Bochum hanno pubblicato un'analisi di TextSecure v3.[5][6] Tra le altre scoperte, hanno presentato un attacco di condivisione della chiave sconosciuta, ma in generale, hanno concluso che era sicuro.[12] Nel marzo 2016, gli sviluppatori hanno rinominato il protocollo TextSecure in protocollo Signal. Hanno inoltre rinominato l'algoritmo Axolotl Ratchet in Double Ratchet per differenziare meglio il ratchet dal protocollo completo[13], questo perché alcune persone avevano utilizzato il nome Axolotl riferendosi al protocollo completo.[14][13]

Nell'ottobre 2016, alcuni ricercatori dell'università di Oxford nel Regno Unito, dell'università del Queensland in Australia e dell'università McMaster in Canada hanno pubblicato un'analisi formale del protocollo concludendo che è crittograficamente affidabile.[15][6]

Un'ulteriore valutazione del protocollo (audit) è stata pubblicata nel 2017.[16]

Open Whisper Systems ha inizialmente introdotto il protocollo nell'applicazione TextSecure. Successivamente l'applicazione è stata unita con RedPhone, un'applicazione per effettuare videochiamate crittografate, ed è stata rinominata Signal. Nel novembre 2014 Open Whisper Systems ha annunciato una collaborazione con WhatsApp per integrare la crittografia end-to-end fornita dal protocollo Signal in ogni client WhatsApp.[17] Inizialmente il protocollo è stato integrato su Android mentre il supporto per le altre piattaforme e per i media e messaggi di gruppo sarebbe seguito a breve.[18] Il 5 aprile 2016 WhatsApp e Open Whisper Systems hanno annunciato che il protocollo era stato implementato in "ogni forma di comunicazione" su WhatsApp[19][20] Nel febbraio 2017 WhatsApp ha annunciato una nuova funzione, gli Stati WhatsApp che utilizzavano a loro volta il protocollo Signal per proteggerne il contenuto.[21]

A settembre 2015 G Data ha lanciato una nuova applicazione di messaggistica chiamata Chat Sicure che utilizza il protocollo Signal.[22][23] Il servizio è stato interrotto nel maggio 2018.[24]

Nell'ottobre 2016 Facebook ha aggiunto un'opzione in Facebook Messenger chiamata Conversazioni segrete che utilizza la crittografia end-to-end fornita dal protocollo Signal.[25][26][27][28]

Nel settembre 2016 Google ha lanciato una nuova applicazione di messaggistica chiamata Allo che include una modalità incognito opzionale che utilizza il protocollo Signal per fornire la crittografia end-to-end.[29][30] Nel marzo 2019 il servizio di Allo è stato interrotto in favore dell'applicazione Google Messaggi su Android.[31][32]

A gennaio 2018 Open Whisper Systems e Microsoft hanno annunciato l'aggiunta del protocollo Signal su Skype nelle conversazioni private.[33][34]

Nel novembre 2020 Google ha annunciato che avrebbe utilizzato il protocollo Signal per fornire la crittografia end-to-end di default per le conversazioni RCS individuali nell'app Google Messaggi.[3][35]

Il protocollo fornisce: riservatezza, integrità, autenticazione, coerenza dei partecipanti, convalida della destinazione, segretezza in avanti, sicurezza post-compromesso (nota anche come segretezza futura), preservazione della causalità, non collegabilità del messaggio, ripudio del messaggio, ripudio della partecipazione e asincronicità.[4] Non garantisce la conservazione dell'anonimato e richiede server per la trasmissione dei messaggi e l'archiviazione della chiave pubblica.[4] Il protocollo Signal supporta anche chat di gruppo crittografate end-to-end. Il protocollo di chat di gruppo è una combinazione di crittografia Double Ratchet a coppie e crittografia multicast.[4] Oltre alle proprietà fornite dal protocollo per le chat individuali, il protocollo di chat di gruppo fornisce coerenza dell'oratore, resilienza fuori ordine, resilienza dei messaggi eliminati, uguaglianza computazionale, uguaglianza di fiducia, messaggistica in sottogruppi, nonché appartenenza al gruppo contrattabile ed espandibile.[4]

Autenticazione

[modifica | modifica wikitesto]

Per l'autenticazione, gli utenti possono confrontare manualmente le impronte delle chiavi pubbliche attraverso un canale esterno.[36] Ciò consente agli utenti di verificare reciprocamente le proprie identità ed evitare un attacco man in the middle.[36] Un'implementazione può anche scegliere di impiegare un meccanismo di fiducia al primo utilizzo per segnalare agli utenti se la chiave di un corrispondente cambia.[36]

Il protocollo Signal non impedisce ad un'azienda di conservare informazioni su quando e con chi gli utenti comunicano, ossia i metadati.[37][38] Possono quindi esserci differenze nel modo in cui i vari fornitori di messaggistica scelgono di gestire queste informazioni. L'informativa sulla privacy di Signal stabilisce che gli identificativi dei destinatari vengono conservati sui server Signal solo per il tempo necessario alla trasmissione di ciascun messaggio.[39] Nel giugno 2016, Moxie Marlinspike ha dichiarato a The Intercept: "Gli unici metadati che il server Signal memorizza sono l'ultima volta che ogni utente si è connesso al server, e la precisione di questa informazione è limitata al giorno, piuttosto che all'ora, minuto e secondo".[38] Nell'ottobre 2018, Signal ha annunciato di aver implementato nell'app la funzionalità mittente sigillato, in inglese sealed sender. Questa funzione riduce la quantità di metadati a cui i server Signal hanno accesso nascondendo l'identificativo del mittente.[40][41] L'identità del mittente viene trasmessa al destinatario nel messaggio, ma è crittografata con una chiave che il server non possiede.[41] Questo avviene automaticamente se il mittente è nei contatti del destinatario o ha accesso al suo profilo Signal.[41] Gli utenti possono anche abilitare un'opzione per ricevere messaggi con il mittente sigillato anche da persone non nella rubrica e che non hanno accesso al loro profilo Signal.[41] Un'intercettazione telefonica contemporanea del dispositivo dell'utente e dei server Signal potrebbe comunque rivelare che l'indirizzo IP del dispositivo ha avuto accesso al server Signal per inviare o ricevere messaggi in determinati momenti.[40]

Implementazioni

[modifica | modifica wikitesto]

Signal Messenger mantiene un'implementazione di riferimento della libreria per il protocollo Signal scritta in Rust pubblicata con licenza AGPLv3 su GitHub. Sono disponibili inoltre parti di codice che permettono di utilizzarlo in Swift, Java, TypeScript, C e altri linguaggi che utilizzano come riferimento l'implementazione in Rust. Signal ha mantenuto le seguenti librerie ora deprecate:

Esistono anche librerie alternative scritte da terze parti in altri linguaggi, come TypeScript.[42]

  1. ^ a b Ksenia, Internet Science
  2. ^ (EN) WhatsApp's Signal Protocol integration is now complete, su Signal. URL consultato il 5 aprile 2016.
  3. ^ a b (EN) Google is rolling out end-to-end encryption for RCS in Android Messages beta, su The Verge. URL consultato il 28 novembre 2020 (archiviato dall'url originale il 19 novembre 2020).
  4. ^ a b c d e Unger, SoK: Secure Messaging, p. 239
  5. ^ a b Frosh, "How Secure is TextSecure?"
  6. ^ a b c d e Cohn-Gordon, A Formal Security Analysis of the Signal Messaging Protocol, p. 2
  7. ^ (EN) Protocol, su github.com, 2 marzo 2014 (archiviato dall'url originale il 7 gennaio 2015).
  8. ^ (EN) TextSecure Sheds SMS in Latest Version, su Threatpost. URL consultato il 14 luglio 2016.
  9. ^ (EN) Protocol V2, su github.com, 2 marzo 2014 (archiviato dall'url originale il 15 ottobre 2014).
  10. ^ a b (EN) Moxie Marlinspike, Advanced cryptographic ratcheting, su whispersystems.org, 26 novembre 2013. URL consultato il 23 settembre 2016.
  11. ^ Unger, SoK: Secure Messaging
  12. ^ (EN) Auditors find encrypted chat client TextSecure is secure, su The Register. URL consultato il 4 novembre 2014.
  13. ^ a b (EN) Signal on the outside, Signal on the inside, su Signal Blog. URL consultato il 9 aprile 2016.
  14. ^ Cohn-Gordon, A Formal Security Analysis of the Signal Messaging Protocol, p. 1
  15. ^ (EN) Signal Audit Reveals Protocol Cryptographically Sound, su Threatpost. URL consultato l'11 novembre 2016.
  16. ^ (EN) N. Kobeissi, K. Bhargavan e B. Blanchet, 2017 IEEE European Symposium on Security and Privacy (EuroS&P) (PDF), 2017, pp. 435–450, DOI:10.1109/EuroSP.2017.38, ISBN 978-1-5090-5762-7.
  17. ^ (EN) Jon Evans, WhatsApp Partners With Open WhisperSystems To End-To-End Encrypt Billions Of Messages A Day, su TechCrunch, 18 novembre 2014. URL consultato il 18 aprile 2025.
  18. ^ (EN) Moxie Marlinspike, Open Whisper Systems partners with WhatsApp to provide end-to-end encryption, su Signal Messenger, 18 novembre 2014. URL consultato il 18 aprile 2025.
  19. ^ (EN) Cade Metz, Forget Apple vs. the FBI: WhatsApp Just Switched on Encryption for a Billion People, in Wired, 5 aprile 2016. URL consultato il 18 aprile 2025.
  20. ^ (EN) Natasha Lomas, WhatsApp completes end-to-end encryption rollout, su TechCrunch, 5 aprile 2016. URL consultato il 18 aprile 2025.
  21. ^ (EN) WhatsApp Status, su WhatsApp.com, 20 febbraio 2017. URL consultato il 18 aprile 2025 (archiviato il 27 febbraio 2025).
  22. ^ (EN) Tara Seals, G DATA Adds Encryption for Secure Mobile Chat, su Infosecurity Magazine, 17 settembre 2015. URL consultato il 18 aprile 2025.
  23. ^ SecureChat, G DATA CyberDefense AG, 8 maggio 2018. URL consultato il 18 aprile 2025.
  24. ^ G DATA Secure Chat wird eingestellt, su www.gdata.de, 18 maggio 2018. URL consultato il 18 aprile 2025 (archiviato dall'url originale il 26 aprile 2019).
  25. ^ (EN) Mike Isaac, Facebook to Add 'Secret Conversations' to Messenger App, in The New York Times, 8 luglio 2016. URL consultato il 18 aprile 2025.
  26. ^ (EN) bdarwell, Messenger Starts Testing End-to-End Encryption with Secret Conversations, su Meta, 8 luglio 2016. URL consultato il 18 aprile 2025.
  27. ^ (EN) Andy Greenberg, By this fall, your Facebook messages will have end-to-end encryption---if you turn it on., in Wired. URL consultato il 18 aprile 2025.
  28. ^ (EN) Andy Greenberg, You can finally encrypt Facebook Messenger, so do it., in Wired. URL consultato il 18 aprile 2025.
  29. ^ (EN) Andy Greenberg, With Allo and Duo, Google Finally Encrypts Conversations End-to-End, in Wired. URL consultato il 18 aprile 2025.
  30. ^ (EN) Samuel Gibbs, Google launches WhatsApp competitor Allo – with Google Assistant, in The Guardian, 21 settembre 2016. URL consultato il 18 aprile 2025.
  31. ^ (EN) Jon Porter, Google is finally saying goodbye to Allo today, su The Verge, 12 marzo 2019. URL consultato il 18 aprile 2025.
  32. ^ (EN) The latest on Messages, Allo, Duo and Hangouts, su Google, 5 dicembre 2018. URL consultato il 18 aprile 2025.
  33. ^ (EN) Lily Hay Newman, Skype Finally Starts Rolling Out End-to-End Encryption, in Wired. URL consultato il 18 aprile 2025.
  34. ^ (EN) Joshua Lund, Signal partners with Microsoft to bring end-to-end encryption to Skype, su Signal Messenger, 11 gennaio 2018. URL consultato il 18 aprile 2025.
  35. ^ (EN) Emad Omara, Messages End-to-End Encryption Overview (PDF), su gstatic.com.
  36. ^ a b c Rottermanner, Privacy and Data Protection in Smartphone Messengers, p. 5
  37. ^ Rottermanner, Privacy and Data Protection in Smartphone Messengers, p. 4
  38. ^ a b (EN) Micah Lee, Battle of the Secure Messaging Apps: How Signal Beats WhatsApp, su The Intercept, 22 giugno 2016. URL consultato il 18 aprile 2025 (archiviato il 19 febbraio 2017).
  39. ^ (EN) Privacy, su whispersystems.org. URL consultato l'8 ottobre 2016.
  40. ^ a b (EN) Dan Goodin, New Signal privacy feature removes sender ID from metadata, su arstechnica.com, 30 ottobre 2018. URL consultato il 18 aprile 2025.
  41. ^ a b c d (EN) Joshua Lund, Technology preview: Sealed sender for Signal, su signal.org, 29 ottobre 2018. URL consultato il 18 aprile 2025.
  42. ^ (EN) Signal Protocol Typescript Library (libsignal-protocol-typescript), su github.com. URL consultato il 28 novembre 2020.

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]