Archivi delle etichette: openid

Registrazioni e identità, dall’e-mail a OpenID

Nel precedente post ho sconsigliato, per problemi di privacy e sicurezza, l’utilizzo di OpenID come sistema centralizzato di autenticazione per tutti i servizi web.

Vorrei ritornare sull’argomento per approfondire il funzionamento di OpenID (dal punto di vista di un utente) per motivare meglio questa scelta e spiegare nel dettaglio la soluzione che reputo più idonea.

Analizziamo i vari metodi di registrazione che si possono trovare sui siti web esponendo pregi e difetti.

Registrazione con username e password

Il metodo più facile per gestire la registrazione è quello di chiedere all’utente che si vuole iscrivere di scegliere esclusivamente uno username e una password.

Questo metodo non fornisce al sito alcuna informazione sull’identità dell’utente, ma consente esclusivamente di accertarsi che, nei successivi accessi, chi entra è la stessa persona che è entrata la prima volta.

In questo modo il sito è in grado di collegare le azioni compiute, siano esse informazioni memorizzate o altro, allo username. Questo può consentire di attivare meccanismi di restrizione dei permessi quali, ad esempio, consentire l’accesso alle informazioni esclusivamente all’utente che le ha inserite.

Questa soluzione, tuttavia, ha 2 grossi limiti.

Il primo è un limite “organizzativo”: cosa succede, ad esempio, se non mi ricordo più la password?

Il secondo è un problema di funzionalità. Supponiamo di voler creare una “rete” di fiducia in cui l’accesso alle informazioni è consentito non solo all’utente che le inserisce, ma anche a ad altri. Questi altri possono essere identificati esclusivamente tramite username. Questo comporta che la corrispondenza username – persona reale deve essere effettuata al di fuori del meccanismo proposto, ad esempio con una mail tra le 2 persone in cui si dice “il mio username è xyz”.

Registrazione standard Web 1.0

Per ovviare ai problemi sopra elencati, in tutti i siti che attualmente conosciamo, la registrazione è accompagnata dalla richiesta di un indirizzo e-mail. La procedura di registrazione si svolge nel seguente modo:

  • Scelta di username e password e indicazione del proprio indirizzo di e-mail
  • Invio di una e-mail di conferma con un link
  • Cliccando sul link l’account viene attivato

Ovviamente vi sono variazioni sul metodo che si basano sul fornire una password automatica che l’utente può poi cambiare, utilizzano direttamente l’indirizzo e-mail come username o sfruttano altri metodi per ottenere conferma, quali un SMS come nel caso dei provider telefonici.

Qualunque sia la variante, tuttavia, l’utente viene identificato non solo come colui che si è registrato, ma anche come colui che risponde ad un indirizzo e-mail o altro strumento di comunicazione.

L’indirizzo e-mail costituisce un’identificazione univoca e, se viene pubblicato, consente anche a chi mi conosce di associarmi a tale account.

Il meccanismo funziona e i problemi precedentemente esposti sono stati risolti. I promotori di altri sistemi, tuttavia, segnalano che questo meccanismo porta ad una proliferazione di username, password e dati per ogni utente (uno per ogni sito) con disagi per chi va tutti i giorni su svariati account e li vuole tenere allineati.

OpenID

OpenID permette, tra le altre cose, di avere un account unico. Ecco come funziona l’iter di registrazione.

  • Mi registro su un sito che fornisca il servizio di provider OpenID utilizzando il metodo standard basato su e-mail
  • A questo punto, per registrarmi ad un altro sito che si comporti da client OpenID fornisco esclusivamente la mia URI OpenID, ovvero l’URI che mi identifica su internet
  • Il nuovo sito fa una richiesta al mio provider OpenID chiedendogli i miei dati e il provider, prima di inviarli, mi chiede conferma tramite redirezione su una sua pagina e, se non l’ho già fatto, richiesta di username e password originali
  • Il client a questo punto mi autentica registrando le informazioni che è riuscito a ricavare dal mio account OpenID
  • Nei successivi accessi fornirò sempre la mia URI e la richiesta di password avverrà sempre e solo da parte del provider OpenID e solamente alla prima connessione

Tramite questo metodo ho avuto i seguenti vantaggi:

  • Sono stato identificato in modo univoco su internet (identità)
  • Non ho dovuto ripetere i miei dati per la nuova registrazione
  • In teoria il nuovo sito potrà aggiornare le informazioni ogni volta che cambieranno sul mio account
  • Utilizzo uno username/password unici per tutti i servizi
  • Inserisco username e password una sola volta e vale per tutti i siti attivati

