L'appliance air-gapped Google Distributed Cloud (GDC) utilizza Linux Unified Key Setup (LUKS) per criptare i dati sui dischi quando non viene fornito HSM esterno. Viene creato un array RAID5 sopra le 4 unità dati e un singolo dispositivo LUKS sopra l'array RAID5. La KEK LUKS viene generata in modo casuale e può essere ruotata.
Questo documento descrive i passaggi per la rotazione della KEK LUKS che deve essere eseguita per:
- rotazione delle KEK pianificata regolarmente.
- Esposizione della KEK.
Prima di iniziare
Completa i seguenti passaggi:
- Verifica di soddisfare i prerequisiti per il laptop.
- Assicurati di poter accedere ai tre nodi come utente root.
Ruota la KEK
Il sistema appliance air-gapped Google Distributed Cloud (GDC) utilizza un cluster NetApp ONTAP Select (OTS) a due nodi di cui è stato eseguito il deployment sui nodi bm01 e bm02 (in genere senza GPU). Ogni nodo dispone di quattro unità di dati dedicate configurate come array RAID5 per una maggiore ridondanza. Un singolo dispositivo criptato LUKS è stratificato sopra ogni array RAID5 per garantire la sicurezza dei dati.
La KEK di crittografia LUKS è archiviata sul disco di avvio che si trova in /etc/luks
. La rotazione della KEK LUKS richiede la rotazione della crittografia LUKS su entrambi i nodi per mantenere la sicurezza nel cluster. Per eseguire una rotazione regolare della KEK o se la KEK è esposta, ripeti i seguenti passaggi sia su bm01 che su bm02:
Accedi al nodo come utente root.
Assicurati che il dispositivo RAID esista e recupera il percorso completo
RAID_DEVICE
.ll /dev/md
Assicurati che il vecchio file della chiave LUKS esista e ottieni il
OLD_KEY
percorso completo.ll /etc/luks
Aggiungi la vecchia KEK allo slot chiave 1, in modo che sia lo slot chiave 0 che lo slot chiave 1 abbiano la stessa KEK.
cryptsetup luksAddKey RAID_DEVICE OLD_KEY --key-slot 1 --key-file OLD_KEY
Sostituisci
RAID_DEVICE
eOLD_KEY
con i percorsi dei passaggi precedenti.Rimuovi la vecchia KEK dallo slot della chiave 0.
cryptsetup luksKillSlot RAID_DEVICE 0 --key-file OLD_KEY
Genera una nuova KEK e archiviala nel nuovo file di chiavi
NEW_KEY
.dd if=/dev/urandom of=NEW_KEY bs=512 count=1 chmod u=r,go-rwx NEW_KEY
Sostituisci
NEW_KEY
con il percorso completo del nuovo file della chiave.Aggiungi la nuova KEK allo slot della chiave 0.
cryptsetup luksAddKey RAID_DEVICE NEW_KEY --key-slot 0 --key-file OLD_KEY
Imposta la configurazione persistente per aprire o chiudere il dispositivo LUKS all'avvio o all'arresto del computer.
DEVICE_UUID=$(cryptsetup luksUUID RAID_DEVICE) echo "luksrd5 UUID=${DEVICE_UUID} NEW_KEY luks,discard" > /etc/crypttab
Rimuovi la vecchia KEK dallo slot della chiave 1.
cryptsetup luksKillSlot RAID_DEVICE 1 --key-file NEW_KEY
Verifica che la nuova KEK funzioni.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file NEW_KEY
Verifica che la vecchia KEK non funzioni più.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file OLD_KEY
Rimuovi la vecchia KEK.
rm OLD_KEY
Se un nodo viene riavviato prima del completamento della rotazione, il dispositivo LUKS può comunque essere aperto dopo l'avvio. Puoi riprendere i passaggi dopo che il nodo è di nuovo disponibile.