Olá pessoal,
Estou configurando um ThinkPad E14 Gen 7 (AMD Ryzen 7, TPM 2.0 ST Microelectronics) com Arch Linux e tentando montar uma cadeia de boot segura:
- Secure Boot com minhas próprias chaves (sbctl)
- Kernel UKI assinado
- Desbloqueio automático do LUKS2 via TPM2 usando systemd-cryptenroll
- systemd-pcrlock para vincular o desbloqueio ao estado esperado do boot
- Snapshots Btrfs com fluxo de recuperação
O problema é que só consigo fazer o TPM funcionar usando PCR 15.
Inicialmente eu queria usar algo como PCR 7 + 11 + 12 (ou outra combinação recomendada), pois pelo que entendi esses PCRs estão mais relacionados ao estado do Secure Boot, medições do kernel/initrd e cadeia de inicialização. Porém, sempre que tento usar esses PCRs, a política do TPM não corresponde após o reboot.
PCR 15 é o único que funciona de forma consistente.
Algumas observações:
- Secure Boot está habilitado e validado.
- O sistema inicializa através de um UKI assinado.
- O log de eventos do TPM existe e as medições parecem normais.
- O systemd-pcrlock funciona após o boot, mas tive problemas ao prever/travar alguns componentes.
- O comando "systemd-pcrlock predict" mostrou componentes ausentes como:
- "720-kernel-initrd"
- "750-os-separator"
- "770-nvpcr-separator"
- eventos de shutdown/finalização
No início eu gerei as políticas dentro do ISO do Arch/chroot, depois descobri que isso estava errado porque as medições do TPM eram do ambiente live e não da instalação real. Regenerei as políticas inicializando pelo sistema instalado.
Também testei diferentes combinações de PCR:
- Apenas PCR 7
- PCR 7 + 11
- PCR 7 + 11 + 12
- Outras combinações envolvendo medições do boot
A maioria das combinações falha no desbloqueio do TPM após o reboot, enquanto PCR 15 funciona.
Configuração atual:
- Arch Linux
- Btrfs sobre LUKS2
- systemd-boot/UKI
- Chaves próprias de Secure Boot
- Desbloqueio TPM2 usando systemd-cryptenroll
- Política usando PCR 15
Minhas dúvidas:
Estou entendendo errado o papel do PCR 15 nesse cenário? Usar PCR 15 sozinho é uma escolha razoável para desbloqueio automático do LUKS usando systemd-pcrlock?
PCR 7 + 11 + 12 ainda é considerada a abordagem recomendada para esse tipo de configuração? Se sim, o que poderia estar fazendo minha máquina falhar com esses PCRs?
Existe alguma limitação específica do firmware Lenovo/ThinkPad ou da plataforma AMD que possa explicar esse comportamento?
Existe a possibilidade de eu estar fazendo algo errado na geração do UKI, no bloqueio da linha de comando do kernel ou na ordem de geração da política do pcrlock?
Gostaria de entender o que posso estar fazendo errado antes de decidir permanecer definitivamente com PCR 15.