Utilizzare il virtual Trusted Platform Module (vTPM) per abilitare BitLocker e il VM Shielding in Hyper-V

BitLocker Drive Encryption è una funzionalità di protezione dei dati integrata nei sistemi operativi Microsoft che permette di crittografare l’intera partizione del sistema operativo e degli altri dischi presenti. BitLocker è incluso nelle versioni Enterprise ed Ultimate di Windows 7 e nelle versioni Pro ed Enterprise di Windows 8, 8.1 e Windows 10. È ovviamente presente anche nelle versioni di Windows Server, a partire da Windows Server 2008. BitLocker usa per impostazione predefinita l’algoritmo di crittografia AES con una chiave di 128 bit.

BitLocker To Go è invece pensato per unità rimovibili, come pendrive USB, schede SD, unità disco rigido esterne e altre unità formattate con i file system NTFS, FAT16, FAT32 o exFAT. BitLocker to Go è disponibile da Windows 7 in poi.

BitLocker garantisce tre modalità operative. Le prime due modalità richiedono un dispositivo hardware per la cifratura (Trusted Platform Module versione 1.2 o successivo), mentre la terza no.

  1. Modo operativo trasparente: questa modalità sfrutta le capacità dell’hardware TPM 1.2 e TPM 2.0 per garantire una esperienza di utilizzo trasparente; l’utente effettua il login al sistema operativo normalmente. La chiave usata per la criptazione del disco rigido viene memorizzata (in forma sempre crittografata) all’interno del chip TPM che viene restituita al loader dell’OS solo se i file di avvio appaiono non manomessi.
  2. Modo autenticazione utente: questa modalità richiede che l’utente inserisca una chiave di autenticazione nell’ambiente pre-boot in modo da poter avviare il sistema operativo. Al momento dell’avvio del sistema è possibile utilizzare due sistemi di autenticazionne: un PIN inserito dall’utente oppure un dispositivo USB che contiene la chiave di avvio necessaria.
  3. Chiave USB: l’utente deve inserire un pendrive USB che contiene la chiave di avvio nel computer per poter avviare il sistema operativo protetto.

In questa guida mi voglio occupare dell’attivazione di BitLocker anche all’interno delle macchine virtuali ed in particolar modo vi voglio mostrare come permettere ad una VM che gira su Hyper-V di poter utilizzare un virtual TPM (vTPM). Per scrivere questa guida ho utilizzato Windows 10 con Client Hyper-V, ma le stesse operazioni valgono anche se utilizzate Windows Server. Il virtual TPM è infatti disponibile da Windows Server 2012 R2 in poi.

Creazione della VM

Procedete alla creazione della VM, prestando attenzione solo al fatto che il vTPM può essere abilitato su macchine virtuali Generation 2.

Figura 1: Wizard di creazione di una nuova macchina virtuale

Figura 2: Scelta della generazione della macchina virtuale

Figura 3: Completamento della creazione della macchina virtuale

Abilitazione del virtual TPM (vTPM)

Per poter abilitare il vTPM è sufficiente abilitarlo dalla configurazione della VM. Cliccate col tasto destro sulla VM e scegliete Settings. Nella voce Security scegliete Enable Trusted Platform Module.

NOTA: è possibile attivare il vTPM anche se nella macchina host non è presente un chip TPM reale.

Figura 4: Attivazione del vTPM per la macchina virtuale

La stessa operazione si può effettuare con PowerShell, utilizzando la cmdlet Get-VMSecurity per verificare l’attivazione e la cmdlet Enable-VMTPM per attivare la funzionalità, come mostrato in figura:

Figura 5: Attivazione del vTPM utilizzando PowerShell

Dopo aver abilitato il vTPM è possibile verificare che nel Device Manager della macchina virtuale sia visibile il Trusted Platform Module 2.0

Figura 6: Il Trusted Platform Module 2.0 è visibile nella VM

Abilitazione della funzionalità Bitlocker

Per abilitare BitLocker è sufficiente cercare dal menù Start la parola BitLocker oppure andare nel pannello di controllo. Cliccate sulla voce Turn on BitLocker per il disco di sistema e seguite la procedura guidata. Trovate maggiori dettagli al link https://support.microsoft.com/it-it/help/4028713/windows-10-turn-on-device-encryption

