Vorweg: Wer noch nicht so richtig davon überzeugt ist, dass er einen Passwortmanager verwenden sollte, schaue sich bitte das wunderbare Video in diesem Tweet an.

Also, mit den Wünschen ist das ja so ein Ding. Man hat so seine Vorstellungen, wie etwas laufen sollte oder ein Programm gebaut seien müsste, damit es einem nützt, aber so richtig klappt das selten. Nach einem Programm zur Passwortverwaltung hatte ich schon vor längerer Zeit mal gesucht, aber war dann doch bei meiner verschlüsselten Datei und den selbstgebastelten Skripten geblieben. Jetzt bin ich aber auf KeePassXC gestoßen und ich muss sagen: »Träume können doch wahr werden« 🙂.

Ich will keine reine Verwaltung von Benutzernamen und Passwörtern, sondern möchte:

KeePassXC kann man nach dem Start einfach aufrufen und das Fenster minimieren. Über die Browser-Schnittstelle ist es für andere Programme möglich, die Passwortdatenbank abzufragen und KeePassXC verlangt eine Freigabe beim Zugriff. Somit sieht man auch mit der Browser-Erweiterung, wann auf die Daten zugegriffen wird. Nützlich ist dabei, dass für die Einträge mit aufgezeichnet wird, wann sie erstellt oder das letzte Mal genutzt wurden.

Für KeePassXC gibt es bei Debian ein Paket, so dass man es mit apt install keepassxc leicht installieren kann und auf der Webseite gibt es auch eine Kurzeinführung.

Passwörter von Firefox zu KeePassXC übertragen

Da ich im Firefox auch einige Passwörter hinterlegt hatte, habe ich diese mit der Erweiterung Password-Exporter in eine CSV-Datei exportiert; in den Firefox-Einstellungen nach Login suchen und dann Import/Export Passwords verwenden. Den Password-Exporter habe ich anschließend gleich wieder deinstalliert.

In KeePassXC kann man über Datenbank, Importieren, CSV diese Datei dann als neue Datenbank importieren. Da es eine neue Datenbank ist, muss man für diese auch ein neues Hauptpasswort vergeben. Im CSV-Dialog muss man dann als Codec Windows-1252 wählen, denn der Export ist nicht in UTF-8, und Erster Eintrag enthält Feldnamen. Für das Spaltenlayout kann man eigentlich nur die entsprechenden Spalten für Username, Password und URL wählen, denn mehr ist im Export nicht enthalten.

Als der Import abgeschlossen war und die Datenbank von KeePassXC gespeichert war, habe ich die Passwörter im Firefox gelöscht und auch die Option Remember logins and passwords for websites entfernt.

KeePassXC für Firefox einrichten

Für Firefox und auch andere Browser gibt es die Erweiterung KeePassXC-Browser, die den Zugriff auf die Passwörter vom Browser aus ermöglicht. Um die Erweiterung nutzen zu können, muss man in KeePassXC unter Werkzeuge, Einstellungen die Browser-Integration und den entsprechenden Browser aktivieren.

Im Firefox gibt es ein neues Symbol in der Leiste, über das man die Erweiterung steuern kann. Sowohl für die Registrierung der Browser-Instanz bei KeePassXC nach der Installation als auch für den Gebrauch. In den Einstellungen der Erweiterung habe ich bei mir die Redirect Offset auf 6000 ms gestellt, weil ich auf einigen Webseiten nicht schnell genug reagieren konnte.

Für Passwortfelder gibt es fortan ein zusätzliches Kontextmenü und einen gelben Schlüssel als Symbol. Über das Kontextmenü kann man sich Passwörter generieren oder die Formularfelder füllen lassen.

Anbindung von SSH

KeePassXC kann auch die SSH-Schlüssel verwalten. In einen Eintrag kann man den privaten Schlüsselteil und Fortgeschritten als Anhang einfügen. Nachdem der Eintrag gespeichert wurde, kann man unter SSH-Agent diesen Anhang auswählen. Als Kommentar für den öffentlichen Schlüsselteil wird der Benutzername des Eintrags verwendet und das Passwort des Eintrags wird zur Entschlüsselung eines verschlüsselten SSH-Schlüssels verwendet. Die Entschlüsselung ist vor allem interessant, wenn man keinen Anhang, sondern eine Datei verwendet.

Für einen häufig genutzten Schlüssel kann man zum Beispiel die Optionen Key zum Agenten hinzufügen und Key vom Agenten entfernen aktivieren, so dass mit dem Öffnen der Datenbank der Schlüssel auch gleich zum ssh-agent hinzugefügt wird. Ob dies funktioniert hat, kann man mit ssh-add -l prüfen.

Übersicht anpassen

Ich habe mir gleich einige Gruppen erstellt, um die Einträge etwas zu ordnen: Web, Logins, Dienste, Mailinglisten, Sonstiges. Man kann sich auch eigene Symbole für die Gruppen wählen und einige Standardeinstellungen für die Gruppe festlegen.

