Passwörter sicher in der eigenen Cloud verwalten

Zentrale Passwortverwaltung mit Docker auf dem eigenen Server/Raspberry betreiben ist leichter als gedacht.

Passwörter sicher in der eigenen Cloud verwalten
Photo by Towfiqu barbhuiya / Unsplash

Es scheint, dass auch heute noch das selbe Passwort für fast alle Dienste im Internet verwendet wird. Obwohl nun auch die großen Anbieter versuchen einen einfachen Standard zu etablieren, scheint auch dies keinen Anklang zu finden.

Google Passkeys

Passkey könnte eine gute Alternative sein, einen sicheren Zugang zu seinen Daten herzustellen. Die Vorteile werden überall betont: Einfach und sicher.

Man muss Google natürlich großes Vertrauen entgegenbringen, dass die Daten nicht genauso missbraucht werden, wie bei Microsoft. Der Konzern aus Redmond hatte zuletzt die persönlichen Zugangsdaten zu privaten und dienstlichen Mail-Konten genutzt, um Firmendaten und private Mails in seine Cloud zu kopieren. Aus Sicht des Datenschutzes wohl eher bedenklich.

Wer mich kennt, hat sicherlich bemerkt, dass ich meine Daten lieber selbst schütze. Gerade dabei spielt die Nutzung komplexer Passwörter eine große Rolle. Doch wie soll man sich diese dann merken? Am bequemsten wäre natürlich, sich keine mehr merken zu müssen. Wie kann das jedoch zuverlässig und sicher sein?

Die Lösung: Bitwarden

Ähnlich wie Keypass werden auch hier alle Passwörter zentral verwaltet. Bitwarden ist jedoch ein Dienst im Internet, dem wir wieder vertrauen müssen. Wir werden jedoch diesen Dienst im Internet selbst bereitstellen, was den Vorteil hat, dass dabei ausschließlich Komponenten genutzt werden, für die wir selbst verantwortlich sind. Und ganz ehrlich: Ich vertraue mir selbst mehr, als Google oder Apple etc..

Wie nutze ich diese zentrale Passwortverwaltung?

Es gibt viele Clients, die genutzt werden können. Als Browser-Plugin, oder auch als Android-App.

Das gute an Bitwarden ist, dass es erkennt, welches Passwort benötigt wird, und dieses direkt anbietet. Egal, ob auf einer Webseite oder für eine Banking-App.

Wenn ich eine Webseite besuche, die einen Login erfordert, bietet Bitwarden mir an, diese Felder auszufüllen:

Die Login-Daten hat Bitwarden beim ersten Besuch der Webseite gelernt, sofern man die Frage mit "ja" beantwortet hat. Dabei kann Bitwarden unterstützen, starke Passwörter zu generieren.

Das einzige Passwort, dass man sich noch merken muss, ist das für Bitwarden. Ich verwende hierzu eine Klavier-Fingerübung. So kommen schnell viele Zeichen zustande, die aus allen Zeichentypen bestehen. Auf meinem Android-Phone nutze ich dann einfach Biometrie, damit Bitwarden die Zugangsdaten eintragen kann.

Bitwarden-Server erstellen

Wir haben schon viele Services im Internet eingerichtet. Dieser unterscheidet sich nicht davon. Den Bitwarden-Service richten wir wieder als Docker-Container ein, den wir hinter unserern Reverse-Proxy hängen, um gültige HTTPS-Zertifikate zu erhalten.

Eigener Webserver mit offiziellen Zertifikaten
Der Basis-Artikel für alle folgenden Services, die ich hier demonstrieren werde…

Wir fügen folgenden Abschnitt in unser docker-compose.yml Datei hinzu:

  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    volumes:
      - ./vaultwarden:/data/
    depends_on:
      - nginx-proxy-manager
    expose:
      - "80"
    restart: unless-stopped
    environment:
      - SIGNUPS_ALLOWED=false
      # - SIGNUPS_ALLOWED=true
      - WEBSOCKET_ENABLED=true
      - ADMIN_TOKEN=%$$%$Hier_kommt_was_schoen_komplexes_hin!%%$%
    labels:
      - com.centurylinklabs.watchtower.monitor-only=true
    networks:
      - web

Um einen neuen User anlegen zu können, muss natürlich SIGNUPS_ALLOWED auf true gesetzt werden. Damit sich fremde Nutzer nicht ebenfalls Konten auf dem Server anlegen, setzen wir diese Variable später wieder auf false.

Mittels docker-compose up -d starten wir den Container. Und schon bietet dieser dem Reverse-Proxy auf Port 80 seine Dienste an. Jetzt müssen wir nur noch die Webseite im Internet anbieten. Dazu gehen wir wieder auf unseren nginx-proxy-manager:

Wir hinterlegen folgende Daten:

  1. Unseren Domainnamen bitwarden.meine-domain.de
  2. Den Namen des Containers vaultwarden
  3. Den Port, den der Container exponiert 80
  4. Einen groben Schutz des Services

Dann fordern wir ein Zertifikat für die gewählte Domain an:

Ein Klick auf Request a new Certificate und anschließend auf Save gibt den Dienst im Internet frei.

Wir rufen mit dem Browser unsere URL auf, und legen uns einen Account an:

Nachdem dies erledigt ist, ändern wir SIGNUPS_ALLOWED auf false und tippen erneut docker-compose up -d in die Konsole. Das aktualisiert die Umgebungsvariablen des Containers und verbietet das Neuanlegen von Konten.

Im Browser installieren wir noch das Plugin:

Auf dem SmartPhone/Tablet:

Jetzt dürfen wir nicht vergessen die URL im Plugin und der App anzugeben. Ein Detail, das ich auch nach vielen Installationen immer wieder gerne vergesse. Aber nach Eingabe der Zugangsdaten kann Bitwarden nun endlich wie oben beschrieben genutzt werden. Selbst mit TOTP.

Fazit

Die Passwörter im eigenen Keller geschützt zu wissen, sie aber dennoch auf allen Geräten synchron halten zu können, bietet den gleichen Komfort wie auch Googles Passkeys.

Ab jetzt muss ich meine Passwörter nicht mehr kennen und sie können daher auch beliebig komplex sein, da ich sie nicht mehr eintippen muss. Mein Fingerabdruck genügt.