Nozioni fondamentali su TPM

Questo articolo fornisce una descrizione dei componenti TPM 1.2 e TPM 2.0 e spiega come vengono usati per mitigare gli attacchi al dizionario.

Un TPM è un microchip progettato per fornire funzioni di base correlate alla sicurezza, che coinvolgono principalmente le chiavi di crittografia. Il TPM viene installato nella scheda madre di un computer e comunica con il resto del sistema usando un bus hardware.

I dispositivi che incorporano un TPM possono creare chiavi di crittografia e crittografarle, in modo che le chiavi possano essere decrittografate solo dal TPM. Questo processo, spesso denominato "wrapping" o "associazione" di una chiave, consente di proteggere la chiave dalla divulgazione. Ogni TPM ha una chiave di wrapping primaria, denominata chiave radice di archiviazione, archiviata all'interno del TPM stesso. La parte privata di una chiave radice di archiviazione, o chiave di verifica dell'autenticità, creata in un TPM non viene mai esposta ad altri componenti, software, processi o utenti.

È possibile specificare se è possibile eseguire o meno la migrazione delle chiavi di crittografia create dal TPM. Se si specifica che è possibile eseguirne la migrazione, le parti pubbliche e private della chiave possono essere esposte ad altri componenti, software, processi o utenti. Se si specifica che non è possibile eseguire la migrazione delle chiavi di crittografia, la parte privata della chiave non viene mai esposta all'esterno del TPM.

I dispositivi che incorporano un TPM possono anche creare una chiave incapsulata e associata a determinate misurazioni della piattaforma. Questo tipo di chiave può essere annullato solo quando le misurazioni della piattaforma hanno gli stessi valori che avevano al momento della creazione della chiave. Questo processo viene definito sealing della chiave al TPM. La decrittografia della chiave è denominata unsealing. Il TPM può anche sigillare e rimuovere i dati generati all'esterno del TPM. Con la chiave e il software sealed, ad esempio Crittografia unità BitLocker, i dati possono essere bloccati fino a quando non vengono soddisfatte condizioni hardware o software specifiche.

