Red Hat Training

A Red Hat training course is available for RHEL 8

15.15. Configuração do desbloqueio automático de volumes criptografados utilizando decriptação baseada em políticas

A Decriptação Baseada em Políticas (PBD) é um conjunto de tecnologias que permitem desbloquear volumes codificados de raiz e secundários de discos rígidos em máquinas físicas e virtuais. O PBD usa uma variedade de métodos de desbloqueio, tais como senhas de usuários, um dispositivo TPM (Trusted Platform Module), um dispositivo PKCS #11 conectado a um sistema, por exemplo, um smart card, ou um servidor de rede especial.

O PBD permite combinar diferentes métodos de desbloqueio em uma política, o que torna possível desbloquear o mesmo volume de maneiras diferentes. A implementação atual do PBD no Red Hat Enterprise Linux consiste na estrutura Clevis e plug-ins chamados pins. Cada pino fornece uma capacidade de destravamento separada. Atualmente, os seguintes pinos estão disponíveis:

  • tang - permite o desbloqueio de volumes usando um servidor de rede
  • tpm2 - permite desbloquear volumes usando uma política TPM2

O Network Bound Disc Encryption (NBDE) é uma subcategoria de PBD que permite ligar volumes criptografados a um servidor de rede especial. A implementação atual do NBDE inclui um pin Clevis para o servidor Tang e para o próprio servidor Tang.

15.15.1. Criptografia de disco em rede

No Red Hat Enterprise Linux, a NBDE é implementada através dos seguintes componentes e tecnologias:

Figura 15.1. Esquema NBDE ao utilizar um volume encriptado de LUKS1. A embalagem luksmeta não é utilizada para volumes LUKS2.

RHEL Security Guide 453350 0717 ECE NBDE

Tang é um servidor para vincular dados à presença na rede. Ele torna um sistema contendo seus dados disponível quando o sistema está vinculado a uma determinada rede segura. Tang é stateless e não requer TLS ou autenticação. Ao contrário das soluções baseadas em escrow, onde o servidor armazena todas as chaves de criptografia e tem conhecimento de cada chave já utilizada, Tang nunca interage com nenhuma chave do cliente, portanto, nunca obtém nenhuma informação de identificação do cliente.

Clevis é uma estrutura plugável para a decriptação automatizada. No NBDE, Clevis fornece o desbloqueio automatizado de volumes LUKS. O clevis fornece o lado do cliente do recurso.

A Clevis pin é um plug-in para a estrutura Clevis. Um desses pinos é um plug-in que implementa as interações com o servidor NBDE

Clevis e Tang são componentes genéricos de cliente e servidor que fornecem criptografia vinculada à rede. No Red Hat Enterprise Linux, eles são usados em conjunto com o LUKS para criptografar e decodificar volumes de armazenamento raiz e não-raiz para realizar a criptografia de discos vinculados à rede.

Tanto os componentes do lado do cliente quanto do lado do servidor utilizam a biblioteca José para realizar operações de criptografia e decriptação.

Quando você começa a provisionar NBDE, o pin Clevis para o servidor Tang recebe uma lista das chaves assimétricas anunciadas do servidor Tang. Alternativamente, como as chaves são assimétricas, uma lista das chaves públicas Tang pode ser distribuída fora da banda para que os clientes possam operar sem acesso ao servidor Tang. Este modo é chamado offline provisioning.

O pino Clevis para Tang usa uma das chaves públicas para gerar uma chave de criptografia única e forte em termos criptográficos. Uma vez que os dados são criptografados usando esta chave, a chave é descartada. O cliente Clevis deve armazenar o estado produzido por esta operação de provisionamento em um local conveniente. Este processo de encriptação de dados é o provisioning step.

O LUKS versão 2 (LUKS2) é o formato padrão no Red Hat Enterprise Linux 8, portanto, o estado de provisionamento para NBDE é armazenado como um token em um cabeçalho LUKS2. A alavancagem do estado de provisionamento para NBDE pelo luksmeta é usado somente para volumes criptografados com LUKS1. O pino Clevis para Tang suporta tanto LUKS1 quanto LUKS2 sem necessidade de especificação.

Quando o cliente está pronto para acessar seus dados, ele carrega os metadados produzidos na etapa de provisionamento e responde para recuperar a chave de criptografia. Este processo é o recovery step.

Em NBDE, Clevis liga um volume LUKS usando um pino para que ele possa ser automaticamente desbloqueado. Após a conclusão bem sucedida do processo de encadernação, o disco pode ser desbloqueado usando o desbloqueador Dracut fornecido.