automatisierte Verschlüsselungs- und Entschlüsselungssysteme

Clevis und Tang sind Tools, die zusammen verwendet werden können, um automatisierte Verschlüsselungs- und Entschlüsselungssysteme zu implementieren. Mit Clevis kannst du ein verschlüsseltes Laufwerk automatisch entsperren, wenn es mit einem Netzwerk verbunden ist, in dem ein Tang-Server läuft. Es ist eine praktische Lösung, wenn du eine automatische Entschlüsselung basierend auf Netzwerkbedingungen wünschst, ohne dass ein USB-Stick oder Passwort erforderlich ist.

Grundlegendes Konzept:

  • Tang: Ein Server, der die Entschlüsselungsinformationen bereithält.
  • Clevis: Ein Client, der die Daten verschlüsselt und automatisch den Tang-Server nutzt, um die Daten zu entschlüsseln, wenn er im Netzwerk gefunden wird.

Voraussetzungen:

  • Ein Raspberry Pi mit einem Linux-basierten Betriebssystem (z. B. Raspberry Pi OS).
  • Ein zweites Gerät oder Server, der als Tang-Server fungiert (dies könnte ein weiterer Linux-Rechner oder auch eine virtuelle Maschine sein).

Anleitung für die Einrichtung von Clevis und Tang

1. Tang-Server einrichten

Der Tang-Server stellt die Entschlüsselungsinformationen bereit. Diese Informationen werden nicht auf dem Client gespeichert, sodass der Client nur entschlüsseln kann, wenn er im Netzwerk des Tang-Servers ist.

1.1. Installiere Tang auf dem Server:

Der Tang-Server läuft auf einem Linux-System. Wenn du ein Debian-basiertes System (z. B. Ubuntu) verwendest, kannst du Tang mit dem folgenden Befehl installieren:

sudo apt update
sudo apt install tang

1.2. Starte den Tang-Server:

Tang läuft als Systemdienst. Nach der Installation solltest du den Dienst starten:

sudo systemctl start tangd.socket
sudo systemctl enable tangd.socket

Der Tang-Server hört standardmäßig auf Port 80. Stelle sicher, dass dieser Port auf deinem Server offen ist, insbesondere wenn eine Firewall aktiv ist.

1.3. Schlüssel einsehen:

Du kannst die öffentliche URL der Tang-Schlüssel auf deinem Server herausfinden, indem du den Schlüsselinhalt aufrufst:

journalctl -u tangd.socket -n 50 | grep adv

Dieser Befehl gibt die URLs der öffentlichen Schlüssel deines Tang-Servers zurück. Du benötigst diese URL, um Clevis später zu konfigurieren.

2. Clevis auf dem Raspberry Pi einrichten

Nun kannst du Clevis auf deinem Raspberry Pi einrichten, damit es den Tang-Server verwendet, um die Festplatten zu entschlüsseln.

2.1. Installiere Clevis:

Auf deinem Raspberry Pi installierst du Clevis mit folgendem Befehl:

sudo apt update
sudo apt install clevis

2.2. Verschlüssele die Root-Partition (falls noch nicht geschehen):

Falls deine Root-Partition noch nicht mit LUKS verschlüsselt ist, kannst du dies mit dem folgenden Befehl tun (dies löscht die Daten auf der Partition):

sudo cryptsetup luksFormat /dev/mmcblk0p2

2.3. Clevis mit Tang verbinden:

Jetzt verbindest du Clevis mit dem Tang-Server, um die Root-Partition zu entschlüsseln:

sudo clevis luks bind -d /dev/mmcblk0p2 tang ‚{„url“:“http://<Tang_Server_IP>“}‘

Ersetze <Tang_Server_IP> durch die IP-Adresse deines Tang-Servers. Dieser Befehl konfiguriert Clevis so, dass es die Partition automatisch entschlüsseln kann, wenn der Raspberry Pi mit dem Netzwerk verbunden ist, in dem der Tang-Server läuft.

3. Testen der automatischen Entschlüsselung

  • Schalte den Raspberry Pi aus und starte ihn neu. Wenn der Raspberry Pi sich in demselben Netzwerk wie der Tang-Server befindet, sollte die Partition automatisch entschlüsselt werden, ohne dass eine Passworteingabe erforderlich ist.
  • Wenn der Tang-Server nicht erreichbar ist, wirst du zur Eingabe eines Passworts aufgefordert (wenn Clevis so konfiguriert ist).

4. Optional: Zusätzliche Sicherheit

Du kannst auch Clevis so konfigurieren, dass zusätzlich zum Tang-Server eine manuelle Passworteingabe möglich ist. Dies bietet einen Fallback, falls der Tang-Server nicht erreichbar ist.

5. Überwachung und Fehlerbehebung

  • Überwache die Clevis-Logs auf dem Raspberry Pi, um sicherzustellen, dass alles korrekt funktioniert:

journalctl -u clevis-luks-askpass

Überprüfe die Tang-Server-Logs, um sicherzustellen, dass der Tang-Server die Anfragen vom Raspberry Pi korrekt verarbeitet:

journalctl -u tangd.socket

Zusammenfassung:

  • Tang agiert als zentraler Server, der die Entschlüsselungsinformationen bereitstellt.
  • Clevis auf deinem Raspberry Pi ermöglicht es dem Gerät, sich mit dem Tang-Server zu verbinden und die verschlüsselte Festplatte automatisch zu entschlüsseln.
  • Ohne den Tang-Server kann der Raspberry Pi nicht automatisch booten, es sei denn, ein alternatives Entsperrungsmittel (Passwort) ist konfiguriert.

Mit dieser Lösung erhältst du eine sichere Umgebung, bei der dein Raspberry Pi automatisch entschlüsselt wird, wenn er sich im richtigen Netzwerk befindet.

Über Raffael Haberland 21 Artikel
Ich habe Informatik an der Technischen Universität Darmstadt sowie Wirtschaftswissenschaften an der Universität Heidelberg studiert. Derzeit bin ich als Testmanager in der Testautomation und Softwareentwicklung im Telekommunikationssektor tätig. Mein Fokus liegt auf der Bewertung von Prototypen sowie der Qualitätssicherung und Optimierung von Prozessen, insbesondere durch die Entwicklung und Implementierung automatisierter Tests.