Wie Marius Mertens vom ZIM-CERT in seinem Beitrag “Authentifizierung per Passwort: Totgesagte leben länger” bereits dargelegt hat, werden wir uns noch sehr lange und an sehr vielen Stellen mithilfe von Passwörtern authentifizieren (müssen). Leider sind die Anforderungen an sichere Passwörter hoch: Sie sollen lang sein, häufig wird zudem von Plattformen eine gewisse “Komplexität” verlangt und als wäre das nicht genug, sollte man auch noch für jeden Account ein anderes Passwort wählen. Mit E-Mail-Konten, Online-Banking, diversen Webshops, dienstlichen Accounts usw. kommt man schnell auf eine nahezu dreistellige Anzahl von Passwörtern oder auch darüber.
Eine Möglichkeit, dieses Problem anzugehen, hat Marius bereits beschrieben: Man wählt sich ein “Hauptpasswort” und ergänzt dieses auf eine nicht trivial erkennbare Weise um einen Account-spezifischen Anteil. Diese Methode funktioniert prima, solange man nicht in die Situation kommt, ein kompromittiertes Passwort austauschen zu müssen. Sobald das notwendig wird, steht man vor der Wahl: Alle Passwörter ändern, um das System zu erhalten - oder mit einem Passwort vom System abweichen und damit wieder in die “Wie soll ich mir das nur alles merken?"-Problematik zu rutschen.
Auch wer bei Phishing-Mails äußerst aufmerksam ist und sich niemals aus Versehen Malware installiert, kann in die Situation kommen, Passwörter ändern zu müssen, wenn ein Datenverlust (“Leak”) bei einem Dienstleister auftritt. Leider werden an manchen Stellen immer noch Passwörter im Klartext oder als unsalted Hash gespeichert und sind so bei einem erfolgreichen Angriff auf einen unvorsichtigen Dienstleister trivial auslesbar bzw. wiederherstellbar.
Wer also nicht im Zuge jeder notwendigen Änderung eines Passworts alle anderen Passwörter mit ändern möchte, kommt irgendwann an den Punkt, dass “Merken” einfach keine brauchbare Option mehr ist.
Als naheliegende Lösung bieten sich Passwortmanager an. Auch dazu hat Marius bereits einiges geschrieben. In diesem Beitrag werden einige Punkte nochmal aufgegriffen und vertieft, außerdem schauen wir uns drei konkrete OpenSource-Produkte genauer an.
Generelle Auswahlkriterien
Bei der Auswahl eines geeigneten Passwortmanagers spielen neben den üblichen Kriterien, wie allgemeiner Usability, vor allem folgende Aspekte eine Rolle:
Sicherheit
Die in einem Passwortmanager gespeicherten Passwörter sollten dort gut geschützt sein. Dafür ist der Einsatz einer aktuell als sicher geltenden Verschlüsselungstechnologie und eine korrekte Implementierung dieser Technologie notwendig. Während sich der erste Punkt mit einer kurzen Internetrecherche leicht überprüfen lässt, kann der zweite Punkt selbst bei OpenSource-Produkten wenn überhaupt nur mit erheblichem Aufwand überprüft werden. Entsprechend der wichtigsten Regel der Kryptographie “Don’t build your own crypto” sind in diesem Kontext auf jeden Fall Produkte positiv zu bewerten, die etablierte Krypto-Bibliotheken nutzen und den Verschlüsselungsteil nicht selbst implementieren. Insbesondere sollten keine Produkte genutzt werden, die selbstentworfene Krypto-Algorithmen nutzen.
Synchronisationsmöglichkeiten und Plattformunabhängigkeit
Sobald Passwörter auf mehr als einem Gerät genutzt werden sollen, stellt sich die Frage, wie die Synchronisation der Passwörter zwischen den Geräten erfolgen soll. Wer eine automatische Synchronisation möchte, schaut sich am besten im Bereich cloudbasierter Passwortmanager um. Sofern eine wirksame Verschlüsselung so umgesetzt ist, dass weder der Dienstanbieter selbst noch Dritte die synchronisierten Passwörter entschlüsseln können, bedeutet die Synchronisation via Clouddienst keine Einschränkung der Sicherheit.
Auch wer sich um die Synchronisation selbst kümmern möchte, sollte beachten, dass der gewählte Passwortmanager auf allen benötigten Plattformen/Betriebssystemen genutzt werden kann oder zumindest alle verwendeten Produkte mit dem selben Datenbankformat arbeiten. Hier bieten sich wie bereits von Marius angesprochen Produkte an, die mit dem Datenbankformat von Keepass (.kdbx) umgehen können. Auch hier gilt, dass bei korrekt umgesetzter Verschlüsselung und einem sicheren Primärpasswort die Passwortdatenbank mit dem Clouddienst der Wahl ohne Probleme synchronisiert werden kann, um sie einfach auf mehrere Geräte zu verteilen.
Weitere nützliche(?) Funktionen
Sehr angenehm in der Verwendung sind Passwortmanager, die einen Passwortgenerator integriert haben. Wer mit zufallsgenerierten Passwörtern arbeitet, diese aber hin und wieder auch von Hand eintippen muss, kennt das Problem: Verschiedene Tastaturlayouts führen dazu, dass Passwörter anders eingegeben werden müssen (‘y’ vs. ‘z’) und je nach Schriftart sehen sich Zeichen wie ’l’ und ‘1’ extrem ähnlich. Optimalerweise hat der integrierte Passwortgenerator also ein “ähnliche Zeichen ausschließen”-Feature oder die Möglichkeit, selbst Zeichen auszuschließen.
Eine weitere komfortable Funktionalität sind Warnungen, wenn ein genutztes Passwort in einem Data Breach aufgetaucht ist oder für mehrere Dienste das gleiche Passwort genutzt wurde. Zu Bedenken ist hier allerdings, dass für diese Überprüfungen häufig Hashes der eigenen Passwörter zum Dienstanbieter hochgeladen werden, was aus Sicherheitssicht nur bedingt wünschenswert ist.
Auch eine Auto-Type-Funktion, die Passwörter automatisch in Browserfenster, Videokonferenz-Clients und ähnliches eintippt, kann sehr angenehm und bequem sein. Allerdings ist hier darauf zu achten, dass vor Auslösen des automatischen Eintippens der Fokus tatsächlich auf dem korrekten Fenster und Eingabefeld liegt, sonst landen Passwörter sehr schnell an der falschen Stelle und die Kolleg:innen wundern sich über kryptische Zeichen im Chat.
Viele Passwortmanager bieten darüber hinaus eine integrierte OTP/2FA-Funktionalität an. Diese ist aus Sicherheitssicht jedoch kritisch zu bewerten, da hier zwei eigentlich getrennte Faktoren zusammengelegt werden und damit viel vom Sicherheitsgewinn von 2FA verloren geht.
Betrachtung dreier OpenSource Passwortmanager
KeePassXC
Bei KeePassXC handelt es sich um eine Weiterentwicklung von KeePassX, einer Variante von KeePass. Vorteil der relativ umfangreichen KeePass-“Familie” ist, dass es Produkte für verschiedenste Plattformen gibt, die alle das gleiche Datenbankformat nutzen, so dass die Datenbank auch über verschiedene Gerätearten synchronisiert werden kann. Da es sich jedoch nicht um ein Cloud-Produkt handelt, muss man sich selbst um die Synchronisation kümmern. KeePassXC selbst gibt es in Versionen für Linux, macOS und Windows.
Die Verschlüsselung der Passwortdatenbank erfolgt standardmäßig mit einer 256-bit AES-Verschlüsselung, kann aber auch auf einen anderen Verschlüsselungsalgorithmus geändert werden. Dafür nutzt KeePassXC bestehende Krypto-Bibliotheken, die allerdings in Teilen noch von eigenem Code ergänzt werden.
Praktische Features sind unter anderem ein integrierter Passwortgenerator (mit der Option, ähnlich aussehende oder auch beliebige andere Zeichen auszuschließen), Plugins zur Browser-Integration für alle gängigen Browser und die Möglichkeit, Passwörter in verschiedene Gruppen einzusortieren, um leichter einen Überblick über seine Accounts zu behalten.
Wer selbst einen Blick in den Code werfen will, kann das unter https://github.com/keepassxreboot/keepassxc tun.
Bitwarden
Ein cloudbasierter Passwortmanager ist Bitwarden. Der große Vorteil ist, dass man hier auf seine Passwörter sowohl vom Desktop-Client (für Linux, macOS und Windows), mithilfe eines Browser-Plugins für alle gängigen Browser, per Mobile-App, Kommandozeile und direkt aus dem Browser ohne Plugin Zugriff hat. Mit rbw existiert ein alternativer Kommandozeilenclient mit Passwort-Agent, der häufige Zugriffe auf Passwörter vereinfacht.
Eine weitere Besonderheit ist, dass man entweder den Server der Firma Bitwarden oder einen selbstbetriebenen Server als Backend für die Synchronisation nutzen kann. Dazu kann die offizielle Implementierung oder vaultwarden verwendet werden. Zweiteres stellt eine schlankere Alternative mit leicht reduziertem Funktionsumfang dar.
Je nach gewünschtem Nutzungsumfang gibt es Bitwarden als “free plan” für Privatpersonen oder auch in verschiedenen kostenpflichtigen Varianten. Ein praktisches Feature kann das Teilen von Passwörtern zwischen verschiedenen Nutzer:innen sein, sowohl im privaten Bereich für von der ganzen Familie genutzten Accounts als auch in kleineren Teams im beruflichen Kontext.
Die Verschlüsselung der Passwortdatenbank erfolgt mit einer 256-bit AES-CBC-Verschlüsselung. Positiv zu bewerten ist, dass Bitwarden mit etablierten Crypto-Bibliotheken arbeitet.
Der Code von Bitwarden findet sich unter https://github.com/bitwarden.
gopass
Einen eher „UNIX-artigen“ Ansatz verfolgt gopass (eine kompatible, moderne Reimplementierung von pass). Die primäre Zielgruppe sind Menschen aus den Dunstkreisen Betrieb und Entwicklung, die sowieso immer eine Shell offen haben und Passwörter gerne in bestehende Prozesse und Automation integrieren wollen.
Passwörter, beziehungsweise generell Geheimnisse, sind einfach Textdateien (fast) ohne vorgegebene Struktur. Diese werden mittels GnuPG an definierte Empfängerlisten verschlüsselt. Da GnuPG aufgrund von Komplexität, partiell schlechter Kryptographie und schwer wartbarer Codebasis stellenweise ungern eingesetzt wird, existiert für gopass ein alternatives Verschlüsselungs-Backend mittels age.
Historie und Verteilung übernimmt transparent git; Platz für ein git-Repository findet sich überall. Im Prinzip reicht irgendwo ein Linux-Account. Da git-Repositories immer die kompletten Daten enthalten, funktioniert gopass auch ohne Netzanbindung, solange man mit dem letzten synchronisierten Stand leben kann.
Neben dem cli-Client gibt es ein Browser-Plugin für gängige Browser sowie grafische Frontends und Apps für Android und iOS.
Ein paar abschließende Hinweise
Für den Fall, dass die Passwort-Datenbank in falsche Hände gerät, sollte auf jeden Fall ein sicheres Primärpasswort für die Datenbank gewählt werden. Hier ist die Empfehlung also, lieber ein paar Zeichen mehr zu verwenden. Es spricht nichts dagegen, dieses Passwort oder zumindest einen “Passworthinweis” analog an einer sicheren Stelle zu verwahren - das Primärpasswort zu vergessen bedeutet schließlich, den Zugriff auf viele Accounts gleichzeitig zu verlieren.
Backups der Passwortdatenbank sind darüber hinaus zu empfehlen, insbesondere sofern diese nicht bereits auf mehrere Geräte synchronisiert ist.
Zum vieldiskutierten Thema “Darf man Passwörter im Browser speichern?” gilt, was Marius bereits in seinem Beitrag geschrieben hat: Ja, aber nur mit sicherem Primärpasswort. Das schützt dann nicht nur vor Kriminellen, sondern auch davor, dass die Kinder am Familienrechner Zugriff auf alle Accounts der Eltern haben.
Ein netter Nebeneffekt bei der Verwendung eines Passwortmanagers ist, dass man bei konsequenter Nutzung auch gleich eine Liste aller Accounts hat, die sich im Laufe der Jahre so ansammeln.
Wer selbst noch keinen Passwortmanager verwendet, aber aufgrund der überwältigend scheinenden Anzahl der im Laufe der Jahre angesammelten Accounts davor zurückschreckt, sich endlich dem Thema zu stellen: Am besten jetzt gleich einen Passwortmanager auswählen, installieren und für den Anfang nur die am häufigsten genutzten Passwörter dort hinterlegen (optimalerweise in diesem Zug auch gleich alle unsicheren Passwörter abändern). So viele sind das in der Regel nicht, so dass der Einstieg schnell gelingt. Alle weiteren, nicht so häufig genutzten Accounts kann man dann nachtragen, wenn man sie das nächste Mal benötigt.
Vanessa Weidler, RUS-CERT, Universität Stuttgart
Die Beschreibung von gopass und viele Hinweise zu Bitwarden inklusive Screenshots wurden freundlicherweise von Heiko Reese (KIT-CERT, Karlsruher Institut für Technologie) beigesteuert.