BitLocker con gestione delle chiavi di crittografia DPAPI di Windows


8

È necessario imporre la crittografia a riposo su un LUN iSCSI accessibile da una macchina virtuale Hyper-V.

Abbiamo implementato una soluzione funzionante utilizzando BitLocker, utilizzando Windows Server 2012 su un server virtuale Hyper-V che ha accesso iSCSI a un LUN sulla nostra SAN. Siamo stati in grado di farlo con successo utilizzando l'hack "archiviazione della chiave del disco floppy" come definito in QUESTO POST . Tuttavia, questo metodo mi sembra "hokey".

Nella mia continua ricerca, ho scoperto che il team IT di Amazon Corporate ha pubblicato un WHITEPAPER che ha delineato esattamente quello che stavo cercando in una soluzione più elegante, senza "l'happy disk floppy". A pagina 7 di questo white paper, affermano di aver implementato la gestione delle chiavi di crittografia DPAPI di Windows per gestire in sicurezza le proprie chiavi BitLocker. Questo è esattamente quello che sto cercando di fare, ma hanno affermato che dovevano scrivere una sceneggiatura per farlo, eppure non forniscono la sceneggiatura o anche alcun suggerimento su come crearne una.

Qualcuno ha i dettagli su come creare uno "script in combinazione con un servizio e un file di archivio chiavi protetto dalla chiave DPAPI dell'account macchina del server" (come indicato nel white paper) per gestire e sbloccare automaticamente i volumi BitLocker? Qualsiasi consiglio è apprezzato.

--- MODIFICA 1 ---

Sulla base della risposta di Evan di seguito, ecco cosa ho capito, ma sono ancora bloccato.

Suppongo che usando PsExec ed eseguendo il seguente comando, che PowerShell sia in esecuzione con l'account di sistema e che "crittograferà la stringa con la password dell'account del computer", come ha affermato Evan. È corretto?

PsExec.exe -i -s Powershell.exe

Quindi dall'interno di PS, (usando questo post come riferimento) eseguo questo comando per generare la password SecureString:

ConvertTo-SecureString -String "MyBitLockerPassword" -AsPlainText –Force | ConvertFrom-SecureString | Out-File C:\securestring.txt

Questo mi dà un file contenente la stringa sicura nel formato di "01000000d08c ..." (per un totale di 524 caratteri). Quindi, ora posso creare un'attività di pianificazione da eseguire all'avvio che utilizza quanto segue per caricare la password (come SecureString) e passarla al comando Unlock-BitLocker :

$SecureBitLockerPassword = Get-Content C:\securestring.txt | ConvertTo-SecureString
Unlock-BitLocker -MountPoint "E:" -Password $ SecureBitLockerPassword

Tuttavia, se sto semplicemente memorizzando la password crittografata come file sul disco rigido, qual è lo scopo della crittografia e della decrittografia della password? Non sarebbe altrettanto insicuro come archiviare la password in testo semplice e utilizzare quanto segue (senza la necessità di creare il file di stringa sicuro)?

$SecureString = ConvertTo-SecureString " MyBitLockerPassword " -AsPlainText –Force
Unlock-BitLocker -MountPoint "E:" -Password $SecureString

In quale altro modo ti avvicineresti a questo? Dove posso archiviare la chiave SecureString in modo che solo l'account di sistema possa accedervi?

Risposte:


6

Sembra che tutto ciò che Amazon stia facendo è memorizzare le chiavi Bitlocker in DPAPI nel contesto del SISTEMA. Sebbene ciò sia molto meno sicuro rispetto all'archiviazione delle chiavi in ​​un TPM (perché la chiave in testo semplice può essere recuperata da qualsiasi servizio in esecuzione come SISTEMA rispetto a una chiave memorizzata in un TPM che non può essere recuperata) se il TPM non è esposto alla macchina virtuale questa è probabilmente l'unica opzione.

Per realizzare qualcosa di simile a quello che stanno descrivendo, probabilmente userò le API PowerShell ConvertFrom-SecureStringgratuite ConvertTo-SecureString. Secondo i documenti Microsoft, il ConvertFrom-SecureStringcmdlet utilizza DPAPI se non viene specificata alcuna chiave statica. Esegui lo script nel contesto di SISTEMA e DPAPI crittograferà la stringa con la password dell'account del computer.

Da quel punto si tratta di utilizzare lo manage-bdestrumento per sbloccare l'unità utilizzando la password recuperata (ad es. manage-bde -unlock x: -password)


Evan, grazie per il tuo post. Mi stai indicando nella giusta direzione, ma sono ancora bloccato nel determinare dove o come viene memorizzata la chiave crittografata. Si prega di consultare il mio aggiornamento nel post originale sopra.
bigmac,

1
@bigmac - La tua modifica è il motivo per cui il mio primo paragrafo contiene la frase "molto meno sicuro". L'unica protezione offerta da questo metodo protegge la chiave dagli attaccanti che potrebbero ottenere i privilegi di SISTEMA, e una volta che hanno SISTEMA è "game over" per la tua chiave. Al TPM, almeno, non può essere fatto divulgare la sua chiave. Il recupero della chiave Bitlocker dalla memoria è certamente possibile, con attacchi di memoria di avvio a freddo contro l'hardware fisico, ma ciò non compromette la chiave del TPM. Stai arrivando alla realizzazione che mi aspettavo ... Il white paper di Amazon è il teatro della sicurezza.
Evan Anderson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.