Tenemos la necesidad de aplicar el cifrado en reposo en un iSCSI LUN al que se puede acceder desde una máquina virtual Hyper-V.
Hemos implementado una solución de trabajo usando BitLocker, usando Windows Server 2012 en un servidor virtual Hyper-V que tiene acceso iSCSI a un LUN en nuestra SAN. Pudimos hacer esto exitosamente usando el hack de "almacenamiento de clave de disquete" como se define en ESTE POST . Sin embargo, este método me parece "hokey".
En mi investigación continua, descubrí que el equipo de TI corporativo de Amazon publicó un WHITEPAPER que describía exactamente lo que estaba buscando en una solución más elegante, sin el "pirateo de disquetes". En la página 7 de este documento técnico, afirman que implementaron la administración de claves de cifrado DPAPI de Windows para administrar de forma segura sus claves BitLocker. Esto es exactamente lo que estoy buscando hacer, pero declararon que tenían que escribir un guión para hacerlo, sin embargo, no proporcionan el guión o incluso ningún indicador sobre cómo crear uno.
¿Alguien tiene detalles sobre cómo crear un "script junto con un servicio y un archivo de almacenamiento de claves protegido por la clave DPAPI de la cuenta de máquina del servidor" (como se indica en el documento técnico) para administrar y desbloquear automáticamente los volúmenes de BitLocker? Cualquier consejo es apreciado.
--- EDITAR 1 ---
Según la respuesta de Evan a continuación, esto es lo que he descubierto, pero todavía estoy atascado.
Supongo que usando PsExec y ejecutando el siguiente comando, que PowerShell se está ejecutando bajo la cuenta del sistema y que "cifrará la cadena con la contraseña de la cuenta de la máquina", como dijo Evan. ¿Es esto correcto?
PsExec.exe -i -s Powershell.exe
Luego, desde PS, (usando esta publicación como referencia) ejecuto este comando para generar la contraseña de SecureString:
ConvertTo-SecureString -String "MyBitLockerPassword" -AsPlainText –Force | ConvertFrom-SecureString | Out-File C:\securestring.txt
Eso me da un archivo que contiene la cadena segura en el formato de "01000000d08c ..." (un total de 524 caracteres). Entonces, ahora puedo crear una Tarea de programación para ejecutar en el arranque que usa lo siguiente para cargar la contraseña (como SecureString) y pasarla al comando Unlock-BitLocker :
$SecureBitLockerPassword = Get-Content C:\securestring.txt | ConvertTo-SecureString
Unlock-BitLocker -MountPoint "E:" -Password $ SecureBitLockerPassword
Sin embargo, si simplemente estoy almacenando la contraseña cifrada como un archivo en el disco duro, ¿cuál es el punto de cifrar y descifrar la contraseña? ¿No sería tan inseguro como almacenar la contraseña en texto plano y usar lo siguiente (sin la necesidad de crear el archivo de cadena seguro)?
$SecureString = ConvertTo-SecureString " MyBitLockerPassword " -AsPlainText –Force
Unlock-BitLocker -MountPoint "E:" -Password $SecureString
¿De qué otra manera abordarías esto? ¿Dónde podría almacenar la clave SecureString para que solo la cuenta del sistema pueda acceder a ella?