Successivo

Security

Come WhatsApp cifra i vostri messaggi

Michele Braga | 6 Aprile 2016

Internet Sicurezza Social

Sono passate solo poche ore dalla notizia che abbiamo pubblicato: WhatsApp ha annunciato che tutti i messaggi, fotografie, chiamate telefoniche e […]

Sono passate solo poche ore dalla notizia che abbiamo pubblicato: WhatsApp ha annunciato che tutti i messaggi, fotografie, chiamate telefoniche e video inviati utilizzando la propria piattaforma di messaggistica utilizzeranno una crittografia end to end, ovvero dal punto di origine fine al destinatario. L’annuncio riguarda tutte le piattaforme – iOS, Android, Windows Phone e altre – e permetterà  a oltre più di un miliardo di persone (questo è il numero stimato degli utenti WhatsApp sparso su tutto il globo) di comunicare senza la paura che i propri messaggi possano essere intercettati.

Rientrando nel perimetro del dibattito sulla sicurezza che si è sviluppato in seguito al braccio di ferro tra FBI e Apple, la decisione presa da WhatsApp mette la società  nella posizione di non essere in grado di soddisfare eventuali richieste governative in merito alle informazioni trasmesse dagli utenti della piattaforma, in quanto la stessa azienda non ha modo di accedere alle informazioni in quanto cifrate.

WhatsApp non è la prima app di messaggistica ad integrare sistemi di cifratura dei messaggi – forse Telegram vi dice qualcosa – ma il fatto che questa app sia utilizzata da più di un miliardo di utenti e che la stessa azienda rientri nel perimetro di Facebook sono senza dubbio elementi di grande portata e dimostrano anche come WhatsApp si muova con una certa libertà  rispetto alla società  madre Facebook.

La crittografia end to end di WhatsApp

All’interno di un white paper pubblicato dalla stessa società  il 4 aprile scorso sono indicate le modalità  con cui opera il sistema di crittografia end to end di WhatsApp.

Al momento dell’installazione dell’app sullo smartphone, il client WhatsApp trasmette al server una Identify Key pubblica, una Signed Pre Key pubblica e una lista di One-Time Pre Key. Il server archivia le chiavi ricevute senza mai accedervi.
Nel momento in cui si decide di comunicare con un altro utente, il client WhatsApp procede alla creazione di una sessione crittografata e una volta che questa è stata creata non è più necessario crearne una nuova con lo stesso utente a meno che il mittente non reinstalli di nuovo l’app o cambi lo smartphone con cui comunica.
Il client del mittente richiede e riceve dal server la Identify Key pubblica, la Signed Pre Key pubblica e una One-Time Pre Key del client destinatario (questa viene eliminata dal server dopo il suo utilizzo).
Il client WhatsApp del mittente genera quindi una coppia di chiavi effimere Curve25519 che servono a calcolare una chiave master secret che a sua volta è utilizzata per generare la Root Key e la Chain Key.
Contestualmente all’invio del primo messaggio al destinatario e fino al primo ricevimento (nel caso in cui il destinatario sia offline), il client WhatsApp di origine include nei messaggi la richiesta per instaurare una connessione sicura e le informazioni Che combinate con la propria chiave privata permettono di ricostruire la chiave master secret e le corrispondenti Root Key e Chain Key.
Una volta che la connessione sicura è stata stabilita i messaggi scambiati tra i due client sono cifrati con una Message Key che utilizza lo standard AES256 e lo standard HMAC-SHA256 (per l’autenticazione).
La Message Key cambia ad ogni messaggio scambiato e questo rende praticamente impossibile la forzatura del sistema di sicurezza da parte di un attacco esterno.

Se volete approfondire ulteriormente le modalità  con cui i client WhatsApp comunicano tra loro dopo l’ultimo aggiornamento potete leggere il white paper pubblicato dalla società  a questo indirizzo.