Red Hat Training

A Red Hat training course is available for RHEL 8

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 usando rsync sobre SSH. 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.

9.12.1.2. Exemplo 2: Segredo compartilhado em um servidor Tang e um dispositivo TPM

O seguinte comando descriptografa com sucesso um dispositivo encriptado LUKS quando tanto o servidor tang quanto o dispositivo tpm2 estão disponíveis:

# clevis luks bind -d /dev/sda1 sss 't:2,"pins":"tang":[url":http://tang1.srv"tpm2], "tpm2": {"pcr_ids":"0,1"}}}'

O esquema de configuração com o limiar SSS 't' definido para '2' está agora:

{
    "t":2,
    "pins":{
        "tang":[
            {
                "url":"http://tang1.srv"
            }
        ],
        "tpm2":{
            "pcr_ids":"0,1"
        }
    }
}

Recursos adicionais

  • Para mais informações sobre a configuração NBDE de alta disponibilidade recomendada, consulte as seguintes páginas de manual:

    • tang(8), seção High Availability
    • clevis(1), seção Shamir’s Secret Sharing
    • clevis-encrypt-sss(1)