ToSCA Crypt
- Sinn und Zweck
- Voraussetzung – persönlicher ToSCA-Schlüssel
- Der Funktionsklassenschlüssel
- Datei verschlüsseln
- Datei entschlüsseln
- Wie prüfe ich, das der Inhalt der verschlüsselten Files mit dem der unverschlüsselten identisch ist?
- Wie prüfe ich, mit welchen Schlüsseln eine .toscacrypt Datei verschlüsselt ist?
- Wie hängen die ganzen Schlüssel miteinander zusammen?
- Wie werden Änderungen von FU-Admins einer FU-Klasse erkannt und der Funktionsklassenschlüssel neu verschlüsselt?
Sinn und Zweck
In ToSCA-Repositories werden Dateien zur Verteilung auf die Systeme einer Funktionsklasse bereitgestellt. ToSCA Crypt stellt ein einheitliches Verfahren zur Verfügung, das es ermöglicht, Dateien, die Geheimnisse wie z.B. Datenbankpasswörter, SSL Private Keys etc. enthalten, in ToSCA Repositories verschlüsselt zu speichern. Die Geheimnisse können trotzdem automatisch auf den Systemen einer Funktionsklasse verteilt werden, ohne dass sie manuell entschlüsselt werden müssen.
Funktionsweise kurz und knapp
- Datei /etc/very_secret soll verschlüsselt in ToSCA-Repository gespeichert werden
- initial
tosca-encrypt.sh /etc/very_secret
erstellt Datei/etc/very_secret.toscacrypt
cp /etc/very_secret.toscacrypt /afs/tu-chemnitz.de/ToSCA/ROOTS/LINUX/<FU_CLASS>/etc/
nur beim ersten mal nötig
- Später:
/etc/very_secret
ändern-
tosca-encrypt.sh /etc/very_secret
aktualisiert/etc/very_secret.toscacrypt
und kopiert sie automatisch nach/etc/very_secret.toscacrypt /afs/tu-chemnitz.de/ToSCA/ROOTS/LINUX/<FU_CLASS>/etc/
-
Ausführliche Informationen
Voraussetzung – persönlicher ToSCA-Schlüssel
Jeder Funktionsverantwortliche benötigt ein persönliches Schlüsselpaar für die Ver- und Entschlüsselung des Funktionsklassenschlüssels sowie der Dateien mit den Geheimnissen. Das persönliche Schlüsselpaar wird wie folgt generiert und mit einer zu merkenden Passphrase geschützt:
(Der persönliche ToSCA-Schlüssel kann auf jedem vom URZ administrierten System erzeugt werden.)/usr/local/bin/tosca-mkpersonal-key.sh
Das persönliche Schlüsselpaar wird unter $HOME/.tosca-keys/
und
der öffentliche Schlüssel zusätzlich unter
/afs/tu-chemnitz.de/ToSCA/DATA/CRYPT/<login>/
abgelegt.
Was tun: Passphrase für persönlichen ToSCA-Schlüssel vergessen
Sie müssen einen neuen persönlichen ToSCA-Schlüssel erstellen. Wiederholen Sie dazu das Kommando:
/usr/local/bin/tosca-mkpersonal-key.sh
Anschließend müssen alle Funktionsklassenschlüssel, für die Sie Funktionsverantwortlicher sind, neu verschlüsselt werden. Das kann ein weiterer Funktionsverantwortlicher für die Funktionsklasse erledigen (mit gültigen ToSCA-Schlüssel) oder ein Plattformverantwortlicher.
/usr/local/bin/tosca-reencrypt-fuclass-key.sh <FU-KLASSE>
Der Funktionsklassenschlüssel
Der Funktionsklassenschlüssel dient dem Ver- und Entschlüsseln
aller schützenswerten Informationen aller Hosts einer
Funktionsklasse. Vor dem Anlegen sollten die
Funktionsverantwortlichen der Funktionsklasse ihren persönlicher
ToSCA-Schlüssel bereitgestellt haben.
(Der Funktionsklassenschlüssel
kann auf jedem vom URZ administrierten System erzeugt werden.)
/usr/local/bin/tosca-mkfuclass-key.sh <FU_CLASS>
Der Funktionsklassenschlüssel wird durch dieses Skript im AFS abgelegt. Soll er gleich auf dem Zielsystem verwendet werden, muss
zunächst ein sys_update
ausgeführt werden.
sys_update
Der Funktionsklassenschlüssel liegt nur auf den Hosts unverschlüsselt vor. Nach Installation oder Neuinstallation eines Hosts muss der Funktionsklassenschlüssel auf dem System durch einen Funktionsverantwortlichen oder Plattformadmin entsperrt werden.
sudo /usr/local/bin/tosca-unlock-machine.sh [<login>]
(Das eigene login
ist bei der Ausführung des Scripts anzugeben, falls der eigene private Schlüssel nicht gefunden wird.)
Ändern sich die Funktionsverantwortlichen einer Funktionsklassen oder hat ein Funktionsverantwortlicher sein persönliches Schlüsselpaar geändert, dann muss der Funktionsklassenschlüssel erneut verschlüsselt werden. Dass können alle Funktionsverantwortlichen der Funktionsklasse oder Plattformadministratoren unter Benutzung des persönlichen Schlüsselpaars (Eingabe Passphrase erforderlich) realisieren.
/usr/local/bin/tosca-reencrypt-fuclass-key.sh FU_KLASSE
Datei verschlüsseln
Voraussetzung für die Verschlüsselung von Files ist ein entsperrter Funktionsklassenschlüssel auf dem Host. Um ein File mit Geheimnissen für die Ablage in einem ToSCA-Repository zu verschlüsseln:
sudo /usr/local/bin/tosca-encrypt.sh /etc/geheim.txt cp /etc/geheim.txt.toscacrypt /afs/tu-chemnitz.de/ToSCA/ROOTS/SL_7/<FU_CLASS>/etc/
Datei entschlüsseln
Voraussetzung dafür ist wieder ein entsperrter
Funktionsklassenschlüssel auf dem Host.
Zum Entschlüsseln einzelner Files oder aller mit der Extension
.toscacrypt
hinterlegter Files im ToSCA-Repository:
sudo /usr/local/bin/tosca-decrypt.sh /etc/geheim.txt.toscacrypt # oder sudo /usr/local/bin/tosca-decrypt-all-files-from-repo.sh
Verhalten während der Systemwartung
Aktuell werden beim Wartungslauf (sys_update
oder
/etc/cron.cfengine/cfengine.hourly
) alle mit der Extension
.toscacrypt
gefundenen Dateien aus dem Repo entschlüsselt. Veränderte entschlüsselte
Dateien werden aktualisiert. Dabei wird eine Sicherung
mit der Extension .tcsaved
angelegt.
Neu angelegte entschlüsselte Dateien erben zunächst die Eigentümerschaft und Berechtigung der verschlüsselten Datei.
Im ToSCA eingestellte Berechtigungen werden erst nach dem 2. Wartungslauf aktiv. Gegebenenfalls müssen hier die Berechtigungen und die
Eigentümerschaft im ToSCA auch für die verschlüsselte Datei
(Extension .toscacrypt
) gesetzt werden.
Verschiedenes
Wie prüfe ich, das der Inhalt der verschlüsselten Files mit dem der unverschlüsslten identisch ist?
Mit dem Aufruf vontosca-diff
werden Unterschiede in verschlüsselten Dateien sichtbar.
Eine ausgegebene Kommandozeile weist zum erneuten Verschlüsseln der betroffenen Dateien an.
sudo /usr/local/bin/tosca-diff-decrypt.sh /etc/geheim.txt.toscacrypt
Wie prüfe ich, mit welchen Schlüsseln eine .toscacrypt-Datei verschlüsselt ist?
tosca-cryptinfo.sh file.toscacrypt
Wie hängen die ganzen Schlüssel miteinander zusammen?