L’app Immuni dirà la data esatta in cui l’utente è stato esposto a un rischio contagio coronavirus. E’ quanto risulta dall’attuale versione del codice, dopo l’ultima correzione fatta da Bending Spoons. E questo può esporre a rischi che francamente potevamo evitare. Avevamo accennato già a questo rischio, per primi, in un precedente articolo, ma la novità è che in seguito Bending Spoon ha modificato il codice persino in peggio.
La data esatta di esposizione al virus nel codice dell’app Immuni
Di preciso è comparsa la variabile lastExposureDate che indica la data esatta di esposizione.
Improvvisamente, quindi, a causa di questa banalissima notifica, Immuni prende la peggiore delle pieghe possibili (un sistema centralizzato ben protetto, avrebbe avuto un impatto minore sui diritti delle persone). A questo punto non è più un problema di sicurezza, di anonimato, di crittografia, di reverse engineering.
Siamo al più banale dei paradossi: qui ci va di mezzo la più semplice e odiosa delle conseguenze, quella che coinvolge la gente, quella che potrebbe realmente consentire un (ulteriore e definitivo) allontanamento da parte della popolazione.
Siamo veramente desolati di dover fare questo tipo di considerazione, ma ci tocca rimanere obiettivi di fronte alle informazioni che troviamo.
Il via libera del Garante Privacy
Lo stesso Garante della Privacy, oggi ha dato parere positivo ad Immuni. E in un passaggio del provvedimento odierno, spiega che “se tale indice di rischio supera una soglia predefinita, l’app mostra all’utente un messaggio di allerta sulla possibile esposizione al contagio (c.d. notifica di esposizione), per essere stato un contatto stretto di un soggetto accertato positivo al Covid-19 (Il giorno TOT sei stato vicino a un caso COVID-19 positivo)”. Cita espressamente “Il giorno TOT”.
Siamo, onestamente, sorpresi. Eppure dichiara: “Particolare attenzione dovrà essere dedicata all’informativa e al messaggio di allerta”.
E, come se non bastasse, l’Autorità ha chiesto che gli utenti siano informati adeguatamente in ordine al funzionamento dell’algoritmo di calcolo utilizzato per la valutazione del rischio di esposizione al contagio. Ciò significa che l’utente dovrà essere informato dei parametri che rendono l’esposizione “rischiosa”: tempo e distanza (intensità del segnale per la precisione).
L’indice di rischio
Secondo il protocollo Apple-Google, utilizzato da Immuni, ogni Paese può, infatti, decidere quale tempo di esposizione e quale distanza massima considerare “a rischio”.
Per esempio, Immuni (almeno nella versione mostrata in questi giorni) considererà “rischiosa” di default una esposizione minima di 15 minuti (con un peso di 3 in una scala di valori che va da 1 a 8, peso che aumenta a 5 superati i 20 minuti e a 7 per esposizioni che vanno oltre i 30 minuti).
Questo ulteriore elemento, di cui l’utente deve essere “bene informato”, peggiora ulteriormente la situazione: “quale persona ho incontrato lunedì scorso per quindici minuti? Non può che essere lui!”.
Ci chiediamo, infine, quale sia l’utilità di mostrare all’utente la data del possibile contagio.
In conclusione
Il sistema di Apple-Google era stato pensato per dare la possibilità ai governi di stabilire i parametri di esposizione, proprio al fine di poter comunicare all’utente solo “Hai avuto un contatto rischioso, vai a fare un test”. La valutazione dell’utente, sul “quando” questo è avvenuto appare superflua e, davvero non porta alcun beneficio.
Abbiamo aperto una issue sul repository di github, chiedendo quale sia la funzionalità di questa informazione. Vi aggiorneremo.
La scoperta precedente sullo scivolone privacy dell’app
Avevamo già segnalato un grave errore che avrebbe, in un solo colpo, fatto perdere al sistema quell’aura di inattaccabilità propria del protocollo Apple-Google.
Durante l’analisi del sorgente avevamo infatti trovato una notifica non conforme all’importantissimo principio secondo cui Immuni avrebbe dovuto consentire il più totale anonimato.
Il rispetto di questo presupposto sarebbe dovuto avvenire non solo a livello di server, cloud e tecniche di trasmissione e crittografia, ma anche e soprattutto a livello locale e sociale, facendo in modo che non vi fosse alcuna possibilità per il cittadino “notificato” di risalire al cittadino “notificante”.
Eppure, analizzando il codice, ci eravamo imbattuti in un errore. Si trattava proprio una questione tecnica.
Sostanzialmente la notifica interna all’app, indicava il numero di giorni trascorsi dall’incontro con il possibile infetto, qualcosa di simile a: “Immuni ha rilevato che DUE GIORNI FA hai avuto un contatto con un utente positivo al covid-19”.
Avevamo tuttavia notato che la stringa di testo, non includeva la variabile “numero_di_giorni”, ma si limitava a riprodurre testualmente “due giorni”. Si trattava quindi di un evidente mancanza visto che, con quel codice, l’app non avrebbe mai potuto mostrare un avviso diverso da quello (per esempio 4 o 5 giorni). In un senso o nell’altro quell’errore sarebbe stato quindi sistemato e, vista la grande attenzione alla privacy, posta da tutti, cittadini, esperti, governi e grandi multinazionali, eravamo sicuri che questo sarebbe stato modificato.
Infatti, seppur ci si trovasse in presenza di ID realmente anonimi, mandati e raccolti dai sistemi operativi via bluetooth, e inviati al server dall’app in modo che non vi fosse alcuna possibilità di risalire allo smartphone che li aveva generati, e pur ammesso che il Regolamento UE 2016/679 non si applichi a sistemi che non consentano l’identificazione della persona, avevamo indicato questa informazione come la buccia di banana che, a pochi metri dal traguardo, avrebbe rimesso tutto in gioco.
Questa “informazione” sul numero di giorni intercorrenti tra il momento della notifica e il contatto avuto con l’infetto, comportavano, in sostanza, la possibilità remota di risalire, all’identità dell’infetto.
Qualcosa del genere: “Se tre giorni fa ho incontrato, in modo intenso (di questa intensità parleremo a breve) solo due persone, a meno che io non sia stato in metropolitana o in fila alle poste, potrei essere praticamente sicuro di restringere il campo dei presunti infetti a quei due che ho incontrato”.
Ciò avrebbe innescato una gravissima e indesiderata caccia alle streghe e, seppur non vi sia alcuna certezza sull’identità, seppure serva una buona memoria e seppure non vi sia alcun codice identificativo, né alcuna informazione strutturata, ci troveremmo di fronte ad una violazione sostanziale del diritto alla riservatezza.
Sapevamo comunque che questa stringa conteneva un errore. Ipotizzavamo quindi un “work in progress”, convinti che Immuni non avrebbe mai potuto abbandonare ogni sforzo fatto da Apple e Google per realizzare un sistema a prova di hacker, cadendo poi nell’errore di dare la possibilità a chi riceve la notifica di risalire al contatto positivo.
Ebbene, l’errore è stato corretto. Ma in peggio.