Salvate la chiave di ripristino di BitLocker in un luogo sicuro. Io ho scelto di stamparla, ma è possibile salvarla nel OneDrive personale (per poi recuperarla dall’indirizzo https://onedrive.live.com/recoverykey ) oppure salvarla su un pendrive USB. La chiave di sblocco non può essere salvata sul disco di sistema. Il ripristino di BitLocker è il processo con cui è possibile ripristinare l’accesso a un’unità protetta da BitLocker, se non è possibile sbloccare l’unità. Verrà chiesta la chiave di ripristino a 48 cifre che avete salvato al momento dell’attivazione.

Nelle schermate sotto è descritto il processo di attivazione di BitLocker per il disco di sistema.

Figura 7: Attivazione di BitLocker per il disco di sistema

Figura 8: Richiesta di salvataggio della chiave di ripristino

Figura 9: Richiesta di cifrare solo lo spazio utilizzato o tutto l’hard disk

Figura 10: Richiesta del tipo di cifratura da utilizzare

Figura 11: Configurazione dell’attivazione del BitLocker completata

Figura 12: Cifratura del disco completata

Se il disco della VM viene spostato su un’altra macchina o si tenta di montarlo su un host riceverete il messaggio di errore che vi invita a sbloccare il disco protetto da BitLocker, impedendo così che si posa accedere al contenuto della VM.

Figura 13: Il disco crittografato non è leggibile se viene avviato in un’altra VM o viene montato sulla macchina Host

Protezione di una macchina virtuale tramite Shielding

Per proteggersi dalla possibilità che l’infrastruttura (Fabric) possa essere compromessa e si possa accedere ai file delle VM, Microsoft ha introdotto le Hyper-V Shielded VM, macchine virtuali (Generation 2) che hanno un virtual TPM (Trusted Platform Module), cifrate utilizzando BitLocker Drive Encryption e che possono essere eseguite solo su alcuni Host di virtualizzazione approvati all’interno del Fabric. La funzionalità è disponibile in Windows 10, in Windows Server 2016 e in Windows Server 2019.

Per sapere come gestire le Shielded VM in Windows Server 2016 o in Windows Server 2019 vi rimando alla lettura del mio articolo https://www.ictpower.it/sistemi-operativi/creare-un-guarded-fabric-con-ladmin-trusted-attestation-e-le-shielded-vms-in-windows-server-2016.htm

Per abilitare la protezione della VM è sufficiente cliccare col tasto destro sulla VM e scegliere Settings. Nella voce Security scegliete Enable Shielding

Figura 14: Abilitazione della protezione della VM

Quando la macchina è protetta non è più possibile utilizzare il Virtual Machine Connector, il client che lanciate dall’Hyper-V Manager, che vi avvisa che d’ora in poi potrete connettervi alla VM utilizzando solo il Desktop remoto oppure l’Enhanced Session Mode, una funzionalità introdotta in Hyper-V 2012 R2 che permette di connettersi alle VM tramite il protocollo RDP utilizzando il VMBus, anche se la macchina non ha una scheda di rete. Il protocollo RDP permette di poter effettuare la copia di file nella VM, di collegare i dispositivi locali e USB, di usare gli appunti e di ridimensionare lo schermo della VM.

Figura 15: La macchina virtuale non è più accessibile tramite Virtual Machine Connector

Figura 16: La macchina virtuale è accessibile solo tramite RDP oppure tramite Enhanced Session Mode

Da Windows 10, versione 1709, anche Client Hyper-V può ospitare le Shielded VM utilizzando l’Attestation con un Server HGS (Host Guardian Service) remoto, mentre prima di questa versione era possibile farlo solo utilizzando il local mode, cioè facendo in modo che le encryption key del vTPM venissero salvate localmente. Per approfondimenti vi rimando all’articolo https://blogs.technet.microsoft.com/datacentersecurity/2018/01/05/shielded-vm-local-mode-and-hgs-mode/

Conclusioni

La crittografia dei dischi con Bitlocker impedisce accessi non autorizzati in caso di smarrimento o furto del proprio device. Grazie al virtual TPM possiamo implementare questa funzionalità anche all’interno delle macchine virtuali, aumentando la sicurezza dei nostri dati.

Trovate altri articoli su BitLocker al link https://www.ictpower.it/?s=bitlocker