Nøgle 0, peer offentlig nøgle
Ukomprimerede X9.62 offentlige nøglebytes (33 bytes for P-256). Telefonen bruger disse til at etablere den krypterede tunnel.
Standarder · FIDO CTAP 2.2 hybrid (adgangsnøgle-QR)
Kun hvis DU netop har startet en adgangsnøgle-login på den enhed, der viser QR-koden. Hvis nogen andre har genereret QR-koden – en fremmed, en "helpdesk"-agent eller en teknisk support-samtale – logger du dem ind på din konto ved at scanne den med din telefon, ikke dig selv. Protokollens åbne standard (FIDO CTAP 2.2 hybrid) er solid; truslen er social manipulation omkring, hvem der trykkede på "Log ind med adgangsnøgle" først.
En adgangsnøgle er en legitimation – et offentligt/privat nøglepar – bundet til én af dine enheder. Hvis du har registreret en adgangsnøgle for example.com på din telefon, er det kun din telefon, der kan underskrive login-udfordringen for example.com.
Det fungerer fint, når du logger ind PÅ din telefon. Men hvad sker der, når du logger ind på en bærbar computer, der ikke har en adgangsnøgle til det pågældende websted? Du kan:
Mulighed 3 er, hvad FIDO CTAP 2.2 "hybrid" definerer. QR-koden er bootstrap-mekanismen – den indeholder nok information til, at din telefon kan opdage den bærbare via Bluetooth Low Energy, etablere en envejssikker tunnel og mellemmægle WebAuthn-ceremonien.
URI'en ser sådan ud:
FIDO:/0123456789012345678901234567890123456789...
Decimalcifrene er en base10-kodning af et CBOR-map. Efter base10-afkodning + CBOR-parsing har mappen heltalsnøgler:
Ukomprimerede X9.62 offentlige nøglebytes (33 bytes for P-256). Telefonen bruger disse til at etablere den krypterede tunnel.
10 bytes tilfældige data. Identificerer denne specifikke QR-kode; BLE-annoncen udsender en hash heraf, så telefonen kan finde den rigtige bærbare.
0 = make-credential (registrering af ny adgangsnøgle), 1 = get-assertion (login), 2 = discoverable-credential.
HTTPS-værten, der mellemmægler tunnelen mellem de to enheder, når direkte BLE ikke er tilgængeligt (f.eks. via NAT). Normalt en leverandørdrevet server som cable.ua5v.com (Google) eller cable.auth.com (Apple/MS).
Sekunder siden epoke, da QR-koden blev genereret. Bruges til replay-beskyttelse – telefonen afviser at honorere en QR-kode, der er ældre end et par minutter.
Boolsk. Angiver, om den bærbare ønsker, at telefonen deltager i passiv tilstandsbevaring (primært relevant for flows til tælling af legitimationer).
Protokollen er kryptografisk sund. Bluetooth-nærhedstjekket er reelt og begrænser angrebet til den, der fysisk befinder sig tæt på dig. Så hvordan går det galt?
Gennem social manipulation af initiationen. Angriberen starter et adgangsnøgle-login til DIN konto på DERES bærbare. Deres bærbare viser en FIDO QR-kode. De får på en eller anden måde QR-koden foran dig:
Hvis du scanner, videresender din telefon din adgangsnøgle-signatur til angriberens bærbare computers browser. Det websted, du har en adgangsnøgle til, tror, du er logget ind. Angriberen er nu logget ind på din konto.
Bemærk at nærhedstjekket ikke hjælper – angriberen er fysisk til stede. QR-kode-indholdet hjælper ikke – det er kryptografisk gyldigt. Login-destinationen hjælper ikke – det er det korrekte websted, du har en adgangsnøgle til. Det eneste, der hjælper, er at genkende situationen: du bør aldrig scanne en FIDO QR-kode, som du ikke selv har genereret ved at klikke på "Log ind" på din egen enhed.
Når du lægger en FIDO QR-kode ind i vores scanner, viser resultatet:
cable.ua5v.com, Apples tunnelserver osv.)?Trusselklassen er altid mistænkelig – ikke fordi protokollen er brudt, men fordi sikkerhedsvurderingen er kontekstafhængig, og scanneren ikke kan vide, hvem der trykkede på "Log ind". Resultats-oplysningen fortæller dig præcis det: "scanning fuldender et login, som nogen STARTEDE PÅ EN ANDEN ENHED. Afvis, hvis du ikke netop selv har initieret et login."
Sikkert: Du satte dig ved din bærbare, åbnede din bank eller dit e-mailwebsted, klikkede på "Log ind med adgangsnøgle", og din bærbare viste QR-koden. Du tager din telefon, scanner QR-koden og godkender nærhedsprompten. Færdig.
Ikke sikkert: enhver anden end dig startede loginproceduren. Det inkluderer enhver over telefon, enhver ved en fjernsupport-samtale, enhver der sendte dig en QR-kode via e-mail, enhver der viste dig en "QR til at bekræfte din identitet", og enhver QR-kode et sted, der ikke er din egen netop viste enhed.
Hvis du ikke er sikker på, om en QR-kode stammer fra et login, DU startede, skal du annullere loginproceduren på den originale enhed (luk browserfanen) og derefter starte forfra på den enhed, du ville bruge. Rigtige FIDO QR-koder er kun gyldige i ca. 10 minutter – en genstart tømmer alle igangværende sessioner og gør truslen umulig.
Slip billedet eller indsæt FIDO:-URI'en. Resultatet viser operation, tunnelserver, tidsstempel og en tydelig advarsel om at afvise, medmindre du selv startede login.