E’ un meccanismo fantastico, ma il rovescio della medaglia è che il mio provider non solo può accedere a tutti i miei siti spacciandosi per me (basta una modifica al programma o la memorizzazione in chiaro della password), ma ne ha anche l’elenco in quanto deve memorizzare i siti autorizzati.

Dormireste sonni tranquilli?

Come utilizzare OpenID

OpenID ha grossi vantaggi, soprattutto nella capacità che ha di mantenere sincronizzati i propri dati tra siti differenti e, se completato con le informazioni che possono essere memorizzate tramite un file FOAF, potrebbe costituire veramente la nostra identità in rete.

Il meccanismo che propongo è quello di rinunciare allo username/password unici per ogni sito. Questa rinuncia è, a mio avviso, minima e se non se ne può fare a meno, piuttosto utilizziamo i meccanismi di memorizzazione automatica dei browser.

La procedura di registrazione, pertanto, potrebbe essere la seguente:

  • Registrazione utilizzando il primo metodo (solamente username e password, senza e-mail) completato con la mia URI OpenID)
  • Il sito scarica dal provider OpenID i miei dati e memorizza la mia URI per successivi aggiornamenti
  • La URI OpenID non potrà mai essere usata per l’accesso al mio sito, ma dovrò sempre usare username e password forniti al sito stesso

In questo modo ho mantenuto il vantaggio di collegare tutti i miei siti alla mia identità e permettere alle persone di sapere che quel sito è della persona descritta a quell’URI e citata come amico da quell’altro utente.

Alla semplice URI (che potrebbe essere direttamente il mio file FOAF), OpenID ha aggiunto la dimostrazione della proprietà dell’URI, meccanismo fondamentale per costruire una rete di fiducia basata su tale identità.


“Chi sono” – la nostra identità sul web

Come primo post su questo blog sarebbe forse giusto parlare dell’autore, dei suoi interessi e della sua vita. Tuttavia io preferisco mirare direttamente all’obiettivo entrando subito negli argomenti a cui questo blog è dedicato. Il “chi sono” del titolo, pertanto, non si riferisce a me, ma alla nostra identità in Internet.

Così come succede nella vita reale, anche nel mondo virtuale abbiamo bisogno di “definirci”, di trovare un modo univoco per rappresentare la nostra identità. Se nella vita reale posso dire io sono Tizio, residente in questa città e abitante a questo indirizzo, non è altrettanto facile classificarci nel momento in cui siamo in rete.

Chi sono io? Sono la persona descritta su Facebook o su LinkedIn, quella presente su Flickr o su TripAdvisor o, ancora, sono l’autore di questo blog? Le nostre identità in rete sono multiple e spesso discordanti, in quanto non è presente un meccanismo che consenta di trasferire e mantenere sincronizzate le informazioni.

Un secondo aspetto è quello della veridicità della frase: “la persona descritta a quell’indirizzo internet sono io”. Posso dirvi che mi chiamo Tim Berners-Lee e che questa è la pagina che mi descrive, ma difficilmente, basandovi esclusivamente su Internet, potete essere in grado di accertarlo.

Questo problema è ancora più grande nel momento in cui quella pagina contiene, come nell’esempio proposto, informazioni significative su opere o conoscenze che possono influenzare pesantemente il mio interlocutore e indurlo ad assegnare un peso differente alle mie affermazioni.

Per nostra fortuna la tecnologia ci sta già venendo incontro e ci fornisce 2 strumenti che, combinati, riescono a risolvere completamente i problemi esposti. Tali strumenti sono FOAF e OpenID.

FOAF

Friend Of A Friend è uno strumento estremamente semplice. Si tratta, essenzialmente, di uno standard basato su RDF che permette di descrivere una persona e tutti i collegamenti che essa ha con altre persone o cose, siano esse definite o meno sul web.

In pratica si tratta di creare un file RDF all’interno del quale vi siano tutte le informazioni che normalmente ci vengono richieste iscrivendoci ad un sito, dai dati anagrafici ai nostri recapiti. Tali informazioni saranno poi completate dai collegamenti del tipo “lavoro in questa azienda”, “ho scritto questi libri”, “questo è il mio blog” e, forse più importante di tutti dal punto di vista del social networking, “conosco questa persona” dove la persona presa in causa è l’URL di un altro file FOAF.

Se creiamo il nostro file e lo pubblichiamo in qualche modo in internet, possiamo iniziare a dire in giro “questo sono io” e fornire a chiunque sempre le stesse informazioni. I miei amici potranno iniziare a collegarmi tramite i file FOAF e la rete di interconnessioni comincerà ad ingrandirsi.

