Home Articoli in evidenza Blockchain e identità digitale

Blockchain e identità digitale

5395
0
La Blockchain al servizio dell'identità digitale per garantire privacy e diritti del cittadino

La Blockchain al servizio dell’identità digitale per garantire privacy e diritti del cittadino

Buongiorno a tutti, grazie per l’invito, in particolare ringrazio il Sottosegretario di Stato al Ministero della Difesa, Angelo Tofalo per avermi invitato. E’ un piacere essere qui a discutere tecnologie che possono cambiare le nostre vite come cittadini, possono migliorarle.

Io sono Federico Squartini e sono il CTO di SpidChain. Ci stiamo occupando di sviluppare un sistema di identità digitale di nuova generazione.

Oggi cercherò di farvi vedere come la blockchain può aprire nuove strade per sistemi di identità che ci offrano più garanzie come cittadini.

Prima di parlare di identità vorrei inquadrare il problema da un punto di vista tecnologico, perché il dottor Russo ha già fatto una carrellata della blockchain e ci ha spiegato come funziona la tecnologia, e ha anche parlato della contrapposizione tra sistemi centralizzati e sistemi decentralizzati.

Io vorrei elaborare su questo punto perché è particolarmente importante da capire per comprendere come si può innovare il sistema di identità digitale.

SISTEMI DI RETE

tipi-di-sistemi-di-rete

Quando si parla di sistemi di rete ci sono tre grosse tipologie.

La prima sono i sistami centralizzati come google, facebook, paypall. Sono sistemi in cui i server e quindi le informazioni sono gestite da un solo player.

Un passo verso la decentralizzazione sono i sistemi distribuiti o federati. Il ché significa che non c’è un solo erogatore di servizi ma una federazione e l’utente può decidere da quale provider rifornirsi. Il caso tipico è l’e-mail. Ad esempio, per aprire un account e-mail è possibile utilizzare Yahoo, Gmail, Hotmail o altri.

In fine il sistema più decentralizzato di tutti è il Peer to Peer (P2P) dove non c’è un provider di servizi ma l’utente stesso è sia fruitore che erogatore del servizio, quindi una rete di pari.

DIFFERENZE TRA SISTEMI DI RETE

Cosa cambia in termini di vantaggi e svantaggi per chi utilizza questi sistemi?

SISTEMI CENTRALIZZATI

Il principale vantaggio dei sistemi centralizzati è che sono molto performanti, sono in genere molto veloci perché sono tecnologie che conosciamo molto bene e possono essere ottimizzati.

Gli svantaggi sono ad esempio che l’utente non ha controllo sull’informazione che gli viene fornita. Tutto è deciso da chi gestisce il sistema centralizzato.

Sono potenzialmente soggetti ad attacchi, sia di furto di dati e anche attacchi di tipo denial-of-service.

SISTEMI DISTRIBUITI

 

I sistemi distribuiti danno un po’ più di potere all’utente perché nel caso l’utente non sia soddisfatto da come uno dei provider fornisce il servizio, può utilizzarne un altro, tuttavia sono sempre soggetti alla possibilità di attacchi hacker.

Fondamentalmente sono sempre dei grossi depositi che contengono quantità di dati enormi e se uno di questi viene attaccato il potenziale di perdita di dati è grande.

SISTEMI DECENTRALIZZATI

I sistemi decentralizzati hanno un grosso vantaggio e un grosso svantaggio.

Il vantaggio è che l’utente ha un potere enorme sui dati che sta trasferendo, non deve chiedere conto a nessuno di quello che vuole fare.

Lo svantaggio è che le tecnologie sono molto più complicate ed in genere meno performanti.

Il dottor Russo ha detto che il numero di transazioni al secondo sulla rete di bitcoin è attualmente non molto elevato. Questo è un limite della tecnologia di bitcoin attuale e deriva dal fatto che il sistema è decentralizzato.

Esempi di sistemi decentralizzati sono torrent per il file sharing e bitcoin che ha un sistema decentralizzato per lo scambio di valore.

