amazon-ec2 – BitLocker con administración de claves de cifrado DPAPI de Windows

Pregunta:

Tenemos la necesidad de hacer cumplir 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 con éxito usando el truco de "almacenamiento de claves en disquete" como se define en ESTE POST . Sin embargo, este método me parece "cursi".

En mi investigación continua, descubrí que el equipo de TI de Amazon Corporate publicó un WHITEPAPER que describía exactamente lo que estaba buscando en una solución más elegante, sin el "truco del disquete". 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 dijeron que tenían que escribir un guión para hacer esto, pero no proporcionan el guión ni siquiera indicaciones sobre cómo crear uno.

¿Alguien tiene detalles sobre cómo crear un "script junto con un servicio y un archivo de almacén de claves protegido por la clave DPAPI de la cuenta de la máquina del servidor" (como se indica en el documento técnico) para administrar y desbloquear automáticamente los volúmenes de BitLocker? Se agradece cualquier consejo.

— 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, 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 dentro de 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). Luego, ahora puedo crear una tarea programada 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, ¿de qué sirve 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ía esto? ¿Dónde podría almacenar la clave SecureString para que solo la cuenta del sistema pueda acceder a ella?

Respuesta:

Parece que todo lo que Amazon está haciendo es almacenar las claves de Bitlocker en DPAPI en el contexto del SISTEMA. Si bien esto es mucho menos seguro que almacenar las claves en un TPM (porque la clave de texto sin formato puede ser recuperada por cualquier servicio que se ejecute como SYSTEM en lugar de una clave almacenada en un TPM que no se puede recuperar) si el TPM no está expuesto a la máquina virtual esta es probablemente tu única opción.

Para lograr algo similar a lo que están describiendo, probablemente usaría las ConvertFrom-SecureString y ConvertTo-SecureString PowerShell de ConvertTo-SecureString . Según los documentos de Microsoft, el cmdlet ConvertFrom-SecureString usa DPAPI si no se especifica una clave estática. Ejecute el script en el contexto del SISTEMA y DPAPI cifrará su cadena con la contraseña de la cuenta de la máquina.

A partir de ese momento, es cuestión de usar la herramienta manage-bde para desbloquear la unidad con la contraseña recuperada (por ejemplo, manage-bde -unlock x: -password )

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım