Hinweis: Dies ist mein privater Blog.
Für Software-Entwicklung und Refactoring siehe weigandtlabs.de.

TOTP als zweiter Faktor beim Login

Es sind jetzt 3 Jahre her, seit ich KeePassXC aktiv als Passwort-Manager einsetze. Davor habe ich viele Jahre lang eine Kombination aus einem Passwort-System und einem TrueCrypt-Container eingesetzt. Mit dem Passwort-System konnte ich alle Passwörter im Kopf haben und bei Bedarf auch neue generieren. Im TrueCrypt-Container hatte ich Dateien wie GPG-Keys, SSH-Schlüssel, Zertifikate usw. abgelegt.

Das Problem mit meinem Passwort-System war, dass es mit der Zeit immer komplizierter wurde. An manchen Stellen konnte man keine Passwörter mit 15 Zeichen Länge eingeben. Manchmal konnte man das eine oder andere Sonderzeichen nicht eingeben. Und mit der Zeit bekam man auch einfach Passwörter vorgegeben, die man sich nicht aussuchen konnte und die ich mir daher in einer Liste im TrueCrypt-Container ablegen musste. Das lag es also nahe, endlich mal einen Passwort-Manager zu verwenden.

Die Suche nach dem perfekten Passwort-Manager

Die Suche nach dem richtigen Passwort-Manager hat bei mir etwas länger gedauert. Ca. 1 Jahr habe ich mir verschiedene Lösungen angesehen. Meine Ansprüche waren relativ klar:

  • Freie Software
  • Soll auf verschiedenen Geräten/Betriebssystem funktionieren
  • Wenn cloud-based, dann nur eigene Server

Ich habe einige Zeit lang zwei Passwort-Manager getestet, die als Apps in meiner Nextcloud liefen. Damit war ich aber nie ganz zufrieden und habe nie vollständig den Sprung geschafft. KeePass hatte ich schon als Favorit auf meiner Liste, aber das UI hat mich immer sehr abgeschreckt.

Sehr gefallen hat mir auch das Konzept hinter MasterPasswort, aber das System hat sich leider als zu sperrig erwiesen. Auch hat mir die Ablage von Dateien gefehlt.

Im August 2018 habe ich dann von KeePassXC erfahren. Das Konzept des offenen Protokolls hinter KeePass hatte ich davor nicht verstanden. Mit KeePassXC habe ich aber gelernt, dass es für KeePass als Protokoll die verschiedenste Client-Software gibt. Das Synchronisieren der Password-Datei auf verschiedene Geräte übernimmt Nextcloud, das ich ohnehin schon auf allen Geräten im Einsatz hatte.

Für den Desktop verwende ich jetzt KeePassXC, bei Android verwende ich KeePassDX (und davor noch KeePass2Android) und dank der Nextcloud-App Keeweb kann ich direkt aus dem Browser auf meine Passwörter zugreifen. Perfekt.

Der Umstieg selber hat vielleicht einen Monat gedauert. Ich habe mich einen Monat lang zwingen müssen, meine Passwörter nicht aus dem Kopf einzugeben, sondern immer den „Umweg“ über KeePass zu nehmen. Gab es das Passwort noch nicht im Passwort-Manager, dann tippte ich es zuerst aus dem Kopf dort hinein und habe das Passwort dann über KeePass kopiert, um es zu verwenden.

Im September hatte ich mich dann an das System gewöhnt. Passwörter durch den Passwort-Manager eintippen zu lassen, war auf einmal so bequem geworden, dass ich es nicht mehr missen wollte. Trotzdem konnte ich aber noch immer jederzeit auf KeePass verzichten, weil ich meine Passwörter noch nicht geändert hatte und sie auch jederzeit aus dem Kopf eintippen konnte. Aber nach einem Monat war ich überzeugt. Und ab da hat sich ein weiterer Vorteil eines Passwort-Managers gezeigt.

Mit meinem System im Kopf konnte ich für jeden Dienst ein Passwort generieren. Aber Ändern konnte ich sie nicht, ohne mir diese Besonderheit zu merken oder das gesamte System zu ändern. Und ich konnte mir nicht merken, wo ich überall ein Passwort hatte. Beide Probleme löste KeePass. Dort konnte ich auf einmal sehen, wo ich noch ein altes oder unsicheres Passwort einsetze. Und so hab ich dann Stück für Stück meine Passwörter bei den verschiedenen Diensten gegen ein sicheres zufällig generiertes Passwort geändert.

Zu Beginn war es ein komisches Gefühl. Ich konnte bisher alle Passwörter aus dem Kopf ableiten. Mit zufälligen Passwörtern ging das nicht mehr. Ich gab ein Stück gefühlte Sicherheit auf, aber habe eine viel größere Sicherheit durch längere und komplexere Passwörter gewonnen. Meine Passwörter sind jetzt mind. 20 Zeichen lang.

Ich bin mit dem System so zufrieden, dass ich es auch schon erfolgreich bei einigen Freunden und Familienmitgliedern einsetzen konnte. Auch dort wurde das System gut aufgenommen und der Zugewinn an Sicherheit war an manchen Stellen, z.B. wenn ein Passwort für alle Dienste eingesetzt wurde, noch größer als bei mir.

Ein zweiter Faktor muss her

Mit dem Thema Passwort-Manager rückte auch das Thema Zwei-Faktor-Authentifizierung näher. Auch hier hatte ich klare Ansprüche:

  1. Freie Software
  2. Zweiter Faktor darf keinen physikalischen Gegenstand (z.B. USB-Stick) erfordern
  3. Muss offline funktionieren
  4. Kein Vertrauen zu einem Dritt-Anbieter notwendig

Ich habe mir verschiedene 2FA-Methoden angesehen und getestet, von der mich kein richtig überzeugt hatte. Am ehesten habe ich mich noch auf den Versand von SMS oder Emails verlassen, wenn ich einen Dienst mit 2FA absichern wollte. Dagegen sprechen aber meine Ansprüche 3 und 4. Auch über einen Yubikey habe ich länger nachgedacht, aber wegen Punkt 2 nie ausprobiert.

Von TOTP (Timebased One Time Password) hatte ich nur beiläufig gelesen. Weil das immer schnell mit einer Google Authenticator App genannt wurde, habe ich das System fälschlicherweise als Google Dienst eingestuft und mir nie näher angesehen. Bis heute.

Heute habe ich erfahren, dass TOTP als RFC 6238 spezifiziert ist und habe es mir angesehen. Und als ich dann noch gesehen habe, das TOTP bereits in KeePassXC, KeePassDX und Keeweb implementiert ist, war die Euphorie groß. Nach einigen Test mit Nextcloud und anderen Diensten bin ich überzeugt, das richtige System gefunden zu haben.

Die Verbreitung von TOTP ist echt groß. Bei Nextcloud, Gitlab, Github und PayPal konnte ich es direkt aktivieren und so z.B. bei PayPal den SMS-Versand als 2FA abschalten.

TOTP funktioniert vereinfacht beschrieben folgendermaßen: Man erhält von einem Dienst, bei dem man TOTP als 2FA aktiviert, ein weiteres Passwort, bzw. einen geheimen Schlüssel. Diesen legt man KeePass zu einem Eintrag als TOTP-Schlüssel dazu. Daraus und dem aktuellen Zeitpunkt wird eine 6-stellige Zahl als Passwort generiert, die für maximal 30 Sekunden gültig ist. Nach Ablauf der Zeit generiert KeePass automatisch ein neues Passwort.

Bei einer Anmeldung läuft das dann so: Man gibt wie bisher Name und Passwort ein, bzw. lässt das durch KeePass erledigen. Anschließend wird das 6-stellige TOTP benötigt, dass KeePass direkt anzeigt oder sich direkt kopieren lässt. Wenn das erledigt ist, in man fertig eingeloggt.

Damit erfüllt TOTP alle meine Ansprüche. Eine Studie ergab, dass TOTP unter den verschiedenen getesteten 2FA-Methoden die höchste Benutzerfreundlichkeit hat. Das kann ich auch nur bestätigen.

Heute habe ich TOTP bereits bei sechs verschiedenen Diensten eingesetzt. Bis auf Paypal habe ich bei der Aktivierung der 2FA auch sogenannte Backup-Codes erhalten, die ich direkt in KeePass ablegen konnte. Sollte es mal aus irgendeinem Grund nicht möglich sein, ein TOTP zu erzeugen, kann ich auch eines dieser Backup-Codes einsetzen.

Ich freue mich, dass ich mit TOTP endlich eine gute 2FA-Metode gefunden habe, die einen weiteren Zugewinn an Sicherheit bedeutet. Und dank KeePass habe ich auch keine Sorge mehr, 2FA zu aktivieren, wann immer ein Dienst TOTP anbietet.


Beitrag veröffentlicht

in

von

Schlagwörter:

Kommentare

Eine Antwort zu „TOTP als zweiter Faktor beim Login“

  1. […] irgendwo seine Telefonnummer als 2FA zu verwenden. Das gibt euch keine bessere Sicherheit als einfach TOTP zu verwenden, aber sorgt bei den Firmen für mehr Daten von […]