Con un TPM, le parti private delle coppie di chiavi vengono mantenute separate dalla memoria controllata dal sistema operativo. Le chiavi possono essere sealed al TPM e alcune garanzie sullo stato di un sistema (garanzie che definiscono l'affidabilità di un sistema) possono essere effettuate prima che le chiavi vengano sbloccate e rilasciate per l'uso. Il TPM usa il proprio firmware interno e i circuiti logici per elaborare le istruzioni. Di conseguenza, non si basa sul sistema operativo e non è esposto a vulnerabilità che potrebbero esistere nel sistema operativo o nel software dell'applicazione.

Le funzionalità disponibili nelle versioni sono definite nelle specifiche dal Trusted Computing Group (TCG). Per altre informazioni, vedere la pagina Trusted Platform Module (Modulo piattaforma attendibile ) nel sito Web Trusted Computing Group.

Le sezioni seguenti offrono una panoramica delle tecnologie che supportano il TPM:

Avvio misurato con supporto per l'attestazione

La funzionalità Avvio misurato fornisce software antimalware con un log attendibile (resistente allo spoofing e alla manomissione) di tutti i componenti di avvio. Il software antimalware può usare il log per determinare se i componenti eseguiti prima che siano attendibili o infettati da malware. Può anche inviare i log di avvio misurato a un server remoto per la valutazione. Il server remoto può avviare azioni di correzione interagendo con il software nel client o tramite meccanismi fuori banda, a seconda delle esigenze.

Smart card virtuale basata su TPM

Warning

Windows Hello for Business e le chiavi di sicurezza FIDO2 sono metodi moderni di autenticazione a due fattori per Windows. I clienti che usano smart card virtuali sono invitati a passare a Windows Hello for Business o FIDO2. Per le nuove installazioni di Windows, è consigliabile Windows Hello for Business o le chiavi di sicurezza FIDO2.

La smart card virtuale emula la funzionalità delle smart card tradizionali. Le smart card virtuali usano il chip TPM, anziché usare una smart card fisica e un lettore separati. Ciò riduce notevolmente il costo di gestione e distribuzione delle smart card in un'azienda. Per l'utente finale, la smart card virtuale è sempre disponibile nel dispositivo. Se un utente deve usare più di un dispositivo, deve essere rilasciata una smart card virtuale all'utente per ogni dispositivo. Un computer condiviso tra più utenti può ospitare più smart card virtuali, una per ogni utente.

Archiviazione certificati basata su TPM

Il TPM protegge i certificati e le chiavi RSA. Il provider di archiviazione chiavi TPM (KSP) offre un uso semplice e pratico del TPM per proteggere fortemente le chiavi private. Il KSP TPM genera chiavi quando un'organizzazione si registra per i certificati. Il TPM protegge anche i certificati importati da un'origine esterna. I certificati basati su TPM sono certificati standard. Il certificato non può mai lasciare il TPM da cui vengono generate le chiavi. Il TPM può essere usato anche per le operazioni di crittografia tramite l'API di crittografia: CNG (Next Generation).

Cmdlet TPM

È possibile gestire il TPM usando Windows PowerShell. Per informazioni dettagliate, vedere Cmdlet TPM in Windows PowerShell.

Interfaccia di presenza fisica

Per TPM 1.2, le specifiche TCG per i TPM richiedono la presenza fisica (in genere premendo un tasto) per attivare il TPM, disattivarlo o cancellarlo. Queste azioni in genere non possono essere automatizzate con script o altri strumenti di automazione, a meno che il singolo OEM non le fornisca.

Stati TPM 1.2 e inizializzazione

TPM 1.2 ha più stati possibili. Windows inizializza automaticamente il TPM, che lo porta a uno stato abilitato, attivato e di proprietà.

Chiavi di verifica dell'autenticità

Un'applicazione attendibile può usare TPM solo se il TPM contiene una chiave di verifica dell'autenticità, ovvero una coppia di chiavi RSA. La metà privata della coppia di chiavi viene mantenuta all'interno del TPM e non viene mai rivelata o accessibile all'esterno del TPM.

Attestazione chiave

L'attestazione della chiave TPM consente a un'autorità di certificazione di verificare che una chiave privata sia protetta da un TPM e che il TPM sia attendibile per l'autorità di certificazione. Le chiavi di verifica dell'autenticità dimostrate valide vengono usate per associare l'identità utente a un dispositivo. Il certificato utente con una chiave con attestazione TPM offre una maggiore garanzia di sicurezza, supportata da non esportabilità, anti-martellamento e isolamento delle chiavi fornite da un TPM.

Anti-martellamento

Quando un TPM elabora un comando, lo fa in un ambiente protetto. Ad esempio, un micro controller dedicato in un chip discreto o una modalità speciale protetta da hardware nella CPU principale. Un TPM viene usato per creare una chiave di crittografia che non viene divulgata all'esterno del TPM. Viene usato nel TPM dopo aver fornito il valore di autorizzazione corretto.

I TPM hanno una protezione anti-martellamento progettata per impedire attacchi di forza bruta, o attacchi dizionario più complessi, che tentano di determinare i valori di autorizzazione per l'uso di una chiave. L'approccio di base consiste nel consentire al TPM di consentire solo un numero limitato di errori di autorizzazione prima di impedire altri tentativi di usare chiavi e blocchi. Fornire un numero di errori per le singole chiavi non è tecnicamente pratico, quindi i TPM hanno un blocco globale quando si verificano troppi errori di autorizzazione.

Poiché molte entità possono usare il TPM, un singolo esito positivo dell'autorizzazione non può reimpostare la protezione anti-martellamento del TPM. Ciò impedisce a un utente malintenzionato di creare una chiave con un valore di autorizzazione noto e quindi di usarla per reimpostare la protezione del TPM. I TPM sono progettati per dimenticare gli errori di autorizzazione dopo un periodo di tempo, in modo che il TPM non immetta inutilmente uno stato di blocco. È possibile usare una password del proprietario del TPM per reimpostare la logica di blocco del TPM.

Anti-martellamento TPM 2.0

TPM 2.0 ha un comportamento anti-martellamento ben definito. Ciò è in contrasto con il TPM 1.2 per il quale la protezione anti-martellamento è stata implementata dal produttore e la logica varia ampiamente in tutto il settore.

Per i sistemi con TPM 2.0, il TPM viene configurato da Windows per il blocco dopo 32 errori di autorizzazione e per dimenticare un errore di autorizzazione ogni 10 minuti. Ciò significa che un utente potrebbe tentare rapidamente di usare una chiave con il valore di autorizzazione errato 32 volte. Per ognuno dei 32 tentativi, il TPM registra se il valore di autorizzazione è corretto o meno. Questo inavvertitamente fa sì che il TPM entri in uno stato bloccato dopo 32 tentativi non riusciti.

I tentativi di usare una chiave con un valore di autorizzazione per i successivi 10 minuti non restituiscono esito positivo o negativo. La risposta indica invece che il TPM è bloccato. Dopo 10 minuti, viene dimenticato un errore di autorizzazione e il numero di errori di autorizzazione memorizzati dal TPM scende a 31. Il TPM lascia lo stato bloccato e torna al normale funzionamento. Con il valore di autorizzazione corretto, le chiavi potrebbero essere usate normalmente se non si verificano errori di autorizzazione nei successivi 10 minuti. Se viene trascorso un periodo di 320 minuti senza errori di autorizzazione, il TPM non memorizza gli errori di autorizzazione e potrebbero verificarsi di nuovo 32 tentativi non riusciti.

Windows non richiede che i sistemi TPM 2.0 dimentichino gli errori di autorizzazione quando il sistema è completamente spento o quando il sistema è in stato di ibernazione. Windows richiede che gli errori di autorizzazione vengano dimenticati quando il sistema è in esecuzione normalmente, in modalità sospensione o in stati a basso consumo energetico diversi da off. Se un sistema Windows con TPM 2.0 è bloccato, il TPM lascia la modalità di blocco se il sistema rimane attivo per 10 minuti.

La protezione anti-martellamento per TPM 2.0 può essere reimpostata completamente immediatamente inviando un comando di blocco di reimpostazione al TPM e fornendo la password del proprietario del TPM. Per impostazione predefinita, Windows effettua automaticamente il provisioning di TPM 2.0 e archivia la password del proprietario del TPM per l'uso da parte degli amministratori di sistema.

In alcune implementazioni, il valore di autorizzazione del proprietario del TPM viene archiviato centralmente in Active Directory e non nel sistema locale. Un amministratore può eseguire tpm.msc e scegliere di reimpostare il tempo di blocco TPM. Se la password del proprietario del TPM viene archiviata in locale, viene usata per reimpostare il tempo di blocco. Se la password del proprietario del TPM non è disponibile nel sistema locale, l'amministratore deve fornirla. Se un amministratore tenta di reimpostare lo stato di blocco TPM con la password del proprietario TPM errata, il TPM non consente un altro tentativo di reimpostare lo stato di blocco per 24 ore.

TPM 2.0 consente di creare alcune chiavi senza un valore di autorizzazione associato. Queste chiavi possono essere usate quando il TPM è bloccato. Ad esempio, BitLocker con una configurazione predefinita solo TPM è in grado di usare una chiave nel TPM per avviare Windows, anche quando il TPM è bloccato.

Logica dietro le impostazioni predefinite

In origine, BitLocker consentiva da 4 a 20 caratteri per un PIN. Windows Hello ha il proprio PIN per l'accesso, che può essere da 4 a 127 caratteri. Sia BitLocker che Windows Hello usano il TPM per evitare attacchi di forza bruta del PIN.

Windows 10, versione 1607 e precedenti usavano parametri di prevenzione degli attacchi del dizionario. I parametri di prevenzione degli attacchi del dizionario consentono di bilanciare le esigenze di sicurezza con l'usabilità. Ad esempio, quando BitLocker viene usato con una configurazione TPM + PIN, il numero di ipotesi di PIN è limitato nel tempo. È possibile configurare un TPM 2.0 in questo esempio in modo da consentire immediatamente solo 32 ipotesi di PIN e quindi solo un'altra ipotesi ogni due ore. Questo totale è di circa 4415 ipotesi all'anno. Se il PIN è di quattro cifre, tutte le 9999 combinazioni di PIN possibili potrebbero essere tentate in poco più di due anni.

A partire da Windows 10 versione 1703, la lunghezza minima per il PIN BitLocker è stata aumentata a sei caratteri, per allinearsi meglio ad altre funzionalità di Windows che usano TPM 2.0, tra cui Windows Hello. L'aumento della lunghezza del PIN richiede un numero maggiore di ipotesi per un utente malintenzionato. Di conseguenza, la durata del blocco tra ogni ipotesi è stata abbreviata per consentire agli utenti legittimi di ritentare un tentativo non riuscito prima mantenendo un livello di protezione simile. Se è necessario usare i parametri legacy per la soglia di blocco e il tempo di ripristino, assicurarsi che l'oggetto Criteri di gruppo sia abilitato e configurare il sistema per l'uso dell'impostazione Dei parametri di prevenzione degli attacchi del dizionario legacy per TPM 2.0.

Smart card basate su TPM

La smart card basata su TPM di Windows, che è una smart card virtuale, può essere configurata per consentire l'accesso al sistema. A differenza delle smart card fisiche, il processo di accesso usa una chiave basata su TPM con un valore di autorizzazione. L'elenco seguente mostra i vantaggi delle smart card virtuali:

  • Le smart card fisiche possono applicare il blocco solo per il PIN della smart card fisica e possono reimpostare il blocco dopo l'immissione del PIN corretto. Con una smart card virtuale, la protezione anti-martellamento del TPM non viene reimpostata dopo un'autenticazione riuscita. Il numero consentito di errori di autorizzazione prima che il TPM entri in blocco include molti fattori.
  • I produttori di hardware e gli sviluppatori di software possono usare le funzionalità di sicurezza del TPM per soddisfare i propri requisiti.
  • L'intento di selezionare 32 errori come soglia di blocco consiste nell'evitare che gli utenti blocchino il TPM (anche quando imparano a digitare nuove password o se bloccano e sbloccano spesso i computer). Se gli utenti bloccano il TPM, devono attendere 10 minuti o usare altre credenziali per accedere, ad esempio un nome utente e una password.