È possibile estrarre segreti da un TPM senza conoscere il PIN?

3

Comprendo l'operazione generale di un TPM, e in particolare l'interesse di utilizzare un PIN di preavvio: se qualcuno accede alla macchina (spento), l'accensione del computer non sarà sufficiente per memorizzare le chiavi nel TPM e quindi decrittografare i dati.

Mi chiedo come viene utilizzato questo PIN dal TPM? E quanto è efficace? Ad esempio, so che è possibile effettuare attacchi fisici sul TPM e alcuni di questi attacchi possono potenzialmente estrarre segreti.

Ma ingenuamente, immagino che se questi segreti (diciamo la chiave master di un'unità BitLocker) siano crittografati con il PIN, è praticamente impossibile ottenere questi segreti senza conoscere questo PIN (a meno che non attacchi direttamente l'algoritmo di crittografia sottostante ). è così che funziona? O i segreti sono archiviati in chiaro e il TPM li rilascia semplicemente dopo aver controllato che il PIN sia corretto?

Infine, so che in uno scenario in cui un utente malintenzionato ottiene un accesso fisico totale, è sempre possibile eludere tali misure (keylogger fisico per recuperare il PIN, ecc.). Ma lo scenario che ho in mente è che un utente malintenzionato ruba un laptop spento (quindi nessun attacco DMA, attacchi cold boot, ecc.) Con un disco crittografato con la chiave memorizzata nel TPM con un PIN. Supponendo che questo aggressore sia in grado di eseguire un attacco fisico (bypass protezioni anti-manomissione, ecc.) Possono recuperare i segreti senza conoscere il PIN e senza interazione con l'utente legittimo?

    
posta crypto-guest 19.07.2017 - 02:13
fonte

1 risposta

2

Ho lavorato con TPM e HSM nell'ambito dei dispositivi e delle certificazioni PED PCI PTS, quindi è quello che userò per la base delle mie risposte. Non funzionano tutti allo stesso modo e in genere il foglio dati non è disponibile pubblicamente.

Di solito quello che ho visto è che esiste una sorta di derivazione della chiave che non è crittografata nel senso stretto di un algoritmo simmetrico qualificante, ma non è nemmeno un testo chiaro, di solito è il risultato di un metodo di derivazione della chiave

link

Lo standard PCI, ad esempio, definisce metodi di derivazione, memorizzazione e azzeramento delle chiavi. Ad un certo punto in alto la chiave principale deve essere non crittografata come hai indicato, ma può essere archiviata in più parti, salata e con hash o XORED con un pin o una combinazione qualsiasi. Un buon TPM o HSM dovrebbe sempre avere la chiave master non crittografata e la chiave master non dovrebbe mai essere utilizzata per alcuna crittografia dei dati, solo la derivazione della chiave per limitare la possibilità di scoperta della forza bruta. Non è raro che la chiave master venga generata internamente al momento della programmazione in modo che la chiave master non possa mai essere emessa dal dispositivo.

L'unico vettore di attacco che conosco non proviene dal TPM / HSM, piuttosto dall'ambiente in cui vengono utilizzati. Ho fatto test approfonditi SPA / DPA professionalmente. In questo scenario devi solo convincere il dispositivo a utilizzare la chiave più volte (almeno alcune migliaia) e puoi monitorare le emissioni E / M dal processore o dalla potenza e fare analisi statistiche per determinare la chiave.

Cercherò di illustrare questo, il tasto principale di livello superiore X è memorizzato crittografato da un tasto Aes 256 che l'utente ha memorizzato e deve immettere ogni volta per decrittografare il sistema operativo. Faccio un'asserzione da 1 a 4 bit del pin usato. Quindi generi 5000 pin diversi che varizzano da 4 a 8 bit dei pin e lasciano il resto statico. Bastano circa 4 bit per rendere il processore sufficientemente casuale. Inserisco questi 5000 pin e catturo i segnali EM e tengo traccia di quale pin erano. Li divido in 2 pile, 1 pila fa un particolare sbox bit 1 e l'altro fa sbox bit 0. Se c'è qualche correlazione statistica, allora so che il mio bit assertion era corretto, e posso continuamente rompere il pin bit per bit .

La maggior parte dei nuovi moduli di sicurezza ora tenta di attenuarsi inserendo l'allungamento dell'orologio, ritardi casuali e altre operazioni errate.

E poi DPA più avanzato guarda al secondo ordine e alle correlazioni più alte che richiedono esponenzialmente più tempo e la gara continua

Il mio esempio presuppone che il tuo pin sia una chiave completa, ma la stessa teoria può essere applicata praticamente a qualsiasi algoritmo matematico.

    
risposta data 19.07.2017 - 05:25
fonte

Leggi altre domande sui tag