具有Windows DPAPI加密密钥管理的BitLocker


8

我们需要在可从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密钥,以便只有系统帐户才能访问它?

Answers:


6

看起来Amazon所做的一切都是在SYSTEM上下文中将Bitlocker密钥存储在DPAPI中。尽管这比将密钥存储在TPM中安全性低得多(因为TPM不会暴露给虚拟机,因为任何以SYSTEM身份运行的服务都可以检索明文密钥,而存储在TPM中的密钥无法恢复)这可能是您唯一的选择。

为了完成类似于他们所描述的内容,我可能会使用ConvertFrom-SecureString和互补的ConvertTo-SecureStringPowerShell API。根据Microsoft文档,ConvertFrom-SecureString如果未指定静态密钥,则cmdlet将使用DPAPI。在SYSTEM上下文中运行脚本,DPAPI将使用计算机帐户的密码对字符串进行加密。

从那时起,只需使用该manage-bde工具即可使用检索到的密码来解锁驱动器(例如manage-bde -unlock x: -password


埃文,谢谢你的帖子。您为我指明了正确的方向,但我仍然坚持确定加密密钥的存储位置或存储方式。请在上面的原始帖子中查看我的更新。
bigmac

1
@bigmac-您的编辑就是为什么我的第一段中包含“少得多的安全性”一词。此方法提供的唯一保护措施可以保护可能获得SYSTEM特权的攻击者的密钥,一旦他们拥有SYSTEM,它就会为您的密钥“大战”。至少在TPM,不能泄露其密钥。从内存中获取Bitlocker密钥肯定是可能的,这是对物理硬件的冷启动内存攻击,但这不会损害TPM的密钥。您已经实现了我期望您实现的目标-亚马逊的白皮书是安全剧院。
埃文·安德森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.