Sei sulla pagina 1di 3

“Cryptographic protocols for e2e messaging apps”

Christian Palumbo

Relazione sul seminario organizzato dal Dipartimento di Matematica


il 02/12/2022
La seguente relazione tratterà dell’intervento di Roberto Civino, ricercatore presso l’Uni-
versità degli Studi Dell’Aquila. L’argomento di discussione è stato la descrizione dei prin-
cipi di funzionamento e delle strategie di implementazione di alcuni protocolli crittografici
nell’ambito della messaggistica end to end (e2e).
Il relatore ha cominciato spiegando come, nel contesto della messaggistica, i messaggi non
vengano scambiati direttamente (peer-to-peer ) da un client all’altro – per esempio, fra due
smartphone – bensı̀ attraverso un server, ossia un sistema informatico centralizzato adibito
all’elaborazione e allo “smistamento” di enormi quantità di dati. Per chiari motivi di privacy,
è a questo punto auspicabile elaborare delle strategie per cifrare tali messaggi e, in tal modo,
proteggerli da attacchi informatici di terze parti.

Signal Protocol: esempio di protocollo crittografico


La crittografia consente di raggiungere tale scopo, garantendo la confidenzialità tipica della
sicurezza informatica. In particolare, è stato discusso Signal Protocol, che supera le limi-
tazioni del sistema di cifratura PGP (Pretty Good Privacy). Al contrario di PGP, infatti,
Signal Protocol offre una sicurezza a lungo termine, che assicura l’incompromettibilità di
conversazioni future a causa di altre già compresse, e la crittografia end-to-end, la quale
prevede che il server non riceva la chiave crittografica che consente di decrittare il messaggio
cifrato.
Civino esplora allora tre scenari di comunicazione messaggistica nella quale entra in gioco
la cifratura del testo. Le prime discutono procedure non ammesse, o migliorate, da Signal
Protocol, il cui funzionamento verrà approfondito nell’ultimo scenario.
1. Scenario A (comunicazione asincrona). In questo scenario, il relatore introduce
una strategia per ottenere l’asincronicità nello scambio di messaggi. Quando Alice
invia un messaggio a Bob e questi non l’ha ancora ricevuto, allora Bob usa delle chiavi
i
precaricate temporanee, che indicheremo con OTPkB (one-time pre-key). Tipicamente,
ne viene generato un bundle della grandezza di circa un centinaio di chiavi. La prima
1
chiave precaricata OTPkB , di cui è presente localmente una copia pubblica e una
privata, viene consumata da una chiave effimera EkA (ephemeral key) generata da
1
Alice. Il messaggio cifrato può essere indicato come k = DH(EkA , OTPkB ), dove ’DH’
sta per Diffie-Hellman. Questo richiede che il protocollo di cifratura abbia accesso ai
numeri di telefono coinvolti nella conversazione, fidandosi ciecamente della affidabilità
del server, il che non è in linea con le politiche di Signal.

1
2. Scenario B (verifica dell’identità). Civino ha poi discusso l’uso di una coppia di
chiavi aggiuntiva, dette chiavi di identità e indicate con Ik (identity key). Nell’inviare
il messaggio a Bob, Alice sottoporrà al server la verifica di una IkA e di una IkB .
Queste chiavi consentono al server di verificare che il messaggio sia effettivamente
stato inviato dal mittente e ricevuto dal destinatario. Ciò assicura una maggiore
integrità e autenticità del processo di messaging.
3. Scenario C (Signal: A + B). Lo scenario C combina A e B, stabilendo il protocollo
noto come Signal. Tale protocollo è basato su due algoritmi: eXtended Triple Diffie-
Hellman (X3DH) e Axolotl. Esso adotta l’approccio “don’t trust anybody” e incorpora
elementi come chiavi precaricate temporanee (OTPk i ), chiavi di identità (Ik) e chiavi
precaricate firmate (SPk i , signed pre-key), in modo da garantire piena confidenzialità
e sicurezza a lungo termine. Al momento dell’invio del messaggio, Alice possiede la
sua chiave di identità IkA (lifetime) mentre Bob possiede una chiave di identità IkB
1 1
(lifetime) e due chiavi precaricate OTPkB , SPkB (che durano una settimana o un
mese).
Quando Alice riceve le tre chiavi di Bob, genera una chiave effimera EkA che si lega a
quelle di Bob e a sua volta genera quattro messaggi segreti:
1
DH1 = DH(EkA , IkB ), DH2 = DH(EkA , SPkB ),
1 1
DH3 = DH(EkA , OTPkB ), DH4 = DH(IkA , SPkB ).

Il tutto si sintetizza in un segreto condiviso SHA1 = (DH1 || DH2 || DH3 || DH4 ).


Civino ha spiegato che Axolotl aggiorna il segreto condiviso SHA1 attraverso un co-
siddetto symmetric ratchet, o “cricchetto simmetrico”. Questo genera una chiave di
uscita casuale (random output key) a partire dal dal segreto condiviso, utilizzando
un’apposita key derivation function (KDF), dunque sostituisce il precedente segreto
condiviso con uno nuovo. Vengono pertanto create due catene di chiavi:
• la sending chain di Alice (ossia la receiving chain di Bob);
• la receiving chain di Alice (ossia la sending chain di Bob).
Le chiavi di invio vengono calcolate in base alle chiavi effimere ricevute, garantendo
una comunicazione sicura tra le parti. Per esempio, se il messaggio di risposta di
1 1
Bob fornisce la chiave PkB e Alice, a sua volta in risposta, fornisce la chiave PkA , la
prima sending key di Alice (o, equivalentemente, receiving key di Bob) si calcola come
1 1
S1 = R1 = DH(PkA , PkB ), e cosı̀ via.

Dimostrazione pratica
La presentazione ha incluso anche una dimostrazione al calcolatore di come un analista
forense potrebbe ricostruire una conversazione da un dispositivo Android con permessi di
root. Nello specifico, sono state esaminate diverse chiavi relative a messaggi di stato e
di rete, nonché all’identità del mittente. Il procedimento ha coinvolto l’analisi dei file di
backup generati dall’app di messaggistica WhatsApp (db.crypt) e dei corrispondenti file di
encrypting. L’esperimento è stato effettuato su un dispositivo Android in quanto iOS, in
particolare, gode di un’architettura differente e non è possibile accedere ai file di cifratura
a partire dalla sola scheda SIM.

2
Conclusioni
In conclusione, la presentazione di Civino ha fornito una panoramica esaustiva dei principi e
delle strategie di implementazione dei protocolli crittografici nella messaggistica end-to-end.
Il protocollo Signal, con la sua attenzione alla riservatezza, è stato presentato e descritto
come soluzione efficace per garantire agli utenti finali una messaggistica sicura. La dimostra-
zione dell’analisi forense è servita a ricordare l’importanza della crittografia nella protezione
della privacy degli utenti stessi e nel mantenimento dell’integrità della messaggistica.
Sulla base degli spunti emersi dalla presentazione, risulta dunque raccomandabile alle or-
ganizzazioni coinvolte nei servizi di messaggistica l’adozione di protocolli crittografici quali
Signal Protocol per assicurare confidenzialità e autenticità. Inoltre, la conduzione di re-
golari controlli di sicurezza e l’aggiornamento sui progressi delle tecnologie di crittografia
contribuiscono di certo a mantenere un ambiente di messaggistica robusto e sicuro.

Potrebbero piacerti anche