Blog 24/7

FIDO2 / WebAuthn

TAB. 1Hasłobez tłumaczenia
Po angielskuWebAuthn / FIDO2
Którą formą pisaćbez tłumaczenia Skrót, nazwa własna albo nazwa standardu — nie tłumaczymy w ogóle.
Inne formystandard logowania bez hasła · klucz bezpieczeństwa (nazwa urządzenia, nie standardu)
KategoriaKryptografia, tożsamość i uwierzytelnianie

FIDO2 to zestaw standardów logowania kluczem kryptograficznym, na który składają się specyfikacja W3C WebAuthn i protokół FIDO CTAP [1]. WebAuthn opisuje interfejs przeglądarki, przez który strona tworzy i używa poświadczeń opartych na kluczu publicznym [2]. CTAP opisuje komunikację między komputerem a zewnętrznym urządzeniem uwierzytelniającym [3]. Na FIDO2 opierają się passkeye i sprzętowe klucze bezpieczeństwa [1].

Jak działa

FIDO2 stosuje kryptografię asymetryczną. Przy rejestracji uwierzytelniacz (authenticator) tworzy parę kluczy dla konkretnego serwisu. Klucz publiczny trafia do serwisu, prywatny zostaje w urządzeniu użytkownika [1]. Przy logowaniu serwis wysyła losowe wyzwanie, a uwierzytelniacz odsyła je podpisane kluczem prywatnym. Specyfikacja nazywa tę podpisaną odpowiedź asercją [2].

Strona korzysta z dwóch wywołań: navigator.credentials.create() rejestruje poświadczenie, a navigator.credentials.get() służy do logowania [2]. Przebieg logowania kluczem sprzętowym pokazuje schemat poniżej.

RYS. 1Logowanie kluczem FIDO2

Kluczowe jest powiązanie z domeną. Poświadczenie ma zakres wyznaczony przez identyfikator strony ufającej (RP ID), opartym na domenie, co uniemożliwia użycie go na innej witrynie [2]. Operacje WebAuthn wymagają bezpiecznego kontekstu, czyli HTTPS [2].

Przy rejestracji uwierzytelniacz może dołączyć zaświadczenie (attestation), czyli kryptograficzny dowód swojego pochodzenia i właściwości [2]. Serwis może na tej podstawie sprawdzić, jakiego rodzaju urządzenie rejestruje użytkownik, na przykład gdy dopuszcza tylko klucze sprzętowe określonego typu.

Specyfikacja rozróżnia dwa poziomy udziału człowieka [2]. Obecność użytkownika (user presence) to samo dotknięcie lub inna prosta interakcja. Weryfikacja użytkownika (user verification) to sprawdzenie PIN-u albo biometrii wewnątrz uwierzytelniacza [2]. FIDO Alliance podkreśla, że dane biometryczne pozostają w urządzeniu i nigdy nie są wysyłane do serwera [1].

Odmiany

WebAuthn dzieli uwierzytelniacze na platformowe, wbudowane w urządzenie, i przenośne (roaming), takie jak klucze USB [2]. CISA dodaje, że przenośne łączą się przez USB albo NFC [4]. Specyfikacja CTAP przewiduje trzy transporty: USB HID, NFC i Bluetooth Low Energy [3].

Z punktu widzenia historii standardu ważne są dwa pokolenia protokołu.

CechaU2F (CTAP1)FIDO2 (CTAP2 i WebAuthn)
Kodowanie komunikatówbinarne, w stylu APDU [3]CBOR [3]
Rola kluczadrugi składnik po haśle [5]może zastąpić hasło, z PIN-em [5]
Odporność na phishingtak [5]tak [4]

Sekurak opisuje różnicę praktycznie: przy U2F użytkownik podaje login i hasło, a potem potwierdza logowanie kluczem; przy FIDO2 wystarczy klucz i krótki PIN [5]. Ten sam mechanizm stoi za passkeyami. FIDO Alliance wyjaśnia, że passkeye wykorzystują te same standardy FIDO2, a użytkownik zatwierdza logowanie tak, jak odblokowuje urządzenie: biometrią, PIN-em albo wzorem [1]. Różnica dotyczy miejsca przechowywania klucza, a nie protokołu. Logowanie bez hasła należy do rodziny uwierzytelniania bez hasła (passwordless).

W WordPressie

Rdzeń WordPressa nie obsługuje WebAuthn. Formularz logowania przyjmuje nazwę użytkownika i hasło, a klucze FIDO2 dodaje się wtyczkami. Wtyczka WebAuthn Provider for Two Factor rozszerza wtyczkę Two Factor o obsługę WebAuthn i passkeyów [6]. Wymaga WordPressa 6.0, PHP 8.1 i połączenia HTTPS [6]. Obsługuje między innymi Windows Hello, Touch ID, klucze YubiKey i klucze FIDO U2F [6].

Przy wdrożeniu na stronie WordPress trzeba pamiętać o kilku sprawach:

  • poświadczenie jest związane z domeną [2], więc przeniesienie strony na nową domenę wymaga ponownej rejestracji kluczy;
  • bez HTTPS WebAuthn nie zadziała [2], stąd potrzeba poprawnego certyfikatu SSL/TLS;
  • w trybie drugiego składnika konto nadal ma hasło, więc limit prób logowania pozostaje potrzebny;
  • XML-RPC i hasła aplikacji to kanały logowania poza formularzem; warto sprawdzić, czy nie pozwalają wejść samym hasłem.

Znaczenie

CISA nazywa uwierzytelnianie FIDO/WebAuthn jedyną szeroko dostępną formą uwierzytelniania odpornego na phishing [4]. W zestawieniu metod uwierzytelniania wieloskładnikowego (MFA) stawia je na szczycie jako „złoty standard” [4]. Według CISA ataki push bombing, przez protokół SS7 i wyłudzenie duplikatu karty SIM nie mają zastosowania do tej metody [4].

Różnica względem kodów jednorazowych jest zasadnicza. CISA opisuje typowy phishing, w którym ofiara wpisuje na fałszywej stronie login, hasło i sześciocyfrowy kod z aplikacji [4]. Kodu nic nie wiąże z domeną, więc pośrednik może go przekazać do prawdziwego serwisu, jak w ataku phishing AiTM (adversary-in-the-middle). Asercja FIDO2 jest związana z RP ID [2], więc na obcej domenie klucz jej nie wyda. Sekurak zauważa, że narzędzia pośredniczące, takie jak Evilginx2, w takiej sytuacji zawodzą [5].

Dobre praktyki

  • Zarejestrować co najmniej dwa uwierzytelniacze. Sekurak zachęca do zakupu dwóch kluczy, głównego i zapasowego [5].
  • Dla kont administratorów wybrać klucz sprzętowy albo passkey; CISA zaleca migrację do MFA odpornego na phishing przede wszystkim administratorom i innym cennym celom [4].
  • Zabezpieczyć procedurę odzyskiwania konta, bo słaby reset hasła omija nawet najlepszy składnik.
  • Pamiętać o ograniczeniach. Sekurak podkreśla, że klucze sprzętowe nie chronią przed każdym zagrożeniem, na przykład przed socjotechniką nakłaniającą do instalacji złośliwego oprogramowania [5].

FIDO2 jest jedną z metod MFA i dobrze sprawdza się jako składnik logowania przez SSO.

Historia i przykłady

WebAuthn powstał w FIDO Alliance jako część standardów FIDO2, a publikuje go W3C [4]. Drugi poziom specyfikacji W3C wydało jako rekomendację 8 kwietnia 2021 roku [2]. Wersję 2.1 protokołu CTAP FIDO Alliance opublikowało jako proponowany standard 15 czerwca 2021 roku [3]. W październiku 2022 roku CISA wydała zalecenia wdrażania MFA odpornego na phishing, oparte na FIDO/WebAuthn [4].

TAB. 2

Przypisy

6
  1. [1] FIDO2: Web Authentication (WebAuthn) and Client to Authenticator Protocol · FIDO Alliance
  2. [2] Web Authentication: An API for accessing Public Key Credentials, Level 2 · W3C
  3. [3] Client to Authenticator Protocol (CTAP), Proposed Standard, June 15, 2021 · FIDO Alliance
  4. [4] Implementing Phishing-Resistant MFA · CISA
  5. [5] Poradnik o kluczach sprzętowych na przykładzie YubiKey 5 NFC (2FA, U2F, FIDO2) · Sekurak
  6. [6] WebAuthn Provider for Two Factor · WordPress.org
TAB. 3

Hasła w tym artykule

15
TAB. 4

Linkują tutaj

21

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com