Wenn man gerne ein „Paper-Backup“ seiner 2FA-Auth Geheimnisse haben möchte, kann man diese aus FreeOTP wie im Folgenden beschrieben extrahieren.

Bevor man das tut, sollte man sich über die Sicherheitsimplikationen jedoch vollständig im klaren sein: Wenn man die 2FA Secrets auf seinem Device speichert, kann jeder, der auf diese Zugriff erhält, die 2FA Umgehen, ohne in Besitz des Smartphones zu sein, das man für gewöhnlich als 2. Faktor zur Hand hat.

Wie’s geht…

Sichern der FreeOTP Daten mit adb:

  • Das Smartphone muss von adb erkannt werden
  • Mit dem Befehl adb backup -f freeotp.ab org.fedorahosted.freeotp sichert man die FreeOTP Daten auf den Rechner. Wenn das Smartphone verschlüsselt ist, muss dabei ein Kennwort für die Sicherung vergeben werden.
  • Man erhält die Datei freeotp.ab

Um auf den Inhalt der Sicherung zugreifen zu können, benötigt man den "android-backup-extractor", unter Arch-Linux kann man den z.B. mit dem Befehl pacaur -S android-backup-extractor-git aus dem AUR nachinstallieren.

Mit dem Befehl abe unpack freeotp.ab freeotp.tar <Kennwort> erhält man aus der Backupdatei ein tar-File, das man anschließend einfach mit tar -tvf freeotp.tar betrachten (bzw. auspacken) kann. Ziel unserer Bemühungen ist die Datei tokens.xml, welche die Secrets der 2FA enthält.

Diese sind nun jedcoh noch nicht „Human Readable“ sondern müssen noch weiter transformiert werden – siehe Quellen. Der einfachere Weg ist, aus der entschlüsselten Backup-Datei mit aabe wieder eine ADB-Backup-Datei zu machen und aus dieser mit Hilfe des Werkzeugs auf https://github.com/viljoviitanen/freeotp-export die ausdruckbaren QR-Codes der Secrets zu erzeugen.

Quellen:

  • https://cuonic.com/posts/extracting-secret-keys-from-freeotp
  • https://github.com/viljoviitanen/freeotp-export
  • https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp