O dispositivo isolado do Google Distributed Cloud (GDC) usa a configuração de chaves unificada do Linux (LUKS) para encriptar dados em discos quando não é fornecido um HSM externo. É criado um conjunto RAID5 sobre as 4 unidades de dados e é criado um único dispositivo LUKS sobre o conjunto RAID5. A KEK LUKS é gerada aleatoriamente e pode ser alterada.
Este documento descreve os passos para rodar a KEK do LUKS que têm de ser realizados para:
- Rotação de KEK agendada regularmente.
- Exposição a KEK.
Antes de começar
Conclua os seguintes passos:
- Verifique se cumpre os pré-requisitos do portátil.
- Certifique-se de que consegue iniciar sessão nos três nós como utilizador root.
Alterne a KEK
O sistema de dispositivo isolado do Google Distributed Cloud (GDC) usa um cluster NetApp ONTAP Select (OTS) de dois nós implementado nos nós bm01 e bm02 (normalmente sem GPUs). Cada nó tem 4 unidades de dados dedicadas configuradas como uma matriz RAID5 para uma redundância melhorada. Um único dispositivo encriptado com LUKS é aplicado em camadas sobre cada matriz RAID5 para garantir a segurança dos dados.
A KEK de encriptação LUKS está armazenada no disco de arranque localizado em /etc/luks. A rotação da KEK do LUKS requer a rotação da encriptação LUKS em ambos os nós para manter a segurança no cluster. Para fazer uma rotação regular da KEK ou se a KEK estiver exposta, repita os seguintes passos em bm01 e bm02:
Inicie sessão no nó como utilizador root.
Certifique-se de que o dispositivo RAID existe e obtenha o
RAID_DEVICEcaminho completo.ll /dev/mdCertifique-se de que o ficheiro de chave LUKS antigo existe e obtenha o
OLD_KEYcaminho completo.ll /etc/luksAdicione a KEK antiga à ranhura de chave 1, para que as ranhuras de chave 0 e 1 tenham a mesma KEK.
cryptsetup luksAddKey RAID_DEVICE OLD_KEY --key-slot 1 --key-file OLD_KEYSubstitua
RAID_DEVICEeOLD_KEYpelos caminhos dos passos anteriores.Remova a KEK antiga da ranhura de chaves 0.
cryptsetup luksKillSlot RAID_DEVICE 0 --key-file OLD_KEYGere uma nova KEK e armazene-a no novo ficheiro de chave
NEW_KEY.dd if=/dev/urandom of=NEW_KEY bs=512 count=1 chmod u=r,go-rwx NEW_KEYSubstitua
NEW_KEYpelo caminho completo para o novo ficheiro de chave.Adicione a nova KEK à ranhura de chave 0.
cryptsetup luksAddKey RAID_DEVICE NEW_KEY --key-slot 0 --key-file OLD_KEYDefina a configuração persistente para abrir ou fechar o dispositivo LUKS no arranque ou encerramento do computador.
DEVICE_UUID=$(cryptsetup luksUUID RAID_DEVICE) echo "luksrd5 UUID=${DEVICE_UUID} NEW_KEY luks,discard" > /etc/crypttabRemova a KEK antiga da ranhura de chaves 1.
cryptsetup luksKillSlot RAID_DEVICE 1 --key-file NEW_KEYVerifique se a nova KEK está a funcionar.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file NEW_KEYVerifique se a KEK antiga já não está a funcionar.
cryptsetup luksDump --dump-master-key RAID_DEVICE --key-file OLD_KEYRemova a KEK antiga.
rm OLD_KEY
Se um nó for reiniciado antes da conclusão da rotação, o dispositivo LUKS ainda pode ser aberto após o arranque. Pode retomar os passos depois de o nó estar novamente disponível.