Aller au contenu principal

Secure Boot et TPM

Introduction​

Secure Boot et TPM sont des technologies de securite materielles qui protegent le processus de demarrage du systeme contre les modifications malveillantes.

Secure Boot​

Definition​

Secure Boot est une fonctionnalite de securite UEFI qui empeche le chargement de logiciels non signes pendant le demarrage.

Fonctionnement​

1. UEFI demarre
2. Verification de la signature du bootloader
3. Bootloader verifie la signature du noyau
4. Noyau verifie les drivers
5. Demarrage complet uniquement si tout est signe

Base de donnees de cles​

BaseContenuRole
PK (Platform Key)Cle du fabricantControle total
KEK (Key Exchange Key)Cles Microsoft/fabricantMise a jour des DBs
db (Signature Database)Signatures autoriseesListe blanche
dbx (Forbidden Signatures)Signatures revoqueesListe noire

Verification du statut​

PowerShell:

# Verifier si Secure Boot est actif
Confirm-SecureBootUEFI

# Plus de details
Get-SecureBootPolicy -ErrorAction SilentlyContinue

Via msinfo32:

Win+R > msinfo32 > Secure Boot State

Implications securite​

Avantages:

  • Empeche les bootkits et rootkits de demarrage
  • Protege contre les modifications du bootloader
  • Integrite de la chaine de demarrage

Limitations:

  • Peut etre desactive dans le BIOS
  • Certains malwares avances peuvent le contourner
  • Ne protege pas contre les attaques post-boot

TPM (Trusted Platform Module)​

Definition​

Le TPM est une puce de securite dediee qui stocke des cles cryptographiques et mesure l'integrite du systeme.

Versions​

VersionCaracteristiques
TPM 1.2SHA-1, RSA, ancienne generation
TPM 2.0SHA-256, algorithmes modernes, requis pour Windows 11

Fonctionnalites principales​

  1. Stockage de cles: Cles qui ne quittent jamais le TPM
  2. Mesures d'integrite: PCR (Platform Configuration Registers)
  3. Attestation: Prouver l'etat du systeme
  4. Scellement: Lier des donnees a un etat systeme specifique

PCR (Platform Configuration Registers)​

Les PCR stockent des mesures d'integrite:

PCRContenu
0-3Firmware UEFI
4Bootloader (MBR/UEFI)
5Configuration GPT
6Evenements de plateforme
7Secure Boot
8-15Systeme d'exploitation

Verification du TPM​

PowerShell:

# Verifier la presence du TPM
Get-Tpm

# Details complets
Get-TpmEndorsementKeyInfo
Get-TpmSupportedFeature

Via tpm.msc:

Win+R > tpm.msc

Via Device Manager:

devmgmt.msc > Security Devices > Trusted Platform Module

BitLocker et TPM​

Integration​

BitLocker utilise le TPM pour:

  • Stocker les cles de chiffrement
  • Sceller les cles a l'etat du systeme
  • Deverrouiller automatiquement au demarrage

Modes de BitLocker​

ModeTPMPINCle USBSecurite
TPM seulOuiNonNonBase
TPM + PINOuiOuiNonElevee
TPM + USBOuiNonOuiElevee
TPM + PIN + USBOuiOuiOuiMaximale

Verification BitLocker​

# Statut BitLocker
Get-BitLockerVolume

# Details
manage-bde -status C:

Attaques et Contournements​

Cold Boot Attack​

Principe: La RAM conserve les donnees quelques secondes apres mise hors tension.

Protection: TPM avec mesures d'integrite, chiffrement de la RAM.

Evil Maid Attack​

Principe: Modification physique du systeme pendant l'absence de l'utilisateur.

Protection: TPM detecte les modifications via les PCR.

DMA Attack​

Principe: Acces direct a la memoire via ports externes (Thunderbolt, FireWire).

Protection: Kernel DMA Protection, desactiver les ports non utilises.

TPM Sniffing​

Principe: Intercepter les communications entre CPU et TPM sur le bus LPC.

Protection: fTPM (firmware TPM integre au CPU).


Configuration Recommandee​

Checklist de securite​

# Script de verification securite boot
Write-Host "=== VERIFICATION SECURITE BOOT ===" -ForegroundColor Cyan

# 1. Secure Boot
try {
$sb = Confirm-SecureBootUEFI
if ($sb) {
Write-Host "[OK] Secure Boot: Actif" -ForegroundColor Green
} else {
Write-Host "[!] Secure Boot: Inactif" -ForegroundColor Red
}
} catch {
Write-Host "[?] Secure Boot: Impossible a verifier" -ForegroundColor Yellow
}

# 2. TPM
$tpm = Get-Tpm
if ($tpm.TpmPresent) {
Write-Host "[OK] TPM Present: Oui" -ForegroundColor Green
Write-Host " Version: $($tpm.ManufacturerVersion)"
if ($tpm.TpmReady) {
Write-Host "[OK] TPM Ready: Oui" -ForegroundColor Green
} else {
Write-Host "[!] TPM Ready: Non" -ForegroundColor Yellow
}
} else {
Write-Host "[!] TPM: Non detecte" -ForegroundColor Red
}

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

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

Recommandations​

  1. Activer Secure Boot dans le BIOS/UEFI
  2. Activer le TPM et le configurer
  3. Utiliser BitLocker avec TPM + PIN
  4. Mettre a jour le firmware UEFI regulierement
  5. Proteger l'acces physique a la machine

Exercices​

  1. Verifiez si Secure Boot est actif sur votre VM
  2. Verifiez la presence et le statut du TPM
  3. Identifiez les parametres de securite dans le BIOS/UEFI de votre machine
  4. Expliquez comment TPM et Secure Boot travaillent ensemble

References​