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.
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
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".
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.
von Oliver Frommel / Aus dem IT-Administrator Magazin Ausgabe 09/2016: Mobile IT & Clientmanagement: Seite 54-56