Google Authenticator: OTP-Secrets auslesen
Wir haben darüber berichtet: Das Unternehmen Google hat seinen Google Authenticator aktualisiert und synchronisiert eure OTP-Codes nun auf Wunsch über euer Google-Konto. Der Google Authenticator ist eine mobile App, die zur Zwei-Faktor-Authentifizierung (2FA) oder Multi-Faktor-Authentifizierung (MFA) verwendet wird. Die App generiert zeitlich begrenzte Einmalpasswörter (Time-based One-Time Passwords, TOTP) oder HMAC-basierte Einmalpasswörter (HOTP) auf Basis eines gemeinsamen „Geheimnisses“ zwischen dem Benutzer und dem Dienst, für den die Authentifizierung erforderlich ist.
Eine 2FA mit Code über eine Authenticator-App ist eine Sicherheitsmaßnahme, die verhindert, dass jemand anderes auf euer Online-Konto zugreifen kann, selbst wenn er das Passwort kennt. Das bedeutet, dass ihr zwei Dinge braucht, um euch anzumelden: die Kombination aus Nutzernamen und Passwort sowie einen temporären Code, den eine App ausspuckt. Es gibt verschiedene Authenticator-Apps, wie z. B. den hier genannten von Google, Authy, 2FAS, Aegis oder den Microsoft Authenticator, die man mit verschiedenen Online-Diensten verbinden kann. Mittlerweile bieten viele Passwortmanager (Bitwarden, 1Password, Enpass, SafeInCloud) diese Funktion auch an, sodass man alles aus einer Hand bekommt.
Um eine Authenticator-App zu verwenden, müssen Nutzer sie zuerst auf ihrem Smartphone herunterladen und dann mit ihrem Online-Konto verknüpfen, indem sie einen QR-Code scannen oder einen Schlüssel eingeben. Danach müssen sie bei Anmeldungen neben ihrem Passwort auch den Code aus der App eingeben. Das macht ein Konto sicherer, weil ein Angreifer sowohl das Passwort als auch das Smartphone braucht, um sich einzuloggen.
Das Problem kann aber ein Umzug sein. Super einfach ist es, wenn man die initial erhaltenen QR-Codes irgendwo sicher abgespeichert hat und diese verwendet werden können. Oder wenn es eine leicht nutzbare Export-Funktion gibt, die den Secret Key offenbart, sodass ihr ihn in einer anderen App hinzufügen könnte. Das unterstützt unter anderem 1Password. Wie das geht, haben wir bereits in dieser Anleitung beschrieben.
Doch der Google Authenticator macht es euch nicht so einfach. Wie bekommt man denn nun seine 2FA-Konten exportiert? Klar, das erlaubt euch der Google Authenticator auch. Aber – ihr bekommt nur einen QR-Code angeboten – und den könnt ihr wieder nur im Google Authenticator nutzen. Was aber, wenn ihr zukünftig eine andere Software nutzen wollt? Wie kann man denn jetzt den Secret Key direkt aus dem Google Authenticator bekommen? Eigentlich gar nicht, zumindest nicht mehr direkt, ihr benötigt ein Hilfsmittel.
Für Windows, macOS und Linux gibt es extract_otp_secrets. Diese Software installiert ihr (macOS und Linux) oder führt sie direkt aus. Habt ihr sie gestartet, so öffnet sich ein Programmfenster und eure Webcam geht an. Vor die Webcam hängt ihr nun den Export-QR-Code des Google Authenticator. Die Software liest die Secrets, quasi die 2FA-Startcodes, aus und stellt sie euch zur Sicherung dar. Ihr könnt ebenfalls, das zeigt unser Bildschirm ja auch, in unterschiedliche Formate speichern. Soeben habt ihr also eure Startcodes und könnt diese in anderen Apps nutzen.
Ein paar Denkanstöße und weiterführende Links: Viele Produkte sind mittlerweile All-in. Ihr könnt Passwörter und 2FA-Codes in einer App verwalten. Muss man schauen, ob man nach dem Prinzip »alle Eier in einen Korb« arbeitet. Ebenso zu bedenken: Wenn ein Anbieter nicht mit Ende-zu-Ende-Verschlüsselung wirbt, dann wird er sie höchstwahrscheinlich nicht anbieten. Auch denkbar: Passkeys nehmen bald an Fahrt auf.
Links:
Google Authenticator unterstützt jetzt die Synchronisierung von Google-Konten
Passwortmanager und OTP-Apps: Migrieren von 2FA-Codes
Google Authenticator: Smartphone wechseln und 2FA-Codes mitnehmen
Einmal-Passwörter korrekt exportieren (Secret auslesen)
2FAS: Kostenlose App zur Zwei-Faktor-Authentifizierung nun in deutscher Sprache
Transparenz: In diesem Artikel sind Partnerlinks enthalten. Durch einen Klick darauf gelangt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhalten wir eine kleine Provision. Für euch ändert sich am Preis nichts. Partnerlinks haben keinerlei Einfluss auf unsere Berichterstattung.
Man kann natürlich auch einfach den QR Code mit Bitwarden oder 1Password scannen, und hat das Secret dann ohne Gefummel.
Und ja, natürlich kann man statt Google Authenticator auch gleich Bitwarden oder 1Password nutzen…
Hallo Frank, hast Du das selber probiert oder vermutest Du das nur? Ich jedenfalls bin immer wieder daran gescheitert, den QR-Code aus dem Google Authenticator in 1Password einzulesen. Das wird jedes Mal von 1Password mit der Fehlermeldung quittiert, das Schema der so erzeugten URL sei ungültig. Mit dem hier von Caschy vorgestellten Tool hat es dagegen funktioniert; offenbar, weil es den speziellen Export-Code des Google Authenticator zunächst in einen anderen QR-Code umwandelt, der sich dann problemlos in 1Passwort einlesen lässt.
Wenn man vor hat, Cloud Lösungen wie bitwarden oder 1password zu nutzen, kann man auch einfach beim Google Authenticator bleiben und deren Backup verwenden, oder? Also warum dann der ganze Aufwand?
Bitwarden kann man auch selber hosten.
https://cooperrs.de/otpauth.html ist meine präferierte Lösung. Sync&Backup über iCloud, verschlüsselt mit eigenem Passwort. Kann man sich auch mal ansehen.
Die jahrelange Weigerung Googles in ihren Authenticator eine Backup-Funktion einzubauen, konnte ich nie nachvollziehen. Deswegen war ich dann auch schon sehr früh auf eine OpenSource-Lösung umgestiegen, die genau das bietet. Es gibt da meiner Erfahrung nach eine bornierte Fraktion, die tatsächlich der Meinung ist, den Seed von TOTPs zu exportieren würde die Sicherheit kompromittieren. Was für ein Unfug. Die verwechseln das irgendwie mit Public-Key (u.a. auch die Basis von Passkeys nur mal so am Rande bemerkt), dort ist der Private Key tatsächlich ein Geheimnis und muss auch entsprechend geschützt werden. Bei TOTP kennt das „Geheimnis“ ja sogar die unsichere Seite, sprich der Server, an dem man sich anmeldet. Denn es ist ein Shared Secret. Der einzige Unterschied zur Authentifizierung per Passwort besteht nur darin, dass bei der Anmeldung das Secret nicht übertragen und damit nicht abgefangen werden kann. Kombiniert man also beide Verfahren, hat man eine deutlich höhere Sicherheit als vorher. Aber das Secret des TOTP ist kein Fall für Fort Knox, da es beide Seiten kennen müssen. Bei Public-Key-Systemen sieht das anders aus, da ist der Private Key teilweise an die Hardware gebunden und kann rein technisch gar nicht ausgelesen werden. Bei Passkeys ist man von dieser harten Forderung aber auch abgekommen und erlaubt Backups, weil es einfach extrem unpraktisch ist, wenn man mindestens zwei Schlüssel braucht – damit man beim Verlust nicht komplett ausgesperrt wird.
Unabhängigkeit von einem Produkt, egal ob es Google, Microsoft oder ein Open Source Authenticator ist, ist für mich der einzig sichere Weg.
Notfall Codes, ausgedruckt in einen Ordner.
Fertig ist!
Ich nutze Secondfactor von Andrew Sachen https://github.com/RealityRipple/SecondFactor bzw. https://realityripple.com/Software/Applications/SecondFactor
Dort brauch ich keine Kamera, der liest den QR Code vom Bildschirm ab und im Nachhinein lässt sich der Code auch bequem aus der Software selbst auslesen. Sicherung geht über einen Export vom entsprechenden Registryschlüssel und so auch portabel auf einen anderen Rechner übertragbar.
Ich bin aufgrund der kürzlich genannten Google Authenticator Problematik auf 2fas (https://2fas.com/) umgestiegen. Das kann die vom Authenticator erzeugen QR-Codes direkt als Screenshot einlesen. Hat super geklappt, ist stylish, Open Source .. ich bin bislang zufrieden.
Ich hab diese Anleitung hier genutzt um die Google Authenticator Konfiguration einer Freundin auf Aegis Authenticator umzustellen. Damit man die Schlüssel sichern und leichter umziehen kann.
Das Tool ist auf Windows ziemlich behäbig und weigert sich auch, die Kamera zu wechseln. Ich musste die (in aller Regel unbenutzte, miserable) interne Kamera im Gerätemanager deaktivieren, damit er die normale Kamera verwendet und dann auch in der Lage ist, den QR Code zu scannen.
Hatte es als json und csv exportiert, beides wollte Aegis allerdings nicht erkennen. Dachte ich mir: Okay, exportiere ich es als Plain Text (die Option hat das Tool auch), allerdings ist das Tool daraufhin nicht mehr gestartet.
Weil ich keine Lust hatte, dieses Problem zu debuggen, hab ich in der JSON Datei einfach alles außer die OTP URIs gelöscht, eine URI je Zeile. Das hat der Aegis Authenticator dann auch problemlos importieren können.
tl;dr: Plain Text Export gleich beim ersten mal machen!