/ / W jaki sposób OpenId jest bezpieczny? - uwierzytelnianie, openid

W jaki sposób OpenId jest bezpieczny? - uwierzytelnianie, openid

Znalazłem to w innym SO wątek:

Kroki:

  1. Użytkownik łączy się z witryną obsługującą OpenID.
  2. Użytkownik wprowadza dane uwierzytelniające.
  3. POST jest wykonywany za pomocą BASE64 (strona internetowa do dostawcy)
  4. Odpowiedź została zbudowana (zawiera datę ważności)
  5. Witryna przekierowuje użytkownika do dostawcy w celu zalogowania.
  6. Użytkownik wprowadza hasło i przesyła.
  7. Weryfikacja jest zakończona.
  8. Zaloguj sie!

Jak zabezpieczone są kroki 6-8? Z mojego punktu widzenia klient uwierzytelnia się z dostawcą i przekazuje wyniki do naszego serwera.

Co powstrzymuje klienta przed sfałszowaniem wyniku uwierzytelnienia?

Odpowiedzi:

2 dla odpowiedzi № 1

Wynik uwierzytelnienia jest przede wszystkim podpisany kryptograficznie przez dostawcę. Istnieją również inne środki bezpieczeństwa chroniące przed innymi atakami.

Cytując Specyfikacja OpenID 2.0, sekcja 11.:

Gdy strona ufająca otrzyma pozytywne stwierdzenie, MUSI zweryfikować następujące kwestie przed zaakceptowaniem twierdzenia:

  • Wartość „openid.return_to” odpowiada adresowi URL bieżącego żądania (Sekcja 11.1)
  • Odkryte informacje są zgodne z informacjami zawartymi w stwierdzeniu (Sekcja 11.2)
  • Asercja nie została jeszcze zaakceptowana z tego PO o tej samej wartości dla „openid.response_nonce” (Sekcja 11.3)
  • Podpis na potwierdzeniu jest prawidłowy, a wszystkie pola, które wymagają podpisu, są podpisane (Sekcja 11.4)

Klient może oczywiście wysłać fałszywy wynik uwierzytelnienia, ale nie przejdzie weryfikacji.