Hesla jsou mrtvá. Tedy — měla by být. Přes 80 % úniků dat začíná kompromitovaným heslem. Passkeys, postavené na standardu FIDO2/WebAuthn, konečně přinášejí reálnou alternativu: přihlášení otiskem prstu nebo obličejem, bez jediného hesla. V roce 2024 je adoptují Google, Apple, Microsoft i velké banky. Tady je, co potřebujete vědět.
Co jsou passkeys¶
Passkey je kryptografický klíčový pár (veřejný + privátní klíč) vázaný na konkrétní doménu. Privátní klíč nikdy neopustí zařízení uživatele — je chráněn biometrikou (Face ID, Touch ID, Windows Hello) nebo PINem. Veřejný klíč se uloží na serveru. Při přihlášení server pošle challenge, zařízení ho podepíše privátním klíčem, server ověří podpis veřejným klíčem. Hotovo.
Žádné heslo, které by mohl útočník ukrást, phishnout nebo brute-forcovat. Žádná databáze hesel, která by mohla uniknout. Žádné „zapomněl jsem heslo” formuláře.
Proč teď — co se změnilo¶
FIDO2/WebAuthn standard existuje od roku 2019, ale chyběla klíčová ingredience: synchronizace klíčů mezi zařízeními. Původní model (device-bound credentials) znamenal, že ztráta telefonu = ztráta přístupu. V roce 2022 Apple, Google a Microsoft oznámily podporu pro synced passkeys — klíče se synchronizují přes iCloud Keychain, Google Password Manager nebo Microsoft Account.
V roce 2024 je podpora univerzální: Safari, Chrome, Firefox, Edge. iOS 16+, Android 14+, Windows 11, macOS Sonoma. Ekosystém je připravený.
Jak passkeys fungují technicky¶
Registrace: Server vygeneruje challenge a parametry
(relying party ID = doména, user info, podporované algoritmy). Prohlížeč
zavolá navigator.credentials.create(). OS zobrazí biometrický
prompt. Po ověření se vytvoří klíčový pár, veřejný klíč + credential ID
se pošlou serveru.
Přihlášení: Server pošle challenge a seznam povolených
credential ID. Prohlížeč zavolá navigator.credentials.get().
OS nabídne dostupné passkeys pro danou doménu. Uživatel ověří biometrikou.
Zařízení podepíše challenge privátním klíčem. Server ověří podpis.
Celý proces trvá typicky 2–3 sekundy. Žádné vyplňování formulářů, žádné kopírování kódů z SMS.
Phishing-resistant by design¶
Passkeys jsou vázané na doménu (origin). Pokud se uživatel dostane na phishingovou stránku fake-banka.cz místo banka.cz, prohlížeč jednoduše nenajde žádný passkey pro tuto doménu. Útok selže automaticky, bez jakéhokoliv rozhodování uživatele. To je zásadní rozdíl oproti heslům a dokonce i OTP kódům, které lze přeposílat v reálném čase.
Implementace ve webové aplikaci¶
Na serverové straně potřebujete WebAuthn knihovnu. V Node.js je to @simplewebauthn/server, v Javě java-webauthn-server (Yubico), v Pythonu py_webauthn. Základní flow:
- Endpoint pro generování registration options (challenge, RP info)
- Endpoint pro verifikaci registration response (uložení veřejného klíče)
- Endpoint pro generování authentication options (challenge)
- Endpoint pro verifikaci authentication response (ověření podpisu)
Na klientské straně stačí volání WebAuthn API — pár desítek řádků JavaScriptu. Žádné SDK, žádné závislosti.
Conditional UI — passkeys bez tlačítka¶
Novinka v roce 2024: conditional mediation. Prohlížeč automaticky nabídne passkey v autocomplete dropdown přímo v login formuláři. Uživatel nemusí klikat na „Přihlásit se passkey” — prostě klikne na nabídnutý účet v autocomplete. UX je totožný s password managerem, ale pod kapotou běží kryptografie místo hesla.
Enterprise adopce a výzvy¶
Pro enterprise prostředí jsou klíčové otázky: device management (co když zaměstnanec odejde?), recovery (co když ztratí všechna zařízení?) a attestation (jak ověřit, že passkey je na firemním, ne osobním zařízení?).
Řešení: kombinace synced passkeys (pro běžné uživatele) a device-bound passkeys na hardware klíčích YubiKey (pro privilegované účty). Recovery přes IT helpdesk s identity verification. Attestation metadata service (FIDO MDS) pro ověření typu authenticatoru.
Migrace z hesel — postupný přístup¶
Nedoporučujeme big bang. Osvědčený postup:
- Nabídněte passkey registraci po úspěšném přihlášení heslem
- Promujte passkeys v UI — „Přihlaste se rychleji bez hesla”
- Po dosažení kritické masy (60 %+) nastavte passkey jako default login method
- Heslo ponechte jako fallback, ale s přísnějším MFA
Hesla patří do minulosti¶
Passkeys nejsou budoucnost — jsou přítomnost. Ekosystém je v roce 2024 připravený, knihovny zralé, uživatelská zkušenost lepší než s hesly. Každá nová aplikace by měla passkeys podporovat od prvního dne. A ty existující? Začněte s optional passkey registrací. Vaši uživatelé (a váš security tým) vám poděkují.