Sleutel 0, peer publieke sleutel
Niet-gecomprimeerde X9.62 publieke-sleutelbytes (33 bytes voor P-256). De telefoon gebruikt dit om de versleutelde tunnel op te zetten.
Standaarden · FIDO CTAP 2.2 hybrid (passkey-QR)
Alleen als U net zelf een passkey-aanmelding hebt gestart op het apparaat dat de QR toont. Als iemand anders de QR heeft gegenereerd — een vreemde, een 'helpdesk'-medewerker, een technische-ondersteuningsgesprek — dan logt u bij het scannen op uw telefoon hen in op uw account, niet uzelf. Het open protocol (FIDO CTAP 2.2 hybrid) is solide; de dreiging is social engineering rondom de vraag wie als eerste op de knop 'Aanmelden met een passkey' heeft gedrukt.
Een passkey is een referentie — een publiek/privé sleutelpaar — gebonden aan één van uw apparaten. Als u een passkey voor example.com op uw telefoon hebt geregistreerd, kan alleen uw telefoon de aanmeldingsuitdaging voor example.com ondertekenen.
Dat werkt prima als u OP uw telefoon inlogt. Maar wat als u inlogt op een laptop die geen passkey heeft voor die site? U kunt:
Optie 3 is wat FIDO CTAP 2.2 "hybrid" definieert. De QR is de bootstrap: hij bevat voldoende informatie voor uw telefoon om de laptop te ontdekken via Bluetooth Low Energy, een eenmalige beveiligde tunnel op te zetten en de WebAuthn-ceremonie te proxyen.
De URI ziet er zo uit:
FIDO:/0123456789012345678901234567890123456789...
De decimale cijfers zijn een base10-codering van een CBOR-map. Na base10-decodering + CBOR-parsing heeft de map integer-sleutels:
Niet-gecomprimeerde X9.62 publieke-sleutelbytes (33 bytes voor P-256). De telefoon gebruikt dit om de versleutelde tunnel op te zetten.
10 bytes willekeurige gegevens. Identificeert deze specifieke QR; de BLE-advertentie verstuurt een hash hiervan zodat de telefoon de juiste laptop kan vinden.
0 = make-credential (nieuwe passkey registreren), 1 = get-assertion (aanmelden), 2 = discoverable-credential.
De HTTPS-host die de tunnel proxyet tussen de twee apparaten wanneer directe BLE niet bereikbaar is (bijv. via NAT). Doorgaans een door de leverancier beheerde server zoals cable.ua5v.com (Google) of cable.auth.com (Apple/MS).
Seconden-sinds-epoch toen de QR werd gegenereerd. Gebruikt voor replaybescherming: de telefoon weigert een QR te verwerken die ouder is dan een paar minuten.
Boolean. Geeft aan of de laptop wil dat de telefoon deelneemt aan passief statusbeheer (vooral relevant voor credential-enumeratiestromen).
Het protocol is cryptografisch solide. De Bluetooth-nabijheidscontrole is echt en beperkt de aanval tot degene die fysiek dicht bij u is. Hoe gaat het dan mis?
Via social engineering op de initiatie. De aanvaller start een passkey-aanmelding bij UW account op HUN laptop. Hun laptop toont een FIDO QR. Ze brengen die QR op een of andere manier voor u:
Als u scant, proxyet uw telefoon uw passkey-handtekening terug naar de browser van de laptop van de aanvaller. De site waarvoor u een passkey heeft denkt dat u bent ingelogd. De aanvaller is nu ingelogd op uw account.
Let op: de nabijheidscontrole helpt niet — de aanvaller is fysiek aanwezig. De QR-inhoud helpt niet — ze zijn cryptografisch geldig. De aanmeldingsbestemming helpt niet — het is de juiste site waarvoor u een passkey heeft. Het enige dat helpt is de situatie herkennen: u zou nooit een FIDO QR moeten scannen die u niet zelf heeft gegenereerd door op "Aanmelden" op uw eigen apparaat te klikken.
Wanneer u een FIDO QR in onze scanner sleept, toont het vonnis:
cable.ua5v.com, Apple's tunnelserver, etc.)?De dreigingsklasse is altijd verdacht, niet omdat het protocol gebroken is, maar omdat de veiligheidsbeoordeling contextueel is en de scanner niet kan weten wie op "Aanmelden" heeft geklikt. Het vonnis vertelt u precies dat: "scannen voltooit een aanmelding die iemand OP EEN ANDER APPARAAT heeft GESTART. Als u niet net zelf een aanmelding hebt gestart, weiger dan."
Veilig: u zit aan uw laptop, opent uw bank- of e-mailsite, klikt op "Aanmelden met een passkey" en uw laptop toont de QR. U pakt uw telefoon, scant de QR, keurt de nabijheidsprompt goed. Klaar.
Niet veilig: iemand anders dan uzelf heeft de aanmelding gestart. Dit omvat iedereen aan de telefoon, iedereen in een remote-support-gesprek, iedereen die u een QR heeft ge-e-maild, iedereen die u een "QR om uw identiteit te verifiëren" heeft getoond en elke QR op een plek die niet uw eigen net-geopende apparaat is.
Als u niet zeker weet of een QR afkomstig is van een aanmelding DIE U ZELF hebt gestart, annuleer dan de aanmelding op het oorspronkelijke apparaat (sluit het browsertabblad) en begin opnieuw op het apparaat dat u van plan was te gebruiken. Echte FIDO QR's zijn slechts ~10 minuten geldig; opnieuw beginnen wist elke lopende sessie en maakt de dreiging onmogelijk.
Sleep de afbeelding erin of plak de FIDO:-URI. Het vonnis toont de bewerking, tunnelserver, tijdstempel en een harde waarschuwing om te weigeren tenzij u de aanmelding zelf hebt gestart.