OpenID
OpenID è uno standard aperto sponsorizzato da Facebook, Microsoft, Google, PayPal, Ping Identity, Symantec e Yahoo. OpenID permette all’utente di essere autenticato utilizzando un servizio di terze parti chiamato identity provider. Gli utenti possono scegliere di usare i loro provider OpenID preferiti per accedere ai siti web che accettano lo schema di autenticazione OpenID.
La specifica OpenID definisce tre ruoli:
- L’utente finale o l’entità che sta cercando di verificare la sua identità
- La parte fidata (RP), che è l’entità che cerca di verificare l’identità dell’utente finale
- Il fornitore OpenID (OP), che è l’entità che registra l’URL OpenID e può verificare l’identità dell’utente finale
Il seguente diagramma spiega un caso d’uso per uno scenario OpenID:
Considerazioni sulla sicurezza
OpenID ha avuto alcune vulnerabilità interessanti in passato, per esempio:
- Attacchi phishing: Poiché il relying party controlla il processo di autenticazione (se necessario) al provider OpenID, è possibile per un relying party disonesto inoltrare l’utente ad un provider OpenID fasullo e raccoglie le credenziali dell’utente per il provider OpenID legale.
- Falle di autenticazione: Nel marzo 2012, tre ricercatori hanno presentato un documento che ha evidenziato due vulnerabilità in OpenID. Entrambe le vulnerabilità permettono ad un attaccante di impersonare qualsiasi utente in un sito web se il sito web non controlla correttamente se la risposta del provider OpenID contiene un indirizzo e-mail correttamente firmato.
SAML
Security Assertion Markup Language (SAML) è un prodotto del comitato tecnico dei servizi di sicurezza OASIS. Risalente al 2001, SAML è uno standard aperto basato su XML per lo scambio di dati di autenticazione e autorizzazione tra le parti.
La specifica SAML definisce tre ruoli:
- Il principale, che è tipicamente l’utente che cerca di verificare la sua identità
- Il fornitore di identità (idP), che è l’entità in grado di verificare l’identità dell’utente finale
- Il fornitore di servizi (SP), che è l’entità che cerca di utilizzare il fornitore di identità per verificare l’identità dell’utente finale
Il seguente diagramma spiega un caso di utilizzo per uno scenario SAML:
Considerazioni sulla sicurezza
- Un gruppo di ricercatori ha presentato un articolo nel 2011 in cui hanno usato una vulnerabilità di XML Signature Wrapping per impersonare qualsiasi utente.
OAuth
OAuth è un altro standard aperto. Risalente al 2006, OAuth è diverso da OpenID e SAML per essere esclusivamente per scopi di autorizzazione e non di autenticazione.
Le specifiche OAuth definiscono i seguenti ruoli:
- L’utente finale o l’entità che possiede la risorsa in questione
- Il server della risorsa (OAuth Provider), che è l’entità che ospita la risorsa
- Il client (OAuth Consumer), che è l’entità che sta cercando di consumare la risorsa dopo aver ottenuto l’autorizzazione dal client
Il seguente diagramma spiega un caso utente per uno scenario OAuth:
Considerazioni sulla sicurezza
- Un difetto di vulnerabilità nella fissazione della sessione è stato trovato in OAuth 1.0. Un attaccante può fissare un token per la vittima che viene autorizzata. L’attaccante poi usa il token fissato.
- OAuth 2.0 è stato descritto come un protocollo intrinsecamente insicuro poiché non supporta la firma, la crittografia, il binding del canale o la verifica del client. Il protocollo si basa interamente sul sottostante livello di sicurezza del trasporto (per esempio, SSL/TLS) per fornire riservatezza e integrità.
Questa tabella spiega le principali differenze tra i tre protocolli:
OpenID |
OAuth |
SAML |
|
Date Da | |||
Versione corrente |
OpenID 2.0 |
OAuth 2.0 |
SAML 2.0 |
Scopo principale |
Single Sign-On per i consumatori |
Autorizzazione API tra applicazioni |
Single Sign-On per gli utenti aziendali |
Protocolli utilizzati |
XRDS, HTTP |
JSON, HTTP |
SAM, XML, HTTP, SOAP |
No. di CVE correlati |
Altri protocolli
C’è un numero crescente di altre opzioni di identità federate. Ecco alcuni esempi.
Higgins: Higgins è un nuovo protocollo open source che permette agli utenti di controllare quali informazioni di identità vengono rilasciate ad un’impresa.
Windows CardSpace: CardSpace è il nuovo metasistema di identità di Microsoft che fornisce l’interoperabilità tra i fornitori di identità e le parti che fanno affidamento sull’utente. Questo protocollo è andato in pensione e Microsoft sta lavorando su un sostituto chiamato U-Prove.
MicroID: MicroID è un nuovo livello di identità per il web e i microformati che permettono a chiunque di rivendicare semplicemente la proprietà verificabile delle proprie pagine e dei contenuti ospitati ovunque.
Liberty Alliance: Liberty Alliance è un grande protocollo orientato al commercio che fornisce la fiducia dell’identità tra imprese. È il più grande protocollo di fiducia di identità esistente distribuito in tutto il mondo.