23 febbraio, 2007

Il supporto CardSpace per Firefox

di Percy Cabello

Si è appreso che CardSpace sarà un componente integrato nel prossimo Firefox 3.

CardSpace è il sistema di gestione delle identità di Microsoft, un modo per ridurre la seccatura di dover avere tante identità (credenziali di accesso) quanti sono i servizi che utilizziamo.

Kevin Miller, che ha pubblicato Identity Selector, un'estensione che aggiunge il supporto CardSpace al browser, ci spiega meglio in cosa consiste la gestione delle identità, che cosa fa la sua estensione e cosa si possono attendere gli utenti da Identity Selector e da altri prodotti attualmente in sviluppo. Per la cronaca, Kevin non lavora per Microsoft.


Mozilla Links: Che cos'è esattamente CardSpace e come funziona?
CardSpace è il metodo per implementare quello che Kim Cameron chiama un Metasistema di Identità. Descriverei un Metasistema di Identità come una definizione di un protocollo, o come uno schema per l'identificazione sicura su Internet che cerca di risolvere tre problemi:

  1. Attacchi phishing
  2. Mancanza di un'identità fidata
  3. Proliferazione di informazioni personali
Non credo ci sia bisogno di parlare degli attacchi phishing, ormai credo che chiunque ne sia a conoscenza.

Il secondo punto, la mancanza di un'identità fidata, è un po' più complesso. I siti web che autenticano gli utenti hanno pochissime opzioni valide. Possono richiedere il numero della carta di credito, che è verificabile. Purtroppo alla maggior parte degli utenti non piace fornire i dettagli della propria carta di credito a qualunque sito della rete. Potrebbero richiedere un certificato digitale ma questi, per l'utente medio, sono difficili da mantenere e verificare.

In modo coerente con la documentazione, mi riferirò ai siti web come Parti Fiduciarie (PF). Mi riferirò agli utenti come "utenti" sebbene la documentazione Microsoft li definisca "soggetti". Si tenga presente che gli utenti possono essere individui, aziende oppure altri sistemi informatici. La PF non deve necessariamente essere un sito web. Potrebbe essere un client Windows, un web service, qualunque cosa.

Il terzo punto, la proliferazione di informazioni personali, è un effetto collaterale dei primi due elementi del secondo punto e contribuisce anche al furto di identità. Poiché le PF richiedono agli utenti di registrarsi, viene di solito richiesta una gran quantità di informazioni personali, indipendentemente che queste siano necessarie oppure no. Le PF potrebbero vendere queste informazioni o potrebbero utilizzarle a scopo di marketing. Oppure potrebbero semplicemente raccoglierle perché pensano di poterne avere bisogno in futuro. Il problema per gli utenti giunge dalla messa in vendita di queste informazioni o dalla compromissione dei server (o dei pc portatili) sui cui queste informazioni sono memorizzate.

Il Metasistema di Identità punta a risolvere tutti questi problemi.
  • Gli utenti hanno ora carte semplici da gestire (InfoCard) invece di certificati complessi.
  • La PF può richiedere informazioni inerenti il livello di sicurezza del sito.
  • Per siti web semplici, potrebbero consentire una carta auto-generata. Questo potrebbe valere per molti nuovi siti in cui l'azienda chiede solo agli utenti di registrarsi. Invece di digitare le informazioni in un modulo contenuto in una pagina web, l'utente può auto-generarsi una carta e usarla su più siti.
  • Se la PF richiede una vera autenticazione, potrebbero accettare carte da emesse da server Security Token validi. Questi sono elementi di terze parti che ospitano le carte degli utenti. La terza parte deve essere riconosciuta degna di fiducia sia dall'utente che dalla PF. Tutto questo è simile al concetto del deposito in garanzia: l'utente e la PF non devono fidarsi reciprocamente fintanto che danno fiducia alla terza parte.
  • La PF pubblica le informazioni necessarie per l'accesso.
  • L'utente decide quali informazioni fornire. Se la PF richiede troppi dati, l'utente può rifiutare.
  • L'utente non deve compilare moduli web infiniti.
  • La PF può personalizzare la richiesta InfoCard.
  • L'utente può personalizzare la risposta InfoCard.
  • La PF può scegliere qualunque implementazione disponibile di server.
  • L'utente e il sito possono accordarsi su un qualunque server Security Token.
  • L'utente può scegliere qualunque Identity Selector.
Tutti questi componenti possono essere messi a disposizione per qualunque lingua, browser o sistema operativo, fintanto che questi supportano i componenti necessari del Metasistema di Identità.

