- Usando um analisador lógico barato, é possível contornar a criptografia de disco completo do BitLocker em computadores com um chip TPM dedicado.
- O BitLocker primeiro gera a FVEK (chave de criptografia do volume completo), depois a criptografa com a VMK (chave mestra do volume) e a armazena no disco rígido.
- Quando o TPM está ativado, a VMK fica armazenada dentro do TPM, e na inicialização o sistema obtém a VMK do TPM para descriptografar o disco rígido.
- Porém, no processo de obtenção da VMK, a mensagem é transmitida em texto puro.
- Para decifrar isso, é preciso capturar os comandos SPI que trafegam entre a CPU e o chip TPM com um analisador lógico.
- Como é muito difícil conectar um analisador lógico diretamente ao chip TPM, a captura do sinal começa ao se conectar a outro chip que compartilha o barramento SPI com o TPM.
- Primeiro, é preciso capturar requisições SPI fáceis de reconhecer e decodificar o TIS, que representa a comunicação segundo a especificação da interface TPM.
- Como não há uma forma simples de decodificar o TIS, ele foi decodificado manualmente para identificar o byte inicial dos sinais do TPM.
- Em seguida, o próximo passo é capturar o comando
TPM2_Unseal, definido na especificação TPM 2.0, para descobrir a senha.
- Com os bytes identificados no TIS, encontram-se os comandos TPM 2.0, separam-se as respostas e depois usam-se ferramentas como
tpmstream-web para extrair o buffer da resposta do TPM.
- Depois de descobrir a chave, já é possível acessar os dados do disco rígido.
- Remove-se o disco rígido, conecta-se a outro sistema e usam-se ferramentas como
dislocker para explorar o sistema de arquivos criptografado.
- Em seguida, cria-se um shell de sistema utilizável na tela de login usando o método tradicional de substituir um programa específico por
cmd.exe.
- Como agora há um
cmd com privilégios de administrador, é possível fazer qualquer coisa.
- No fim, a presença de um TPM físico torna o BitLocker muito vulnerável, por isso é recomendado usar fTPM, totalmente integrado à CPU, o que inviabiliza esse tipo de ataque.
- Se você quiser usar o BitLocker com segurança em um sistema com TPM físico, é necessário configurar um PIN ou senha.
1 comentários
Este é outro post sobre o mesmo tema.
Pelo visto, esse problema acontece porque, de forma curiosa, só o BitLocker não usa a sessão criptografada que o TPM criou para impedir esse tipo de ataque man-in-the-middle.
Dizem que, com TPM e criptografia LUKS no systemd, esse problema não existe.
O BitLocker era bem mais vulnerável em certas situações do que eu imaginava.
Como é um módulo de segurança cujo nome inclui até "Trusted", achei que esse tipo de problema não existiria...