DecaTec

Home-Server | Linux | Nextcloud | Raspberry Pi | Programmierung | Fotografie

Passwörter verwalten mit Nextcloud/KeePass

Nextcloud KeePassXC Logo

Man liest es in letzter Zeit häufiger: Irgendein Online-Dienst wurde gehackt und es wurden Nutzerdaten entwendet. Jüngstes Beispiel ist wohl der Hack der offiziellen Server des Messenger-Dienstes Matrix.org. Die User werden dann meistens dazu aufgefordert, umgehend ihre Passwörter zu ändern.

Wenn man aber nun für mehrere Dienste immer das gleiche Passwort verwendet, dann ist nach einem solchen Hack immer die Wahrscheinlichkeit gegeben, dass die Daten für anderen Online-Dienste, Webshops, etc. missbraucht werden. Daher sollte es sich mittlerweile herumgesprochen haben, dass man für jeden Online-Dienst ein eigenes Passwort verwenden soll.

Der folgende Artikel zeigt, wie man Passwörter einfach und effizient mit KeePass und Nextcloud verwalten kann.

Passwörter mit System

Aus den o.g. Gründen sollte „Passwort-Recycling“ also vermieden werden. Folglich muss man sich aber auch immer mehr Passwörter merken, je mehr Online-Dienste genutzt werden. Hierzu gibt es verschiedene Ansätze. Einer davon ist, dass man sich einen leicht zu merkenden Satz ausdenkt: „Grillen kann man nicht nur bei schönem Wetter, sondern auch wenn es regnet“. Nun nimmt man die Anfangsbuchstaben der einzelnen Wörter und erhält somit: gkmnnbswsawer. Nun kommen noch Groß-/Kleinbuchstaben, evtl. Sonderzeichen und weitere Ersetzungen zum Einsatz: gKm2nbSws4w3R – hier wurde das „nn“ einfach durch 2n“ und ein paar Buchstaben durch Zahlen (Leetspeak) ersetzt.
„gKm2nbSws4w3R“ ist nun das Basis-Passwort, dass man nun noch mit einem „Dienst-Teil“ ergänzt (z.B. die Anfangsbuchstaben des Dienstes). Für Amazon wäre das fertige Passwort also z.B. „aMgKm2nbSws4w3R“, für eBay z.B. „eBgKm2nbSws4w3R“.

Mit einem solchen System ist man nun etwas sicherer unterwegs. Dennoch besteht die Möglichkeit, dass das System dahinter erkannt werden kann, z.B. wenn von mehreren Diensten Daten entwendet wurden. In diesem Fall ist ein solches System auch nicht mehr als sicher anzusehen.

