Contact Tracing & Privacy: come risolvere il Trilemma

Per un Italiano che vive a 10,000Km di distanza, non è piacevole assistere al conflitto interno tra stampa, cittadini, governo e imprenditori, causato dalla (giusta) scelta di utilizzare “Immuni” come app di Contact Tracing. Oltre 4 milioni di risultati per una semplice ricerca “Immuni Privacy” su Google suonano come un’immensa onda di energia diretta nella direzione sbagliata, come dimostra il comportamento mostrato in un numero infinito di occasioni precedenti (app di incontri, condivisioni di foto, consenso all’accesso ai dati per giochi su Facebook, ecc.).

Contact Tracing Trilemma — Luca Cosentino

Tralasciando il piccolo sfogo iniziale, ho deciso di scrivere questo post per descrivere la nuova tecnologia chiamata “privacy-preserving computation”: si tratta di tecniche matematiche, studiate da anni ma rese utilizzabili nella vita reale solo recentemente, che permettono a un’applicazione di utilizzare i dati degli utenti senza però “vedere” i dati stessi. Proviamo a vedere come funziona:

Il problema: “Contact Tracing Trilemma”

Forzando leggermente l’esempio, ci si pone il problema di come risolvere il ‘Contact Tracing Trilemma’, cioè il compromesso che le tecnologie correntemente utilizzate impongono: la maggior parte dei modelli proposti non permette di avere sia il tracciamento della posizione, sia la tutela della privacy, sia l’analisi dei dati in tempo reale, ma consente di ottenere due di questi elementi in contemporanea (al massimo).

Contact Tracing Trilemma — Luca Cosentino

Seguendo i modelli ‘tradizionali’ di gestione dei dati, garantire la privacy vorrebbe dire limitare fortemente la condivisione della posizione o l’analisi dei dati in tempo reale; tracciare la posizione e garantire la privacy senza permettere l’analisi dei dati in tempo reale, renderebbe vano qualunque progetto. Una soluzione parziale per garantire un buon compromesso tra privacy e funzionalità potrebbe essere quella di avere più app allo stesso tempo (per esempio, una app diversa per ogni Regione) al fine di diminuire il possesso dei dati di una sola applicazione: tuttavia, come rivela la ricerca svolta dall’Italiano Luca Ferretti del Big Data Institute dell’Università di Oxford, almeno il 60% di una certa popolazione deve utilizzare la stessa app, affinché si arrivi ad uno stato di “epidemic control”.

Decentralized Privacy-Preserving Computation

Alice vuole sapere l’età media di tutti gli studenti presenti al suo corso privato di matematica. Alice ha due possibilità: 1) chiedere l’età ad ogni studente o 2) chiamare Roberto, il quale, chiedendo l’età ad ogni studente, riferisce solamente la media ad Alice.

Caso 1) Alice conosce l’età di ogni studente

Caso 2) Roberto conosce l’età di ogni studente, Alice conosce solamente la media. Roberto promette di non rivelare i dati a nessuno.

In entrambi i casi, gli studenti devono fidarsi del fatto che Alice e/o Roberto non utilizzeranno i loro dati per altri scopi in futuro: sarà però estremamente difficile per uno studente verificare che il dato non sia stato rivelato, diciamo, 5 anni dopo.

Contact Tracing Trilemma — Luca Cosentino

La Decentralized Privacy-Preserving Computation permette di risolvere questo problema: i dati vengono inviati ad una serie di scatole nere interconnesse e programmate in maniera tale da eseguire calcoli sui dati che vengono inseriti al loro interno, senza mai rivelare i dati stessi a colui/colei che richiede il risultato: il ‘Cloud sicuro, privato, e distribuito (decentralizzato)’ creato da Oasis Labs, la startup presso la quale lavoro a San Francisco, è un esempio di questa tecnologia.

