Je QR kód exportu Google Authenticatoru bezpečné naskenovat?
Pouze v případě, že jste ho vygenerovali SAMI, na svém vlastním starém telefonu, pro svůj vlastní nový telefon, a hned to použijete. QR kód exportu Google Authenticatoru obsahuje nezpracovaná tajemství 2FA pro každý účet v aplikaci. Tato stránka vysvětluje formát, rizika a proč naše verdikty označují každý takový QR kód jako vysoce rizikový.
Google Authenticator a několik kompatibilních aplikací (Aegis, Raivo OTP, 2FAS) umožňují „exportovat“ uložené 2FA účty pro přesun na nové zařízení. Export má podobu QR kódu s URI začínající otpauth-migration://. Uvnitř tohoto URI se nachází jediný balíček protocol buffer (schéma Google MigrationPayload) nesoucí najednou každý účet: název vydavatele, název účtu, seed tajemství, algoritmus, počet číslic, typ (HOTP / TOTP) a čítač.
Formát byl původně nedokumentovaný, ale byl reverzně navržen a nyní ho podporuje několik open-source projektů. Protokol-buffer schéma je veřejně k dispozici.
Jeden QR kód může obsahovat desítky účtů. QR kód je vizuálně k nerozeznání od QR kódu URL nebo jiného QR kódu nastavení na větší vzdálenosti.
Proč je QR kód jednoho balíčku jedinečně nebezpečný
Běžný instalační QR kód otpauth:// je nebezpečný, pokud jste ho nevyžádali, ale dosah škody je omezen na jeden účet. Dosah škody migračního QR kódu zahrnuje každý účet ve vašem autentifikátoru. Pokud útočník vyfotografuje obrazovku s tímto QR kódem – přes vaše rameno v kavárně, prostřednictvím CCTV kamery, které jste si nevšimli, přes průhledné skleněné okno – odchází s možností obejít dvoufaktorové ověření na každém dotčeném účtu. Trvale. Dokud ručně neobměníte každé tajemství, což většina služeb nedělá snadným.
Na tajemstvích v balíčku neexistuje žádné vypršení platnosti. Na rozdíl od tokenu relace (který vyprší) nebo hesla (které lze resetovat bez rotace klíče 2FA) jsou tato klíčová data platná, dokud každý účet nerotuje své semínko TOTP. To může trvat roky nebo nikdy.
Proto náš skener vydává verdikt "vysoce rizikový" na každý QR kód otpauth-migration:// bez ohledu na zdroj. Pokud jste balíček vygenerovali VY, víte to. Pokud ho vygeneroval někdo jiný, je to průlom.
Tělo base64, po dekódování, je protokol-buffer MigrationPayload. Pole na nejvyšší úrovni jsou:
otp_parameters, opakující se. Jeden záznam na účet.
version, verze schématu.
batch_size, celkový počet bloků, pokud je export rozdělen do více QR kódů.
batch_index, pozice tohoto bloku.
batch_id, jedinečné ID propojující bloky dohromady.
Každý záznam otp_parameters obsahuje:
secret, nezpracované bajty semínka. Toto jsou skutečná klíčová data.
name, označení účtu (např. alice@acme.com).
issuer, název služby (např. ACME, GitHub).
algoritmus, SHA1 / SHA256 / SHA512 / MD5.
digits, 6 nebo 8 číslic na kód.
type, TOTP (časový) nebo HOTP (na základě čítače).
counter, aktuální hodnota čítače pro záznamy HOTP.
Co náš skener zobrazuje, a co záměrně nezobrazuje
✓ Zobrazeno
Pro každý záznam v balíčku verdikt zobrazí vydavatele (ACME, GitHub, AWS), označení účtu (alice@acme.com), typ (TOTP vs HOTP), algoritmus a počet číslic. Nezpracovaná tajemství nejsou zobrazena nikdy.
Verze schématu, index dávky, velikost dávky a ID dávky jsou také zobrazeny — užitečné pro ověření, zda jste zachytili všechny QR kódy v exportu s více kódy.
✗ Nikdy nedekódováno
Nezpracované bajty secret nejsou nikdy dekódovány do výstupu verdiktu. Náš analyzátor extrahuje metadata (vydavatel, jméno, algoritmus, typ, počet číslic, čítač HOTP, ID dávky, index dávky, velikost dávky), ale nikdy klíčová data samotná.
Toto potvrzuje testovací sada – do analyzátoru vkládáme ručně sestavené protobuf payloady obsahující kanárské řetězce (SECRET_SEED_1, SECRET_SEED_2) a ověřujeme, že se tyto řetězce nikdy neobjeví v serializovaném výstupu verdiktu. Regrese v tomto bodě způsobí selhání CI.
Kdy (a jak) ho použít
Legitimní případ použití: přecházíte z jednoho telefonu na druhý. STARÝ telefon exportuje, NOVÝ telefon importuje, doma nebo na soukromém místě, a pak QR kód hned smažete. To je případ, pro který byl formát navržen.
Nebezpečné situace jsou:
Snímky obrazovky QR kódu. Snímek uložený do knihovny fotek synchronizované s cloudem (iCloud, Fotky Google) distribuuje vaše 2FA klíče do zálohovacích serverů poskytovatele.
Sdílení QR kódu přes chat. I dočasně má kdokoli s přístupem k historii chatu vaše klíče 2FA. Šifrované aplikace zmenšují okno, ale neeliminují ho.
Zveřejnění QR kódu ve vláknu fóra nápovědy. Stává se to častěji, než byste čekali — obvykle od uživatelů, kteří nevědí, co QR kód obsahuje.
Veřejné plakáty / označení zaměněné za QR kódy nastavení. Formát je vizuálně k nerozeznání od URL nebo TOTP QR kódů na větší vzdálenosti.
Pokud máte podezření na odhalení migračního QR kódu
Zacházejte s tím jako s únikem přihlašovacích údajů ke každému účtu v balíčku. Postup obnovení:
Přihlaste se do každé dotčené služby a obměňte tajemství 2FA. Většina služeb to umožňuje v sekci Účet → Zabezpečení → Dvoufaktorové ověření → Zakázat a znovu zaregistrovat.
U služeb, které rotaci nezveřejňují (vzácné, ale existují), odeberte a znovu přidejte celý 2FA slot.
Zkontrolujte nedávnou přihlašovací aktivitu na každém dotčeném účtu.
Odstraňte původní exportní QR kód z každého zařízení a knihovny fotek synchronizované s cloudem, která ho pravděpodobně uložila.
Útočník s balíčkem může generovat platné kódy 2FA roky, dokud nerotujete každý účet.
Vložte obrázek QR kódu nebo vložte URI otpauth-migration:// do skeneru. Verdikt zobrazí metadata každého záznamu a potvrdí verzi schématu a informace o dávce.