• Zwei-Faktor-Authentifizierung für KeePass (Linux/Android)

    Präambel

    Idealerweise nutzt man für jedes Konto ein eigenen, zufällig(!) generiertes sicheres Passwort, so dass – sollte das Konto aus welchen Gründen auch immer – kompromittiert sein, die anderen Konten nicht in Mitleidenschaft gezogen werden. Da sich aber selbst der begabteste Gedächtniskünstler nicht über hundert Kennwörter der Form „laep1neemie5Eiqu“ (und das ist eine eher harmlose Variante) merken kann, nutzt man üblicherweise Passwordsafes mit einem Masterpassword. Und man möchte auch seine Passwörter ggfls immer dabei haben statt auf dem heimischen, abgeschalteten PC, damit man unterwegs auf die Konten zugreifen kann,

    Problem: Sicherheit und Benutzbarkeit

    Hier prallen zwei Gegensätze aufeinander: Einerseits die Sicherheit: Der Schutz von hunderten von Konten hängt nun sowohl an der Sicherheit des Passwordsafes, anderseits an der Qualität des Masterpasswords, das die Datenbank schützt, ab (Was passiert, wenn der Passwordsafe in falsche Hände gerät?). Auf der anderen Seite sind sogenannte „sichere“ Passwörter auf einer Mobilfunktastatur – besonders wenn es um Sonderzeichen geht – sehr unangenehm einzugeben.

    Lösung: Zwei-Faktor-Authentifizierung

    Das Dilemma lässt sich über Zwei-Faktor-Authenfizierung gut und recht benutzerfreundlich lösen: Zusätzlich zu dem Passwordsafe und dem Masterpassword wird noch eine dritte Komponente benötigt: in dem Falle ein Hardwaretoken im Form eines Yubikey Neo.

    Nun braucht ein Angreifer, der an die Passwörter will, sowohl die Passworddatenbank (die Datei, die an verschiedene Geräte synchronisiert wird), das Masterpassword und den physikalischen Yubikey (es gibt noch eine kleine Hintertür, aber dazu später mehr). Fehlt eine dieser Komponenten kommt der Angreifer an keines der gespeicherten Kennwörter dran.

    Einrichtung der Zwei-Faktor-Authentifzierung

    1. Yubikey Neo

    Als erstes wird der Yubikey Neo (der mit NFC-Fähigkeiten, das ist noch wichtig für Android) mit dem Yubikey Personalization Tool (gibt es auch für Linux) eingerichtet, und zwar der zweite Slot für Challenge-Response. Es gibt dafür diverse gute Anleitungen im Netz, ich spar mir das an der Stelle und verweise auf die Anleitung von Mtrix. Das Shared-Secret sollte (wie auch in der Anleitung beschrieben) sicher aufbewahrt werden, denn dies ist die einzige Möglichkeit bei Verlust des Yubikeys die Datenbank zu öffnen! (Oder – wie in meinem Falle – alternativ zwei Yubikeys zum Öffnen der Passworddatenbank nutzen zu können: Einfach das Shared-Secret auf den zweiten Key speichern, fertig). Das Shared-Secret wird nun für den zweiten Schritt benötigt, danach sicher speichern und wegschließen.

    2. Linux / KeePass

    Als nächstes – wenn noch nicht geschehen – wird unter Linux keePass (2) installiert. Unter Gentoo ist das trivial: emerge keepass installiert keepass und alle Abhängigkeiten (Mono, usw).

    Danach wird noch ein Plugin benötigt – KeeChallenge. Generell werden die notwendigen Schritte wiederum bei Mtrix ganz gut beschrieben – konkret ist der Plugin-Pfad unter Gentoo in /usr/lib/keepass/plugins, hier wird dann KeeChallenge.dll, KeeChallenge.dll.config und die anderen DLLs installiert. Das funkionierte bei mir problemlos, die weiteren Schritte sind in der verlinkten Anleitung beschrieben

    3. Android/KeePass/YubiChallenge

    Von Androidseite wird Keepass2Android und YubiChallenge benötigt – letzteres dient der Kommunikation per NFC zwischen Keepass2 und dem Yubikey, alles kein Problem.

    4. Synchronisation

    Nun muss der Passwordsafe irgendwie zwischen den Geräten (PC/Telefon/Tablet…) synchronisiert werden. Das geht recht unproblematisch mit normaler Dateisynchronisation – z.B. Dropbox oder – in meinem Fall – mittels privater Owncloud und FolderSync unter Android – ich synchronisiere das ganze KeePass2-Verzeichnis mit der kdbx und .xml-Datei. Sobald die Datenbank auf einem der Geräte geändert wird, werden die Änderungen an die anderen Geräte propagiert. Läuft alles sauber und problemlos.

    5. Benutzung

    Beim Öffnen der Passworddatenbank (egal ob Linux oder Android) wird nun zusätzlich zum Masterpassword der Yubikey abgefragt – im PC per USB, unter Android per NFC. Letzters kann ab und zu ein bisschen haklig sein, bis man herausgefunden hat, wo genau die Antenne versteckt ist und wo man den Yubikey am besten hält – das hat man aber recht schnell raus.

    6. Gotchas

    Es gibt unter Android ein Gotcha, sofern man – wie ich – zusätzlich noch den Yubikey Authenticator nutzt: Wenn der Yubikey Authenticator  läuft, scheinen sich beide um die NFC-Kommunikation zum Yubikey zu prügeln, so dass KeePass den Yubikey nicht zur Authentifizierung nutzen kann. Einfach den Authenticator beenden und es klappt wieder sauber 🙂

     

     

     

     

     

    Print Friendly, PDF & Email
    Share on Google+Tweet about this on TwitterShare on FacebookPin on PinterestEmail this to someone