• webauthn
  • passkey
  • authentication
  • MFA

WebAuthn i Passkey 101

Zdobądź kompleksowe zrozumienie WebAuthn, w tym jego koncepcji, przepływu pracy, powodów popularności oraz związanych z tym wyzwań.

Ran
Ran
Product & Design

WebAuthn jest jednym z najbezpieczniejszych autentykatorów w standardach NIST AAL. Wprowadzony w 2013 roku, stał się teraz preferowanym wyborem firm do uwierzytelniania. Jednak jego wdrożenie nie jest jeszcze powszechne, co prowadzi do wielu zapytań na temat WebAuthn i Passkey. Zanurzmy się w to, co powinieneś wiedzieć.

Koncepcja: Jaka jest relacja między WebAuthn, Passkey i FIDO?

FIDO Alliance

FIDO Alliance to organizacja zapewniająca standardy bezhasłowego uwierzytelniania open-source, w tym UAF, U2F i FIDO2.

FIDO2

FIDO2 to zbiór standardów dla bezpiecznego uwierzytelniania online rozwinięty przez FIDO Alliance. FIDO2 składa się z dwóch głównych komponentów: WebAuthn dla bezhasłowego logowania i CTAP dla bezpiecznej komunikacji urządzeń.

Passkey

Passkey to oparte na FIDO, odporne na phishing poświadczenie zastępujące hasła.

  1. Może to być sprzętowy token lub klucze bezpieczeństwa, takie jak urządzenia USB lub Bluetooth.
  2. Wykorzystuje asymetryczną kryptografię klucza publicznego dla zwiększenia bezpieczeństwa.
  3. Oferuje elastyczność połączeń z platformami, kluczami bezpieczeństwa lub synchronizacją pomiędzy urządzeniami.
WebAuthn

WebAuthn, API JavaScript opracowane przez W3C i FIDO Alliance, umożliwia aplikacjom webowym uwierzytelnianie zgodne ze standardami FIDO2. Passkey jest jedną z metod uwierzytelniania obsługiwanych przez WebAuthn.

Przepływ: Jak działa WebAuthn?

4 główne jednostki WebAuthn

Podstawowo, możesz znać 4 główne jednostki zaangażowane w przepływie WebAuthn.

  1. Użytkownik: Osoba, która zapisuje się lub uwierzytelnia w aplikacji webowej za pomocą WebAuthn.

  2. Agent użytkownika: Przeglądarka internetowa obsługująca wywołania API WebAuthn, zarządzająca procesem uwierzytelniania pomiędzy różnymi stronami internetowymi a autentykatorami.

  3. Relying Party: Twoja usługa webowa lub aplikacja, do której użytkownik próbuje uzyskać dostęp. Użytkownik korzysta z usługi przez Agenta użytkownika.

  4. Autentykator: Sprzęt posiadany przez użytkownika do weryfikacji jego tożsamości. Może występować w różnych formach w zależności od platformy lub możliwości przeglądarki, takich jak klucze bezpieczeństwa (jak Yubikey), telefony czy tablety (połączone przez Bluetooth, NFC lub USB), biometrie urządzeń lub PINy.

główne jednostki

Przepływy WebAuthn

Asymetryczna kryptografia klucza publicznego jest kluczowym procesem.

  1. Generowanie pary kluczy: Agent użytkownika generuje parę kluczy publiczno-prywatnych. Klucz publiczny jest udostępniany usłudze Relying Party, podczas gdy klucz prywatny pozostaje bezpiecznie przechowywany w autentykatorze użytkownika.
  2. Wyzwanie uwierzytelniające: Kiedy użytkownik próbuje się zalogować, Relying Party wysyła wyzwanie uwierzytelniające do Agenta użytkownika.
  3. Weryfikacja użytkownika: Agent użytkownika wysyła wyzwanie do autentykatora, który komunikuje się z użytkownikiem w celu weryfikacji (np. biometria lub naciśnięcie przycisku).
  4. Podpis kryptograficzny: Autentykator używa swojego klucza prywatnego do podpisania wyzwania, tworząc podpis kryptograficzny.
  5. Weryfikacja i dostęp: Agent użytkownika weryfikuje podpis przy użyciu klucza publicznego i informuje Relying Party o pomyślnym uwierzytelnieniu. Dostęp jest przyznawany.

Aby wyjaśnić, podziel to na fazy zapisu i uwierzytelniania.

Przepływ zapisu WebAuthn: przepływ zapisu

Przepływ uwierzytelniania WebAuthn: przepływ uwierzytelniania

Zalety: Dlaczego WebAuthn staje się trendem?

Wiele autentykatorów

Masz możliwość wyboru z wielu autentykatorów dla większej elastyczności. Te autentykatory występują w dwóch typach, zarówno do lokalnego, jak i chmurowego użytku, i możesz włączyć jeden lub oba dla swojej usługi.

Autentykator platformowy (autentykator wewnętrzny)

Autentykator platformowy jest związany z jednym i konkretnym systemem operacyjnym urządzenia, takim jak komputer, laptop, telefon lub tablet, na którym użytkownik się loguje. Działa wyłącznie na urządzeniu dla autoryzacji z użyciem metod takich jak biometria lub hasło urządzenia. To szybki sposób autentykacji, szczególnie z biometrią, i może zastąpić konieczność ręcznego wpisywania hasła. Jednak jeśli użytkownik straci urządzenie, może to stać się barierą dostępu. Na przykład:

  • MacOS i iOS: iCloud Keychain weryfikowane przez Touch ID, Face ID lub hasło urządzenia.
  • Windows: Windows Hello weryfikowane przez rozpoznawanie twarzy, odciski palców lub przyjazny PIN.
  • Android: Google Password Manager także wspiera rozpoznawanie twarzy lub odcisk palca do autouzupełniania haseł do autoryzacji urządzeń.

autentykator platformowy

Autentykator przenośny (autentykator zewnętrzny, autentykator międzyplatformowy)

Autentykator przenośny to oddzielne, przenośne urządzenie lub aplikacja oprogramowania, takie jak sprzętowy klucz bezpieczeństwa lub smartfon. Powinno połączyć urządzenie przez USB lub utrzymać NFC lub Bluetooth włączone. Autentykator przenośny nie jest ograniczony do jednego urządzenia lub przeglądarki, zapewniając większą elastyczność. Na przykład:

  • Klucze bezpieczeństwa: znane również jako tokeny sprzętowe, takie jak Yubikey.
  • Smartfon mobilny: jak użycie konta Google w chmurze na Androidzie lub konta iCloud na iPhonie. Co ważne, autentykacja między urządzeniami również wymaga połączenia z Bluetooth, NFC lub USB, by zapewnić, że autentykator użytkownika jest w pobliżu. Mobilne autentykatory często wymagają skanu kodu QR, aby połączyć je z urządzeniami biurkowymi. (Telefony z Android em szczególnie mogą używać Persistent Linking do bezproblemowego połączenia z przeglądarką Chrome dla autoryzacji jednym kliknięciem bez potrzeby skanowania kodu QR.)

autentykator przenośny

Wysokie bezpieczeństwo

Wysokie bezpieczeństwo jest kluczowe dla zabezpieczenia zasobów biznesowych. Osiąga się je poprzez następujące środki:

  1. Ochrona kluczy prywatnych: Klucze prywatne nigdy nie są udostępniane stronom trzecim (Rely Party), co pomaga chronić przed naruszeniami haseł i próbami phishingu.
  2. Wymóg bliskości urządzenia: Urządzenia wymagają albo "Autentykacji platformowej dla jednego urządzenia" albo "Autentykatora przenośnego ograniczonego przez USB, Bluetooth lub NFC" w pobliżu użytkownika, co zapobiega atakom zdalnym.
  3. Powiązanie domenowe: WebAuthn jest ściśle powiązany z konkretną domeną strony internetowej zarejestrowanej przez użytkownika, zapewniając ochronę przed phishingowymi atakami z nieautoryzowanych stron.

Bezproblemowe doświadczenie użytkownika dla MFA&1FA

WebAuthn zwiększa bezpieczeństwo, jednocześnie podnosząc doświadczenie użytkownika związanego z weryfikacją bezhasłową:

  • Naturlane doświadczenie i efektywność biometrii: WebAuthn przyjmuje specyficzne metody uwierzytelniania dostosowane do różnych platform i urządzeń, co odpowiada nawykom użytkowników. Weryfikacja biometryczna eliminuje potrzebę ręcznego wprowadzania danych, znacznie przyspieszając proces weryfikacji.
  • Bezpośrednie MFA pomijające 1FA: WebAuthn jest często używane w przypadku MFA (uwierzytelnianie wieloskładnikowe). Ze względu na swoje solidne bezpieczeństwo, jeśli Rely Party wcześniej zarejestrowała użycie WebAuthn w przeglądarce, użytkownicy mogą pominąć krok 1FA (uwierzytelnianie jednoskładnikowe) i zalogować się bezpośrednio przez weryfikację Passkey.
  • Passkey zastępujący hasło: Passkey mogą także służyć jako alternatywa dla tradycyjnych haseł dla 1FA. Użytkownicy mogą przedstawić swój Passkey przed lub po wprowadzeniu swojego konta, a weryfikacja hasła jest wymagana tylko wtedy, gdy autentykacja Passkey nie jest dostępna.

Wyzwanie: Dlaczego WebAuthn nie jest szeroko przyjęty przez użytkowników?

Ograniczenia przeglądarki lub platformy

Niektóre przeglądarki lub platformy nie obsługują w ogóle WebAuthn lub brakuje im wsparcia dla autentykatorów przenośnych. Statystyki Caniuse pokazują obecnie dobre wsparcie, z pokryciem 97,37% na platformie desktopowej i 96,3% na mobilnej, ale różnice wciąż istnieją w wersjach przeglądarek i systemów operacyjnych. Na przykład, Desktop Linux nie obsługuje autentykatorów platformowych, Android w pełni wspiera WebAuthn tylko na Chrome, a Internet Explorer na MacOS nie obsługuje WebAuthn. To zmusza administratorów do zlecania członkom korzystania z konkretnych przeglądarek lub systemów operacyjnych albo konfigurowania innych alternatywnych metod MFA.

wsparcie przeglądarki

Ryzyko utraty urządzenia

Szczególnie dla użytkowników polegających na autentykatorach platformowych typu "To urządzenie", utrata urządzenia może prowadzić do utraty dostępu do swoich kont. Odzyskiwanie konta może być uciążliwym procesem. Aby złagodzić to ryzyko, zaleca się, aby użytkownicy jednocześnie powiązywali inne metody autentykacji zapasowej podczas konfiguracji WebAuthn.

Ograniczone wsparcie stron i aplikacji

Wiele usług i aplikacji nie oferuje jeszcze wsparcia dla Passkey. Użytkownicy często nie znają różnych metod uwierzytelniania i mogą nie w pełni rozumieć różnice i ograniczenia między autentykatorami platformowymi a przenośnymi. Jednak główne systemy, przeglądarki i usługi SaaS coraz częściej przyjmują WebAuthn, czyniąc to rosnącym trendem, który zarówno firmy, jak i użytkownicy zaczynają przyjmować.

Podsumowanie

Logto przygotowuje się do wprowadzenia MFA (uwierzytelnianie wieloskładnikowe) w listopadzie. W fazie początkowej będą obsługiwane trzy metody weryfikacji: aplikacja Autentifikatora TOTP, WebAuthn (Passkey) i kody zapasowe, oferując kompleksowe rozwiązanie logowania i rejestracji. Będziemy kontynuować rozwijanie zaawansowanych funkcji związanych z WebAuthn. Czekamy na Twoje doświadczenia i zapraszamy do obserwowania na Product Hunt nadchodzące wydanie MFA.