Contorno da criptografia de disco que usa TPM2 para desbloqueio automático

Um dos pacotes acompanhantes do NixOS apresentou uma técnica de ataque que permite acessar dados em partições de disco criptografadas, em configurações que não requerem a inserção de uma senha de desbloqueio durante a inicialização, graças ao armazenamento de informações de descriptografia no TPM2 (Trusted Platform Module). Essas configurações são frequentemente usadas em servidores ou estações de trabalho multiusuário, onde é problemático inserir manualmente a senha após cada reinicialização.

Ao aplicar um método de criptografia como esse, a descriptografia é realizada usando uma chave adicional, armazenada no TPM e fornecida apenas após a confirmação do estado original do sistema. O estado do sistema é mantido na forma de hashes nos registradores PCR (Platform Configuration Register) e vinculado a uma assinatura digital que valida o carregador, bem como a somas de verificação do carregador e do ambiente de inicialização inicial (initrd). O acesso à chave no TPM é concedido somente quando todos os registradores PCR vinculados estão no mesmo estado que quando a chave foi salva.

Pressupõe-se que a cadeia de inicialização do sistema operacional seja verificada através do UEFI Secure Boot e o acesso às chaves só pode ser obtido a partir de uma imagem initrd não modificada. Após uma verificação bem-sucedida, o disco é desbloqueado automaticamente, mas o acesso aos dados descriptografados só pode ser obtido ao entrar em sua conta no sistema. Ao tentar acessar sem uma inicialização verificada ou ao tentar substituir ou modificar o initrd para interceptar chaves, a cadeia de confiança será quebrada, o estado dos registradores PCR será alterado e o TPM2 não fornecerá as informações necessárias para a descriptografia.

O método de ataque publicado permite contornar a necessidade de alterar o conteúdo do initrd em configurações que não identificam as partições LUKS criptografadas. Observa-se que a inclusão de tal verificação de partições não é descrita em todos os manuais encontrados sobre configuração de criptografia de discos, uma vez que a identificação da partição complica consideravelmente a configuração (exige a inclusão de um registro adicional PCR para verificar a chave da partição e a geração do initrd levando em conta seu valor). Exemplos de realização do ataque foram demonstrados para o Fedora Linux em combinação com a ferramenta clevis e para o NixOS em conjunto com o systemd-cryptenroll. Para realizar o ataque, é necessário acesso físico ao computador e a possibilidade de extrair o dispositivo.

O método baseia-se no fato de que o atacante pode substituir a partição raiz criptografada existente por sua própria partição criptografada, criada com o mesmo identificador UUID e com as chaves de descriptografia conhecidas pelo atacante. O ambiente initrd transferirá o controle para o processo init na partição do atacante. Como o conteúdo do initrd não foi alterado, o estado do TPM não será comprometido e, ao obter controle em seu ambiente, o atacante poderá usar o TPM para descriptografar a chave da partição de disco original.

O ataque consiste nos seguintes passos:

  • Extração do disco e realização de uma análise em outro computador dos dados não criptografados na partição /boot. Determinação das informações sobre a partição criptografada e seu identificador UUID a partir da imagem initrd presente na partição /boot.
  • Criação de um backup dos primeiros 64MB da partição LUKS criptografada.
  • Substituição dos 64MB indicados por uma imagem com sua própria partição raiz, criptografada usando uma chave conhecida pelo atacante e com um identificador UUID igual ao da partição antiga.
  • Retornar o disco ao computador original e inicializar com a partição raiz substituída. Como a desbloqueação automática pela chave do TPM para a partição substituída falha, o initrd solicita a entrada manual da senha.
  • Obtenção da chave original do TPM, usando os metadados do TPM e o token criptografado do cabeçalho LUKS da partição antiga.
  • Reposicionar o disco no computador do atacante, restaurar a parte reescrita da partição LUKS a partir do backup e utilizar a chave original obtida para acessar os dados.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster