Nøkkel 0, peer offentlig nøkkel
Ukomprimerte X9.62 offentlige nøkkelbytes (33 bytes for P-256). Telefonen bruker disse til å etablere den krypterte tunnelen.
Standarder · FIDO CTAP 2.2 hybrid (passordnøkkel-QR)
Bare hvis DU nettopp startet en passordnøkkel-innlogging på enheten som viser QR-koden. Hvis noen andre genererte QR-koden – en fremmed, en «helpdesk»-agent eller en teknisk support-samtale – logger du dem inn på kontoen din ved å skanne den med telefonen din, ikke deg selv. Protokollens åpne standard (FIDO CTAP 2.2 hybrid) er solid; trusselen er sosial manipulasjon rundt hvem som trykket på «Logg inn med passordnøkkel» først.
En passordnøkkel er en legitimasjon – et offentlig/privat nøkkelpar – bundet til én av enhetene dine. Hvis du registrerte en passordnøkkel for example.com på telefonen din, er det bare telefonen din som kan signere innloggingsutfordringen for example.com.
Det fungerer fint når du logger inn PÅ telefonen din. Men hva skjer når du logger inn på en bærbar datamaskin som ikke har en passordnøkkel for det aktuelle nettstedet? Du kan:
Alternativ 3 er det FIDO CTAP 2.2 «hybrid» definerer. QR-koden er bootstrap-mekanismen – den inneholder nok informasjon til at telefonen din kan oppdage den bærbare via Bluetooth Low Energy, etablere en enveissikker tunnel og mellomlegge WebAuthn-seremonien.
URI-en ser slik ut:
FIDO:/0123456789012345678901234567890123456789...
Desimalsifrene er en base10-koding av et CBOR-kart. Etter base10-dekoding + CBOR-parsing har kartet heltallsnøkler:
Ukomprimerte X9.62 offentlige nøkkelbytes (33 bytes for P-256). Telefonen bruker disse til å etablere den krypterte tunnelen.
10 bytes tilfeldige data. Identifiserer denne spesifikke QR-koden; BLE-kunngjøringen sender ut en hash av dette slik at telefonen kan finne den riktige bærbare.
0 = make-credential (registrering av ny passordnøkkel), 1 = get-assertion (innlogging), 2 = discoverable-credential.
HTTPS-verten som mellomlegger tunnelen mellom de to enhetene når direkte BLE ikke er tilgjengelig (f.eks. via NAT). Vanligvis en leverandørdrevet server som cable.ua5v.com (Google) eller cable.auth.com (Apple/MS).
Sekunder siden epoke da QR-koden ble generert. Brukes til replay-beskyttelse – telefonen nekter å honorer en QR-kode som er eldre enn noen minutter.
Boolsk. Angir om den bærbare ønsker at telefonen deltar i passiv tilstandslagring (primært relevant for flyter for opptelling av legitimasjoner).
Protokollen er kryptografisk sund. Bluetooth-nærhetstsjekket er reelt og begrenser angrepet til den som fysisk befinner seg nær deg. Så hvordan går det galt?
Gjennom sosial manipulasjon av initieringen. Angriperen starter en passordnøkkel-innlogging til DIN konto på DERES bærbare. Den bærbare viser en FIDO QR-kode. De får på en eller annen måte QR-koden foran deg:
Hvis du skanner, videresender telefonen din passordnøkkel-signaturen din til angriperens bærbare datamaskins nettleser. Nettstedet du har en passordnøkkel for tror du er logget inn. Angriperen er nå logget inn på kontoen din.
Merk at nærhetstsjekket ikke hjelper – angriperen er fysisk til stede. QR-kode-innholdet hjelper ikke – det er kryptografisk gyldig. Innloggingsdestinasjonen hjelper ikke – det er det riktige nettstedet du har en passordnøkkel for. Det eneste som hjelper er å gjenkjenne situasjonen: du bør aldri skanne en FIDO QR-kode som du ikke selv har generert ved å klikke «Logg inn» på din egen enhet.
Når du slipper en FIDO QR-kode inn i skanneren vår, viser resultatet:
cable.ua5v.com, Apples tunnelserver osv.)?Trusselklassen er alltid mistenkelig – ikke fordi protokollen er ødelagt, men fordi sikkerhetsvurderingen er kontekstuell og skanneren ikke kan vite hvem som trykket på «Logg inn». Resultatsopplysningen forteller deg nettopp det: «skanning fullfører en innlogging som noen STARTET PÅ EN ANNEN ENHET. Avvis hvis du ikke nettopp selv har initiert en innlogging.»
Trygt: Du satte deg ved den bærbare, åpnet banken eller e-postnettstedet ditt, klikket på «Logg inn med passordnøkkel», og den bærbare viste QR-koden. Du tar telefonen, skanner QR-koden og godkjenner nærhetsprompten. Ferdig.
Ikke trygt: enhver andre enn deg startet innloggingsprosessen. Det inkluderer enhver over telefon, enhver ved en fjernstøtte-samtale, enhver som sendte deg en QR-kode via e-post, enhver som viste deg en «QR for å verifisere identiteten din», og enhver QR-kode et sted som ikke er din egen nettopp viste enhet.
Hvis du ikke er sikker på om en QR-kode stammer fra en innlogging DU startet, kanseller innloggingen på den opprinnelige enheten (lukk nettleserfanen) og start deretter på nytt på enheten du hadde tenkt å bruke. Ekte FIDO QR-koder er bare gyldige i ca. 10 minutter – å starte på nytt tømmer alle pågående sesjoner og gjør trusselen umulig.
Slipp bildet eller lim inn FIDO:-URI-en. Resultatet viser operasjon, tunnelserver, tidsstempel og en tydelig advarsel om å avvise med mindre du selv startet innloggingen.