Mit dieser Anleitung wird erklärt, wie Passwörter an vertrauensvolle Personen verteilt werden können.
Nach dem hier beschriebenen System werden alle Passwörter nicht nur mit dem eigenen, sondern auch mit dem private GPG-Key von einer Vertrauensperson verschlüsselt. Hierbei liegen alle verschlüsselten Passwörter in einem git-repository. Mittels git bundle werden alle Änderungen an den eigenen Passwörtern (neue Passwörter, geänderte Passwörter, etc) in eine unabhängige Datei exportiert, die an die Vertrauensperson geschickt werden kann.
Voraussetzung für diese Anleitung ist, dass die eigenen Passwörter mittels pass[1] gespeichert werden. Hierbei muss pass so konfiguriert sein, dass es alle Änderungen mit git speichert.
[1] http://www.passwordstore.org/
pass init EIGENE_KEY_ID FREMDE_KEY_ID
Hierdurch werden alle vorhandenen Passwörter neu verschlüsselt, so dass sie von beiden GPG-Keys gelesen werden können.
pass git bundle create DATEI_NAME master
Hierdurch wird die Datei DATEI_NAME angelegt, welche das komplette git repo enthält.
pass git tag -f last_FREMDE_KEY_ID master
Hierdurch wird ein Tag auf den aktuellen master angelegt, um später nachvollziehen zu können, auf welchem stand das fremde Repo ist.
Als nächstes muss die Datei DATEI_NAME an die Vertrauensperson geschickt werden.
git clone -m master DATEI_NAME PFAD
Nachdem die Datei an den fremden PC übermittelt wurde, kann sie mit diesem Befehl wieder in ein git Repo umgewandelt werden.
pass git bundle create DATEI_NAME last_FREMDE_KEY_ID..master pass git tag -f last_FREMDE_KEY_ID master
Mit diesen Befehlen wird eine neue Datei DATEI_NAME erstellt, welche alle commits seit der letzten Datenübertragung enthält.
Als nächstes muss die Datei DATEI_NAME an die Vertrauensperson geschickt werden.
git bundle unbundle DATEI_NAME
Dieser Befehl muss innerhalb des oben erstellten Repositories erstellt werden.
PASSWORD_STORE_DIR=/PFAD/ZUM/GIT/REPO pass 0_README
Die Vertrauensperson kann auf die übermittelten Passwörter wie gewohnt mittels pass zugreifen. Jedoch muss die environment Variable PASSWORD_STORE_DIR auf den Ort zeigen, in welchem die fremden Passwörter ausgecheckt sind.
pass verschlüsselt lediglich die Dateien, jedoch nicht die Dateinamen. Alle Daten die mittels pass list angezeigt werden, kann daher auch von jeder Person gelesen werden, welche zugriff auf die git bundles erhält. Die Dateinamen sollten daher keine sensiblen Informationen enthalten und die bundle Dateien sicherheitshalber nur verschlüsselt übertragen werden.