Besser wären Passwörter in der Form „k;%([uhk[3@!o6?m’2SQ}>MLN/Bf,ngPb“ – also eine zufällige Folge aus Buchstaben/Zahlen/Sonderzeichen. Jeder Dienst bekommt dann ein eigenes Passwort, d.h. dass hier kein System dahinter steckt, dem man auf die Schliche kommen kann.
Nun hat man allerdings ein Problem: Kein Mensch kann sich solche Passwörter merken…

Passwort-Verwaltung mit KeePass

Hier kommen dann sog. Passwort-Safes wie z.B. KeePass zum Einsatz. Passwörter können hier ganz einfach mit beliebigen Zusatzinformationen gespeichert werden, z.B. Benutzernamen oder Notizen, sogar Datei-Anhänge sind möglich. Verwaltet werden diese Passwort-Einträge in einer speziellen Datei (kdbx), die komplett verschlüsselt ist. Öffnen lässt sich der Passwort-Safe dann nur mit dem Master-Passwort, einer Schlüsseldatei, oder auch weiteren Verfahren (z.B. mittels eines YubiKeys). Auch eine Kombination der Verfahren zum Entschlüsseln ist möglich, so dass man z.B. sowohl das Master-Passwort eingeben, als auch eine Schlüsseldatei bereitstellen muss.

Man muss sich nun also nur noch das Master-Passwort merken. Die Passwörter für die einzelnen Dienste werden dann nur noch über den Passwort-Manager verwaltet und können beliebig lang/komplex sein. Ebenso kann man mit KeePass Passwörter erzeugen lassen, so dass man sich nicht mal mehr eigene Passwörter ausdenken muss.

Neben dem originalen KeePass gibt es eine Reihe weiterer Programme, die mit KeePass kompatibel sind. Mein Favorit darunter ist das Programm KeePassXC, welches aus einem Fork aus KeePass hervorgegangen ist.

Geöffnete Passwort-Datenbank mit KeePassXC

Geöffnete Passwort-Datenbank mit KeePassXC

Ebenso gibt es KeePass kompatible Clients für mobile Systeme. Unter Android verwende ich hierzu gern die App Keepass2Android.

Auf der Download-Seite von KeePass findet man hierzu eine Liste an alternativen Programmen/Apps.

Ebenfalls gibt es für KeePassXC Browser-Addons (Firefox, Chrome), die Passwörter aus einer (geöffneten) kdbx-Datenbank auslesen und bei der Anmeldung im Browser automatisch ausfüllen können.

KeePass und Nextcloud

Für den Zugriff auf die eigenen Passwörter braucht man also nur die KeePass-Datenbank (kdbx-Datei) und einen KeePass-Client. Wenn man nun allerdings von mehreren Geräten Zugriff auf die Passwörter haben möchte, muss man immer erst noch die aktuelle Version der kdbx-Datei auf das jeweilige Gerät kopieren. Das ist mühselig und auch fehleranfällig: Wo liegt nun nochmal die aktuelle Version der KeePass-Datenbank? Habe ich diese zuletzt auf dem Notebook oder auf dem PC bearbeitet?

Hier kommt dann Nextcloud ins Spiel: Für eine solche Cloud-Anwendung ist das Synchronisieren von Dateien eine der leichtesten Übungen. Am besten lädt man direkt nach der Erstellung des Passwort-Safes die kdbx-Datei in die eigene Nextcloud-Instanz in einen eigenen Ordner (z.B. „Passwörter“) hoch. Ab nun liegt immer die aktuellste Version dieser Datei in der Cloud.

Ab jetzt befindet sich die aktuellste Version der KeePass-Datenbank immer in der Nextcloud

Ab jetzt befindet sich die aktuellste Version der KeePass-Datenbank immer in der Nextcloud

Nun muss man nur noch sicher stellen, dass jedes Gerät immer mit der aktuellsten Version der Datei arbeitet. Am PC/Notebook nutzt man dazu am besten den Desktop-Sync-Client von Nextcloud: Man fügt einfach für den Order „Passwörter“ eine Synchronisation hinzu:

Nextcloud-Client: Synchronisation für den Passwort-Ordner hinzufügen

Nextcloud-Client: Synchronisation für den Passwort-Ordner hinzufügen

Nun ist auf diesem Gerät die aktuellste kdbx-Datei immer im jeweiligen Sync-Order für Nextcloud vorhanden, also z.B. /home/user/Nextcloud/Passwörter/Passwörter.kdbx.
Über KeePassXC öffnet man nun einfach diese Datei. Nach dem Bearbeiten der Einträge wird die Datei gespeichert. Sofort springt der Sync-Client von Nextcloud an und lädt die veränderte Version in die Cloud.

Wichtig: Falls man die KeePass-Datenbank mit Passwort und Schlüsseldatei gesichert hat, sollte man die Schlüsseldatei natürlich nicht neben der kdbx-Datei in der Cloud bereit stellen, sondern getrennt davon abspeichern: Am besten nur auf den jeweiligen Geräten selbst, auf einem USB-Stick, etc.

Auf einem Mobilgerät (z.B. mit Keepass2Android) läuft die Sache etwas anders ab: Hier wird die KeePass-Datenbank direkt per WebDAV geöffnet. Beim Öffnen der App gibt man daher den direkten Link zur kdbx-Datei ein, also z.B. https://meinedomain.de/nextcloud/remote.php/dav/files/user/Passwörter/Passwörter.kdbx.
Gespeichert wird wiederum per WebDAV, so dass die kdbx-Datei nach der Bearbeitung direkt in der Cloud aktualisiert wird.

KeePass-Datei direkt in Nextcloud öffnen

Es geht allerdings noch komfortabler: Mit KeeWeb existiert ein weiterer KeePass-Client, der auch im Web lauffähig ist. Und genau diesen Client (in der Web-Version) gibt es auch als eigenständige Nextcloud-App:
Im Nextcloud App Store findet man dazu in der Kategorie „Werkzeuge“ die App Keeweb.

Nach der Installation aus dem App Store ist allerdings noch ein kleiner Schritt notwendig, damit die in der Cloud gespeicherten kdbx-Dateien direkt per Klick geöffnet werden können. Dazu legen wir eine neue Datei im gleichen Order an, in dem auch schon die config.php von Nextcloud enthalten ist, also z.B.:

nano /var/www/nextcloud/config/mimetypemapping.json

Hier fügen wir folgenden Inhalt ein:

{
  "kdbx": ["application/x-kdbx"]
}

Damit die Änderungen greifen, muss noch ein Datei-Scan von Nextcloud angestoßen werden:

sudo -u www-data php /var/www/nextcloud/occ files:scan --all

Nun kann die Passwort-Datei in der Nextcloud-Instanz ganz einfach per Klick geöffnet werden:

Geöffnete KeePass-Datei in Nextcloud/Keeweb

Geöffnete KeePass-Datei in Nextcloud/Keeweb

Damit kann man sich die Synchronisierung der kdbx-Datei auf die einzelnen Geräte eigentlich sparen, da man nun jederzeit direkt in der eigenen Nextcloud an die gespeicherten Passwörter kommt. Einen „echten“ Desktop-Client wie KeePassXC braucht man eigentlich nur noch, wenn man z.B. die Integration mittels Browser-Addon benötigt.

Die Alternativen

Für Nextcloud-User, die KeePass bereits nutzen, ist die Integration der bestehenden Passwort-Verwaltung in die eigenen Cloud sicherlich sinnvoll. An dieser Stelle soll allerdings auch erwähnt werden, dass es darüber hinaus noch zwei Alternativen gibt:

Im Nextcloud App Store befinden sich mit Passman und Passwords noch zwei weitere Apps, mit den Passwörter in der eigenen Nextcloud verwaltet werden können. Beide Apps speichern ihre Einträge dabei direkt in der Cloud und nicht in kdbx-Dateien, daher sind die Apps auch nicht kompatibel mit KeePass. Dennoch bieten die Apps z.T. erweiterte Features, wie z.B. das direkte Teilen von einzelnen Passwörtern mit anderen Nextcloud-Benutzern oder per Link. Mit der KeePass-Lösung kann man nur die gesamte kdbx-Datei teilen, daher gilt hier das Motto „alles oder nichts“.

Fazit

In diesem Artikel wurde gezeigt, wie man seine Passwörter ganz einfach in der eigenen Nextcloud-Instanz verwalten kann. Nutzer von KeePass oder alternativen Clients können im einfachsten Fall die Funktionen zur Datei-Synchronisierung von Nextcloud nutzen, aber auch eine direkte Integration ist per App möglich, so dass kdbx-Dateien direkt in der Cloud geöffnet und bearbeitet werden können.

Darüber hinaus gibt es mit den Apps Passman und Passwords noch Alternativen für die Passwort-Verwaltung mit Nextcloud. Welche Lösung hier die beste (oder komfortabelste) ist, muss jedoch jeder für sich selbst herausfinden. Dazu können die Apps auch erst einmal im Parallelbetrieb installiert/getestet werden.

Wenn man sich für eine Lösung entschieden hat, werden die eigenen Passwörter zukünftig in der eigenen Cloud verwaltet. Durch den Einsatz eines Online-Password-Managers muss man sich nun nie mehr komplizierte Passwörter ausdenken und schon gar nicht merken.

Ich bin zwar kein Fan von Wechsel dein Passwort-Tagen, aber vielleicht ist dieser Artikel mal ein Anreiz, den Umgang mit eigenen Passwörtern zu überdenken und ggf. anzupassen.

Was haltet ihr davon? Wie verwaltet ihr eure Passwörter? Hinterlasst mir dazu doch einfach einen Kommentar.

Weiterführende Artikel

Links

, , , , , , , , , , ,

Kommentare: 15

  • mblaster4711 sagt:

    Ich verwalte meine Passwörter so ähnlich.
    Bei mir wird von allen Clients (ich selbst nutze immer nur einen zu gleichen Zeit) die kdbx direkt per Webdav geöffnet und gespeichert. Somit bin ich nicht auf Nextcloid oder den Sync-Clienten angewiesen, da Wedav jedes OS unterstützt.
    Als Apps verwende ich unter
    Windows Keepass (portable)
    Mac OSX Macpass
    Android Keepass2Android
    iOS Keypass4 (leider nicht kostenlos)

    Kostenlose Cloud (10GB) mit Webdav und täglicher Sicherung (3 Monate Vorhaltezeit) gibt es bei der Telekom.

  • Tom sagt:

    Ich synchronisiere mein KeePassXC-Safe auch über die Nextcloud, allerdings verzichte ich auf die Synchronisation mit einem Android-Smartphone weil ich es für grundsätzlich unsicher finde (proprietäres Basband, aktuelles LOS 14 zwar drauf aber die Unterstützung wurde schon abgekündigt).

    Auf dem Smartphone nutze ich allerdings
    https://f-droid.org/de/packages/com.android.keepass/
    für ein nicht ganz wichtiges KeePass-Safe.

    Ansonsten verzichte ich auch ich aus Sicherheitsgründen auf KeePass-Firefox-Addons (das würde durch Firejail (Sandbox) auch nicht so ohne weiteres funktionieren).

  • Jakob sagt:

    Hallo,
    ich habe vor einiger Zeit mehrere Passwort Manager verglichen und mir ist die Integration am Handy und auch im Browser wichtig.
    Wenn es nicht gut funktioniert nutze ich es nicht.

    Keypass funktioniert am Handy mit FF noch nicht: https://github.com/PhilippC/kp2a_accservice_autofill/issues/23

    Und bei Passmann/words: fehlt Autosync, Fingerprint, Auto Fill, Browser Integration.
    Hier ein guter Vergleich beider Tools: https://git.mdns.eu/nextcloud/passwords/wikis/Administrators/Feature-Comparison

    Daher fahre ich aktuell mit Bitwarden.

    Gruss,
    Jakob

  • BigBuilder sagt:

    Hallo,
    ich habe diese Lösung bei mir genau so umgesetzt. Der Sync Client unter Windows macht mir aber Probleme, er synchronisiert nicht bei jedem speichern der Datenbank. Warum auch immer? Ich bin dazu übergegangen die Datei direkt über webdav abzurufen. Im Menü von Keepass 2 Datei->öffnen-> Url öffnen.. kann ich den Pfad so angeben https://meineurl.de/remote.php/webdav/pfad/datenbank.kdbx. Dann arbeite ich direkt in der Datei. Der Nachteil ohne Internet kein Zugang zur Datenbank.

    Mich würde es freuen wenn du mal zum Thema Bitwarden selbsthosten mit Docker einen Artikel schreiben könntest. Vorallem die Konfiguration des Webservers um die Installation in einem eigenen Unterverzeichniss (meineurl.de/bitwarden) anzulegen macht mir aktuell zu schaffen. Das wäre eine denkbare Alternative für mich da Bitwarden direkte Browser Unterstüzung sowie gute Apps für Android sowie Linux und MacOS mitbringt.

    Danke für die zahlreichen sehr guten Anleitungen auf deinem Blog (die meisten sind 1 zu 1 bei mir im Einsatz). Das Thema eigener Firefox-Accout Server reizt mich auch sehr.

    • Jan sagt:

      Hi,

      danke für den Hinweis, dass man mit KeePass2 kdbx-Dateien auch direkt über die WebDAV-URL öffnen kann. Ich nutze mittlerweile nur noch KeePassXC, hier ist diese Möglichkeit leider nicht gegeben.

      Gruß,
      Jan

    • quecke sagt:

      >Dann arbeite ich direkt in der Datei. Der Nachteil ohne Internet kein Zugang >zur Datenbank.

      Keepass2Android hält auch immer eine lokale Kopie vom letzten Sync auf dem Smartphone vor, so kommst Du zumindest an die Einträge ran und kannst später den Sync neu anstossen.

      Der Wermutstropfen für mich ist, dass es derzeit leider keinen vernünftigen Client mehr für IOS gibt. Da war mal KyPass aber das wird wohl nicht mehr gepflegt.

  • Don sagt:

    Guten Morgen,
    ich wollte auch KeePass 2 unter Windows 10 über WebDAV auf PC und Smartphone Syncen, jedoch bekomme ich jedesmal den Fehler „401“ Autorisierung fehlt. Muss ich den PC da irgendwie Freischalten?

    • Jan sagt:

      Hi,

      nutzt du vielleicht eine 2-Faktor-Authentifizierung in NC? Dann benötigst du für diesen Zugriff ein sog. App-Passwort.
      Ansonsten sollte dieser Fehler nicht auftreten. Kannst du die KDBX nicht einfach über den NC-Client synchronisieren? Das wäre auch eine Option.

      Gruß,
      Jan

  • Bernhard sagt:

    Hi Jan!

    Also erst einmal ein herzliches Danke für Deine super Tutorials. Meine nextcloud läuft seit ein paar Tagen und ich bin sehr zufrieden.
    Ich nutze seit einiger Zeit KeePass und habe jetzt KeeWeb als AddOn für die nextcloud ausprobiert, bin davon aber nicht überzeugt. Das Ablegen einer Kopie meiner kdbx auf der nextcloud ist prima, dann habe ich auch Zugriff per WebDAV mit dem iPhone, wenn es sein soll. Aber wenn ich die Datei dann mit KeeWeb aufmache, speichert das Änderungen nur noch in der App. Da weiß ich dann doch gar nicht mehr, wo meine Passwörter tatsächlich physikalisch sind. Klar, verschlüsselt etc., aber irgendwie möchte ich trotzdem bei Bedarf meine kdbx Datei im Filesystem sehen und kopieren können. Und wenn ich sie lokal auf meinem Laptop habe, kann ich auch ran, ohne Internetverbindung. Die Gelegenheiten, wo man eine solche nicht hat, werden zwar seltener, aber es gibt sie.
    Das nur so mein Eindruck.

    Viele Grüße,
    Bernhard

    • Jan sagt:

      Hallo Bernhard,

      ja, die Keeweb-App für Nextcloud ist schon praktisch, aber ich habe auch lieber eine physische Kopie der KDBX.
      Ich synchronisiere das automatisch über den Nextcloud-Client und öffne die KDBX immer lokal auf dem Rechner.
      Auf dem Smartphone habe ich einen direkten Zugriff per WebDAV über Keepass2Android.

      Im Moment sieht es leider auch so aus, als ob die Keeweb-App für NC nicht mehr weiterentwickelt wird. Fraglich, ob diese in zukünftigen Versionen von Nextcloud noch zur Verfügung stehen wird.

      Gruß,
      Jan

  • Klemens sagt:

    Hallo Jan,

    vielen Dank für die Anleitung!

    Ich hatte meine Passwort-Datenbank so wie von dir beschrieben angelegt. Hatte trotzdem einmal eine conflicted copy. Habe dann gesehen, dass KeePass angibt, dass man für jedes Gerät eine lokale Kopie ablegen sollte, die man mit KeePass oder den entspr. Android-Apps öffnet und für diese eine KeePass-Sync einrichtet (siehe https://keepass.info/help/kb/trigger_examples.html#dbsync).

    Ich wüsste aber gar nicht, wie ich so eine Sync über KeePass2Android einrichte. Was ist jetzt richtig? Hattest du bei deiner Variante noch nie eine conflicted copy

    • Jan sagt:

      Hallo Klemens,

      nutzt du Keepass2Android? Hier gibt es in der aktuellen Version einen Fehler, der immer dafür sorgt, dass die Synchronisierung nicht mehr richtig funktioniert. Hintergrund ist ein Fehler in der verwendeten Bibliothek (okhttp). Mehr Infos dazu siehe hier.

      Ansonsten sollte das funktionieren, da Keepass2Android auch immer mit einer lokalen Kopie arbeitet.

      Gruß,
      Jan

  • Andreas sagt:

    Eigentlich funktioniert es wunderbar bei mir mit Nextcloud 18.0.4. Das Problem ist aber, dass die Keeweb App einen Fehler in meiner Cloud verursacht. Ich kann dann in der Activity App meine eigenen Aktivitäten nicht mehr sehen und im Log steht der Fehler: Exception: substr() expects parameter 3 to be integer, boolean given.

    Für einen Lösungsansatz wäre ich echt dankbar ;-)

    • Jan sagt:

      Hi Andreas,

      bist du sicher, dass dies mit der Keeweb App zu tun hat? Ich habe diese auch im Einsatz und habe keine Probleme mit den Aktivitäten.
      Wenn dem so ist, dann handelt es sich wohl eher um einen Fehler in der App. Hier kann ich dir dann nur empfehlen, einen Issue im entsprechenden GitHub Repository auf zu machen.

      Gruß,
      Jan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.