martedì 9 dicembre 2008

Una disamina della tecnologia OpenID

OpenID è un semplice meccanismo di identificazione creato da Brad Fitzpatrick di LiveJournal, un network distribuito e decentralizzato, nel quale l'identità dell'utente è rappresentata da un URL e può essere verificata da qualunque server supporti questa tecnologia. OpenID semplifica l'esperienza dell'utente on line attraverso l'eliminazione di username multipli sui siti Internet, dando così modo di avere un maggiore controllo sulle proprie identità digitali.
Non è necessario per gli utenti creare un singolo account per ogni sito web che supporta OpenID: effettuando una sola autenticazione sicura su un qualunque sito compatibile OpenID si potrà fidare su un'unica dichiarazione dell'identità dell'utente, impiegabile su tutti gli altri siti.

Google, IBM, Microsoft, VeriSign e Yahoo! sono entrate a far parte della Fondazione OpenID, creata per sostenere le attività legate alle cosiddette identità web portatili.

Siti web che supportano OpenID e che fanno uso di un proprio database con l'elenco degli utenti, potranno ad esempio riferirsi all'archivio mantenuto dai più grandi colossi online (ad esempio, Microsoft, Google o Yahoo) per effettuare una verifica dell'identità dell'utente.

I benefici dell'utente consistono nel fatto che non sarà più necessario registrare e ricordare i dati di accesso di decine di servizi online, eventualmente registrandoli in un apposito software "password manager". Al contrario, con un unico account sarà possibile effettuare il login su un ampio numero di siti web. La OpenID Foundation sta rilasciando il codice necessario per gestire il processo di validazione su qualunque sito web interessato ad abbracciare il nuovo protocollo.
Il concetto è relativamente nuovo perché mette il controllo della propria identità direttamente nelle mani dell'utente.

L'utente può scegliere autonomamente il fornitore (provider) OpenID che più preferisce e, sopratutto, quello in cui riveste maggiore fiducia. Tra i vantaggi derivanti dall'utilizzo di OpenID va ricordato il fatto che non si ha a che fare con una tecnologia proprietaria ma con un meccanismo completamente aperto. Chiunque può essere un utente OpenID oppure un provider senza necessitare di alcun tipo di autorizzazione.

Il bacino di utenti ai quali può rivolgersi OpenID è potenzialmente sconfinato. Per poter accedere a molti siti Internet o servizi online è generalmente necessario identificarsi scegliendo nome utente e password personali ed introducendo, sovente, informazioni personali come nome, indirizzo, e-mail e così via. OpenID promette di porsi alle spalle queste noiose problematiche offrendo un sistema unico per dichiarare la propria identità a tutti i siti che supportano questa tecnologia.

Supponiamo di avere attivato un identificato OpenID personale presso un provider fidato (ad esempio http://nomeprovideropenid/mariorossi). A questo punto, basterà collegarsi con il sito web al quale si vuole accedere e digitare l'indirizzo OpenID personale. Dopo un reindirizzamento iniziale verso il provider scelto (si dovrà confermare la propria password), il sito d'interesse potrà immediatamente accertare l'identità dell'utente, senza richiedere ulteriori dati.

OpenID permette all'utente di effettuare l'accesso ad applicazioni web senza dover più inserire nomi utente e password, dà modo ai vari siti web di raccogliere informazioni sull'utente ed a quest'ultimo la possibilità di scegliere quali dati debbano essere trasmessi durante la procedura di autenticazione. La tecnologia, inoltre, permette di selezionare quali insiemi di informazioni (conosciuti anche col nome di profili o "cards") inviare a siti web differenti, a seconda delle proprie necessità e di eventuali rischi.

OpenID poggia su due "entità": i fornitori ("provider") OpenID ed i servizi che accettano questo tipo di meccanismo come sistema di registrazione e login (detti "relying party" oppure anche "consumer").

Supponiamo che l'utente abbia creato un identificativo http://nomeutente.myopenid.com. MyOpenID è uno dei primi fornitori di credenziali OpenID. Tra gli altri ricordiamo, ad esempio, ClaimID, myID.net, myVidoop e Verisign (Personal Identity Provider). Il processo di generazione di un'identità OpenID è semplicissimo, differisce leggermente tra un provider e l'altro, e richiede pochi minuti per poter essere portato a termine. La password scelta, insieme con il nome utente specificato, serviranno unicamente per accedere al sito del provider e non dovranno essere assolutamente utilizzati altrove. I siti sui quali è possibile effettuare il login rapido utilizzando il proprio identificativo OpenID, espongono in generale una piccola icona.

Ma cosa accade dietro le quinte? In altre parole, come è possibile che attraverso un unico identificativo sia possibile accedere velocemente a qualunque servizio che supporti la tecnologia OpenID?
Non appena si inserisce il proprio identificativo OpenID sul sito al quale si vuole accedere ("relying party" o "consumer"), questo provvede ad interrogare il provider scelto dall'utente utilizzando molteplici metodi e scambiando messaggi secondo un protocollo predefinito. I metodi impiegati dipendono dall'"intelligenza" del sito "relying party". Una volta ricevuta dal provider la conferma dell'identità dell'utente, il sito visitato permetterà il login (è possibile che venga comunque richiesta qualche informazione addizionale).

Sono due i metodi di base impiegati per le comunicazioni tra "relying party" e "provider": la cosiddetta "modalità muta" (dumb mode) e la "modalità intelligente" (smart mode). Nel primo caso, il "relying party" non mantiene lo stato della connessione in essere fra se stesso ed il provider dovendo quindi compiere diversi passi in più per accertare l'identità dell'utente. In questo scenario, molti messaggi HTTP in più sono veicolati tra i due "interlocutori" e il browser dell'utente. Di contro, nella "modalità intelligente" il traffico HTTP viene ridotto grazie al mantenimento dello stato della connessione. In questa configurazione, provider e "relying party" condividono una chiave per la cifratura di tutti i messaggi scambiati. In entrambe le situazioni, comunque, la comunicazione è resa "segreta" in modo tale da assicurare confidenzialità ed integrità dei dati scambiati.

La pagina http che funge da identificativo OpenID, contiene – nella sezione "head" - due metatag "link" molto importanti: <link rel="openid.server" href="http://www.myopenid.com/server"> e <link rel="open.delegate" href="http://mariorossi.myopenid.com">. La prima indica l'indirizzo del server OpenID del provider; la seconda l'URL dell'utente identificabile mediante l'interrogazione di quel server.

Anche in ambito OpenID si preannuncia però una guerra tra i colossi più grandi. Google, Yahoo e Microsoft hanno più volte dichiarato come gli utenti registrati sui rispettivi portali non potranno impiegare il proprio identificativo per accedere, ad esempio, ai servizi dei concorrenti.
La società di Redmond ha spiegato che si proporrà solamente come fornitore (provider) OpenID mettendo quindi a disposizione degli utenti Windows Live credenziali OpenID ma non accettandole da altri distributori. La scelta consente all'utente di effettuare più rapidamente il login ma mantiene una netta separazione tra i vari portali che, come requisito, impongono comunque l'attivazione di un account. Da Microsoft si fa comunque presente come il supporto OpenID sia da considerarsi ancora in fase beta: stando a quanto dichiarato dalla società, dovrebbe divenire maturo nel corso del 2009.
In casa Google, in un primo tempo, si era deciso di abbracciare OpenID seppur con alcune restrizioni. In particolare, la società di Mountain View aveva dichiarato di supportare le specifiche OpenID 2.0 senza però offrire retrocompatibilità con la versione 1.0, come invece fa, per esempio, Yahoo. L'implementazione OpenID firmata Google, come nel caso dei "concorrenti" non accetterebbe gli identificativi inseriti da parte dell'utente facendo fede sempre sull'account GMail.
Google, attraverso l'implementazione del protocollo OpenID 2.0, si propone di offrire ai gestori di siti web un meccanismo per autenticare l'utente senza dover effettuare una registrazione dei suoi dati anche in locale. L'azienda fondata da Larry Page e Sergey Brin, tuttavia, non fornisce direttamente all'utente il suo identificativo OpenID ma piuttosto si comporta come un'identità "middleman" che agisce tra l'applicazione web e l'utente (il suo sistema client).

Più recentemente, però, Google è sembrata disposta a rivedere i suoi piani per l'implementazione del protocollo OpenID. La decisione sembra sia stata presa in seguito alle critiche ricevute nei giorni seguenti l'annuncio iniziale. Eric Sachs, Security Team di Google, ha annunciato che la società non richiederà più ai siti web interessati ad abbracciare il meccanismo di login OpenID di registrarsi sul portale Google. Oltre a porsi come "fornitore" OpenID, Google vorrebbe rendere i propri servizi pienamente compatibili con il protocollo ma, come spiega Sachs, vi sarebbero al momento numerosi aspetti tecnici e di usabilità da soppesare in modo adeguato. La discussione, insomma, è aperta ed è ben lungi dall'esser arrivata ad un punto di svolta.

Generare il proprio identificativo OpenID con MyOpenID

Di provider OpenID ne esistono diversi. Il sito openid.net li elenca in questa pagina. A titolo esemplificativo illustriamo per sommi capi la procedura da seguire per produrre il proprio identificativo OpenID utilizzando come provider MyOpenID.
Per creare il proprio URL OpenID, è necessario collegarsi con questa pagina, cliccare il pulsante "Sign up for an OpenID" quindi inserire i dati richiesti ossia il nome utente prescelto (verificando che non sia già in uso), una password "forte" (formata da caratteri alfanumerici, lettere maiuscole e minuscole, simboli) ed un indirizzo e-mail personale valido ed attivo. La password scelta non dovrà essere inserita su nessun altro sito web.
A questo punto, MyOpenID spedirà una e-mail all'indirizzo di posta elettronica indicato: per confermare la validità dell'account sarà necessario cliccare sul link presente nel messaggio.

Completata questa operazione l'identificativo http://nomutentescelto.myopenid.com sarà immediatamente attivo e potrà essere utilizzato per effettuare il login sui siti che supportano OpenID. Per fare in modo che chi si colleghi all'URL OpenID non riceva alcuna informazione sulla propria identità, è sufficiente accedere alla pagina http://nomutentescelto.myopenid.com da browser e cliccare sul link Don't display any information on my identity page.

Proviamo ad accedere a LiveJournal, servizio creato dallo stesso autore di OpenID. Accedendo a questa pagina, nell'apposita casella sarà possibile inserire l'identificativo OpenID scelto in precedenza su MyOpenID.com. Se l'utente è loggato su MyOpenID ovvero sul provider che gli ha fornito il suo identificativo, il login avverrà immediatamente. Diversamente, l'utente dovrà inserire sulla pagina di login del provider OpenID, la password specificata al momento della registrazione.

Dopo aver richiesto il login (in questo caso su LiveJournal), si verrà reindirizzati su una pagina gestita dal "provider". Qui, per motivi di sicurezza, si dovrà confermare la propria scelta.

Purtroppo i siti web che supportano pienamente OpenID non sono ancora moltissimi, soprattutto nel nostro Paese. Alcuni elenchi sono comunque disponibili in questa pagina e a questo indirizzo.

from: http://www.ilsoftware.it/articoli.asp?id=4851

Nessun commento: