OpenID
OpenID jest otwartym standardem sponsorowanym przez Facebook, Microsoft, Google, PayPal, Ping Identity, Symantec i Yahoo. OpenID pozwala na uwierzytelnianie użytkowników za pomocą usług firm trzecich zwanych dostawcami tożsamości. Użytkownicy mogą korzystać z preferowanych przez siebie dostawców OpenID do logowania się na stronach internetowych, które akceptują schemat uwierzytelniania OpenID.
Specyfikacja OpenID definiuje trzy role:
- Użytkownik końcowy lub podmiot, który chce zweryfikować swoją tożsamość
- Strona ufająca (RP), czyli podmiot chcący zweryfikować tożsamość użytkownika końcowego
- Dostawca OpenID (OP), czyli podmiot, który rejestruje adres URL OpenID i może zweryfikować tożsamość użytkownika końcowego
Następujący diagram wyjaśnia przypadek użycia dla scenariusza OpenID:
Uwagi dotyczące bezpieczeństwa
OpenID miał w przeszłości kilka interesujących podatności, na przykład:
- Ataki phishingowe: Ponieważ strona ufająca kontroluje proces uwierzytelniania (jeśli jest to konieczne) do dostawcy OpenID, możliwe jest, że nieuczciwa strona ufająca przekieruje użytkownika do fałszywego dostawcy OpenID i zbierze dane uwierzytelniające użytkownika do legalnego dostawcy OpenID.
- Błędy w uwierzytelnianiu: W marcu 2012 roku, trzech badaczy przedstawiło dokument, który zwrócił uwagę na dwie luki w OpenID. Obie luki pozwalają atakującemu na podszywanie się pod dowolnego użytkownika na stronie internetowej, jeśli strona nie sprawdza poprawnie, czy odpowiedź od dostawcy OpenID zawiera prawidłowo podpisany adres e-mail.
SAML
Security Assertion Markup Language (SAML) jest produktem OASIS Security Services Technical Committee. Począwszy od 2001 roku, SAML jest opartym na XML otwartym standardem wymiany danych uwierzytelniania i autoryzacji pomiędzy stronami.
Specyfikacja SAML definiuje trzy role:
- Zleceniodawca, którym jest zazwyczaj użytkownik chcący zweryfikować swoją tożsamość
- Dostawca tożsamości (idP), czyli podmiot, który jest w stanie zweryfikować tożsamość użytkownika końcowego
- Dostawca usług (SP), czyli podmiot chcący wykorzystać dostawcę tożsamości do zweryfikowania tożsamości użytkownika końcowego
Następujący diagram wyjaśnia przypadek użycia scenariusza SAML:
Uwagi dotyczące bezpieczeństwa
- Grupa badaczy przedstawiła w 2011 roku pracę, w której wykorzystała lukę XML Signature Wrapping do podszywania się pod dowolnego użytkownika.
OAuth
OAuth jest kolejnym otwartym standardem. Pochodzący z 2006 roku, OAuth różni się od OpenID i SAML tym, że służy wyłącznie do autoryzacji, a nie do uwierzytelniania.
Specyfikacje OAuth definiują następujące role:
- Użytkownik końcowy lub podmiot, który jest właścicielem danego zasobu
- Serwer zasobu (OAuth Provider), czyli podmiot hostujący zasób
- Klient (OAuth Consumer), czyli podmiot, który chce skonsumować zasób po uzyskaniu autoryzacji od klienta
Następujący diagram wyjaśnia przypadek użytkownika dla scenariusza OAuth:
Uwagi dotyczące bezpieczeństwa
- W OAuth 1.0. Napastnik może naprawić token dla ofiary, która uzyskała autoryzację. Atakujący następnie używa naprawionego tokena.
- OAuth 2.0 został opisany jako z natury niezabezpieczony protokół, ponieważ nie obsługuje podpisu, szyfrowania, wiązania kanałów ani weryfikacji klienta. Protokół całkowicie opiera się na bezpieczeństwie warstwy transportowej (na przykład SSL/TLS), aby zapewnić poufność i integralność.
Ta tabela wyjaśnia główne różnice pomiędzy tymi trzema protokołami:
OpenID |
OAuth |
SAML |
|
Daty od | |||
Obecna wersja |
OpenID 2.0 |
OAuth 2.0 |
SAML 2.0 |
Main Purpose |
Single Sign-On for Consumers |
Autoryzacja API pomiędzy aplikacjami |
Single Sign-On for Enterprise Users |
Protokoły używane |
XRDS, HTTP |
JSON, HTTP |
SAM, XML, HTTP, SOAP |
No. of Related CVEs |
Inne protokoły
Istnieje coraz większa liczba innych opcji tożsamości federacyjnej. Oto kilka przykładów.
Higgins: Higgins to nowy protokół open source, który pozwala użytkownikom kontrolować, które informacje o tożsamości są udostępniane przedsiębiorstwu.
Windows CardSpace: CardSpace to nowy metasystem tożsamości Microsoftu, który zapewnia interoperacyjność między dostawcami tożsamości i stronami ufającymi z użytkownikiem w kontroli. Ten protokół jest jednak wycofany, a Microsoft pracuje nad zamiennikiem o nazwie U-Prove.
MicroID: MicroID to nowa warstwa tożsamości w sieci i mikroformaty, które pozwalają każdemu po prostu żądać weryfikowalnej własności nad własnymi stronami i treścią hostowaną w dowolnym miejscu.
Liberty Alliance: Liberty Alliance to duży komercyjnie zorientowany protokół zapewniający zaufanie do tożsamości między przedsiębiorstwami. Jest to największy istniejący protokół zaufania do tożsamości wdrożony na całym świecie.