Il sistema risponde direttamente ai punti due e tre, e indirettamente riduce gli attacchi phishing. Si spera anche che gradualmente gli utenti forniscano meno informazioni e che la PF ne richieda meno. Ad esempio, considerate queste due aziende che si scambiano informazioni.
  • L'azienza A ha un'informazione a cui vuole accedere l'azienda B.
  • L'azienda B è disposta a pagare per questa informazione ma non vuole dover amministrare un elenco di account utente. E non vuole neanche dire all'azienda A i nomi dei dipendenti che accederanno ai dati.
  • Se l'azienda A e l'azienda B si accordano su un server Security Token comune, l'azienda B può semplicemente utilizzare una InfoCard valida che indichi che l'utente è un dipendente dell'azienda B. L'utente può accedere all'informazione dell'azienda A senza dover divulgare nessun altro dettaglio.
Questo era un esempio un po' forzato. Un esempio reale potrebbe essere un bar. Un bar deve assicurarsi del fatto che tu sia maggiorenne per entrare. Molti di noi ora utilizzano la patente di guida. Oltre all'età, la patente contiene il nome, l'indirizzo e una descrizione. Aggiungete a questo il fatto che alcuni bar ora scattano fotografie alle patenti e le memorizzano su supporto informatico. Questo significa che ora siete a rischio di furto di identità, solo per il fatto di godervi una serata in centro. In un mondo InfoCard, sarebbe sufficiente fornire la vostra InfoCard validata da un ente certificatore governativo e il bar saprebbe se siete o no maggiorenni. Nessun'altra informazione viene fornita o messa a repentaglio.

Mozilla Links: Come si raffronta CardSpace rispetto a OpenID, una proposta di gestione delle identità open-source?
C'è davvero pochissimo in comune con OpenID: entrambi utilizzano siti di terze parti per validare gli utenti. Tuttavia, CardSpace si occupa di autorizzare e autenticare l'utente mentre OpenID fornisce solamente un ID univoco (basato su un URL). OpenID permette alla terza parte di fornire una serie di informazioni ma non fornisce all'utente un modo semplice di vedere in anteprima le informazioni all'atto di ciascuna transazione. OpenID inoltre si affida all'onore degli implementatori: non ci sono controlli e bilanciamenti per ripristinare la situazione in presenza di un fornitore disonesto. CardSpace è progettato per dare ad entrambi i lati della transazione un modo per verificare le informazioni richieste e fornite. Ora, CardSpace non costringerà un venditore di eBay a mettere nella posta il vostro iPod ma almeno avrete la cartezza che state trattando con un utente specifico.

Mozilla Links: Che cosa fa l'estensione Identity Selector?
La mia estensione fa essenzialmente un paio di cose:
  • analizza i parametri che rappresentano le informazioni richieste e opzionali, insieme ad altri parametri importanti;
  • invoca CardSpace (oppure un'alternativa come l'Identity Selector di Chuck Mortimer);
  • quindi ripassa i parametri dalla pagina web a CardSpace.
C'è una discreta quantità di validazioni e alcune interfacce per permettere agli sviluppatori di fornire delle implementazioni alternative, ma quelle tre funzioni sono i pilastri dell'estensione.

Mozilla Links: Perché Firefox ha bisogno di un'estensione per supportare CardSpace?
E' richiesto l'uso di un'estensione per ottenere le informazioni appropriate dal browser e invocare CardSpace. Senza l'estensione, Firefox non ha alcun meccanismo in grado di invocare CardSpace. Potremmo, in teoria, generare del codice SAML basato su un'interfaccia web e restituirlo alla PF ma ci sarebbero pochi vantaggi di fronte a grossi costi di sviluppo.
CardSpace è protetta dagli attacchi, fornisce un semplice meccanismo per scegliere le carte e permette all'utente di verificare la PF. CardSpace fornisce inoltre tutta l'infrastruttura per la gestione e la lettura dei certificati, una crittografia di base e la scrittura di SAML.

Mozilla Links: Al momento, quanto supporto ha CardSpace?
Non so esattamente quante pagine lo supportino al momento. Le tre che conosco sono il sito xmldap.org, la pagina di esempio di Kim Cameron e la sandbox ufficiale di CardSpace che, purtroppo, supporta solamente IE7. Ho parlato con qualcuno di loro per risolvere il problema.
Essenzialmente, xmldap.org permette di creare una carta gestita (o sceglierne una utilizzata in precedenza su quel sito) e quindi utilizzarla per l'accesso. Se l'accesso avviene correttamente, si visualizza una pagina che mostra il codice SAML inviato e le informazioni nell'InfoCard. Magari non è una cosa molto appariscente ma credetemi, il codice sottostante è bellissimo e davvero interessante per noi che lavoriamo sulla sicurezza.

Un ringraziamento sentito a Kevin. Se volete saperne di più, visitate il sito web di CardSpace.

Nessun commento: