Standarder · otpauth-migration

Er Google Authenticator eksport-QR-koden trygg å skanne?

Bare hvis du genererte den selv på din egen gamle telefon med din egen nye telefon rettet mot skjermen. Enhver andre som fotograferer den QR-koden av en hvilken som helst grunn, oppnår permanent tilgang til alle 2FA-koder for alle kontoer i bundlen.

Verifiser en bundle → Alle standarder →

Hva det er

Google Authenticator og flere kompatible apper (Aegis, Raivo OTP, 2FAS) lar deg «eksportere» de lagrede 2FA-kontoene dine slik at du kan flytte dem til en ny enhet. Eksporten tar form av en QR-kode med en URI som starter med otpauth-migration://. Inne i den URI-en er en enkelt protocol-buffer-bundle (Googles MigrationPayload-skjema) som på én gang inneholder alle kontoer – utsteder, kontonavn, hemmelig seed, algoritme, siffer­antall, type (HOTP / TOTP) og teller.

Formatet var opprinnelig udokumentert, men har blitt omvendt konstruert og er nå de-facto-utvekslingsformatet for 2FA-sikkerhetskopier. Tredjepartsautentikator­apper gjenkjenner og importerer den samme QR-koden.

Én QR-kode kan inneholde titalls kontoer. QR-koden er visuelt uatskillelig fra en normal TOTP-oppsett-QR – det er ingen visuell markør som forteller en tilfeldig observatør at den bærer hele bundlen.

Hvorfor en enkelt bundle QR-kode er enestående farlig

En vanlig otpauth://-oppsett-QR er farlig å skanne hvis du ikke ba om den – men skade­omfanget er én konto. Migrasjons-QR-kodens skade­omfang er alle kontoer i autentifikatoren din. Hvis en angriper fotograferer skjermen som viser denne QR-koden – over skulderen på en kafé, via et overvåknings­kamera du ikke la merke til, gjennom et gjennomsiktig glassvindu – går de derfra med muligheten til å omgå 2FA på alle kontoene den dekket. Permanent. Inntil du roterer hver hemmelighet manuelt – noe de fleste tjenester ikke gjør enkelt.

Det er ingen utløpsdato på hemmelighetene i bundlen. I motsetning til et sesjonstoken (som utløper), i motsetning til en passord­nøkkel-QR (som er engangsbruk), er seeds i en migrasjons­bundle gyldige til du erstatter dem tjeneste for tjeneste.

Det er grunnen til at resultatet fra skanneren vår for enhver otpauth-migration:// QR-kode starter ved likely_dangerous og forblir der uavhengig av kontekst. Formatet er fint; trusselmodellen er formatets eksistens.

Hva som faktisk er inni (anatomi)

URI-en ser slik ut:

otpauth-migration://offline?data=<urlsafe-base64-encoded-protobuf>

Base64-kroppen, når dekkodet, er en MigrationPayload protocol-buffer med disse feltene på øverste nivå:

Hvert otp_parameters-innlegg har:

Hva skanneren vår viser, og hva den bevisst ikke gjør

✓ Vises

For hvert innlegg i bundlen viser resultatet utsteder (ACME, GitHub, AWS), kontonavnet (alice@acme.com), algoritmen (SHA1), siffer­antallet (6) og typen (TOTP). Resultats­opplysningen lyder «Grants i denne bundlen: ACME / alice@acme.com; GitHub / bob@github; AWS / root; …» slik at en bruker som ER midt i en migrasjon kan gå gjennom listen før import.

Skjemaversjon, batch-indeks, batch-størrelse og batch-ID vises også – nyttig når en eksport er delt på tvers av flere QR-koder.

✗ Aldri dekkodet

De rå secret-bytene dekodes aldri til resultat­outputen. Analysatoren vår leser dem bare for å verifisere at hvert innlegg er velformet (hemmelighet til stede og ikke-tom), og kaster deretter verdien før findings bygges.

Dette hevdes av testsuiten – vi mater analysatoren med håndlagde protobuf-payloads som inneholder canary-strenger (SECRET_SEED_1, SECRET_SEED_2) og påstår at disse strengene aldri vises i den serialiserte resultatoutputen. En regresjon der feiler CI.

Når (og hvordan) man bruker den

Legitimt brukstilfelle: du oppgraderer fra én telefon til en annen. Den GAMLE telefonen viser migrasjons-QR-koden på skjermen i ca. 30 sekunder. Den NYE telefonens autentikator­app retter seg mot skjermen og importerer. Ingen andre er i rommet. Du sletter eksporten fra den gamle telefonen etter å ha bekreftet at alt ble importert.

Fare­overflatene er:

Hvis du mistenker at en migrasjons-QR-kode ble avslørt

Behandle det som et legitimasjons­lekkasje på tvers av alle kontoer i bundlen. Gjenopprettings­trinnene i rekkefølge:

  1. Logg inn på hver berørte tjeneste og roter 2FA-hemmeligheten. De fleste tjenester lar deg gjøre dette under Konto → Sikkerhet → To-faktor-autentisering → Deaktiver og meld deg på igjen.
  2. For tjenester som ikke eksponerer rotasjon (sjeldent, men eksisterer), fjern og legg til kontoen på nytt.
  3. Gjennomgå nylig innloggings­aktivitet på alle berørte kontoer.
  4. Slett den opprinnelige eksport-QR-koden fra alle enheter og sky­synkroniserte fotoarkiver som kan ha den.

En angriper med bundlen kan generere gyldige 2FA-koder i årevis til du roterer. Ikke utsett.

Relatert

Verifiser bundlen din

Slipp QR-bildet inn i skanneren vår, lim inn otpauth-migration://-URI-en, eller bruk kameraet. Resultatet viser alle kontoer i bundlen uten noen gang å dekode hemmelighetene.

Åpne skanner →