我们需要在可从Hyper-V虚拟机访问的iSCSI LUN上实施静态加密。
我们已经在Hyper-V虚拟服务器上使用Windows Server 2012使用BitLocker实施了可行的解决方案,该服务器具有对SAN上LUN的iSCSI访问权限。我们可以通过使用THIS POST中定义的“软盘密钥存储”技巧成功地做到这一点。但是,这种方法对我来说似乎是“骗子”。
在我的继续研究中,我发现Amazon Corporate IT团队发布了一份WHITEPAPER,该白皮书准确地概述了我在一个更优雅的解决方案中所需要的内容,而没有“软盘黑客”。在此白皮书的第7页上,他们声明他们实现了Windows DPAPI加密密钥管理来安全地管理其BitLocker密钥。这正是我要执行的操作,但是他们表示必须编写脚本才能执行此操作,但是他们没有提供脚本,甚至没有提供有关如何创建脚本的指针。
是否有人详细说明如何创建“与服务结合的脚本以及受服务器的计算机帐户DPAPI密钥保护的密钥存储文件”(如白皮书中所述)以管理和自动解锁BitLocker卷?任何建议表示赞赏。
-编辑1-
根据以下Evan的回答,这是我已经弄清楚的内容,但我仍然很困惑。
我假设使用PsExec并运行以下命令,PowerShell在System帐户下运行,并且它将“加密带有计算机帐户密码的字符串”,如Evan所述。它是否正确?
PsExec.exe -i -s Powershell.exe
然后从PS内部,(以本文为参考),我运行以下命令来生成SecureString密码:
ConvertTo-SecureString -String "MyBitLockerPassword" -AsPlainText –Force | ConvertFrom-SecureString | Out-File C:\securestring.txt
这给了我一个包含安全字符串的文件,格式为“ 01000000d08c…”(总共524个字符)。然后,我现在可以创建一个计划任务以在启动时运行,该任务使用以下命令加载密码(作为SecureString)并将其传递给Unlock-BitLocker命令:
$SecureBitLockerPassword = Get-Content C:\securestring.txt | ConvertTo-SecureString
Unlock-BitLocker -MountPoint "E:" -Password $ SecureBitLockerPassword
但是,如果我只是将加密的密码作为文件存储在硬盘上,那么加密和解密密码有什么意义呢?这与以纯文本格式存储密码并使用以下内容(无需创建安全字符串文件)一样安全吗?
$SecureString = ConvertTo-SecureString " MyBitLockerPassword " -AsPlainText –Force
Unlock-BitLocker -MountPoint "E:" -Password $SecureString
您还会如何处理呢?我在哪里可以存储SecureString密钥,以便只有系统帐户才能访问它?