Riprendendo l’esempio precedente, gli studenti potrebbero indipendentemente inviare il loro dato (la loro età) alla piattaforma, avendo la garanzia che nessuno (nemmeno Oasis Labs) possa avere accesso al dato ma solo al risultato del calcolo.


Contact Tracing Trilemma — Luca Cosentino

Seppur non del tutto corretto, l’esempio mostrato spiega come avviene il calcolo sui dati privati, o Privacy Preserving Computation. Cosa vuol dire “Decentralized”?

Se nessuno ha accesso al dato, bisogna trovare un modo per verificare che il risultato ottenuto sia corretto e che comportamenti maligni vengano bloccati: attraverso la distribuzione/decentralizzazione, il meccanismo di verifica è reso altamente disponibile, in modo che nessun malintenzionato possa nascondere le sue azioni illecite. In sostanza, la distribuzione elimina la necessità di fidarsi di ogni singolo ‘validatore del calcolo’, garantendo la confidenzialità del dato e la corretta esecuzione del calcolo.

In termini leggermente più tecnici, le chiavi per decriptare i dati non sono in possesso di individui ma solo di algoritmi autorizzati dagli utenti stessi solo per il fine stabilito: in aggiunta, tutto quello che avviene sulla piattaforma viene registrato in un database indelebile.

Come questo potrebbe aiutare con la situazione attuale dovuta al COVID?

Se sostituiamo l’età dell’esempio riportato sopra con il dato che traccia la nostra posizione, è abbastanza intuitivo capire come questa tecnica permette di risolvere il Trilemma mostrato sopra:

sarebbe quindi possibile garantire la privacy senza sacrificare la geolocalizzazione e la possibilità di analizzare i dati in tempo reale. L’utente avrebbe il completo controllo del proprio dato, la possibilità di decidere a chi darne accesso e di verificare l’effettivo utilizzo.

In aggiunta, gli utenti potrebbero decidere di dare accesso selettivo ai propri dati (sempre mantenendo il dato nascosto) a Governo, ricercatori/ricercatrici, medici, ecc, i quali potrebbero utilizzare questi dati per creare modelli predittivi.

Entrando più in dettaglio, una possibile implementazione del modello sarebbe la seguente:

  • Quando Alice e Roberto si incontrano (in un certo raggio di distanza), i loro telefoni scambiano un ‘token’ tramite Bluetooth
  • Roberto va a testarsi in un ospedale e risulta positivo; un codice criptato ma univoco viene associato al risultato del test e inviato dall’ospedale a un server (in realtà i server sono due per non permettere a nessuno di riconoscere l’utente e associare lo stato dell’infezione)
  • Il telefono di Alice controlla se i token delle persone che ha incontrato esistono su questo server che contiene la lista dei token ‘infetti’
  • Trovando quindi il token di Roberto, il telefono di Alice avverte Alice stessa che potrebbe essere stata esposta al virus

Il sistema Epione, sviluppato attraverso una collaborazione tra l’Università di Berkeley, la National University di Singapore, e Oasis Labs, propone il modello appena descritto.

Un ulteriore vantaggio del modello Epione rispetto ad alcuni dei modelli esistenti è la prevenzione contro le dichiarazioni di falsi-positivi: un utente malintenzionato potrebbe infatti falsamente dichiarare di essere stato testato positivo. Ciò diffonderebbe false informazioni e spaventerebbe altri utenti e ridurrebbe la fiducia nel sistema.

Conclusione

Spero che questo post, per quanto pieno di inesattezze tecniche volute al fine di semplificare il messaggio, contribuirà all’evoluzione del prodotto . La speranza più grande è che la continua lotta tra le parti finisca nel migliore dei modi per favorire una ripartenza veloce e sostenibile.

Un grande in bocca al lupo a Bending Spoons, il vostro talento ed il vostro successo sono un bene prezioso per il nostro Paese.

Luca Cosentino
luca.cosentino@berkeley.edu

Contact Tracing Trilemma — Luca Cosentino