Aus Angst, dass ich wieder einmal alle meine mit Zweifaktorauthentifizierung geschützten Konten manuell wiederherstellen muss, habe ich diese heute bei allen Konten deaktiviert. Somit konnte ich ohne Sorgen mein PadFone Infinity 2 (A86) auf Android 4.4.2 KitKat aktualisieren. Natürlich habe ich nach dem Upgrade die Zweifaktorauthentifizierung bei allen Diensten wieder aktiviert. Eine Liste von Diensten, die eine Form der Zweifaktorauthentifizierung unterstützen gibt’s übrigens unter twofactorauth.org. Ich persönlich nutze nur Authentifizierungsmethoden, bei denen der Code von einer App generiert wird (ausser für’s e-Banking). Bis auf Battle.net unterstützen bei mir sogar alle Dienste eigentlich dieselbe App.
Vor dem Upgrade nutzte ich Google Authenticator, hauptsächlich, weil mein Google Konto das erste Konto mit Zweifaktorauthentifizierung war. Für mein Humble Bundle Konto musste ich dann Authy herunterladen.
Authy macht genau dasselbe wie der Google Authenticator nur ist die App etwas schöner gestaltet und es gibt ein so genanntes Cloudbackup der Schlüssel, die zur Generation der Einmalpasswörter benutzt werden. Zum Glück kann die zuletzt genannte Funktion auch deaktiviert werden, denn sie hat für mich in einem Codegenerator nichts verloren.
Zuerst möchte ich aber die Funktionsweise dieses Backups genauer erläutern: Bei der Zweifaktorauthentifizierung generiert das gerät basierend auf einem geheimen Schlüssel und einem Zeitfaktor, respektive bei den Banklogins auf dem beim Login angezeigten Code, ein Passwort mit einer gegebenen Länge und Lebensdauer. Die Banken nutzen alle eigene Lösungen, während die meisten Webservices auf den TOTP Standard setzen. Ebendiesen Standard implementieren Apps wie der Google Authenticator, Facebook oder Authy. Das Cloudbackup von Authy verspricht die geheimen Schlüssel, die zur Generierung der Codes benötigt wird, sicher in der Cloud zu speichern. Dazu werden die Schlüssel verschlüsselt, mit einem vom Benutzer gewählten Passwort bei Authy gespeichert und können so zwischen Geräten oder Systemupdates synchronisiert werden. Klar, das ist Benutzerfreundlich und eliminiert den unangenehmen Nebeneffekt der Zweifaktorauthentifizierung: Backupcodes. Aber das Speichern der Schlüssel ist etwa so, wie wenn man die Chips der Bankkärtchen einlesen würde und den Inhalt in seiner Dropbox speichern würde. Heutzutage sind Benutzerdaten angeblich Geld und deshalb gibt es keinen Grund diese schlechter zu schützen als das “echte” Vermögen.
Oder in anderen Worten ersetzt man ein Sicherheitselement durch ein Passwort. Da kann der Backupdienst eine noch so gute Verschlüsselungsmethode verwenden, schlussendlich kann man die Daten mit einem festen Passwort entschlüsseln. Ein Passwort ist eines der schwächsten Sicherheitselemente (gerade nach biometrischen Daten). Deshalb gibt es ja die Zweifaktorauthentifizierung, um Konten besser zu schützen als nur mit einem Passwort – man schützt das Konto durch die Abhängigkeit von nur offline verfügbaren Daten, dem Schlüssel auf dem Mobiltelefon. Ich denke viel stärkere Sicherheitselemente gibt es nicht, gerade weil die Methode auch gegen Abhörangriffe ziemlich sicher ist. Denn nicht nur müsste man einen (verkürzten) Hash zurückrechnen, nein man muss entweder die Generationszeit (so zu sagen der Salt im Hash) wissen, oder man muss mehrere Hashes abfangen um dann daraus einen Sinn zu erhalten. Im Normalfall sollten die Hashfunktionen – also Eingwegfunktionen natürlich so stark sein, dass schon nur einen Code zurückzurechnen unmöglich ist. Allerdings gibt es bisher noch keine Einwegfunktion, bei der man garantieren kann, dass es keine Abkürzung beim zurückrechnen gibt. Zudem werden Computer immer schneller, weshalb zum beispiel SHA1 langsam als Verschlüsselungsmethode entfernt wird.
Im Endeffekt ersetzt das Cloudbackup den zweiten Sicherheitsfaktor durch ein Passwort. Um auf einen so geschützten Account Zugriff zu erhalten, benötigt man also zwei Passwörter. Hoffentlich sind die beiden Passwörter verschieden, aber ich denke, wenn man auf einen Phishing Angriff hereinfiel, so ist es nicht schwer, dass man auch ein zweites mal unwissend sein Passwort eingibt. Genau da soll ja die Zweifaktorauthentifizierung helfen: auch wenn der Angreifer ein Passwort herausgefunden hat, ist es für ihn schwer (ich schreibe nicht unmöglich, denn je nach Dienst kann die Zweifaktorauthentifizierung auch mit einem zweiten Passwort umgangen werden) auf das Konto zuzugreifen.
Natürlich können Datendiebe sowohl die Authentifizierung wie auch den Dienst selber anders angreifen. Wichtig ist aber, dass Benutzer so die Sicherheit ihres Kontos direkt beeinträchtigen.
Deshalb, liebe Authy User, geht bitte in die Einstellungen der App und deaktiviert das Backup. Ich bin mir nicht sicher, ob die Einstellung auf Dienste, welche den Authy API nutzen, (also z.B. Humble Bundle) Einfluss hat, oder ob diese zwangsgesichert werden.