Passbolt zum Passwort-Management in Teams

Passwortspeicher

Viele Passwörter zu haben, verlangt viel Erinnerungsaufwand. Ein Gegenmittel sind Passwortmanager, die Passwörter hoffentlich sicher speichern. Passbolt ist ein Passwortmanager, der sich auch im Team einsetzen lässt. Wir haben uns das freie Programm näher angesehen.
Anwender mit nur einem mobilen Gerät dürften heute bereits die große Ausnahme sein. Zudem findet ein und dasselbe Smartphone oft sowohl privat als auch ... (mehr)

Allen Bemühungen zum Trotz sind Passwörter nicht totzukriegen. Gleichzeitig sollen sie dank höherer Sicherheitsanforderungen immer komplexer werden und sind damit schwieriger zu merken. Ohne Aufschreiben geht dann gar nichts mehr. Ein Passwort-Manager, der sich auch für Teams verwenden lässt, ist Passbolt, das als Webanwendung im Quellcode zur Verfügung steht.

Passbolt setzt auf bewährte Krypto-Technologie, namentlich PGP (Pretty Good Privacy), ein 25 Jahre altes asymmetrisches Verschlüsselungsverfahren, das heute in diversen Implementierungen vorliegt und als OpenPGP in diversen RFC-Dokumenten standardisiert wurde (aktuell RFC 4880).

Die gespeicherten Passwörter werden von Passbolt mit den privaten PGP-Keys verschlüsselt. Dazu verwendet Passbolt eine Javascript-Implementierung namens OpenPGP.js, die in einer Browser-Extension verwendet wird. Auch zur Authentifizierung kommt PGP in Form des GPGAuth-Protokolls zum Einsatz. Zur Absicherung der Kommunikation setzt Passbolt auf TLS/SSL.

Vorausgesetzt werden neben einem SSL-fähigen Webserver mit URL-Rewriting (Apache, Nginx, ...) eine PHP-Version größer 5.4 sowie eins der drei PHP-Bildverarbeitungsmodule GD2, Imagick, Gmagick und GnuPG für PHP. Um Sessions im Cache zu speichern, empfehlen die Entwickler darüber hinaus Memcached. Als Datenbank ist derzeit nur MySQL unterstützt.

Am besten selbst installieren

Sie können Passbolt mit einem Demo-Server testen, den die Entwickler anbieten, aber dort sollten Sie natürlich keine echten Passwörter und Schlüssel hochladen. Besser ist es, selbst einen Passbolt-Server zu installieren, den Sie an einem geschützten Ort im Intranet betreiben und auf dem Sie dann auch echte Passwörter verwalten können.

Kopieren Sie den Quellcode aus dem Github-Archiv an eine passende Stelle im Webserver-Verzeichnis, im Beispiel unter "/var/www/":

git clone https://github.com/passbolt/passbolt.git

Wechseln Sie in das neue Verzeichnis "passbolt" und kopieren Sie die Beispielkonfigurationsdatei:

$ cp app/Config/core.php.default app/Config/core.php

Editieren Sie die neue Konfigurationsdatei "app/Config/core.php" und ändern Sie die beiden Einträge für "Security.salt" und "Security.cipherSeed". Analog verfahren Sie mit den Datenbank-Einstellungen:

$ cp app/Config/database.php.default app/Config/database.php

Am Ende der Datei finden Sie zwei Einträge für den Datenbank-Zugriff, die jeweils den Hostnamen, den User, das Passwort, den Datenbanknamen und noch ein paar andere Einstellungen umfassen.

Eine weitere Datei, die Sie kopieren müssen, enthält die Anwendungseinstellungen wie den SSL-Zugriff, die Tests, die Benutzerregistrierung und die grundlegende GPG-Konfiguration:

$ cp app/Config/app.php.default app/Config/app.php

Ändern Sie die Datei "app/Config/email.php" und passen Sie den Default-Eintrag für Ihren E-Mail-Server an. Wer keine SMTP-Authentifizierung verwendet, muss Username und Passwort aus der Konfiguration entfernen.

Nun müssen Sie mit »gpg --gen-key« ein PGP-Schlüsselpaar für den Passbolt-Server erzeugen. Geben Sie keine Passphrase an, denn das PGP-PHP-Modul kann damit nicht umgehen. Anschließend exportieren Sie den privaten und den öffentlichen Schlüssel an eine Stelle, wo der Webserver sie lesen darf.

$ gpg --armor --export-secret-keys passbolt@ita.net > /var/www/passbolt/app/Config/gpg/serverkey.private.asc
$ gpg --armor --export passbolt@ita.net > /var/www/passbolt/app/Config/gpg/serverkey.asc

Ansonsten müssen die Schlüssel natürlich gegen den Zugriff durch andere geschützt sein. Tragen Sie dann die "id" und den "fingerprint" »(gpg --fingerprint ...« ) des Keys in "app/Config/app.php" ein. Entfernen Sie aber die von dem Befehl ausgegebenen Leerzeichen! Passen Sie auch die Dateinamen der Keys an, denn per Default sind dort zwei mitgelieferte Schlüssel mit dem Namen "unsecure..." eingetragen. Passen Sie in derselben Datei noch den Pfad zur GPG-Konfiguration an, der in unserem Beispiel "/var/www/.gnupg/" lautet:

'env' => [
      'setenv' => 1,
      'home' => '/var/www/.gnupg',
],

Je nachdem, wie Sie das Schlüsselpaar erzeugt haben, müssen Sie das GPG-Verzeichnis an die passende Stelle kopieren und die Rechte anpassen, etwa so:

sudo mv /root/.gnupg/ /var/www/
chown -R www-data /var/www/.gnupg/

Ob der Keyring gefunden wird und die Rechte stimmen, überprüfen Sie, indem Sie zum WWW-User werden und die Keys auflisten:

# su - www-data
$ gpg --list-keys
/var/www/.gnupg/pubring.gpg
---------------------------------
...

Haben Sie eine MySQL-Datenbank angelegt und dem in "app/Config/database.php" eingetragenen Benutzer alle nötigen Rechte vergeben, können Sie die Passbolt-Installation starten. Die Passbolt-Entwickler empfehlen, dabei den WWW-Benutzer zu verwenden, um eventuelle Rechteprobleme mit der GPG-Konfiguration zu vermeiden. Das hat bei uns aber nicht funktioniert, weshalb wir den Befehl mit Root-Rechten ausgeführt haben:

# app/Console/cake install --no-admin

Der Switch "--no-admin" verhindert, dass automatisch ein Admin-User angelegt wird, was im folgenden Schritt manuell erledigt wird:

# app/Console/cake passbolt register_user -u ofr@ita.net -f Oliver -l Frommel -r admin
Bild 1: Beim Setup für neue User erlaubt Passbolt, entweder einen neuen PGP-Key zu erzeugen oder einen existierenden hochzuladen.

Damit Passbolt die E-Mail an den neu registrierten Benutzer verschickt, müssen Sie den zugehörigen Task ausführen, der die E-Mail-Queue abarbeitet, etwa so:

/var/www/passbolt/app/Console/cake EmailQueue.sender

Im Zweifelsfall müssen Sie diesen Befehl als Root ausführen, um in den zugehörigen Verzeichnissen schreiben zu dürfen.

Am zuverlässigsten funktioniert Passbolt, wenn Sie dafür im Webserver einen eigenen VHost konfigurieren. Im Prinzip können Sie auch mit Unterverzeichnissen auf einem existierenden VHost arbeiten, aber dann verkompliziert sich die Konfiguration. Als DocumentRoot für den Vhost geben Sie das Unterverzeichnis "webroot" der Passbolt-Distribution an, in unserem Beispiel "/var/www/passbolt/app/webroot". In der Apache-Konfiguration sieht das etwa so aus:

DocumentRoot /var/www/passbolt/app/webroot

Außerdem müssen Sie das Rewrite-Modul aktivieren, da in den Verzeichnissen der Anwendung mehrere ".htaccess"-Dateien enthalten sind, die von dem Feature Gebrauch machen. Wie erwähnt wird auch die Konfiguration von TLS/SSL für HTTP-Verbindungen angeraten.

Sind die Passbolt-App, der Webserver und die Datenbank richtig konfiguriert, können Sie die Anwendung im Browser erreichen, in unserem Beispiel unter der Adresse "http://pb.ita.net".

Bild 2: Beim Sharing von Passwörtern kann der Besitzer auswählen, ob der andere das Passwort nur lesen oder auch ändern darf.

Beim ersten Besuch weist Passbolt darauf hin, dass die nötige Firefox-Extension fehlt, und bietet gleich einen Link zur Installation an. In Ihrer Mailbox finden Sie außerdem einen Link, um sich als der vorher angelegte Administrator einzuloggen und die ersten Schritte für das Setup zu absolvieren, zum Beispiel einen PGP-Key zu erzeugen oder hochzuladen (Bild 1). Nach dem Erzeugen eines neuen Keys fordert Passbolt dazu auf, den privaten Key herunterzuladen und an einem sicheren Ort ein Backup zu speichern. Finden Sie statt der Passbolt-Homepage eine leere Seite vor, werfen Sie einen Blick in die Webserver-Logs. Ist auch dort nichts zu finden, aktivieren Sie in der PHP-Konfiguration das Logging von Fehlern, etwa in der Datei "/etc/php5/apache2/php.ini":

