OpenID
OpenID is een open standaard gesponsord door Facebook, Microsoft, Google, PayPal, Ping Identity, Symantec, en Yahoo. OpenID maakt het mogelijk gebruikers te authenticeren door gebruik te maken van diensten van derden, zogenaamde identity providers. Gebruikers kunnen ervoor kiezen hun favoriete OpenID provider te gebruiken om in te loggen op websites die het OpenID authenticatie schema accepteren.
De OpenID-specificatie definieert drie rollen:
- De eindgebruiker of de entiteit die zijn identiteit wil verifiëren
- De relying party (RP), dat is de entiteit die de identiteit van de eindgebruiker wil verifiëren
- De OpenID provider (OP), dat is de entiteit die de OpenID URL registreert en de identiteit van de eindgebruiker kan verifiëren
Het volgende diagram verklaart een use case voor een OpenID scenario:
Security Considerations
OpenID heeft in het verleden een aantal interessante kwetsbaarheden gekend, bijvoorbeeld:
- Phishing-aanvallen: Aangezien de relying party het authenticatieproces (indien nodig) naar de OpenID-provider controleert, is het mogelijk voor een malafide relying party om de gebruiker door te sturen naar een nep OpenID-provider en verzamelt de credentials van de gebruiker voor de legale OpenID-provider.
- Authentication Flaws: In maart 2012 presenteerden drie onderzoekers een paper waarin twee kwetsbaarheden in OpenID werden belicht. Met beide kwetsbaarheden kan een aanvaller zich voordoen als een willekeurige gebruiker op een website als de website niet goed controleert of het antwoord van de OpenID-provider een correct ondertekend e-mailadres bevat.
SAML
Security Assertion Markup Language (SAML) is een product van het OASIS Security Services Technical Committee. SAML, daterend uit 2001, is een op XML gebaseerde open standaard voor het uitwisselen van authenticatie- en autorisatiegegevens tussen partijen.
De SAML-specificatie definieert drie rollen:
- De principal, dat is typisch de gebruiker die zijn of haar identiteit wil verifiëren
- De identity provider (idP), dat is de entiteit die in staat is de identiteit van de eindgebruiker te verifiëren
- De service provider (SP), dat is de entiteit die de identity provider wil gebruiken om de identiteit van de eindgebruiker te verifiëren
Het volgende diagram verklaart een use case voor een SAML-scenario:
Security Considerations
- Een groep onderzoekers heeft in 2011 een paper gepresenteerd waarin ze een kwetsbaarheid in XML Signature Wrapping hebben gebruikt om zich als een willekeurige gebruiker voor te doen.
OAuth
OAuth is een andere open standaard. OAuth, dat dateert uit 2006, verschilt van OpenID en SAML in het feit dat het uitsluitend voor autorisatiedoeleinden is bedoeld en niet voor authenticatiedoeleinden.
De OAuth-specificaties definiëren de volgende rollen:
- De eindgebruiker of de entiteit die eigenaar is van de bron in kwestie
- De bronserver (OAuth Provider), dat is de entiteit die de bron host
- De client (OAuth Consumer), dat is de entiteit die de bron wil consumeren na autorisatie van de client
Het volgende diagram legt een user case voor een OAuth-scenario uit:
Overwegingen met betrekking tot de beveiliging
- Er is een kwetsbaar punt gevonden in OAuth 1.0.0. Een aanvaller kan een token fixeren voor het slachtoffer dat wordt geautoriseerd. De aanvaller gebruikt vervolgens het gefixeerde token.
- OAuth 2.0 werd beschreven als een inherent onveilig protocol omdat het geen ondersteuning biedt voor handtekening, encryptie, kanaalbinding of clientverificatie. Het protocol vertrouwt volledig op de onderliggende transportlaag beveiliging (bijvoorbeeld, SSL / TLS) om de vertrouwelijkheid en integriteit te bieden.
In deze tabel worden de belangrijkste verschillen tussen de drie protocollen toegelicht:
OpenID |
Outh |
SAML |
||
Data Van | ||||
Huidige versie |
OpenID 2.0 |
OAuth 2.0 |
SAML 2.0 |
SAML 2.0 |
Main Purpose |
Single Sign-On voor consumenten |
API Autorisatie tussen applicaties |
Single Sign-On voor Enterprise-gebruikers |
|
Gebruikte protocollen |
XRDS, HTTP |
JSON, HTTP |
SAM, XML, HTTP, SOAP |
|
Nr. van gerelateerde CVE’s |
Andere protocollen
Er is een groeiend aantal andere federatieve identiteitsopties. Hier zijn een paar voorbeelden.
Higgins: Higgins is een nieuw open source protocol waarmee gebruikers kunnen bepalen welke identiteitsinformatie wordt vrijgegeven aan een onderneming.
Windows CardSpace: CardSpace is het nieuwe identiteitsmetasysteem van Microsoft dat interoperabiliteit biedt tussen identiteitsaanbieders en relying parties waarbij de gebruiker de controle heeft. Dit protocol is echter met pensioen en Microsoft werkt aan een vervanging genaamd U-Prove.
MicroID: MicroID is een nieuwe identiteitslaag voor het web en microformats waarmee iedereen eenvoudig verifieerbaar eigendom kan claimen over zijn eigen pagina’s en content die overal gehost wordt.
Liberty Alliance: Liberty Alliance is een groot commercieel georiënteerd protocol dat identiteitsvertrouwen tussen ondernemingen biedt. Het is het grootste bestaande identiteitsprotocol dat over de hele wereld wordt gebruikt.