Pular para o conteúdo principal

Secure Boot e TPM

Introdução​

Secure Boot e TPM são tecnologias de segurança de hardware que protegem o processo de inicialização do sistema contra modificações maliciosas.

Secure Boot​

Definição​

Secure Boot é uma funcionalidade de segurança UEFI que impede o carregamento de softwares não assinados durante a inicialização.

Funcionamento​

1. UEFI inicia
2. Verificação da assinatura do bootloader
3. Bootloader verifica a assinatura do kernel
4. Kernel verifica os drivers
5. Inicialização completa somente se tudo estiver assinado

Banco de chaves​

BaseConteúdoPapel
PK (Platform Key)Chave do fabricanteControle total
KEK (Key Exchange Key)Chaves Microsoft/fabricanteAtualização dos DBs
db (Signature Database)Assinaturas autorizadasLista branca
dbx (Forbidden Signatures)Assinaturas revogadasLista negra

Verificação do status​

PowerShell:

# Verificar se o Secure Boot está ativo
Confirm-SecureBootUEFI

# Mais detalhes
Get-SecureBootPolicy -ErrorAction SilentlyContinue

Via msinfo32:

Win+R > msinfo32 > Secure Boot State

Implicações de segurança​

Vantagens:

  • Impede bootkits e rootkits de inicialização
  • Protege contra modificações do bootloader
  • Integridade da cadeia de inicialização

Limitações:

  • Pode ser desativado na BIOS
  • Alguns malwares avançados podem contornar
  • Não protege contra ataques pós-boot

TPM (Trusted Platform Module)​

Definição​

O TPM é um chip de segurança dedicado que armazena chaves criptográficas e mede a integridade do sistema.

Versões​

VersãoCaracterísticas
TPM 1.2SHA-1, RSA, geração antiga
TPM 2.0SHA-256, algoritmos modernos, requisito para Windows 11

Funcionalidades principais​

  1. Armazenamento de chaves: Chaves que nunca deixam o TPM
  2. Medições de integridade: PCR (Platform Configuration Registers)
  3. Atestação: Provar o estado do sistema
  4. Selagem: Vincular dados a um estado específico do sistema

PCR (Platform Configuration Registers)​

Os PCR armazenam medições de integridade:

PCRConteúdo
0-3Firmware UEFI
4Bootloader (MBR/UEFI)
5Configuração GPT
6Eventos de plataforma
7Secure Boot
8-15Sistema operacional

Verificação do TPM​

PowerShell:

# Verificar a presença do TPM
Get-Tpm

# Detalhes completos
Get-TpmEndorsementKeyInfo
Get-TpmSupportedFeature

Via tpm.msc:

Win+R > tpm.msc

Via Gerenciador de Dispositivos:

devmgmt.msc > Dispositivos de Segurança > Trusted Platform Module

BitLocker e TPM​

Integração​

O BitLocker utiliza o TPM para:

  • Armazenar as chaves de criptografia
  • Selar as chaves ao estado do sistema
  • Desbloquear automaticamente na inicialização

Modos do BitLocker​

ModoTPMPINChave USBSegurança
TPM apenasSimNãoNãoBásica
TPM + PINSimSimNãoAlta
TPM + USBSimNãoSimAlta
TPM + PIN + USBSimSimSimMáxima

Verificação do BitLocker​

# Status do BitLocker
Get-BitLockerVolume

# Detalhes
manage-bde -status C:

Ataques e Contornos​

Cold Boot Attack​

Princípio: A RAM mantém dados por alguns segundos após o desligamento.

Proteção: TPM com medições de integridade, criptografia da RAM.

Evil Maid Attack​

Princípio: Modificação física do sistema durante a ausência do usuário.

Proteção: TPM detecta modificações via PCR.

DMA Attack​

Princípio: Acesso direto à memória via portas externas (Thunderbolt, FireWire).

Proteção: Kernel DMA Protection, desativar portas não utilizadas.

TPM Sniffing​

Princípio: Interceptar comunicações entre CPU e TPM no barramento LPC.

Proteção: fTPM (TPM de firmware integrado ao CPU).


Configuração Recomendada​

Checklist de segurança​

# Script de verificação de segurança do boot
Write-Host "=== VERIFICAÇÃO DE SEGURANÇA DO BOOT ===" -ForegroundColor Cyan

# 1. Secure Boot
try {
$sb = Confirm-SecureBootUEFI
if ($sb) {
Write-Host "[OK] Secure Boot: Ativo" -ForegroundColor Green
} else {
Write-Host "[!] Secure Boot: Inativo" -ForegroundColor Red
}
} catch {
Write-Host "[?] Secure Boot: Impossível verificar" -ForegroundColor Yellow
}

# 2. TPM
$tpm = Get-Tpm
if ($tpm.TpmPresent) {
Write-Host "[OK] TPM Presente: Sim" -ForegroundColor Green
Write-Host " Versão: $($tpm.ManufacturerVersion)"
if ($tpm.TpmReady) {
Write-Host "[OK] TPM Pronto: Sim" -ForegroundColor Green
} else {
Write-Host "[!] TPM Pronto: Não" -ForegroundColor Yellow
}
} else {
Write-Host "[!] TPM: Não detectado" -ForegroundColor Red
}

# 3. BitLocker
$bl = Get-BitLockerVolume -MountPoint "C:" -ErrorAction SilentlyContinue
if ($bl) {
if ($bl.ProtectionStatus -eq "On") {
Write-Host "[OK] BitLocker C: Ativo" -ForegroundColor Green
} else {
Write-Host "[!] BitLocker C: Inativo" -ForegroundColor Yellow
}
}

# 4. Modo UEFI
$firmware = Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\State" -ErrorAction SilentlyContinue
if ($firmware.UEFISecureBootEnabled -eq 1) {
Write-Host "[OK] Modo UEFI com Secure Boot" -ForegroundColor Green
} else {
Write-Host "[?] Modo BIOS ou Secure Boot desativado" -ForegroundColor Yellow
}

Recomendações​

  1. Ativar o Secure Boot no BIOS/UEFI
  2. Ativar o TPM e configurá-lo
  3. Usar BitLocker com TPM + PIN
  4. Atualizar o firmware UEFI regularmente
  5. Proteger o acesso físico à máquina

Exercícios​

  1. Verifique se o Secure Boot está ativo na sua VM
  2. Verifique a presença e o status do TPM
  3. Identifique os parâmetros de segurança no BIOS/UEFI da sua máquina
  4. Explique como TPM e Secure Boot trabalham juntos

Referências​