Die Air-Gap-Appliance von Google Distributed Cloud (GDC) verwendet Linux Unified Key Setup (LUKS), um Daten auf Festplatten zu verschlüsseln, wenn kein externes HSM bereitgestellt wird. Auf den vier Datenlaufwerken wird ein RAID5-Array erstellt und auf dem RAID5-Array ein einzelnes LUKS-Gerät. Der LUKS-KEK wird zufällig generiert und kann rotiert werden.
In diesem Dokument werden die Schritte zum Rotieren des LUKS-KEK beschrieben, die für Folgendes ausgeführt werden müssen:
- regelmäßig geplante KEK-Rotation.
- KEK-Risiko.
Hinweise
Gehen Sie folgendermaßen vor:
- Prüfen Sie, ob Sie die Voraussetzungen für Laptops erfüllen.
- Prüfen Sie, ob Sie sich als Root-Nutzer auf den drei Knoten anmelden können.
KEK rotieren
Das Air-Gap-Appliance-System von Google Distributed Cloud (GDC) verwendet einen NetApp ONTAP Select-Cluster (OTS) mit zwei Knoten, der auf den Knoten bm01 und bm02 bereitgestellt wird (in der Regel ohne GPUs). Jeder Knoten verfügt über vier dedizierte Datenlaufwerke, die als RAID5-Array für eine höhere Redundanz konfiguriert sind. Auf jedem RAID5-Array befindet sich ein einzelnes LUKS-verschlüsseltes Gerät, um die Datensicherheit zu gewährleisten.
Der LUKS-Verschlüsselungs-KEK wird auf dem Bootlaufwerk unter /etc/luks
gespeichert. Wenn Sie den LUKS-KEK rotieren, müssen Sie die LUKS-Verschlüsselung auf beiden Knoten rotieren, um die Sicherheit im gesamten Cluster aufrechtzuerhalten. Wenn Sie eine regelmäßige KEK-Rotation durchführen oder der KEK offengelegt wird, wiederholen Sie die folgenden Schritte auf bm01 und bm02:
Melden Sie sich als Root-Nutzer am Knoten an.
Prüfen Sie, ob das RAID-Gerät vorhanden ist, und rufen Sie den vollständigen Pfad
RAID_DEVICE
ab.ll /dev/md
Prüfen Sie, ob die alte LUKS-Schlüsseldatei vorhanden ist, und rufen Sie den vollständigen Pfad
OLD_KEY
ab.ll /etc/luks
Fügen Sie den alten KEK dem Schlüssel-Slot 1 hinzu, sodass sowohl Schlüssel-Slot 0 als auch Schlüssel-Slot 1 denselben KEK haben.
cryptsetup luksAddKey RAID_DEVICE OLD_KEY --key-slot 1 --key-file OLD_KEY
Ersetzen Sie
RAID_DEVICE
undOLD_KEY
durch die Pfade aus den vorherigen Schritten.Entfernen Sie den alten KEK aus Schlüssel-Slot 0.
cryptsetup luksKillSlot RAID_DEVICE 0 --key-file OLD_KEY
Generieren Sie einen neuen KEK und speichern Sie ihn in der neuen Schlüsseldatei
NEW_KEY
.dd if=/dev/urandom of=NEW_KEY bs=512 count=1 chmod u=r,go-rwx NEW_KEY
Ersetzen Sie
NEW_KEY
durch den vollständigen Pfad zur neuen Schlüsseldatei.Fügen Sie den neuen KEK dem Schlüsselslot 0 hinzu.
cryptsetup luksAddKey RAID_DEVICE NEW_KEY --key-slot 0 --key-file OLD_KEY
Legen Sie die persistente Konfiguration fest, um das LUKS-Gerät beim Starten oder Herunterfahren des Computers zu öffnen oder zu schließen.
DEVICE_UUID=$(cryptsetup luksUUID RAID_DEVICE) echo "luksrd5 UUID=${DEVICE_UUID} NEW_KEY luks,discard" > /etc/crypttab
Entfernen Sie den alten KEK aus Schlüssel-Slot 1.
cryptsetup luksKillSlot RAID_DEVICE 1 --key-file NEW_KEY
Prüfen Sie, ob der neue KEK funktioniert.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file NEW_KEY
Prüfen Sie, ob der alte KEK nicht mehr funktioniert.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file OLD_KEY
Entfernen Sie den alten KEK.
rm OLD_KEY
Wenn ein Knoten vor Abschluss der Rotation neu gestartet wird, kann das LUKS-Gerät nach dem Start weiterhin geöffnet werden. Sie können die Schritte fortsetzen, sobald der Knoten wieder verfügbar ist.