BitLocker

历史

BitLocker起源于微软2004年的下一代安全计算基础架构，其临时代号为“基石”（Cornerstone），功能为保护设备上的信息，尤其是在设备丢失或被盗的情况下。另一个特性为“代码完整性根检测”（Code Integrity Rooting），旨在验证Microsoft Windows引导与系统文件的完整性。
当与兼容的可信平台模块（TPM）结合使用时，BitLocker可以在解密受保护的卷之前验证引导和系统文件的完整性，如果验证失败，会禁止用户访问受保护的系统。在Windows Vista发售之前，BitLocker简称安全启动（Secure Startup）。

设备加密

Windows Mobile 6.5、Windows RT和Windows 8.1标准版包含设备加密（Device encryption）——BitLocker的功能限制版本——用于加密整个系统。使用具有管理权限的微软帐户登录将自动启动加密过程。恢复密钥存储到微软帐户或活动目录中，允许任何计算机检索。虽然Win 8.1全版本提供了设备加密功能，但与BitLocker不同，设备加密要求设备匹配InstantGo（前称Connected Standby，译为联网待机）规范，需要固态驱动器，不可拆卸RAM（防止冷启动攻击）和一个TPM 2.0芯片。

运行

BitLocker是一个逻辑卷加密系统。（一个卷的范围可以是硬盘驱动器的一部分、整个驱动器或多个驱动器。）启用后，TPM和BitLocker可以确保可信引导路径（如BIOS和引导扇区）的完整性，阻止大多数离线物理攻击和引导扇区恶意软件。
为使BitLocker加密保存操作系统卷，至少需要两个NTFS格式的卷：一个用于操作系统（通常为C盘），另一个大小至少为100 MB，用于操作系统引导。BitLocker需要后者保持未加密状态——在Windows Vista上，此卷必须分配一个驱动器号，而在Windows 7上则不需要。与以前的Windows版本不同，Vista的“diskpart”命令行工具可以缩小NTFS卷的大小，以便从已分配的空间创建此卷。微软还有一个名为BitLocker驱动器准备工具的软件，可将Windows Vista上的现有卷缩小，为新的引导卷腾出空间，并将必要的引导文件传输到卷中。
创建备用启动分区后需要初始化TPM模块（假设正在使用此功能），之后配置所需的磁盘加密密钥保护机制，如TPM、PIN或USB密钥。对卷的加密会在后台完成，这在大型磁盘上可能需要大量时间，因为每个逻辑扇区都要被读取、加密并重写回磁盘。这些密钥只有在整个卷被加密后才会被保护，这时此卷被认为是安全的。 BitLocker使用低级设备驱动程序对所有文件操作进行加密和解密，这对于在平台上与加密卷进行交互操作的应用程序是透明的。
加密文件系统（EFS）可以与BitLocker结合使用，在操作系统运行时提供保护。要控制操作系统中的进程和用户对文件的访问，用户只能使用运行于Windows层面的加密软件（如EFS）。因此，BitLocker和EFS提供了针对不同类别攻击的保护。
在活动目录环境中，BitLocker支持可选密钥托管到活动目录。如果活动目录服务托管在Windows Server 2008之前的Windows版本上，则可能需要先进行架构更新。
BitLocker和其他全磁盘加密系统可能被恶意启动管理器攻击。一旦恶意引导程序获取解密用信息，它就可以解密卷主密钥（Volume Master Key，VMK），然后解密或修改加密硬盘上的任何信息。通过配置TPM来保护受信任的启动路径，包括BIOS和引导扇区，BitLocker可以减轻此威胁。 （注意，引导路径的一些非恶意更改可能会导致平台配置寄存器检查失败，从而生成错误的警告。）

安全问题

据微软透露，BitLocker没有刻意设置后门。没有后门，执法机构就无法从安全通道获取微软提供的用户驱动器上的数据。2006年，英国内政部担心缺乏后门，试图与微软谈判，微软开发人员尼尔斯·弗格森（Niels Ferguson）和其他微软的发言人表示他们不会增加后门。微软工程师曾表示，虽然没有正式的书面请求，联邦调查局特工也在许多会议上向他们施加压力，要求增加后门。微软的工程师最终向FBI建议，特工应该寻找BitLocker程序建议其用户创建的密钥硬拷贝。虽然BitLocker使用的AES加密算法属公有领域，但它在BitLocker以及软件的其他组件中的实现都是专有的。该代码可供微软合作伙伴和企业审查，但须遵守不披露协议。
BitLocker的“透明运行模式”和“用户认证模式”使用TPM硬件检测BIOS和MBR预加载环境是否有未经授权的改变。如果检测到任何未经授权的更改，BitLocker将在USB设备上请求一个恢复密钥。该加密密钥用于解密卷主密钥，并允许继续运行引导过程。
2008年2月，一个安全研究小组发布了所谓“冷启动攻击”的详细信息，其通过将机器从可移动介质（如USB驱动器）引导到另一个操作系统，然后转储预引导内存中的内容来损害诸如BitLocker的全磁盘加密系统。攻击依赖于这样一个事实：电源关闭后，DRAM会保留长达数分钟的信息（冷却后的保留时间更长）。美国专利9,514,789号描述的Bress/ Menz设备可以完成这种攻击。单独使用TPM不会提供任何保护，因为Windows运行时密钥保存在内存中。其他供应商和操作系统（包括Linux和Mac OS X）的类似全磁盘加密机制也容易遭受同样的攻击。普林斯顿大学教授的一篇论文推荐在未获取拥有者物理控制的情况下应将计算机关闭而不是处于睡眠模式，并且把加密软件配置为需要密码才能启动机器。
一旦受BitLocker保护的机器开始运行，其密钥就会存储在内存中，可能易受能够访问物理内存的进程的攻击，例如通过1394或Thunderbolt DMA通道攻击。
自Windows 8和Windows Server 2012开始，微软从BitLocker方案中移除了大象扩散器（Elephant Diffuser），没有声明原因。软件工程师丹·罗森多夫（Dan Rosendorf）的研究表明，移除大象扩散器对于抵御有针对性攻击的BitLocker加密的安全性具有“不可否认的负面影响”。微软随后说明扩散器移除的原因是性能问题以及不遵守联邦信息处理标准（FIPS）。从Windows 10版本1511开始，微软向BitLocker添加了新的匹配FIPS标准的XTS-AES加密算法。
2015年11月10日，微软发布了一项安全更新，修补BitLocker中的安全漏洞。漏洞使攻击者可以绕过目标计算机上的Kerberos身份验证，只有在计算机已加入域，目标系统已启用BitLocker且没有PIN或USB密钥的情况下，才能利用该绕过漏洞。