Porównanie 3 najlepszych dostawców tożsamości federacyjnej: OpenID, OAuth, SAML8 min read

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:

federated identity_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:

federated identity_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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *