Dopo che WhatsApp ha aggiornato i termini d’uso e l’informativa privacy 2021, è diventato chiaro a tutti che la vera differenza tra le varie applicazioni di messaggistica istantanea non la fanno più le funzionalità integrate, quanto piuttosto il livello di privacy delle conversazioni che sono in grado di garantire.
In questo senso, Signal può essere considerata l’alternativa più sicura che c’è alle “solite” WhatsApp e Telegram.
Indice degli argomenti
Cos’è Signal, la chat IM più privata che c’è
Signal Private Messenger (il suo nome completo) è un’applicazione software gratuita open source per Android, iOS e desktop Windows, Mac e Linux che utilizza la crittografia end-to-end per proteggere i messaggi di testo, di immagini e audio e video oltre che le conversazioni telefoniche tra gli utenti dell’app stessa.
Inoltre, Signal è l’unico sistema di messaggistica che combina insieme il protocollo Extended Triple Diffie-Hellman (X3DH), l’algoritmo Double Ratchet, le pre-chiavi e utilizza Curve25519, AES-256 e HMAC-SHA256 come primitive crittografiche.
Signal: un po’ di storia
“Molto prima che sapessimo che si sarebbe chiamato Signal, sapevamo cosa volevamo che fosse. Invece di confrontarci con il resto della crittografia mondiale, volevamo vedere se potevamo sviluppare una crittografia che funzionasse per il resto del mondo. All’epoca, il consenso del settore era in gran parte sul fatto che la crittografia sarebbe rimasta inutilizzabile, ma abbiamo iniziato Signal con l’idea che la comunicazione privata potesse essere semplice”: così si esprimono Moxie Marlinspike e Brian Acton, rispettivamente fondatore e supporter di Open Whisper System, la prima società No-Profit dedicata alla innovativa soluzione di comunicazione ritenuta oggi “più sicura” delle altre.
Le date sono importanti: Signal nasce in realtà nel 2013 e ha le sue basi sul protocollo Open Whisper System esattamente come WhatsApp ed era nato per integrarsi proprio a quest’ultima. ma Brian esce da WhatsApp nel 2017 e nel 2018, grazie a 50.000.000 di dollari di fondi a favore delle no-profit, entra in Signal con il quale sviluppa una soluzione di comunicazione sicura che ha alcune regole base, decisamente in concorrenza con WhatsApp ed a favore della sicurezza.
La prima regola di Signal: la sicurezza dei messaggi
Signal non può decrittare o accedere in altro modo al contenuto dei messaggi o delle chiamate. L’applicazione mette in coda i messaggi crittografati end-to-end sui suoi server esclusivamente per il recapito a dispositivi temporaneamente offline (ad esempio un telefono la cui batteria è scarica). La cronologia dei messaggi è memorizzata sui dispositivi degli utenti e non sui server.
Alcune informazioni tecniche vengono ovviamente archiviate sui server, inclusi i token di autenticazione ma che sono generati casualmente, le chiavi crittografiche, i token push e altro materiale necessario per stabilire le chiamate e trasmettere messaggi. Signal limita queste informazioni tecniche aggiuntive al minimo richiesto per gestire i servizi.
Signal in qualità di software di messaggistica istantanea ovviamente consente di comunicare con qualunque utente in qualsiasi parte del mondo con messaggi e chiamate vocali o chiamate video in HD. Ma ha anche una funzione aggiuntiva chiamata sealed sender, che riduce ulteriormente le informazioni “visibili” in transito durante una chiamata.
Mentre i normali sistemi e le comuni app di messaggistica e comunicazione espongono almeno i dati di mittente e destinatario, Signal prevede di nascondere questi i dati anche in fase iniziale della chiamata e per merito di quello che scherzosamente viene definito “Deus SGX machina” garantisce un livello di cifratura decisamente più robusto dei competitor.
L’SGX (Software Guard Extensions) consente alle app di eseguire il provisioning di una “Securenclave” isolata dal sistema operativo host e dal kernel, in modo simile a tecnologie come TrustZone di ARM.
Le “zone sicure per chiavi” SGX supportano anche l’attestazione remota che fornisce una garanzia crittografica del codice in esecuzione in un’enclave remota su una rete. Ed a partire dalla passphrase o dal PIN dell’utente, i client utilizzano Argon2 per estenderlo in una chiave a 32 byte.
Per chi non lo sapesse, Argon2 è una funzione di derivazione di una chiave crittografica che consente di ricavare una o più chiavi crittografiche da una chiave principale (la master key) o da un’altra informazione disponibile, ad esempio una password o una passphrase.
A dimostrazione della sua sicurezza, Argon 2 risultò vincitrice alla Password Hashing Competition nel luglio 2015 offrendo la miglior resistenza agli attacchi di GPU cracking e agli attacchi client-side.
Signal: sicurezza e privacy dei contatti
Signal può facoltativamente scoprire quali contatti nella rubrica dell’utente sono già utenti Signal, usando un servizio progettato per proteggere la privacy dei contatti degli utenti, ma non lo fa di default.
L’applicazione, inoltre, funziona anche senza accesso alla rubrica, alla sua nascita era unica nel suo genere. Non pretendeva permessi speciali, non chiedeva geo-localizzazione e faceva davvero attenzione a non condividere nulla con nessuno.
Le informazioni dei contatti sul dispositivo utente possono essere crittografate e trasmesse in modo sicuro al server per determinare quali sono già registrati, ma anche in questo caso solo se l’utilizzatore lo vuole.
Per correttezza di informazione, però, è opportuno segnalare che ci sono casi in cui Signal potrebbe dover condividere i dati di un utente:
- per soddisfare qualsiasi legge, regolamento, procedura legale o richiesta governativa applicabile;
- per applicare i termini applicabili, accettati dagli utenti, inclusa l’indagine su potenziali violazioni;
- per rilevare, prevenire o altrimenti affrontare frodi, sicurezza o problemi tecnici;
- per proteggere da danni ai diritti, alla proprietà o alla sicurezza di Signal stesso, dei suoi utenti o del pubblico, come richiesto o consentito dalla legge.
Quindi anche Signal, nei casi sopra indicati, potrebbe dovere o voler condividere dati di alcuni utenti, ma di sicuro non sembra volerlo fare a scopo di lucro, al contrario delle altre app di messaggistica e comunque non può fornire ciò che non ha.
Questo è anche uno dei motivi per i quali la commissione europea dice che è più sicura (sicurezza, privacy) di WhatsApp.
Come scaricare e registrarsi a Signal
L’applicazione Signal è disponibile per Android, iOS e Desktop: si può quindi scaricare dai vari store e market, basta cercare “Signal” e selezionare l’app stessa – controllando che sia la versione originale, ovvero il Private Messenger di Open Whisper Systems, senza dimenticare che è di proprietà di Twitter.
A seconda della piattaforma scelta, è sufficiente cliccare su OTTIENI per scaricare l’app e poi su INSTALLA per ritrovarsi l’applicazione funzionante sul proprio dispositivo. Ovviamente serve registrarsi e attivare il sistema.
In particolare, per gli utenti iPhone occorre digitare il proprio numero di telefono e premere Attiva questo dispositivo. Si riceverà un codice di sei cifre tramite SMS che andrà ricopiato nell’applicazione, confermando l’operazione con Invia codice di verifica.
Gli utenti Android, invece, dovranno digitare il proprio numero di telefono, premere Registrati e attendere che l’app verifichi il numero di telefono. Al termine, verrà chiesto se si desidera impostare Signal come app di messaggistica predefinita: ciò consentirà di inviare, ricevere e leggere sia i messaggi Signal sia i classici messaggi SMS. È importante ricordare, però, che Signal non crittograferà le conversazioni effettuate utilizzando i vecchi messaggi di testo SMS.
Da un punto di vista pratico, la procedura di installazione e attivazione di Signal è dunque molto semplice e trasparente per l’utente.
Tecnicamente, però, le cose sono molto più complesse. Al momento dell’installazione (e periodicamente in seguito), tutti gli agent di Signal generano un numero di chiavi crittografiche e si registrano con un server di distribuzione delle chiavi. In particolare, ciascun agent genera le seguenti chiavi private DH:
- a lungo termine “identità” keyikP;
- una prekP a medio termine “prekey firmata;
- un eprek multiplo a breve termine “one time”. Le chiavi pubbliche corrispondenti a questi valori vengono quindi caricate sul server, insieme a una firma onprekusingik. Questi sono chiamati collettivamente “bundle pre-chiave”.
Signal e WhatsApp: le differenze
Come già scritto, è evidente che la prima differenza tra Signal e WhatsApp è nei concetti di privacy che Signal incrementa e gestisce a favore dell’utente, mentre WhatsApp lascia ancora qualche dubbio su come i dati vengano “interpretati” e riutilizzati.
Signal e Telegram: le differenze
Anche in questo caso, così come accade con Confide o altre app simili (ne esistono moltissime ) i concetti di sicurezza di Telegram sono superiori a quelli di WhatsApp ma l’uso di tipi diversi di chat rendono Telegram meno facile all’uso per l’utente medio.
In Telegram, infatti, si hanno le Cloud Chats e le Secret Chats, oltre a parametri diversi per ciascuna: insomma, è sicuramente meno pratico anche se non per forza meno sicuro.
Conclusioni
Alla luce di quanto detto finora, un ragionamento è d’obbligo: perché una app costata almeno 50 milioni di dollari a Brian Acton è gratuita? Non dimentichiamo, inoltre, che una catena di sicurezza è forte quanto il suo anello più debole: se il generatore di numeri casuali diventasse prevedibile, potrebbe essere possibile compromettere le comunicazioni con futuri colleghi?
La risposta è potenzialmente sì, ma prima che avvenga Signal aggiungerà sicuramente ulteriori criteri di sicurezza.