WebAuthn jest warstwą uwierzytelniania standardu FIDO2. Zamiast polegać na sekretach zapamiętywanych przez użytkownika, stosuje kryptografię asymetryczną. Podczas rejestracji authenticator użytkownika (klucz sprzętowy, bezpieczna enklawa, TPM itp.) generuje parę kluczy prywatny–publiczny powiązaną z domeną strony ufającej. Przeglądarka wysyła klucz publiczny i dane attestacji do serwera, który przechowuje je jako rekord poświadczenia. Klucz prywatny nigdy nie opuszcza urządzenia użytkownika.
Przepływ uwierzytelniania
Podczas logowania serwer wystawia losowe wyzwanie. Przeglądarka przekazuje to wyzwanie do authenticatora, który weryfikuje obecność użytkownika (np. naciśnięcie przycisku), opcjonalnie wymusza weryfikację użytkownika (PIN, biometria) i podpisuje wyzwanie przechowywanym kluczem prywatnym. Serwer waliduje podpis przy użyciu wcześniej zarejestrowanego klucza publicznego i sprawdza, czy licznik podpisów authenticatora wzrósł — chroni to przed sklonowanymi kluczami.
Klucze dostępu
Klucze dostępu rozszerzają poświadczenia WebAuthn, umożliwiając ich dostępność na wielu urządzeniach. Systemy operacyjne synchronizują poświadczenia przez zaszyfrowane end-to-end przechowywanie w chmurze. Klucz dostępu można odblokować lokalną metodą uwierzytelniania urządzenia (Touch ID, Face ID, Windows Hello, biometria Android) i używać go w różnych przeglądarkach i urządzeniach. Eliminuje to konieczność zapamiętywania lub wpisywania czegokolwiek, zachowując bezpieczeństwo sprzętowe.
Zalety nad hasłami
- Odporność na phishing – Authenticator wiąże każde poświadczenie z konkretnym źródłem; strona phishingowa nie jest w stanie nakłonić go do podpisania wyzwania dla innej domeny.
- Brak współdzielonych sekretów – Bez bazy danych haseł ryzyko wycieku poświadczeń jest drastycznie zmniejszone. Nawet jeśli magazyn poświadczeń serwera zostanie naruszony, atakujący otrzymuje tylko klucze publiczne.
- Lepsza użyteczność – Użytkownicy po prostu potwierdzają monit biometryczny lub dotykają klucza bezpieczeństwa. Klucze dostępu na wielu urządzeniach eliminują resetowanie haseł i błędy przy wpisywaniu.
- Silne uwierzytelnianie wieloskładnikowe – WebAuthn może spełnić wymóg „coś, co masz" (authenticator) i „coś, czym jesteś/co wiesz" (biometria lub PIN) w jednym geście, osiągając silne MFA przy minimalnym wysiłku.
- Odporność na ataki powtórkowe i credential stuffing – Wyzwania są jednorazowe, a klucze prywatne nie mogą być ponownie używane w różnych serwisach, co udaremnia ataki powtórkowe i credential stuffing.