log_errors = On

Beispielsweise kann es sein, dass der Webserver in den Tmp- und Cache-Verzeichnissen nicht schreiben darf:

[Thu Jul 07 13:22:39.251162 2016] [:error] [pid 17832] [client 127.0.0.1:60556] PHP Warning: /var/www/passbolt/app/tmp/cache/models/ is not writable in /var/www/passbolt/lib/Cake/Cache/Engine/FileEngine.php on line 385

Dies korrigieren Sie, indem Sie Schreibrechte für den Webserver-User vergeben:

chown -R www-data /var/www/passbolt/app/tmp/

Nun sollte die Passbolt-Anwendung wie erwartet funktionieren. Wenn Sie den Admin-Account angelegt und konfiguriert haben, können Sie damit beginnen, Passwörter zu verwalten. Außerdem dürfen Sie nun auch Benutzer anlegen, die unterschiedliche Rechte besitzen können, etwa selbst Administratoren sind oder Passwörter nur lesen oder auch verändern dürfen. Jeder angelegte Benutzer wird erst dann aktiv, wenn er über den in der E-Mail verschickten Link sein Profil vervollständigt und einen Schlüssel hochgeladen hat. Damit er die E-Mail bekommt, muss wieder wie beschrieben die Mail-Warteschlange abgearbeitet werden. Deshalb konfigurieren Sie den oben erwähnten Befehl am besten als regelmäßig ausgeführten Cronjob.

Über die Kernfunktionalität hinaus gibt es einige Funktionen, mit denen Passbolt versucht, die Verwendung sicherer zu gestalten. So erhält jeder Anwender beim Setup ein "Security Token", bestehend aus einer Farbe und einer Zeichenkombination, das bei jeder kritischen Aktion eingeblendet wird. Damit soll sich der User vergewissern können, dass ein Eingabeformular auch vom Passbolt-Server stammt und nicht von einem Angreifer gefakt wird. Analog dazu präsentiert der Server beim Login seinen Fingerprint, den jeder Anwender mit dem ihm bekannten Fingerprint abgleichen sollte.

Die Verwaltung der Passwörter ist recht intuitiv. Über ein Menü lassen sie sich anlegen, wobei nur ein Name und das Passwort selbst obligatorisch sind. Optional lassen sich auch eine URL, ein Username und eine Beschreibung eingeben. Das war es auch schon. Bei einem Klick auf "Share" blendet Passbolt einen Dialog ein, in dem der Anwender einen Namen eintippen darf, den die Anwendung vor dem Hintergrund vorhandener User vervollständigt. Allerdings hat das bei uns nur mit der E-Mail-Adresse funktioniert, aber nicht mit dem Benutzernamen. Ist ein Benutzer ausgewählt, kann der Anwender noch auswählen, ob der andere User das Passwort nur lesen oder auch verändern darf (Bild 2). Es ist auch möglich, es ihm gleich als neuen Besitzer zu übertragen. Um ein Passwort zu lesen, fordert Passbolt wieder zur Eingabe der eigenen Passphrase auf. Auch bei der Verwaltung der Passwörter, zum Beispiel dem Sharing, verschickt Passbolt eine E-Mail.

Fazit

Passbolt ist eine webbasierte Software zum Management von Passwörtern für einzelne Benutzer oder Teams. Es setzt auf die bewährte PGP-Verschlüsselungstechnologie und ist einfach zu benutzen. Obwohl es sich schon gut verwenden lässt, ist Vorsicht geboten, denn laut den Entwicklern handelt es sich erst um eine Alpha-Version. Bis zur Fertigstellung wollen sie den Code noch einer Sicherheitsüberprüfung unterziehen lassen und einige weitere Features integrieren. Passbolt ist auf jeden Fall eine vielversprechende Entwicklung, die Sie im Auge behalten sollten. IT-Verantwortliche, die es jetzt einsetzen, sollten das nur auf einem entsprechend abgesicherten Rechner im internen Netzwerk tun.

Link-Codes

[1] Passbolt-Homepage: https://www.passbolt.com/

[2] Passbolt auf Github: https://github.com/passbolt/

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Android-Passwortmanager weitgehend unsicher

Sicherheitsexperten eines Fraunhofer-Instituts haben Android-Passwortmanager untersucht und sind zu einem ernüchternden Ergebnis gelangt.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019