Ora vi mostrerò come potenzialmente è possibile ottenere dei sistemi decentralizzati per la generazione di identità digitali, quindi un’identità digitale P2P.

IDENTITA’

Il presidente Roberto Fico ha detto che tematiche come la blockchain vanno a toccare temi che sono al cuore di quello che vuol dire essere cittadino e dei nostri diritti, l’identità è sicuramente uno di questi temi.

GLI ELEMENTI DI UN’IDENTITA’

Quali sono gli elementi di un’identità, quelli che vogliamo ricreare, che qualunque sistema tecnologico cerchiamo di sviluppare deve avere.

image credit: Federico Squartini www.spidchain.com

Questa è la carta di identità digitale italiana e ci sono 4 componenti fondamentali:

1- L’indentificativo unico in alto a destra, che identifica l’utente in maniera univoca ovunque. Un numero molto lungo, una grande stringa;

2- Una prova di possesso. Ogni sistema di identità deve avere una metodologia che permette al legittimo proprietario dell’identità, di provare agli altri che lui è effettivamente il proprietario.

In questo caso la prova di possesso è data dalla fotografia. Se la fotografia coincide con la persona che vi sta fornendo il documento di identità, voi sapete che quella persona è il legittimo proprietario dell’identità.

L’identificativo unico e la prova che noi siamo possessori legittimi di quell’identificativo, sono caratteristiche duali.

Avere solamente un identificativo non serve a molto, ci sono dei dati attaccati all’identità. Nel caso della carta di identità, questi sono dati anagrafici: dove sono nato, quanti anni ho e così via.

3- In fine c’è bisogno di una certificazione.
Un ente di cui ci fidiamo deve attestare che questi dati corrispondano al vero.

In questo caso l’ente è lo Stato italiano che ha fatto una procedura di know your customer: ha verificato con tutta una serie di procedure che quella persona è veramente nata in quel posto, quel giorno e così via.

DALL’IDENTITA’ SU CARTA ALL’IDENTITA’ DIGITALE

Adesso passiamo dall’identità su carta all’identità digitale, quella che noi utilizziamo quando navigando su internet dobbiamo usufruire di servizi.

Qui vi farò vedere come ci spostiamo attraverso i sistemi centralizzati, federati e distribuiti.

IDENTITA’ DIGITALE CON SISTEMI CENTRALIZZATI

L’identità con user name e password è un esempio di sistema centralizzato. Ogni sito che utilizza username e password sta ricreando l’identità da zero. Con questo tipo di sistema, l’utente deve ricreare ogni volta la propria identità per ogni sito web, in questo caso l’identificativo unico è lo user name e la prova di possesso è data dalla password. Tramite la password conferma di essere il legittimo proprietario dello user name inserito.

Quali sono gli svantaggi di questo sistema?

1 – Non riutilizzabile. Più in generale, non c’è portabilità. Per ogni sito presso cui ci si iscrive, è necessario ripetere la procedura di riconoscimento, quindi ridare i vostri dati.

C’è un single point of failure perché il sito presso cui vi iscrivete possiede tutti i vostri dati e ci sono tutta una serie di falle di sicurezza.

Un problema più tosto grave attualmente è il proliferare delle password.
Per il fatto che si debba creare un’identità presso ogni sito, si tenderà automaticamente, se si è molto scrupolosi, a utilizzare credenziali simili. Quindi se un Hacker riesce ad acquisire una vostra user name e password presso un dato sito internet che ha una falla di sicurezza, probabilmente molti altri siti dove voi avete account verranno compromessi simultaneamente. Un bel problema.

IDENTITA’ DIGITALE CON I SOCIAL LOGIN

social-login-identità-digitale-blockchain-intelligence-collettiva-

Un passo avanti sono i social login.

I social login sono un esempio di sistema federato come l’e-mail. Avrete utilizzato “login with facebook, twitter o google”; questi sistemi risolvono dei problemi ma ne creano degli altri.

Non c’è più bisogno di creare un’identità per ogni sito internet su cui ci si registra, ma introducono un problema enorme, che è la privacy.

In questo caso voi state delegando la vostra identità a un terzo, cioè una terza persona che ogni volta che dovete registrarvi su un sito web, viene e porta le credenziali per voi. Questa persona letteralmente possiede la vostra identità. Quindi c’è un problema di privacy e di controllo di identità enorme.

In particolare, qualunque sito voi visitate è tracciato da chi vi sta fornendo l’identità.

Poi c’è una mancanza di flessibilità, potete fare con l’identità solo quello che questi servizi vi permettono di fare.

Nel caso dei social login c’è un problema di assenza di know your customer. E’ vero, questi servizi forniscono dati sulla vostra identità a terzi, ma questi dati non sono certificati in nessun modo e sappiamo che la maggior parte delle identità sui social, molte o comunque una grossa percentuale, sono identità fasulle.

Non sono interoperabili. Se io ho un account con twitter non posso portare i miei dati su facebook. C’è un grosso problema anche di controllo della propria identità e ci sono dei single point of failure: questi servizi di identità digitale sono degli enormi depositi di dati personali che se hackerati o bucati permettono il furto dei nostri dati.

Quelli appena descritti non sono solo problemi teorici, ma sono problemi molto concreti. A febbraio del 2018 ad esempio, Uber ha rilasciato un comunicato dove ha detto che i suoi server erano stati hackerati e che le identità di 57 milioni di utenti erano state rubate.

IL SISTEMA PUBBLICO PER L’IDENTITA’ DIGITALE

11:15 Il sistema pubblico per l’identità digitale (SPID) è il sistema che lo Stato fornisce per accedere a tutti i servizi della pubblica amministrazione.

E’ anch’esso un sistema di identità federata come i social login, perché è possibile usufruire di spid attraverso differenti provider ( Infocert ID, Poste ID, etc…), migliora rispetto ai social login perché i dati forniti da speed hanno un know your customer e sono dati certificati dal provider di servizi che fa un’intervista e verifica che quei dati siano reali.

Tuttavia sono solamente dati anagrafici ed è sempre un deposito di informazioni con tracciamento.

L’identità P2P (1st gen): PGP

image credit: Federico Squartini www.spidchain.com

L’identità P2P è un concetto che esiste già dal 1990.

Il PGP (Pretty Good Privacy) è stato un algoritmo rivoluzionario all’epoca, perché ha introdotto il concetto di identità basata su chiave criptografica.

Tutti noi potevamo generare una chiave criptografica e utilizzarla per identificarci soprattutto nei sistemi di email.

PGP però era molto complicato da utilizzare, non era molto flessibile, il tipo di dati che potevamo certificare con PGP erano  solamente nomi, email, la nostra foto e poco altro perché era orientata all’e-mail.

C’era un problema grosso di revoca delle chiavi che poi vedremo meglio, ma ha popolarizzato un concetto geniale che era la web of trust.

web-of-trust-blockchain-pgp-p2p
image credit: Federico Squartini www.spidchain.com

La web of trust è un concetto che estende le procedure di know your customer. Noi normalmente quando pensiamo alla know your customer pensiamo ad un ente che certifichi i nostri dati. Ad esempio lo stato Italiano certifica i nostri dati anagrafici.

PGP risponde a questa domanda: perché deve esserci un solo ente e non un sistema dove qualunque membro della rete può rilasciare certificazioni su qualunque altro membro?

A quel punto lo Stato italiano, la banca “x”, o la motorizzazione sono semplicemente nodi in una rete che rilasciano 13:46 certificazioni.

Viceversa anche un datore di lavoro può rilasciare una certificazione sul fatto che un suo impiegato ha lavorato bene e quindi rilascia in questo caso una certificazione che ha un valore per qualcuno.

E’ una rete di certificatori.

IDENTITA’ AUTOSOVRANA

Passiamo in fine alla Identità digitale distribuita 2.0 che è un concetto anche noto come identità auto-sovrana (self-sovereign).

Autosovrana perché l’utente è il solo sovrano della propria identità. Non c’è nessuno che fa da proxy tra noi e la nostra identità.

