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
| Base | Contenu | Role |
|---|---|---|
| PK (Platform Key) | Cle du fabricant | Controle total |
| KEK (Key Exchange Key) | Cles Microsoft/fabricant | Mise a jour des DBs |
| db (Signature Database) | Signatures autorisees | Liste blanche |
| dbx (Forbidden Signatures) | Signatures revoquees | Liste 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
| Version | Caracteristiques |
|---|---|
| TPM 1.2 | SHA-1, RSA, ancienne generation |
| TPM 2.0 | SHA-256, algorithmes modernes, requis pour Windows 11 |
Fonctionnalites principales
- Stockage de cles: Cles qui ne quittent jamais le TPM
- Mesures d'integrite: PCR (Platform Configuration Registers)
- Attestation: Prouver l'etat du systeme
- Scellement: Lier des donnees a un etat systeme specifique
PCR (Platform Configuration Registers)
Les PCR stockent des mesures d'integrite:
| PCR | Contenu |
|---|---|
| 0-3 | Firmware UEFI |
| 4 | Bootloader (MBR/UEFI) |
| 5 | Configuration GPT |
| 6 | Evenements de plateforme |
| 7 | Secure Boot |
| 8-15 | Systeme 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
| Mode | TPM | PIN | Cle USB | Securite |
|---|---|---|---|---|
| TPM seul | Oui | Non | Non | Base |
| TPM + PIN | Oui | Oui | Non | Elevee |
| TPM + USB | Oui | Non | Oui | Elevee |
| TPM + PIN + USB | Oui | Oui | Oui | Maximale |
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
- Activer Secure Boot dans le BIOS/UEFI
- Activer le TPM et le configurer
- Utiliser BitLocker avec TPM + PIN
- Mettre a jour le firmware UEFI regulierement
- Proteger l'acces physique a la machine
Exercices
- Verifiez si Secure Boot est actif sur votre VM
- Verifiez la presence et le statut du TPM
- Identifiez les parametres de securite dans le BIOS/UEFI de votre machine
- Expliquez comment TPM et Secure Boot travaillent ensemble