Um Daten auf dem HPC-System verschlüsselt zu speichern, empfiehlt sich die Nutzung der Software gocryptfs
Die Software ermöglicht eine transparente Verschlüsselung von Daten und lässt sich mit jedem Programm verwenden. Die Daten liegen dabei in einem verschlüsselten Container und lassen sich nur mit dem dazugehörigen Passwort lesen und ändern.
Diese Passwörter sollten selbstverständlich nicht im HPC-System gespeichert werden, da sonst ein Angreifer diese direkt mit klauen kann. Dies ist vergleichbar mit der EC-Karten-Pin, welche niemals mit im Portemonnaie sein sollte.
Verwendung im Cluster
Die Software ist auf dem HPC-System als Modul verfügbar und muss vor der Verwendung geladen werden.
module load gocryptfs/1.7.1
Container dürfen nicht gleichzeitig an mehreren Stellen gemountet sein. Dies kann zur Zerstörung der Daten führen.
Anlegen eines Containers
Um einen Container zu erzeugen, benötigt man ein leeres Verzeichnis welche man als Container einrichtet.
mkdir /gpfs/project/$USER/container_1 gocryptfs -init /gpfs/project/$USER/container_1
Bei diesem Vorgang wird man nach einem Passwort gefragt, welches genutzt wird um die Daten zu verschlüsseln. Dieses Passwort muss sicher abgelegt werden. Zudem wird ein Master-Key ausgegeben, der am besten in einen Tresor gelegt wird. Mit diese Key können die Daten gerettet werden, falls die Konfigurationsdatei verloren geht.
Öffnen eines Containers
Um den Container zu öffnen, benötigt man ein leeres Verzeichnis, wo die Daten eingebunden werden sollen und das Passwort des Containers.
mkdir -p /tmp/$USER/container_1_unencrypted gocryptfs /gpfs/project/$USER/container_1 /tmp/$USER/container_1_unencrypted
Mit diesem Befehl wird der verschlüsselte Inhalt von container_1 als unverschlüsselte Daten in container_1_unencrypted angezeigt.
Der Entschlüsselte Pfade sollte dabei auf einer lokalen Festplatte liegen und nicht auf einem gemounteten Filesystem.
Verwendung der Daten
Nach dem öffnen des Containers können die Daten mit einem beliebigen Programm in container_1_unencrypted verwendet werden.
ls /tmp/$USER/container_1_unencrypted echo "test" > /tmp/$USER/container_1_unencrypted/test_datei cat /tmp/$USER/container_1_unencrypted/test_datei
Löschen von Daten im Container
Um Daten im Container zu löschen, muss er zunächst geöffnet sein. Danach können Dateien wie üblich gelöscht werden.
rm /tmp/$USER/container_1_unencrypted/Datei
Löschen eines Containers
Um einen Container zu löschen, muss lediglich der verschlüsselt Ordner gelöscht werden.
rm -rf /gpfs/project/$USER/container_1
Schließen des Containers
Wenn man mit den Arbeiten fertig ist, muss der Container geschlossen werden.
fusermount -u /tmp/$USER/container_1_unencrypted
Verwendung auf dem eigenen Gerät
Für Windows gibt es einen kompatiblen Client unter dem Namen cppcryptfs . Für macOS lässt sich die Software über Brew installieren.
Um die Container auf dem eigenen Gerät zu verwenden, muss das Filesystem per Samba gemountet sein. Dies ist im Wiki Artikel Dateisysteme einhängen erklärt.