在对驱动器进行一些加密工作时,我发现 BitLocker 一直在制作这些“恢复密钥”。我使用的其他加密软件都没有这样做,所以这让我很恼火,也许让我有偏见。
在努力安全存储这些“恢复密钥”时,我突然意识到它们看起来有多小,现在我开始怀疑一个更严重的问题。
我搜索了他们的工作方式并找到了帖子Microsoft 的 BitLocker 恢复代码如何工作?. 它说它只是另一个加密密钥,就像密码一样。
现在我的密码是 128 个字符的字母数字和特殊字符,我使用带有一些随机输入的算法(例如,我的鼠标移动)生成这些特殊字符。我的估计是每个字符 7 位 = 896 位。如果其中一半是随机的,则密钥远高于 256 位,符合行业标准。
另一方面,如果我的数学正确,恢复密钥是 48 位,最多log 2 (10^49) = 163 位。163 位的密钥看起来非常小,而且肯定达不到 256 位的工业标准。
但后来又有一件事打动了我。生成密钥时,我既没有移动鼠标,也没有按下键,我的计算机也没有连接到 Internet。Windows 还能用什么来实现随机性?芯片组上的热敏电阻?太慢了,密钥在几秒钟内就打印出来了。所以它必须是一个伪随机的 163 位密钥。破解任何低于 128 个随机位的东西的时间一落千丈,因此在最坏的情况下,使用常规 GPU 可以非常快速地破解它。所以它增加了两个问题:
通过使用超级计算机猜测恢复密钥,BitLocker 锁定的驱动器能否在数小时内被暴力破解?有几个 GPU?(假设微软在那个伪随机恢复密钥上付出了尽可能多的努力,并且没有通过减少那里已经很糟糕的随机性来插入任何后门)
是否有禁用 BitLocker 恢复密钥的选项?
回答问题 2。(我希望)我找到了禁用恢复密钥的方法!
在 Windows 中,搜索运行→ gpedit.msc →计算机配置→管理模板→ Windows 组件→ BitLocker 驱动器加密→固定/可移动数据驱动器→选择如何恢复固定/可移动驱动器。重启。重新创建驱动器。
有一分钟我对我的发现感到高兴,但我意识到如果问题 1 的答案是肯定的,它可能只是在后台创建恢复密钥,但从不显示、保存或记录它。该漏洞将同样起作用。
我实际上无法完全禁用恢复密钥。BitLocker 只是失败并显示一个错误,指出没有创建恢复密钥的选项。我确实切换到了 256 位恢复密钥,某个论坛上有人说它应该符合 FIPS。它将其保存为 U 盘上的隐藏系统文件。