Immer mehr Passwortmanager integrieren TOTP-Schlüssel. Damit kommen die Entwickler zahlreichen Anfragen von Anwendern nach. Bequemlichkeit ist jedoch der größte Feind der Sicherheit und der Begriff “Zwei-Faktor-Authentifizierung” für solche Einmal-Passwörter zeigt bereits warum dies eine schlechte Idee ist.
Das Problem betrifft sowohl proprietäre Software wie Enpass (siehe auch: Enpass – Ein Passwortmanager für alle Systeme) oder SafeInCloud (siehe auch: SafeInCloud – Vielfältiger Passwortmanager) aber auch freie Software wie KeePassXC. Letztere haben einen sehr bezeichnenden FAQ-Eintrag für das Problem angelegt:
Q: KeePassXC allows me to store my TOTP secrets. Doesn’t this alleviate any advantage of two-factor authentication?
Quelle: KeePassXC – Documentation and FAQ
A: Yes. But only if you store them in the same database as your password. We believe that storing both together can still be more secure than not using 2FA at all, but to maximize the security gain from using 2FA, you should always store TOTP secrets in a separate database, secured with a different password, possibly even on a different computer.
Die KeePass-Entwickler benennen hier schon das Problem und ziehen sich zugleich aus der Affäre. Denn natürlich werden aus Bequemlichkeit die meisten Anwender die TOTP-Schlüssel in der gleichen Datenbank speichern – vermutlich sogar genau den Karteikarten der Dienste zugeordnet.
Die Idee hinter dieses zeitbasierten Einmalkennwörtern ist es eben einen zweiten Faktor hinzuziehen. Also ein zweites Gerät, meistens das Smartphone, das zusätzlich zur Kenntnis des Kennworts im Besitz der anmeldenden Person sein muss. Die Speicherung des TOTP-Schlüssels in der Passwort-Datenbank führt diese Idee ad absurdum.
TOTP-Schlüssel haben dann nur noch eine geschwächte Schutzwirkung. Sie können zusätzlich Sicherheit bei einfach zu merkenden Passwörtern bieten (aber hat man die, wenn man einen Passwortmanager nutzt?) oder dienen als zusätzlicher Schutz bei Angriffen auf den Dienstanbieter. Wobei letzteres auch nur dann was bringt, wenn das TOTP-Geheimnis nicht offen beim Anbieter gespeichert war. Letzteres sollte zwar nicht passieren, aber eigentlich sollten Anbieter auch keine Passwörter im Klartext speichern – tun leider trotzdem viel zu viele.
Wann macht also die Speicherung von TOTP-Schlüsseln in einem Kennwortprogramm Sinn? Eigentlich nur wenn der Dienst verpflichtend TOTP fordert aber man den Zugang z. B. in einem Team nutzt und den zweiten Faktor nicht zu einem Wanderpokal machen möchte. Ein sehr spezieller Fall, der für die meisten Anwender nicht zutreffen wird.
Macht es euch also nicht zu bequem und erzeugt Einmal-Kennwörter zur Zwei-Faktor-Authentifizierung zusätzlich auf einem zweiten Gerät. Dieses zweite Gerät muss auch kein Smartphone sein, spezialisierte Werkzeuge gibt es auch für alle Desktopbetriebssysteme (siehe auch: TOTP Codes auf dem Desktop erzeugen). Natürlich sollte es sich dennoch um ein separates Gerät handeln. Beispielsweise wäre ein altes Netbook denkbar.
Es würde wohl gehen wenn das TOP Geheimnis im TPM gespeichert würde.
Denn das TPM Modul im Laptop ist “etwas, was man besitzt”, also ein zweiter Faktor.
Leider habe ich bislang noch keinen Windows+Linux TOTP Generator gefunden, der das macht.
Damit wäre ein YubiKey o.ä. überflüssig.
Für einen Einbruch muß dann statt Password und YubiKey nun Password und Laptop gestohlen werden.
Evtl. ist es sinnvoll SecureBoot und Festplattenverschlüsselung mittels Bitlocker o.ä. auch noch zu aktivieren. Aber Achtung, dann bei vergessenem Password totaler Datenverlust!
Ein altes Notebook extra dafür betreiben? Hm. Dann doch lieber eine TOTP-Hardware wie z. B. den Reiner Authenticator. Leider steht auf 99 % aller Seiten, auf denen man 2FA mit TOTP nutzen kann, man brauche dafür eine App. Braucht man aber überhaupt nicht.