9.12. Implantação de sistemas NBDE de alta disponibilidade
A Tang fornece dois métodos para a construção de uma implantação de alta disponibilidade:
- Redundância de clientes (recomendado)
-
Os clientes devem ser configurados com a capacidade de se ligar a múltiplos servidores Tang. Nesta configuração, cada servidor Tang tem suas próprias chaves e os clientes podem decodificar entrando em contato com um subconjunto destes servidores. A Clevis já suporta este fluxo de trabalho através de seu plug-in
sss
. A Red Hat recomenda este método para uma implantação de alta disponibilidade. - Compartilhamento de chaves
-
Para fins de redundância, mais de uma instância de Tang pode ser implantada. Para criar uma segunda instância ou qualquer outra posterior, instale os pacotes
tang
e copie o diretório de chaves para o novo host usandorsync
sobreSSH
. Note que a Red Hat não recomenda este método porque compartilhar chaves aumenta o risco de comprometimento de chaves e requer uma infra-estrutura de automação adicional.
9.12.1. NBDE de alta disponibilidade usando o compartilhamento secreto da Shamir
Shamir's Secret Sharing (SSS) é um esquema criptográfico que divide um segredo em várias partes únicas. Para reconstruir o segredo, é necessária uma série de partes. O número é chamado de limiar e o SSS também é referido como um esquema de limiar.
Clevis fornece uma implementação do SSS. Ele cria uma chave e a divide em uma série de peças. Cada peça é criptografada usando outro pino, incluindo até mesmo o SSS recursivamente. Além disso, você define o limite t
. Se uma implementação NBDE descriptografa pelo menos t
peças, então recupera a chave de criptografia e o processo de descriptografia é bem sucedido. Quando Clevis detecta um número menor de peças do que o especificado no limiar, ele imprime uma mensagem de erro.
9.12.1.1. Exemplo 1: Redundância com dois servidores Tang
O seguinte comando decripta um dispositivo criptografado LUKS quando pelo menos um dos dois servidores Tang está disponível:
# clevis luks bind -d /dev/sda1 sss "t":1,"pins":"tang":[url":http://tang1.srv",{\i1}"url":http://tang2.srv"]{\i1}
O comando anterior utilizava o seguinte esquema de configuração:
{ "t":1, "pins":{ "tang":[ { "url":"http://tang1.srv" }, { "url":"http://tang2.srv" } ] } }
Nesta configuração, o limiar do SSS t
está definido para 1
e o comando clevis luks bind
reconstrói com sucesso o segredo se pelo menos um de dois servidores tang
listados estiver disponível.