BitLocker 在 CBC 模式下使用 AES,TrueCrypt 和其他人在 XTS 模式下使用 AES/Twofish/Serpent/cascades(维基百科:Block cipher mode of operation)。
CBC 模式不太安全,因为它允许单个位操作。例如,具有物理访问权限的攻击者可以切换特定数据位并将其返回给您;这可以通过 Windows 注册表等打开后门漏洞。请参阅XTS 与 AES-CBC 和 ESSIV 进行基于文件的文件系统加密
通过将 Elephant Diffuser 从 Windows 7 删除到 Windows 8(包括 8.1)降低了 BitLocker 安全性。但是,Windows 10 通过允许使用 AES-XTS(尽管默认情况下未打开)来提高安全性。
我会假设 BitLocker 的基本算法是安全的,因为使用它的大公司已经根据保密协议 (NDA) 审查了它的源代码。可以假设没有重大后门,因为公司需要专业保护。再说一遍,如果你看一下 TrueCrypt,它有像密钥文件管理这样的陷阱,它很容易从你的文件中获取预先计算的 CRC32 以加快散列速度(TrueCrypt 中的密钥文件管理实现得非常糟糕)。这可能已在 VeraCrypt(TrueCrypt 的继任者)中得到改进或修复。
当攻击者可以观察数千次小文件更改时,TrueCrypt XTS 模式更糟糕。例如,使用云服务(如 Dropbox)跟踪更改历史记录。
如果配置正确, BitLocker 是安全的。这很困难,你应该:
禁用将恢复密钥上传到 Internet(例如“Microsoft Account”、Dropbox、Google Drive 等),因为它默认与 NSA 共享,NSA 可以根据谁知道有创意的国家商业安全原因访问它。一旦您上传了一次恢复密钥,它就已根据斯诺登文档存档。
禁用使用恢复 PIN,仅使用 USB 恢复密钥(因为前者仅为 128 位)。
在加密硬盘驱动器之前切换到 256 位。一旦你这样做了,BitLocker 对引导分区更安全,因为它与硬件 (TPM) 更紧密地集成在一起。
为了最大程度的安全,您最好在引导分区上使用 BitLocker,并仅在需要时才在容器上使用 TrueCrypt。将容器作为文件放置在 BitLocker 分区内。请记住,BitLocker 仅限于 AES。
关于冷启动攻击和内存剩磁,AES 可以在内存退化 40% 后重建,Serpent 密钥在 30% 后可以重建。Twofish 没有确定(声称很辛苦)。我们在这里谈论的是严重的工业间谍活动,实际上是军事级别的。
因此,最好结合两种加密模式和两种加密算法,使用来自两个来源的软件。
请注意,BitLocker 使用 SHA-512 散列,因此,为 TrueCrypt 使用不同的散列算法,这样您就安全了。
再次,来自四面八方的漏洞:
- 哈希
- 加密演算法
- 加密方式
- 用于密钥生成的随机数生成器
- 实现错误,有时是不可靠的开源(如 SSL Heartbleed、TrueCrypt 原始密钥文件处理代码)
- 对冷启动攻击相对免疫
- 政府后门
TrueCrypt 的优点是默认是比较安全的,BitLocker 只有经过仔细配置才安全。
TrueCrypt 的缺点是容易受到键盘记录器的攻击;您应该考虑将 KeePass 与 Secure Desktop 结合使用。
BitLocker 的缺点可能是美国政府绕过/后门。如果您正在管理大使馆或个人情报机构,请将自己限制在已知的源代码中。如果您足够重要,我假设已向您显示 BitLocker 代码,因此您可以决定是否在该级别信任它。