BitLocker安全机制揭秘:系统更新如何让加密数据"裸奔"

本文深入分析BitLocker全盘加密机制在Windows系统更新期间的运作原理,揭示微软设计决策中存在的安全隐患。通过实际演示展示系统更新时BitLocker如何自动进入挂起模式,导致加密密钥以明文形式暴露,使受保护数据面临未授权访问风险。

如何访问受BitLocker保护的数据?只需进行系统更新

您是否饱受系统更新耗时之苦?终于找到时间安装更新,却因紧急离开办公室而中断整个过程?您的数据还安全吗?阅读本文一探究竟。

在IT领域,很难找到完美无缺的标准方案。Linux有LUKS,苹果使用FileVault,而Windows则配备BitLocker。这些解决方案实质上都提供全盘加密功能,确保设备或磁盘即使被非授权人员物理获取,存储数据仍能保持机密性——前提是使用了足够强度的密码。

值得信赖的加密方案?

BitLocker伴随我们已久,甚至可以追溯到Windows Vista时代。一些对Windows设备磁盘加密有刚需的个人和组织曾抵制使用微软的解决方案。

BitLocker是闭源方案。虽然其使用的AES算法及CBC、XTS等加密模式属于公开领域并经过多次评估,但具体实现代码仍是专有的。在密码学领域,这足以引起警惕——即使数学证明完美的算法,错误实现也可能导致漏洞,侧信道攻击就是典型例证。

许多用户曾转向TrueCrypt等开源方案,但好景不长。Windows大型功能更新与第三方磁盘加密方案不兼容的问题很快暴露,网络上充斥着用户设备在更新后变"砖"的抱怨。原因在于部分Windows更新需要使用Windows预安装环境,这个独立操作系统需要专用驱动程序才能识别全盘加密方案。

尽管存在兼容性问题,仍有用户坚持使用开源方案,在更新前解密整个磁盘,完成后重新加密。在企业环境中,这一过程极其繁琐——2.5英寸机械硬盘通常需要24小时以上完成该过程,而企业往往拥有数十上百台设备。最终,即使最执着的用户也不得不向BitLocker妥协。

如今WinPE与第三方加密方案的冲突已有所缓解,但大型Windows环境中几乎都统一使用BitLocker。

BitLocker工作原理

启动现代PC并确保组件未被篡改是极其复杂的过程。BitLocker本身具有高度灵活性,支持TPM模块、PIN码、文本密码甚至USB密钥等多种认证方式。

BitLocker本质上是底层驱动程序,只要通过Windows功能访问磁盘,其工作对用户是透明的。微软采用多层密钥体系:FVEK负责数据加密安全,而VMK则用于加密FVEK。每个VMK可用不同访问方式解密,实现文本密码和恢复密钥并存。

所有数据存储在受保护卷的-FVE-FS-元数据中(部分信息也存储在TPM内)。BitLocker工作流程如下:

  • 用户提供解密VMK或TPM密钥所需凭证,系统验证完整性后释放VMK
  • 使用VMK解密FVEK
  • FVEK执行磁盘数据加解密

每个VMK访问方式称为KP,每个VMK(TPM除外)都通过KP加密。系统更新期间,多个环节可能导致磁盘内容无法解密:BIOS更新后TPM判定系统被篡改拒绝释放VMK;WinPE可能无法与TPM通信导致获取VMK失败。

残酷的现实

跟踪Windows 10功能更新安装过程,可以观察到以下状态:

  • 设备磁盘已通过BitLocker完全加密,使用XTS-AES-128算法
  • 当前系统为Windows 10专业版1903构建18362.449
  • 系统已完成20H2更新下载,提示重启完成安装
  • C盘根目录存在仅BitLocker密码可访问的secret.txt文件

此时bdeinfo工具显示存在两个KP:密码和恢复密码,并明确提示无法解锁卷,数据处于安全状态。

按照系统提示重启计算机(仅完成关机阶段),元数据检查发现新增了类型为Clear Key的KP#2!这个新KP是以明文形式存储的VMK加密字符串。关机过程中Windows将BitLocker置于"挂起"模式。

由于可以访问VMK加密字符串,意味着我们能够访问磁盘所有数据。尝试挂载卷成功,包括之前提到的secret.txt文件。使用dislocker工具甚至能获取FVEK密钥。

值得注意的是,系统完全不会告知用户更新期间数据将失去保护。

更新安装完成后,KP#2会从元数据中移除。但若攻击者在更新期间获取FVEK密钥,仍可在无需密码的情况下解密整个磁盘。

需要明确的是,此机制并非漏洞而是微软的设计决策,是BitLocker的正常工作方式。

讽刺的真相

加密挂起机制并非专为系统更新设计,而是BitLocker的操作模式之一。微软官网详细说明了如何手动操作该模式,可以设置特定重启次数或无限期挂起加密。

该机制的主要风险在于无法保证挂起后Clear Key类型的KP会被及时删除。因此需要定期检查BitLocker配置状态,特别是在拥有数百台设备的Active Directory环境中,问题发生概率更高。

如上图所示,加密被挂起的卷会显示感叹号图标,manage-bde工具也会提供相关信息。

总结

本文揭示了BitLocker全盘加密设备的潜在攻击角度。需要说明的是,这并非对BitLocker的负面评价——该工具运行高效且采用合理算法。但微软的部分设计决策确实值得商榷。您对挂起模式有何看法?欢迎在评论区分享观点。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计