Se tutti i siti che ci chiedono nome e recapiti si accontentassero di un URL, potrebbero non solo evitarci la fatica di ripetere le stesse informazioni ad ogni registrazione, ma anche tenerle costantemente aggiornate riscaricando la nuova versione del file ogni volta che viene modificato.

I file FOAF sono il primo tassello del “Giant Global Graph” del precedentemente citato Tim Berners-Lee, in cui il web si trasforma da un insieme di pagine interconnesse ad un insieme di informazioni interconnesse, intendendo con informazione il dato puro e semplice.

Crearsi un’identità

Creare il proprio file FOAF è relativamente semplice e può essere fatto seguendo 2 strade, ognuna con vantaggi e svantaggi.

La prima consiste nell’iscriversi ad un sito di social networking che fornisca tale servizio. E’ facile trovare in rete degli elenchi, tuttavia così facendo ci si lega a tale sito e la vostra identità in rete ne seguirà le sorti. I problemi che nascono sono gli stessi di un indirizzo mail. Nel momento in cui voglio (o sono obbligato) a cambiarlo devo contattare tutti coloro che lo usano affinché lo sostituiscano con quello nuovo.

Nel caso dell’identità questo potrebbe essere particolarmente oneroso, in quanto i suoi riferimenti si potrebbero essere diffusi in modo considerevole e cambiarli non è così facile come mandare una singola mail.

Il secondo metodo è quello di crearsi il proprio file FOAF tramite un servizio on-line come Foaf-a-matic e pubblicarlo sul proprio sito.

In questo caso il rischio di dover cambiare è più limitato, a condizione di essere il titolare del dominio o di avere un rapporto di estrema fiducia con chi ce lo fornisce, tuttavia diventa più oneroso l’aggiornamento che comporta una variazione manuale del file.

In entrambi i casi permane poi un problema: come garantire agli altri che il file a quell’URL è veramente il mio?

Aggiungiamo OpenID

Sul sito ufficiale viene detto che OpenID elimina la necessità di avere molteplici username per accedere ai vari siti presenti in internet. In base a questa definizione OpenID sembra essere un protocollo per implementare un sistema di autenticazione centralizzato e, in effetti, come tale funziona.

Dal punto di vista dell’utente il meccanismo è semplice:

Bello, ma nasce immediatamente un problema: mi fido così tanto di questo provider da consegnarli l’account per accedere a tutti i miei siti? Io no di sicuro.

Sotto quest’ottica OpenID avrà uno scarso successo come meccanismo globale, ma potrebbe rivelarsi molto utile in ambito aziendale configurandosi come un sistema unificato di autenticazione: mi registro sul server OpenID aziendale e posso accedere a tutti i servizi internet senza fornire nuovamente username e password. In questo caso l’azienda garantisce la mia identità solamente per i servizi dell’azienda stessa e io fornisco username e password solamente a chi quei servizi già li gestisce.

Se OpenID non costituisce un sistema integrato di autenticazione, in che modo può completare il meccanismo di gestione globale della propria identità? Prendendolo per il solo protocollo che gli sta alle spalle e non per l’uso che ne viene proposto.OpenID dovrebbe essere utilizzato semplicemente come metodo di comunicazione tra computer per autenticare l’accesso ad una determinata pagina.

In sintesi il processo è questo:

  • Dico ad un servizio “io sono la persona descritta a questa URL”

  • Tramite OpenID viene richiesto l’accesso a tale URL e io, inserendo username e password, acconsento al trasferimento dei miei dati

  • In quella pagina è presente un link al file FOAF che mi descrive

  • Il sito mi identifica come la persona descritta da tale file in modo univoco e può sempre scaricare gli aggiornamenti che mi riguardano

Un descrizione alternativa di questo meccanismo è fornita in questo post, anche se si lascia sempre passare il concetto che l’URL OpenID può sostituire username e password. A mio avviso deve limitarsi ad accompagnarli così come un indirizzo e-mail completa la registrazione tramite l’invio di un link di conferma.

Conclusioni

Tramite FOAF e OpenID viene definita la nostra identità in rete nel senso di URI univoca per ognuno di noi. Ovviamente posso continuare a dire di essere l’inventore del web, ma il W3C, quando parlerà di me, parlerà della persona con una certa URI e tale persona non potrò essere io, in quanto non sarò in grado di “dimostrarlo” a chi me lo chiedesse.

Tramite questi 2 protocolli abbiamo un metodo per costruire la nostra rete di conoscenze in internet.


Iscriviti

Get every new post delivered to your Inbox.

Join 117 other followers