Blog.

Privacy Preserving Tracing App: cosa significa davvero?


Autore
Andrea Provino
Data
Tempo di lettura
5 minuti
Categoria
AI, Privacy Preserving

privacy-preserving-tracking-app-immuni-italia-bending-spoons-guida-italia-machine-learning-data-science-blog

La privacy è un fattore cruciale da tenere a mente nello sviluppo di nuovi sistemi e applicazioni.

In questi giorni di alta preoccupazione, conosciamo più tecnicamente gli approcci che possono, e devono, essere impiegati.

A differenza di altri post che puoi trovare in rete, questo è altamente tecnico e denso di contenuto: non demoralizzarti se alcuni concetti ti paiono astrusi. Significa che stai imparando!

Privacy Preserving Tracing App

Fermati un attimo!

Privacy?

Cosa ci interessa?

Il nostro è un blog di Machine Learning e Data Science, quindi perché occuparci di Privacy?

Sappiamo molto bene che per diventare dei bravi data scientist abbiamo bisogno di saper maneggiare i dati in ogni forma.

Per padroneggiare il machine learning servono poi parecchi dati.

Insomma, non intendo essere ripetitivo anche se siamo tremendamente ossessionati dai… dati!.

Wait a second…

Come possiamo aspettarci che la gente di fornisca dati, personali o meno, senza sufficienti garanzie che questi non vengano venduti in Congo per un cesto di cocco.

Ovviamente non sono un mercante di frutti esotici, quindi i miei consigli sul cocco congolese potrebbero risultate inaffidabili.

Inoltre penso che qualche startup della silicon valley sia più propensa ad acquistare quei dati rispetto a un mercante dell’Africa centrale.

Che ne dici? Torniamo sulla strada maestra? Così ti voglio!

Dicevamo?

Ah sì, cosa significa concretamente garantire la privacy in un app o sito web!

Private Set Intersection

Il primo sistema che vediamo per garantire davvero la privacy nei nostri amati utenti è chiamato Private Set Intersection.

Per Private Set Intersection intendiamo una potente tecnica di crittografia che permette a due parti di comparare reciprocamente dati senza esporli a occhi terzi, che magari consideriamo particolarmente indiscreti.

In uno scenario come quello descritto, più che mai attuale, un simile metodo deve essere impiegato in qualsiasi Privacy Preserving Tracing App.

Ok, e a me non sembra che sia molto chiaro…

Benissimo, facciamo un esempio.

Prendiamo due parti:

  • Un data store centralizzato (i.e. Gestito in un solo punto) contenete le posizioni che i pazienti infetti hanno visitato prima del loro isolamento
  • Una moltitudine di smartphone, contenenti le informazioni individuali sulla posizione dei proprietari.

Per determinare quali individui abbiano visitato una zona rossa, precedentemente contaminata da uno o più infetti, deve esserci un confronto tra le due sorgenti dati (data source).

La tecnica di Private Set Intersection corre in nostro soccorso consentendo ai due gruppi di determinare se siano presenti eventuali posizioni comuni tra loro.

Poni attenzione a questo particolare che ti sto per svelare.

La tecnica di Private Set Intersection impedisce al data store centralizzato (facilmente attaccabile da malintenzionati, specie se gestito in Italia – Historia magistra vitae) di accedere ai dati sui singoli device, e ai dispositivi di fare lo stesso sul server.

Il risultato? Una meraviglia!

Abbiamo tra le mani una Privacy Preserving Tracing App che non ha bisogno di condividere pubblicamente i dati sulla posizione e tanto meno inviare i log GPS (l’insieme cioè delle coordinate e del timestamp, vale a dire l’orario preciso al millisecondo della registrazione) a un data center centralizzato per la memorizzazione.

In questo modo impediamo la creazione di uno scrigno d’informazioni d’identificazione personale a tutto vantaggio dei cittadini e della pubblica amministrazione.

Benissimo.

Quindi, che facciamo?

Noi cari Italiani parliamo, e tanto.

Ora, come hai capito questo blog non si limita a discussioni superflue: condivide con te risorse e contenuti densi d’informazione.

Pertanto ho deciso di condividere con te una raccolta di risorse che potrebbero tornare utili a noi sviluppatori.

Open Mined, una community di oltre 7,300 brillanti menti, sta sviluppando librerie Open Source che gestiscano Private Set Intersection con diversi backend operativi;

  • Phone: Android, iOS, e mobile browser
  • Server: Python e JavaScript

Ecco una serie di Repository GitHub utili a riguardo.

Private Identity

Stiamo usando termini complessi?

Ok, semplifichiamo un po’.

Il concetto di Private Identity riguarda come connetti e condividi i tuoi dati con le applicazioni di Privacy Preserving Tracing App che intendi usare, senza compromettere la tua privacy!

Il progetto Private Identity si pone come obiettivo quello di conferire agli utenti l’abilità di dimostrare la loro identità agli altri senza compromettere la propria privacy.

Un’implementazione efficace di questo sistema avrebbe effetti sia sul breve che nel lungo periodo.

Vediamo insieme come.

  • Breve Termine: possiamo provare di essere idonei per certe mansioni e luoghi ad accesso limitato, dimostrando la nostra identità in modo sicuro alle autorità sanitarie.
  • Lungo Termine: dimostrare di rispettare determinati requisiti, quali l’esser stato in quarantena per un numero valido di giorni; di essere a basso rischio d’infezione, ergo per cui non costituisci pericolo per la comunità; di essere positivo a specifici anticopri (hai auto l’infezione e ne sei guarito).

Il progetto Private Identity ha quindi lo scopo di garantire la condivisione, nonché la validità, dei dati personali senza compromettere la privacy individuale dei dati non sensibili essenziali.

Il progetto Private Identity è bipartito: una prima parte di Data integration e una seconda di Self Sovereign Identity.

Data Integration

Questo flusso di lavoro focalizza l’attenzione sul garantire la massima flessibilità e comodità nell’interfacciarsi con le origini dati (data source).

Il fulcro è consentire agli utenti di sfruttare servizi già in uso per l’autenticazione.

Social Media accounts, bank accounts, biometric information, sono tutti esempi di sistemi impiegabili per evitare frodi e allo stesso tempo garantire facile accesso ai servizi.

Self Sovereign Identity

Questo secondo flusso di lavoro adempie allo sviluppo di tecnologie per permettere agli utenti di generare prove, definite credential che validino specifici aspetti della loro identità, verificati da qualcun altro.

Puoi pensare alla credential come a una firma.

Vai dal dottore affinché firmi un documento che attesti qualche fatto sulla tua salute.

Il problema? Una firma può essere facilmente falsificata ed è difficile da verificare.

Al contrario una credential è una firma crittografica (cryptographic signature) impossibile da falsificare e facilmente validabile.

Tutto questo in un app!

Come sempre, ecco i nostri spunti per passare dal teorico al pratico in un baleno, le Github Repositories:

Differential Privacy

Il terzo asso nella nostra manica. Un risorsa formidabile, e un campo di studi ancora tutto da esplorare.

Abbiamo ampiamente descritto in un post separato cosa sia la Differential Privacy e perché possa essere disruptive.

Intendi leggerlo?

Ecco a te! Fanne buon uso, mi raccomando: è un arma potente.

Articolo Originale

Un caldo abbraccio, Andrea.

Taggeddatasetmachine learningprivacyteoriaweb development


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum