Passkey
Jak działa
1) Rejestracja: podczas tworzenia poświadczenia authenticator generuje unikalną parę kluczy dla danej domeny serwisu. Klucz prywatny zostaje w bezpiecznym magazynie urządzenia, a klucz publiczny jest wysyłany i zapisywany przez Relying Party wraz z identyfikatorem poświadczenia. 2) Uwierzytelnienie: serwer wysyła losowe wyzwanie (challenge). Użytkownik odblokowuje klucz prywatny lokalnie — biometrią lub PIN-em urządzenia (weryfikacja użytkownika). Authenticator podpisuje wyzwanie kluczem prywatnym i odsyła podpis. 3) Weryfikacja: serwer sprawdza podpis przy użyciu zapisanego klucza publicznego. Klucz prywatny nigdy nie opuszcza urządzenia. Przeglądarka i system operacyjny wiążą poświadczenie z origin (domeną) serwisu, więc nie da się go użyć na stronie phishingowej. W WebAuthn poświadczenie umożliwiające logowanie bez podawania loginu nazywane jest discoverable credential (resident key).
Rozwiązany problem
Rozwiązuje systemowe słabości uwierzytelniania opartego na hasłach: podatność na phishing, masowe wycieki baz danych z hasłami, ponowne używanie tego samego hasła w wielu serwisach, ataki powtórzeniowe oraz słabe hasła. Ponieważ serwer przechowuje wyłącznie klucz publiczny, jego wyciek nie pozwala podszyć się pod użytkownika.
Komponenty
Tajny klucz pary kryptograficznej przechowywany w bezpiecznym magazynie urządzenia; odblokowywany lokalnie biometrią lub PIN-em.
Jawny klucz pary, zapisywany przez serwis wraz z identyfikatorem poświadczenia. Jego wyciek nie pozwala podszyć się pod użytkownika.
Komponent sprzętowy lub programowy (platformowy, np. telefon/laptop, lub roaming, np. klucz sprzętowy) odpowiedzialny za generowanie kluczy i podpisywanie wyzwań.
Oficjalna
Ustandaryzowane przez W3C API przeglądarkowe pośredniczące między serwisem a authenticatorem (ceremonie create i get).
Część FIDO2; definiuje komunikację między klientem (przeglądarką/OS) a roaming authenticatorem (np. kluczem sprzętowym).
Implementacja
Przy passkeyach device-bound utrata urządzenia może odciąć dostęp do konta; wymagane są mechanizmy odzyskiwania lub dodatkowe poświadczenia.
Odporność na phishing zależy od poprawnej weryfikacji origin i Relying Party ID po stronie serwera; błędna konfiguracja osłabia bezpieczeństwo.
Zachowanie passkeys różni się między systemami, przeglądarkami i menedżerami haseł, co komplikuje spójny UX i przenoszenie między ekosystemami.
Ewolucja
4 marca 2019 W3C publikuje WebAuthn Level 1 — API do poświadczeń opartych na kluczu publicznym, techniczny fundament passkeys.
8 kwietnia 2021 W3C publikuje WebAuthn Level 2, rozwijając specyfikację poświadczeń klucza publicznego.
W marcu 2022 FIDO Alliance publikuje white paper o wielourządzeniowych poświadczeniach FIDO, zarysowując koncepcję synchronizowanych passkeys.
W 2022 roku Apple, Google i Microsoft zadeklarowały rozszerzone wsparcie dla logowania passkey w swoich platformach i przeglądarkach, upowszechniając markę „passkey".
25 sierpnia 2026 W3C publikuje WebAuthn Level 3, najnowszą wersję specyfikacji poświadczeń klucza publicznego.
Hiperparametry (konfigurowalne osie)
platform (wbudowany w urządzenie) lub cross-platform / roaming (zewnętrzny klucz sprzętowy).
Czy poświadczenie jest odnajdywalne (umożliwia logowanie bez podawania loginu): required / preferred / discouraged.
Wymóg lokalnego potwierdzenia tożsamości (biometria/PIN): required / preferred / discouraged.
Algorytm kryptograficzny poświadczenia zakodowany w COSE, np. ES256 (ECDSA P-256) lub RS256.
Czy poświadczenie jest synchronizowane między urządzeniami (synced passkey) czy związane z urządzeniem (device-bound).