14:24 E’ un concetto che è stato introdotto da Cristopher Allen che è un computer scientist estremamente importante con cui noi stiamo collaborando, che è il creatore di https e TLS che sono gli standard per la sicurezza sulla rete. Un paladino di questo nuovo paradigma per l’identità.

I PRINCIPI DELL’IDENTITA’ AUTO-SOVRANA

image credit: Federico Squartini www.spidchain.com

Ci sono 10 principi dell’identità auto-sovrana.

1) L’esistenza. L’identità auto-sovrana è un proxy di un qualcosa di fisico, di un’identità reale che esiste dietro.

2) Il controllo. Gli utenti devono poter controllare la propria identità. Ovvero se io voglio creare la mia identità non devo andare da facebook e aprire un account sulla piattaforma, devo avere una modalità indipendente che mi permetta di creare la mia identità e di revocarla se necessario senza dover chiedere il permesso a nessuno. Questo si può fare solo con sistemi distribuiti P2P.

3) L’accesso. Gli utenti devono avere accesso ai propri dati. Anche qui, non ci deve essere nessun intermediario tra me e i miei dati, affermazioni sulla mia persona devono sempre passare attraverso il mio consenso, non ci deve essere un gatekeeper, qualcuno che si frappone fra me ed i miei dati.

4) La trasparenza. Questo è un problema tecnologico. I sistemi di algoritmo ovviamente devono essere trasparenti: algoritmi noti, )sistemi open source, nessuna scatola nera.

5) La persistenza. Questo è un problema molto interessante. Un sistema efficiente di identità digitale deve permetterci di avere identità estremamente longeve, potenzialmente quanto la durata della nostra vita.

Adesso questo probabilmente è un problema che noi  non ci poniamo nella nostra vita quotidiana perché viviamo in uno Stato solido e stabile, ma ci sono Stati dove a seguito di una guerra civile le persone perdono le proprie identità, la possibilità di esibire anche un semplice documento che attesti unicovamente dove sono nati.

Un sistema di identità elettronica digitale deve porsi il problema di permette una longevità enorme dei dati.  Viceversa deve anche permettere di renderli molto poco longevi se l’utente vuole  perché c’è il “right to be forgotten”16:39 se l’utente vuole cancellare la propria identità deve poterlo fare, quindi la persistenza.

image credit: Federico Squartini www.spidchain.com

In fine ci sono altre 2 caratteristiche che sono connesse:

6) 7) Portabilità e interoperabilità. I sistemi di identità digitale auto-sovrani devono permettere lo spostamento dei dati da un sistema all’altro in maniera semplice ed i vari sistemi di identità autosovrana devono essere interoperabili il più possibile, quindi ci deve essere un protocollo condiviso che tutti questi sistemi utilizzano.

8) Il consenso. Ogni volta che dei dati sulla mia identità vengono manipolati il sistema elettronico deve mettermi a conoscenza di questo fatto e deve sempre chiedermi il consenso all’utilizzo. Anche semplicemente per la creazione di un’affermazione  di un dato che mi riguarda, io devo poter dare il consenso all’affermazione.

Questo diciamo rientra nel problema dei sistemi di reputazione che sono dei sistemi molto complicati da strutturare. In generale un buon approccio è un sistema di reputazione per evitare problemi come le calunnie. Ogni claim che entra nel sistema deve essere sempre accettato dall’utente a cui quel claim si riferisce.

9) La minimizzazione. Il sistema di identità auto-sovrana deve essere in grado di fornire il minimo di dati possibile. Se un sito mi sta chiedendo se sono maggiorenne, io devo fornire la prova che sono maggiorenne. Non devo avere la necessità di inserire la mia 18:05 data di nascita precisa. Se il sito mi chiede l’anno in cui sono nato, io devo avere la possibilità di scrivere solamente l’anno, non c’è bisogno che io inserisca il mese e il giorno.

Quindi questo va nella direzione di fornire una privacy enorme agli utenti cosa che invece sfortunatamente spesso non si verifica.

10) La protezione. I diritti degli utenti devono essere protetti quindi l’utente deve sempre avere la possibilità di  accedere alla propria identità e questo si può  realizzare solamente con sistemi che siano resilienti agli attacchi, idealmente sistemi peer to peer.

