Uwierzytelnianie bez haseł: WebAuthn i FIDO2
Poznają Państwo standard W3C WebAuthn oraz klucze dostępu FIDO2 jako przyszłość uwierzytelniania.
Uwierzytelnianie bez haseł: WebAuthn i FIDO2 to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Architektura FIDO2
FIDO2 to ogólny termin obejmujący specyfikację Web Authentication organizacji W3C (WebAuthn) połączoną z protokołem Client-to-Authenticator Protocol 2 (CTAP2) organizacji FIDO Alliance. Razem definiują kompletny system uwierzytelniania bez haseł, wykorzystujący kryptografię klucza publicznego powiązaną z originem strony ufającej.
Typy uwierzytelniających urządzeń
FIDO2 obsługuje dwie kategorie uwierzytelniających urządzeń. Uwierzytelniające urządzenia platformowe są wbudowane w urządzenie: Touch ID i Face ID na urządzeniach Apple oraz Windows Hello w systemie Windows. Uwierzytelniające urządzenia roamingowe to zewnętrzne tokeny sprzętowe: YubiKey, Google Titan Key i klucze Feitian. Wszystkie wykorzystują kryptografię klucza publicznego i generują oświadczenia atestacyjne.
Rejestracja: tworzenie poświadczenia
Podczas rejestracji WebAuthn uwierzytelniające urządzenie generuje nową parę kluczy asymetrycznych dla strony ufającej. Klucz publiczny jest wysyłany do serwera i zapisywany. Klucz prywatny nigdy nie opuszcza uwierzytelniającego urządzenia. Oświadczenie atestacyjne potwierdza typ uwierzytelniającego urządzenia oraz to, że klucz został wygenerowany wewnątrz jego sprzętu.
Uwierzytelnianie: asercja poświadczenia
Podczas uwierzytelniania WebAuthn serwer wysyła wyzwanie do klienta. Uwierzytelniające urządzenie podpisuje wyzwanie wraz z identyfikatorem strony ufającej i danymi klienta, używając zapisanego klucza prywatnego. Serwer weryfikuje podpis za pomocą zapisanego klucza publicznego. W żadnym momencie nie jest przesyłany współdzielony sekret.
Powiązanie z originem zapobiega phishingowi
Identyfikator strony ufającej w asercji WebAuthn jest kryptograficznie powiązany z originem (domeną) żądającej strony. Uwierzytelniające urządzenie odmówi podpisania asercji dla innego originu niż ten, z którym zostało zarejestrowane. Dzięki temu WebAuthn jest z założenia odporne na phishing: fałszywa strona phishingowa nie może ukończyć uwierzytelniania.
Klucze rezydentne i prawdziwe uwierzytelnianie bez hasła
Wykrywalne poświadczenia (dawniej nazywane kluczami rezydentnymi) są przechowywane na samym uwierzytelniającym urządzeniu i indeksowane według identyfikatora strony ufającej. Umożliwia to prawdziwe uwierzytelnianie bez hasła: użytkownik przedstawia swoje uwierzytelniające urządzenie, wybiera konto spośród poświadczeń zapisanych na urządzeniu i uwierzytelnia się bez podawania nazwy użytkownika ani hasła.
Weryfikacja użytkownika a obecność użytkownika
WebAuthn rozróżnia weryfikację użytkownika (UV) i obecność użytkownika (UP). Obecność użytkownika wymaga jedynie dotknięcia lub stuknięcia w uwierzytelniające urządzenie. Weryfikacja użytkownika wymaga dodatkowo podania kodu PIN lub sprawdzenia biometrycznego, co potwierdza obecność konkretnej osoby. Aplikacje o wysokich wymaganiach bezpieczeństwa powinny wymagać UV podczas uwierzytelniania.
Protokół CTAP2
CTAP2 definiuje protokół komunikacji między klientem (przeglądarką lub systemem operacyjnym) a zewnętrznym uwierzytelniającym urządzeniem roamingowym przez USB, NFC lub BLE. Określa polecenia służące do tworzenia poświadczeń, generowania asercji i zarządzania uwierzytelniającym urządzeniem. CTAP2.1 dodaje funkcje takie jak zarządzanie poświadczeniami oraz zasady always-UV.
Passkeys: synchronizowane poświadczenia
Passkeys to wykrywalne poświadczenia WebAuthn, które synchronizują się między urządzeniami użytkownika za pośrednictwem szyfrowanej chmury dostawcy platformy (iCloud Keychain w przypadku Apple, Google Password Manager oraz Windows Hello for Business). Passkeys zapewniają uwierzytelnianie bez hasła i dostępność na różnych urządzeniach, łącząc bezpieczeństwo z wygodą oczekiwaną przez użytkowników korzystających z haseł.
Przebieg uwierzytelniania za pomocą passkey
Typowy przebieg uwierzytelniania za pomocą passkey: użytkownik odwiedza witrynę i klika „Zaloguj się za pomocą passkey”. Przeglądarka wyświetla dostępne passkeys dla tej witryny. Użytkownik uwierzytelnia się biometrycznie (Face ID, Touch ID, Windows Hello). Przeglądarka podpisuje wyzwanie i wysyła asercję. Cały proces trwa kilka sekund i nie wymaga wpisywania hasła.
Porównanie WebAuthn z tradycyjnym uwierzytelnianiem
Tradycyjne hasła: podatne na phishing, wielokrotnego użytku i możliwe do złamania w wyniku wycieków baz danych. Kody OTP (TOTP): podatne na phishing w czasie rzeczywistym. Kody SMS: podatne na przejęcie przez wymianę karty SIM oraz na phishing. WebAuthn/passkeys: odporne na phishing dzięki powiązaniu z originem, bez sekretu po stronie serwera, który można wykraść, unikatowe dla każdej witryny i chronione sprzętowo klucze prywatne. WebAuthn to obecnie najsilniejszy powszechnie wdrożony mechanizm uwierzytelniania.
Sprawdzenie WebAuthn a haseł
Jaka właściwość WebAuthn sprawia, że mechanizm ten jest z natury odporny na ataki phishingowe, w przeciwieństwie do haseł lub kodów TOTP?
Podsumowanie lekcji: FIDO2 i WebAuthn
FIDO2 łączy WebAuthn (W3C) i CTAP2 (FIDO Alliance), zapewniając odporne na phishing uwierzytelnianie bez haseł. Uwierzytelniające urządzenia platformowe (Touch ID, Face ID) i roamingowe (YubiKey) wykorzystują kryptografię klucza publicznego powiązaną z originem strony ufającej. Passkeys rozszerzają te możliwości o synchronizację między urządzeniami. WebAuthn zapewnia obecnie najsilniejszą powszechnie dostępną ochronę uwierzytelniania.
Ucz się Cryptology Academy dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 67
- Lekcje
- 261
Często zadawane pytania
Czy lekcja „Uwierzytelnianie bez haseł: WebAuthn i FIDO2” jest bezpłatna?
Tak — pełny tekst „Uwierzytelnianie bez haseł: WebAuthn i FIDO2” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Uwierzytelnianie bez haseł: WebAuthn i FIDO2”?
Poznają Państwo standard W3C WebAuthn oraz klucze dostępu FIDO2 jako przyszłość uwierzytelniania. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?
Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Uwierzytelnianie bez haseł: WebAuthn i FIDO2”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?
Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawowy problem uwierzytelniania hasłem
- SRP: protokół bezpiecznego zdalnego hasła
- Protokoły PAKE i ich właściwości
- Uwierzytelnianie bez haseł: WebAuthn i FIDO2