Saltar al contenido principal

Secure Boot y TPM

Introducción​

Secure Boot y TPM son tecnologías de seguridad de hardware que protegen el proceso de arranque del sistema contra modificaciones maliciosas.

Secure Boot​

Definición​

Secure Boot es una funcionalidad de seguridad UEFI que impide la carga de software no firmado durante el arranque.

Funcionamiento​

1. UEFI inicia
2. Verificación de la firma del bootloader
3. Bootloader verifica la firma del kernel
4. Kernel verifica los drivers
5. Arranque completo solo si todo está firmado

Base de datos de claves​

BaseContenidoRol
PK (Platform Key)Clave del fabricanteControl total
KEK (Key Exchange Key)Claves Microsoft/fabricanteActualización de las DBs
db (Signature Database)Firmas autorizadasLista blanca
dbx (Forbidden Signatures)Firmas revocadasLista negra

Verificación del estado​

PowerShell:

# Verificar si Secure Boot está activo
Confirm-SecureBootUEFI

# Más detalles
Get-SecureBootPolicy -ErrorAction SilentlyContinue

Vía msinfo32:

Win+R > msinfo32 > Secure Boot State

Implicaciones de seguridad​

Ventajas:

  • Previene bootkits y rootkits de arranque
  • Protege contra modificaciones del bootloader
  • Integridad de la cadena de arranque

Limitaciones:

  • Puede ser desactivado en el BIOS
  • Algunos malwares avanzados pueden eludirlo
  • No protege contra ataques post-arranque

TPM (Trusted Platform Module)​

Definición​

El TPM es un chip de seguridad dedicado que almacena claves criptográficas y mide la integridad del sistema.

Versiones​

VersiónCaracterísticas
TPM 1.2SHA-1, RSA, generación antigua
TPM 2.0SHA-256, algoritmos modernos, requerido para Windows 11

Funcionalidades principales​

  1. Almacenamiento de claves: Claves que nunca salen del TPM
  2. Medidas de integridad: PCR (Platform Configuration Registers)
  3. Atestación: Demostrar el estado del sistema
  4. Sellado: Vincular datos a un estado específico del sistema

PCR (Platform Configuration Registers)​

Los PCR almacenan medidas de integridad:

PCRContenido
0-3Firmware UEFI
4Bootloader (MBR/UEFI)
5Configuración GPT
6Eventos de plataforma
7Secure Boot
8-15Sistema operativo

Verificación del TPM​

PowerShell:

# Verificar la presencia del TPM
Get-Tpm

# Detalles completos
Get-TpmEndorsementKeyInfo
Get-TpmSupportedFeature

Vía tpm.msc:

Win+R > tpm.msc

Vía Device Manager:

devmgmt.msc > Security Devices > Trusted Platform Module

BitLocker y TPM​

Integración​

BitLocker utiliza el TPM para:

  • Almacenar las claves de cifrado
  • Sellar las claves al estado del sistema
  • Desbloquear automáticamente al arrancar

Modos de BitLocker​

ModoTPMPINClave USBSeguridad
Solo TPMSíNoNoBásica
TPM + PINSíSíNoAlta
TPM + USBSíNoSíAlta
TPM + PIN + USBSíSíSíMáxima

Verificación de BitLocker​

# Estado de BitLocker
Get-BitLockerVolume

# Detalles
manage-bde -status C:

Ataques y Evasiones​

Cold Boot Attack​

Principio: La RAM conserva los datos algunos segundos después de apagar el equipo.

Protección: TPM con medidas de integridad, cifrado de la RAM.

Evil Maid Attack​

Principio: Modificación física del sistema durante la ausencia del usuario.

Protección: TPM detecta las modificaciones mediante los PCR.

DMA Attack​

Principio: Acceso directo a la memoria mediante puertos externos (Thunderbolt, FireWire).

Protección: Kernel DMA Protection, desactivar los puertos no utilizados.

TPM Sniffing​

Principio: Interceptar las comunicaciones entre CPU y TPM en el bus LPC.

Protección: fTPM (TPM por firmware integrado en la CPU).


Configuración Recomendada​

Checklist de seguridad​

# Script de verificación de seguridad de arranque
Write-Host "=== VERIFICACIÓN SEGURIDAD ARRANQUE ===" -ForegroundColor Cyan

# 1. Secure Boot
try {
$sb = Confirm-SecureBootUEFI
if ($sb) {
Write-Host "[OK] Secure Boot: Activo" -ForegroundColor Green
} else {
Write-Host "[!] Secure Boot: Inactivo" -ForegroundColor Red
}
} catch {
Write-Host "[?] Secure Boot: Imposible de verificar" -ForegroundColor Yellow
}

# 2. TPM
$tpm = Get-Tpm
if ($tpm.TpmPresent) {
Write-Host "[OK] TPM Presente: Sí" -ForegroundColor Green
Write-Host " Versión: $($tpm.ManufacturerVersion)"
if ($tpm.TpmReady) {
Write-Host "[OK] TPM Listo: Sí" -ForegroundColor Green
} else {
Write-Host "[!] TPM Listo: No" -ForegroundColor Yellow
}
} else {
Write-Host "[!] TPM: No detectado" -ForegroundColor Red
}

# 3. BitLocker
$bl = Get-BitLockerVolume -MountPoint "C:" -ErrorAction SilentlyContinue
if ($bl) {
if ($bl.ProtectionStatus -eq "On") {
Write-Host "[OK] BitLocker C: Activo" -ForegroundColor Green
} else {
Write-Host "[!] BitLocker C: Inactivo" -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 con Secure Boot" -ForegroundColor Green
} else {
Write-Host "[?] Modo BIOS o Secure Boot desactivado" -ForegroundColor Yellow
}

Recomendaciones​

  1. Activar Secure Boot en el BIOS/UEFI
  2. Activar el TPM y configurarlo
  3. Utilizar BitLocker con TPM + PIN
  4. Actualizar el firmware UEFI regularmente
  5. Proteger el acceso físico a la máquina

Ejercicios​

  1. Verifique si Secure Boot está activo en su VM
  2. Verifique la presencia y el estado del TPM
  3. Identifique los parámetros de seguridad en el BIOS/UEFI de su máquina
  4. Explique cómo trabajan juntos TPM y Secure Boot

Referencias​