image credit: Federico Squartini www.spidchain.com

Noi stiamo sviluppando un sistema di identità auto-sovrana che utilizza la blockchain di bitcoin per la creazione delle identità. Cosa ha a che vedere la blockchain di bitcoin o quella di una criptovaluta in generale con l’identità digitale? 18:55 In generale c’è un problema molto simile che le identità e le valute hanno.

 

Nelle valute, abbiamo visto nella presentazione precedente, c’è il problema del duble spending, non dobbiamo essere in grado di spendere la stessa moneta due volte e pagare due persone con la stessa moneta. Nell’identità non dobbiamo essere in grado di duplicare la nostra identità.

 

 

image credit: Federico Squartini www.spidchain.com

Nelle valute, abbiamo visto nella presentazione precedente, c’è il problema del duble spending, non dobbiamo essere in grado di spendere la stessa moneta due volte e pagare due persone con la stessa moneta. Nell’identità non dobbiamo essere in grado di duplicare la nostra identità.

image credit: Federico Squartini www.spidchain.com

Quest’ultimo è un problema lievemente differente perché in questo caso non saremmo noi a duplicare la nostra identità ma il problema è se qualcuno ruba la nostra identità potrebbe utilizzare la nostra identità a nostra insaputa.

Con la blockchain questo problema si risolve, perchè  non è possibile duplicare l’identità. C’è sempre solamente un legittimo possessore di ogni identità.

Questa identità se necessario può essere riassegnata in vari modi nel caso le password vengano rubate. Per esempio ci possono essere dei sistemi di social recovery, ci possono essere dei sistemi di recupero di emergenza con password separate, ma in ogni caso ogni identità esiste in maniera unica ad ogni istante sulla blockchain.

image credit: Federico Squartini www.spidchain.com

Come appare l’identità auto-sovrana?

Fondamentalmente nell’implementazione su bitcoin questa è la vostra identità. E’ una stringa molto lunga che identifica una transazione sulla blockchain di bitcoin. In questa stringa c’è codificato il fatto che c’è una transazione sulla testnet.

All’interno di questo blocco c’è la transazione che corrisponde alla vostra identità. Ha un dato indice e un dato output index. Questa è un’identità digitale che voi potete creare senza dover chiedere il permesso a nessuno, perché la blockchain è un sistema peer to peer, quindi potete dimostrare che siete i legittimi proprietari di questa stringa in maniera criptografica.

Una volta che voi avete creato questa stringa è possibile generare dei clain, delle affermazioni di qualunque genere in maniera completamente aperta sugli attributi della persona che sta dietro questa stringa.

image credit: Federico Squartini www.spidchain.com

Quindi ad esempio in questo caso questa è la stringa precedente did:btc con un id che identifica la persona. Ha più di 21 anni, firmato dal proprietario di questa chiave pubblica. Questo sistema permette l’implementazione della rete di web of trust utilizzando la blockchain come struttura base per la creazione dell’identità.

image credit: Federico Squartini www.spidchain.com

Quindi concludendo i vantaggi di un’identità basata su blockchain sono:

1) Implementa l’identità auto-sovrana

2) E’ un sistema che offre privacy by design

3) Offre dati certificati in maniera aperta: è possibile certificare qualunque tipo di dato

4) L’identità non è clonabile per le proprietà della blockchain

5) La UI è moderna rispetto a sistemi come PGP di prima generazione

6) E’ un sistema che tramite queste identità permette di fare single sign on presso qualunque sito implementi questo tipo di login

7) Apre a nuovi mobelli di businness

C’è un consorzio di aziende che sta cercando di sviluppare l’identità auto-sovrana utilizzando differenti blockchain e differenti sistemi distribuiti e questo consorzio è coordinato dal W3C l’azienda per lo sviluppo degli standard di internet e questo è Cristopher Allen che è la mente propulsiva dietro questa nuova versione dell’identità digitale.

LEAVE A REPLY

Please enter your comment!
Please enter your name here