Cryptology Academy · Lekcja

Uwierzytelnianie bez haseł: WebAuthn i FIDO2

Poznają Państwo standard W3C WebAuthn oraz klucze dostępu FIDO2 jako przyszłość uwierzytelniania.

Lekcja 4 z 413 kroki

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.

Bezpłatny start

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

  1. Podstawowy problem uwierzytelniania hasłem
  2. SRP: protokół bezpiecznego zdalnego hasła
  3. Protokoły PAKE i ich właściwości
  4. Uwierzytelnianie bez haseł: WebAuthn i FIDO2
← Powrót do Cryptology Academy