Přenos 2FA tokenů z FreeOTP do nového zařízení
Jak relativně snadno přenést či zazálohovat tokeny pro dvoufaktorovou autentizaci (Two Factor Auth) z Android aplikace FreeOTP (https://freeotp.github.io/), která to sama o sobě neumožňuje.
Budete potřebovat zdrojové zařízení, počítač, USB kabel, cílové zařízení.
Příprava počítače – Instalace ADB
Na počítač si nainstalujte ADB (Android Debug Bridge). Ve Fedoře to znamená:
sudo dnf install android-tools
Příprava zařízení – Povolení ladění přes USB
V obou zařízeních povolte vývojářské možnosti, to provedete tak, že:
V případě čistého Androidu 11: Nastavení -> Informace o telefonu
V případě Samsungu (One UI 4.0): Nastavení -> Informace o softwaru
Několikrát poklepete na položku “Číslo sestavení“.
Následně musíte na obou zařízeních povolit ladění přes USB, to provedete tak, že:
V případě čistého Androidu 11: Nastavení -> Systém -> Rozšířená nastavení -> Pro vývojáře zapnete “Ladění USB“
V případě Samsungu (One UI 4.0): Nastavení -> Vývojářské možnosti a zapnete “Ladění přes USB“
Záloha FreeOTP do počítače
Připojte zdrojové zařízení USB kabelem do počítače.
Úspěšné připojení můžete ověřit pomocí:
adb devices
Pak už můžete vytvořit zálohu:
adb backup -f ./zaloha-freeotp.ab -noapk org.fedorahosted.freeotp
Nyní bude třeba v telefonu odsouhlasit vytvoření zálohy a za chvíli bude záloha na počítači hotová.
Po vytvoření zálohy, nezapomeňte na zdrojovém telefonu zakázat ladění přes USB a můžete jej odpojit od počítače.
Obnovení zálohy FreeOTP do nového zařízení
Připojte cílové zařízení USB kabelem do počítače a ověřte připojení jako výše.
Obnovte zálohu:
adb restore ./zaloha-freeotp.ab
Odsouhlaste v telefonu obnovu zálohy a po chvíli spuštěním FreeOTP appky ověřte, že máte všechny tokeny nyní dostupné v cílovém zařízení.
Nyní zakažte ladění přes USB a odpojte telefon.
A máte hotovo!
Poznámka pod čarou
Na GitHubu existuje projekt, který umí ze zálohy, konkrétně ze souboru tokens.xml
pomocí lokálně běžícího JavaScriptu vygenerovat webovou stránku s QR kódy, které lze poté naskenovat do FreeOTP, či jiné OTP aplikace (třeba Google Authenticator):
https://github.com/viljoviitanen/freeotp-export
Postup, jak z vytvořené zálohy dostat onen tokens.xml
je popsaný například tu:
https://thevaliantway.com/2018/08/freeotp-migration/
Nicméně já jsem narazil na problém, že freeotp-export nebyl schopný vygenerovat QR kód pro jeden AWS token, takže tento postup pro mě nefungoval. Nicméně tokeny na ostatní služby jako GitHub, Amazon (obchod), DropBox, Facebook, etc. se vygenerovali v pořádku, takže tento postup může být pro většinu lidí dostatečný, ač paradoxně je více pracný, než pouhé adb backup/restore, které popisuji v článku.