Cos'è il replay attack contro Immuni di Report e perché non dobbiamo preoccuparci
Nella puntata di ieri 9 novembre 2020 di Report si è parlato di un Replay Attack contro i software di Contact Tracing, in particolare contro la app Immuni, il quale potrebbe segnalare come positivo una vittima.
Siccome la notizia ha destato un certo scalpore, per lo meno su Twitter, vorrei far luce sul problema e spiegare (spoiler) perché non dobbiamo preoccuparci più di tanto di questo problema.
Un piccolo riassunto su come funziona Immuni
Come oramai sanno anche i sassi, Immuni funziona scambiando delle chiavi temporanee con i dispositivi nelle vicinanze tramite la tecnologia Bluetooth. Queste chiavi sono memorizzate con la data e ora precisa del contatto all’interno del telefono, e periodicamente il dispositivo provvede a confrontare tali chiavi con quelle segnalate come “positive” dai server di immuni.
I dettagli sulla crittografia utilizzata nel processo sono irrilevanti. E’ soltanto importante sapere che tali chiavi sono scambiate in modo completamente anonimo, e non esiste un singolo dato in tutto il processo che sia riconducibile ad un dispositivo specifico, tant’è che anche l’indirizzo univoco delle radio Bluetooth non è utilizzato durante lo scambio ma è temporaneamente sostituito con uno casuale, che viene cambiato assieme alle chiavi.
Cos’è un replay attack
In crittografia un replay attack è un attacco alla sicurezza del sistema in cui un certo dato crittografato viene riutilizzato “alla cieca”, cioè senza conoscerne il contenuto, per alterare il funzionamento del sistema nel complesso.
Per fare un primo esempio, le tastiere wireless usano la crittografia per inviare i codici dei tasti premuti al computer; in un replay attack contro tali dispositivi, l’attaccante semplicemente ritrasmette gli stessi dati crittografati al computer, facendogli credere che l’utente abbia digitato gli stessi tasti.
Un altro tipo di replay attack, secondo esempio, viene effettuato con le chiavi radiofrequenza che usiamo per aprire le porte di garage ed automobili. Nel caso delle auto, qualcuno ha già sperimentato sulla propria pelle l’esito di tale attacco, per fortuna oramai limitato a modelli di auto particolarmente vecchi.
Il Replay attack contro Immuni
E’ noto da prima di maggio che il sistema di contact tracing usato da Immuni è vulnerabile a tale attacco, come ho spiegato in un mio articolo su Fanpage il 4 maggio scorso.
La sintesi è questa: è possibile ritrasmettere le chiavi trasmesse dal dispositivo di Alice anche a grande distanza, utilizzando una specie di “ponte” o “ripetitore” (in gergo relay), cioè il dispositivo di Bob; i dispositivi vicini (di Charlie, Dave ecc…) ricevono le chiavi trasmesse e le memorizzano con l’ora del momento. Se successivamente Alice risulta essere positiva e carica le proprie chiavi sul server di Immuni, anche Charlie e Dave risulteranno aver avuto un contatto stretto anche se, in realtà, stavano vicini a Bob, il Relay dell’attacco, magari a chilometri di distanza.
Qual è la debolezza dell’attacco portato in questo modo? Che non è possibile sapere in anticipo se Alice sarà positiva o no.
Pertanto alcuni ricercatori hanno ovviato al problema prendendo una scorciatoia, ossia spostando l’orologio dei dispositivi di Charlie e Dave all’indietro; se invece di inviare le chiavi di Alice oggi inviamo le chiavi di un positivo a quella data precisa, otterremo l’effetto voluto. I dispositivi di Charlie e Dave, non potendo sapere l’ora esatta, al successivo controllo vedranno le chiavi ricevute “nel passato” e dunque si segnaleranno come contatti a rischio.
E’ evidente che il meccanismo risolve il problema della positività di Alice ma ne introduce un altro, cioè la necessità di convincere Charlie e Dave, o i loro dispositivi, a spostare l’orologio alla data giusta. Cosa assolutamente possibile tramite social engineering, cioè sostanzialmente truffandoli, o con exploit tecnici.
Ma anziché convincere Charlie e Dave a spostare indietro la data del telefono, cosa complicata e che può destare alcuni sospetti, non sarebbe più semplice trovare una o più persone con sintomi e in attesa di tampone, captare le loro chiavi, trasmetterle via internet al relay Bob?
Conclusioni
L’attacco mostrato nel servizio di Report è sicuramente fattibile, e diversi ricercatori l’hanno documentato con articoli scientifici, si veda per esempio “On the Effectiveness of Time Travel to Inject COVID-19 Alerts” fresco fresco di pubblicazione.. Ma la vulnerabilità non è affatto nuova, anzi è nota da aprile, si veda “Analysis of DP3T”, sezione 4.4 “Replay attack”.
L’uso della “time machine” potrebbe essere risolta con quello che tecnicamente si chiama un clock monotonico – non mi addentro a spiegarne il meccanismo, molto tecnico - mentre viceversa il vero replay attack, senza “macchina del tempo”, è implicito nel sistema e non può in alcun modo essere risolto.
C’è da allarmarsi? Secondo me no. A ben vedere una minaccia ben più concreta è quella dell’eventuale mal-comportamento di un operatore sanitario che accetti di caricare le chiavi di un utente senza prima effettuare il tampone, al solo scopo di segnalare notifiche di contatti a rischio.
Dunque se non proprio una balla, quella di Report è una enorme esagerazione di cui credo, in questo periodo di incertezza, di sicuro potevamo fare a meno.