Skip to main content
  1. Lab-blue/

[TODO] Lab - vTPM e Secure Boot su UTM

·2 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Capitolo: Gibson Cap 5 — Securing Hosts and Data Concetti: TPM, Secure Boot, UEFI, Measured Boot, catena di fiducia


Obiettivo
#

Esplorare la catena di boot su una VM Ubuntu ARM con TPM virtuale abilitato. Leggere i PCR values, vedere l'Endorsement Key, verificare lo stato Secure Boot.

Security angle: i PCR values cambiano se qualcosa nel boot cambia (bootloader, kernel, configurazione UEFI). Un sistema di attestazione remota confronta i PCR con una baseline per rilevare manomissioni.


Prerequisiti
#

  • UTM su Mac Apple Silicon
  • VM Ubuntu Server ARM con vTPM abilitato nelle impostazioni VM (UTM supporta QEMU vTPM nativo)
  • Pacchetto tpm2-tools installato nella VM
sudo apt update && sudo apt install -y tpm2-tools efibootmgr mokutil

Step 1 — Verifica che il TPM sia presente
#

ls /dev/tpm*          # deve esistere /dev/tpm0 o /dev/tpmrm0
tpm2_getcap properties-fixed

Cosa osservare: TPM2_PT_MANUFACTURER, TPM2_PT_FAMILY_INDICATOR (dovrebbe essere "2.0"), TPM2_PT_PCR_COUNT (di solito 24).


Step 2 — Leggi i PCR values
#

I PCR (Platform Configuration Registers) sono registri che accumulano hash durante il boot. Ogni componente della catena li estende.

tpm2_pcrread

Prova a rispondere: a cosa serve il PCR 0? Il PCR 7? (Cerca "TPM PCR values meaning" se non lo sai — e' materiale da esame.)


Step 3 — Endorsement Key
#

L'Endorsement Key (EK) e' la chiave principale del TPM, unica per ogni chip, usata per attestazione remota.

tpm2_readpublic -c 0x81010001    # EK pubblica

Se il comando fallisce: crea prima la EK con tpm2_createek.


Step 4 — Stato Secure Boot
#

mokutil --sb-state      # Secure Boot enabled/disabled
efibootmgr -v           # variabili UEFI e boot order

In una VM QEMU il Secure Boot potrebbe non essere abilitato di default. Osserva comunque le variabili UEFI con efibootmgr.


Step 5 — Misurazione del boot (Measured Boot)
#

Il Measured Boot registra ogni step della catena nei PCR. Puoi verificare:

tpm2_eventlog /sys/kernel/security/tpm0/binary_bios_measurements 2>/dev/null || \
  cat /sys/kernel/security/tpm0/binary_bios_measurements | xxd | head -50

Domande di riflessione
#

  1. Differenza tra Secure Boot e Measured Boot: uno blocca, l'altro registra. Quale e' quale?
  2. Se un attaccante modifica il bootloader ma il sistema si avvia comunque, quale meccanismo e' fallito?
  3. Cosa e' il TPM Endorsement Key e perche' non puo' essere estratto dal chip?

Note e osservazioni
#


Collegato a
#

  • cap-05-securing-hosts-and-data — sezione TPM, HSM, UEFI Secure Boot

Related