Bei der Tabelle mit den Einträgen kann man über das Kontextmenü des Tabellenkopfs Spalten ein- oder ausblenden und mit Passwörter ausblenden die Anzeige der Passwörter in der Tabelle bestimmen. Die Spalten lassen sich auch durch ziehen der Spaltenköpfe umsortieren bzw. durch einen Klick darauf lässt sich die Tabelle sortieren.

Auto-Type

Eine absolut praktische Funktion ist die Eingabe des Passworts durch KeePassXC. Für einen Eintrag kann man die Aktion Auto-Type ausführen aufrufen, woraufhin sich das Fenster von KeePassXC schließt und im Tastaturpuffer eine Eingabefolge hinterlegt wird. Das Fenster, welchen danach den Fokus bekommt, wird diese Eingabefolge auslesen und dementsprechend handeln.

Ich habe für die Gruppe Login die Standard-Eingabefolge angepasst und lasse nur {PASSWORD}{ENTER} senden. Am Häufigsten arbeite ich mit sudo oder su, die ich starte. Danach lasse ich von KeePassXC »das Passwort eintippen«, womit dieses beliebig lang und komplex seien kann. Außerdem hat diese Form der Passwortübermittlung den Vorteil, dass sie auch für sudo innerhalb von ssh funktioniert.

Es gibt auch noch ein globales Auto-Type, das in den Einstellungen von KeePassXC aktiviert werden muss. Damit kann man für einen Eintrag einen Fenstertitel festlegen, bei dem der Eintrag vorgeschlagen wird. In dem Fenstertitel lassen sich variierende Stücke mit einem Stern * als Platzhalter beschreiben. Da ich meine Zsh so angepasst habe, dass im Fenstertitel der Rechnername und das Programm anzeigt wird, kann KeePassXC auch das richtige Passwort auswählen und ich brauche nur noch die Eingabe bestätigen.

Theoretisch könnte man auch die qemu-Console und sendkey verwenden, um Passwörter an eine VM zu senden. Aber dies habe ich noch nicht getestet.

Magische URLs

Die Adressen eines Eintrag können auch in der Form cmd://… sein, mit KeePassXC beim Klick darauf den Befehl ausführt. Damit kann zum Beispiel ein anderer Browser als der übliche aufgerufen werden oder ein ganz anderes Programm.

Mit der Adresse file://… kann man auch eine weitere Datenbank in KeePassXC öffnen. Wenn der Eintrag dann in der Gruppe AutoOpen liegt, wird die Datenbank automatisch mit der Hauptdatenbank geöffnet.

TOTP/Zwei-Faktor-Authentisierung (2FA)

Das Prinzip der Zwei-Faktor-Authentisierung ist bereits von Listen mit bzw. Generatoren für Transaktionsnummern (TAN) bei Online-Banken bekannt. Im Kern geht es darum, die Anmeldung eines Benutzers durch mindestens zwei Merkmalen abzusichern, wobei günstiger Weise eines der Merkmale veränderlich bzw. vorab nicht bekannt ist – TAN-Listen erfüllen daher nicht ganz die Anforderungen.

Sollte ein Eingreifer bei einer Anmeldung die Leitung abhören, so kann er die gewonnenen Daten Benutzername, Passwort und 2FA-Geheimnis nicht nutzen, da sich das 2FA-Geheimnis regelmäßig ändert. Eine Variante ist ein zusätzliches Geräte (z. B. Smartphone) über das der Dienstleister das 2FA-Geheimnis kommuniziert. Wer Zugriff auf beide Informationen (Passwort und 2FA-Geheimnis) hat, ist sehr wahrscheinlich die richtige Person.

Eine andere Variante ist ein Verfahren, auf das sich beide Seiten (Nutzer und Anbieter) vorab verständigen und das für die Erstellung des 2FA-Geheimnisses genutzt wird. KeePassXC hat hierfür den zeitbasierten Algorithmus für Einmalpasswörter (Time-based One-time Password Algorithmus; TOTP) nach RFC 6238 implementiert.

Für einen Eintrag gibt es im Menü Einträge das Untermenü TOTP, über das man das Verfahren einrichten kann. Hierfür teilt der Anbieter einen Schlüssel mit, der für die Generierung des Geheimnisses verwendet wird. Für den Algorithmus gibt es auch noch weitere Parameter, aber ich habe noch keinen Dienst gefunden, der abweichende Einstellungen benötigt.

Wenn TOTP eingerichtet ist, kann man mit Strg+t sich das aktuelle 2FA-Geheimnis in die Zwischenablage kopieren oder über die Browsererweiterung lässt sich das 2FA-Geheimnis auch bequem in das entsprechende Formularfeld eintragen.

Während der Einrichtung teilt einem der Anbieter auch eine Liste von Notfallschlüsseln mit, die man einsetzen muss, wenn die 2FA nicht funktioniert. Diese kann man sich direkt in KeePassXC als zusätzlichen Eintrag unter Fortgeschritten ablegen. Dabei ist es ratsam, den Haken Schützen zu setzen, damit die Liste wie ein Passwort behandelt und nur nach mehreren Klicks angezeigt wird.

Bei folgenden Diensten konnte ich die Zwei-Faktor-Authentisierung mit KeePassXC einrichten: