Standardy · FIDO CTAP 2.2 hybrid (QR kód passkey)

Mám naskenovat tento QR kód přihlášení pomocí passkey?

Pouze v případě, že JSTE právě spustili přihlášení pomocí passkey na zařízení zobrazujícím QR kód. Pokud kdokoli jiný zahájil přihlášení, naskenováním předáte svou passkey útočníkovi. Tato stránka vysvětluje protokol, útočný model a jak rozeznat bezpečné od nebezpečného.

Zkontrolujte QR kód passkey → Všechny standardy →

Jak funguje přihlášení pomocí passkey mezi zařízeními

Přístupový klíč (passkey) je přihlašovací údaj – pár veřejného a soukromého klíče – vázaný na jedno z vašich zařízení. Pokud jste si zaregistrovali přístupový klíč pro example.com v telefonu, pouze váš telefon může podepsat přihlašovací výzvu pro example.com.

To funguje dobře, když se přihlašujete NA svém telefonu. Co se ale stane, když se přihlašujete na notebooku, kde passkey nemáte? Máte tři možnosti:

  1. Zadat heslo — popírá celý smysl passkeys.
  2. Zaregistrovat novou passkey na notebooku — v pořádku, ale pouze pokud notebooku důvěřujete.
  3. Použít passkey v telefonu přes přenos mezi zařízeními — notebook zobrazí QR kód, který naskenujete telefonem, čímž propojíte dvě zařízení přes Bluetooth.

Možnost 3 definuje FIDO CTAP 2.2 "hybrid". QR kód je spouštěčem — nese veřejný klíč peer zařízení, nonce pro tunelování, doménu tunelového serveru a časové razítko. Telefon tato data přečte, naváže Bluetooth spojení nebo tunelové spojení a propůjčí passkey notebooku pro přihlášení.

Co je uvnitř QR kódu

URI vypadá takto:

FIDO:/0123456789012345678901234567890123456789...

Desetinné číslice jsou kódování base10 CBOR mapy. Po dekódování base10 + CBOR parsování je obsah klíčované mapy:

Klíč 0: veřejný klíč peer zařízení

Nekomprimované bajty veřejného klíče X9.62 (33 bajtů pro P-256). Telefon to použije k navázání sdíleného ECDH tajemství s notebookem.

Klíč 1: tajemství QR / nonce tunelu

10 bajtů náhodných dat. Identifikuje tento konkrétní QR kód; BLE reklama vysílaná notebookem nese hash tohoto tajemství, takže telefon ví, ke které relaci se připojit.

Klíč 2: nápověda operace

0 = make-credential (registrace nové passkey), 1 = get-assertion (přihlášení pomocí existující passkey), 2 = get-assertion s discoverable credential.

Klíč 3: doména tunelového serveru

HTTPS hostitel, který zprostředkovává tunel mezi oběma zařízeními, když přímé BLE není dostupné (např. přes NAT). Zpravidla jde o server provozovaný dodavatelem, například cable.ua5v.com (Google) nebo cable.auth.com (Apple/MS).

Klíč 4: časové razítko

Sekundy od epochy Unix, kdy byl QR kód vygenerován. Slouží k ochraně proti přehráváním — passkey klienti odmítají přihlášení přes zastaralé QR kódy (obvykle více než 3 minuty staré).

Klíč 5: příznak state-assisted

Booleovský příznak. Říká, zda notebook chce, aby se telefon aktivně zapojil do pasivního vyhledávání BLE (tzv. state-assisted flow pro rychlejší párování).

Model hrozby: kdo první stiskl "Přihlásit se pomocí passkey"?

Protokol je kryptograficky solidní. Kontrola Bluetooth proximity je reálná a funguje, pokud obě zařízení jsou fyzicky blízko sebe. Útok nespočívá v prolomení šifrování.

Útok probíhá prostřednictvím sociálního inženýrství při zahájení. Útočník spustí přihlašovací seanci na webu, pro který má vaše přihlašovací údaje (nebo chce), jeho prohlížeč zobrazí FIDO QR kód a pak vás přiměje QR naskenovat.

Pokud naskenujete, váš telefon přenese váš podpis passkey zpět na útočníkův prohlížeč. Přihlásí se jako vy. Vy dostanete prázdnou obrazovku nebo zprávu o chybě.

Kontrola blízkosti nepomáhá – útočník je fyzicky přítomen. Obsah QR kódu nepomáhá – je kryptograficky platný. Přihlašovací cíl nepomáhá – jde o správný web, pro který máte přístupový klíč. Jedinou ochranou je rozpoznání situace: nikdy byste neměli skenovat FIDO QR kód, který jste sami nevygenerovali kliknutím na „Přihlásit se“ na vlastním zařízení.

Co náš skener zobrazuje

Když do našeho skeneru vložíte FIDO QR kód, verdikt zobrazí:

Třída hrozby je vždy podezřelá — ne proto, že by protokol byl vadný, ale proto, že každý platný FIDO QR, který jste zahájili VY, vám na to řekne kontext aplikace v prohlížeči, nikoli skenování jiným zařízením. Legitimní případ použití pro skenování FIDO QR cizím nástrojem prakticky neexistuje.

Kdy je to bezpečné (a kdy ne)

Bezpečné: sedíte u notebooku, otevřeli jste stránku přihlášení do banky nebo e-mailu, kliknuli na "Přihlásit se pomocí passkey" a notebook zobrazil QR kód. Vy jste zahájili přihlášení. Naskenování telefonem toto přihlášení dokončí.

Nebezpečné: kdokoli jiný inicioval přihlášení. Patří sem: někdo, kdo vám zavolal a požádal vás, abyste naskenovali QR pro "ověření účtu"; QR zobrazený na veřejném místě nebo v e-mailu; QR sdílený přes chat nebo video hovor.

Pokud si nejste jisti, zda QR pochází z přihlášení, KTERÉ jste zahájili VY, přihlášení zrušte. Znovu se přihlaste a tentokrát pozorně sledujte, kdy se QR kód zobrazí.

Viz také

Zkontrolovat FIDO QR kód

Přetáhněte obrázek nebo vložte FIDO: URI. Verdikt zobrazí operaci, tunelový server, časové razítko, délku veřejného klíče a délku QR tajemství.

Otevřít skener →