BitLocker 配置:已知问题
本文介绍影响 BitLocker 配置和常规功能的常见问题。 本文还提供了解决这些问题的指导。
Windows 10 和 Windows 11 中的 BitLocker 加密速度较慢
BitLocker 在后台运行以加密驱动器。 但是,在 Windows 11 和 Windows 10 中,BitLocker 与以前版本的 Windows 相比,请求资源不太积极。 此行为可降低 BitLocker 会影响计算机性能的可能性。
为了补偿这些更改,BitLocker 使用名为 Encrypt-On-Write 的转换模型。 此模型确保在启用 BitLocker 后立即加密任何新的磁盘写入。 此行为发生在所有客户端版本以及任何内部驱动器上。
重要
为了保持向后兼容性,BitLocker 使用以前的转换模型来加密可移动驱动器。
使用新转换模型的好处
通过使用以前的转换模型,在 BitLocker 转换完成 100% 之前,不能将内部驱动器视为受保护且符合数据保护标准。 在该过程完成之前,加密开始之前驱动器上存在的数据(即潜在的泄露数据)仍可以读取和写入,而无需加密。 因此,要使数据被视为受保护且符合数据保护标准,加密过程必须在敏感数据存储在驱动器上之前完成。 根据驱动器的大小,此延迟可能很大。
通过使用新的转换模型,在启用 BitLocker 后,敏感数据就可以存储在驱动器上。 加密过程不需要先完成,加密不会对性能产生负面影响。 权衡的是,预先存在的数据的加密过程需要更多时间。
其他 BitLocker 增强功能
在 Windows 7 之后发布的 Windows 版本中,BitLocker 的其他几个方面进行了改进:
新的加密算法 XTS-AES - 在 Windows 10 版本 1511 中添加,此算法提供对加密数据的一类攻击的额外保护,这些攻击依赖于操作密码文本来导致纯文本的可预测更改。
默认情况下,此算法符合联邦信息处理标准(FIPS)。 FIPS 是一种美国政府标准,提供用于实现加密软件的基准。
改进了管理功能。 可以使用以下接口在电脑或其他设备上管理 BitLocker:
- BitLocker 向导
- manage-bde.exe
- 组策略对象(GPO)
- 移动设备管理 (MDM) 策略
- Windows PowerShell
- Windows 管理接口 (WMI)
与 Microsoft Entra ID (Microsoft Entra ID)集成 - BitLocker 可以将恢复信息存储在 Microsoft Entra ID 中,以便更轻松地恢复。
直接内存访问 (DMA) 端口保护 - 通过使用 MDM 策略来管理 BitLocker,可以阻止设备的 DMA 端口,从而在设备启动时保护设备。
BitLocker 网络解锁 - 如果启用了 BitLocker 的台式机或服务器计算机连接到域环境中的有线公司网络,则其操作系统卷可以在系统重启期间自动解锁。
对 加密硬盘驱动器 的支持 - 加密的硬盘驱动器是一类新的硬盘驱动器,这些硬盘驱动器在硬件级别进行自加密,并允许进行完整磁盘硬件加密。 通过承担该工作负荷,加密硬盘可以提高 BitLocker 性能,并减少 CPU 使用率和能耗。
支持 HDD/SSD 混合磁盘 类 - BitLocker 可以对使用小型 SSD 作为 HDD 前的非易失性缓存(如 Intel 快速存储技术)的磁盘进行加密。
Hyper-V 第 2 代 VM:在 BitLocker 加密后无法访问卷
假设出现了下面这种情景:
BitLocker 打开在 Hyper-V 上运行的第 2 代虚拟机(VM)。
数据在加密时添加到数据磁盘。
VM 重启并观察到以下行为:
系统卷未加密。
无法访问加密卷,计算机将卷的文件系统 列为未知。
将显示类似于以下消息的消息:
你需要在 drive_letter:> 驱动器中<格式化磁盘,然后才能使用它
在 Hyper-V 第 2 代 VM 上的 BitLocker 加密后无法访问卷的原因
出现此问题的原因是 VM 上安装第三方筛选器驱动程序 Stcvsm.sys (从 StorageCraft)。
在 Hyper-V 第 2 代 VM 上的 BitLocker 加密之后无法访问卷的解决方法
若要解决此问题,请删除第三方软件。
使用 BitLocker 加密磁盘的虚拟化域控制器的生产快照失败
假设出现了下面这种情景:
Windows Server 2019 或 2016 Hyper-V 服务器托管配置为 Windows 域控制器的 VM(来宾)。 在域控制器来宾 VM 上,BitLocker 已加密存储 Active Directory 数据库和日志文件的磁盘。 尝试域控制器来宾 VM 的“生产快照”时,卷快照(VSS)服务无法正确处理备份。
无论环境中存在以下任何变化,都会发生此问题:
- 如何解锁域控制器卷。
- VM 是第 1 代还是第 2 代。
- 来宾操作系统是 Windows Server 2019、2016 还是 2012 R2。
在来宾 VM 域控制器 Windows 日志>应用程序事件查看器日志中,VSS 事件源记录事件 ID 8229:
ID:8229
级别: 警告
来源:VSS
消息:VSS 编写器拒绝了错误0x800423f4的事件。 编写器遇到了非暂时性错误。 如果重试备份过程,则错误可能会再次发生。处理事件时编写器组件对编写器组件所做的更改将不适用于请求者。
检查事件日志中托管 VSS 编写器的应用程序的相关事件。
运行:
PostSnapshot 事件上下文:
执行上下文:编写器
编写器类 ID: {b2014c9e-8711-4c5c-a5a9-3cf38448484757}
编写器名称:NTDS
编写器实例 ID: {d170b355-a523-47ba-a5c8-732244f70e75}
命令行:C:\Windows\system32\lsass.exe进程 ID:680
在来宾 VM 域控制器应用程序和服务日志>目录服务事件查看器日志中,记录的事件类似于以下事件:
错误 Microsoft-Windows-ActiveDirectory_DomainService 1168
内部处理内部错误:发生了Active Directory 域服务错误。其他数据
错误值(小数): -1022错误值(十六进制):fffffc02
内部 ID:160207d9
注意
此事件的内部 ID 可能因操作系统版本和修补程序级别而异。
出现此问题时,运行命令时vssadmin.exe list writers
,Active Directory 域服务 (NTDS) VSS 编写器将显示以下错误:
Writer name: 'NTDS'
Writer Id: {b2014c9e-8711-4c5c-a5a9-3cf384484757}
Writer Instance Id: {08321e53-4032-44dc-9b03-7a1a15ad3eb8}
State: [11] Failed
Last error: Non-retryable error
此外,在重启 VM 之前,无法备份这些 VM。
使用 BitLocker 加密磁盘的虚拟化域控制器因生产快照失败
VSS 创建卷的快照后,VSS 编写器将执行“快照后”操作。 从主机服务器启动“生产快照”时,Hyper-V 会尝试装载快照卷。 但是,它无法解锁卷以用于未加密的访问。 Hyper-V 服务器上的 BitLocker 无法识别卷。 因此,访问尝试失败,然后快照操作失败。
此行为是特意这样设计的。
使用 BitLocker 加密磁盘的虚拟化域控制器的生产快照的解决方法失败
执行虚拟化域控制器的备份和还原支持的方法是在来宾操作系统中运行 Windows Server 备份 。
如果需要创建虚拟化域控制器的生产快照,可以在启动生产快照之前在来宾操作系统中挂起 BitLocker。 但是,不建议使用此方法。
有关备份虚拟化域控制器的详细信息和建议,请参阅 使用 Hyper-V 虚拟化域控制器:虚拟化域控制器的备份和还原注意事项
详细信息
当 VSS NTDS 编写器请求访问加密驱动器时,本地安全机构子系统服务(LSASS)将生成类似于以下错误的错误条目:
\# for hex 0xc0210000 / decimal -1071579136
STATUS\_FVE\_LOCKED\_VOLUME ntstatus.h
\# This volume is locked by BitLocker Drive Encryption.
该操作生成以下调用堆栈:
\# Child-SP RetAddr Call Site
00 00000086\`b357a800 00007ffc\`ea6e7a4c KERNELBASE\!FindFirstFileExW+0x1ba \[d:\\rs1\\minkernel\\kernelbase\\filefind.c @ 872\]
01 00000086\`b357abd0 00007ffc\`e824accb KERNELBASE\!FindFirstFileW+0x1c \[d:\\rs1\\minkernel\\kernelbase\\filefind.c @ 208\]
02 00000086\`b357ac10 00007ffc\`e824afa1 ESENT\!COSFileFind::ErrInit+0x10b \[d:\\rs1\\onecore\\ds\\esent\\src\\os\\osfs.cxx @ 2476\]
03 00000086\`b357b700 00007ffc\`e827bf02 ESENT\!COSFileSystem::ErrFileFind+0xa1 \[d:\\rs1\\onecore\\ds\\esent\\src\\os\\osfs.cxx @ 1443\]
04 00000086\`b357b960 00007ffc\`e82882a9 ESENT\!JetGetDatabaseFileInfoEx+0xa2 \[d:\\rs1\\onecore\\ds\\esent\\src\\ese\\jetapi.cxx @ 11503\]
05 00000086\`b357c260 00007ffc\`e8288166 ESENT\!JetGetDatabaseFileInfoExA+0x59 \[d:\\rs1\\onecore\\ds\\esent\\src\\ese\\jetapi.cxx @ 11759\]
06 00000086\`b357c390 00007ffc\`e84c64fb ESENT\!JetGetDatabaseFileInfoA+0x46 \[d:\\rs1\\onecore\\ds\\esent\\src\\ese\\jetapi.cxx @ 12076\]
07 00000086\`b357c3f0 00007ffc\`e84c5f23 ntdsbsrv\!CVssJetWriterLocal::RecoverJetDB+0x12f \[d:\\rs1\\ds\\ds\\src\\jetback\\snapshot.cxx @ 2009\]
08 00000086\`b357c710 00007ffc\`e80339e0 ntdsbsrv\!CVssJetWriterLocal::OnPostSnapshot+0x293 \[d:\\rs1\\ds\\ds\\src\\jetback\\snapshot.cxx @ 2190\]
09 00000086\`b357cad0 00007ffc\`e801fe6d VSSAPI\!CVssIJetWriter::OnPostSnapshot+0x300 \[d:\\rs1\\base\\stor\\vss\\modules\\jetwriter\\ijetwriter.cpp @ 1704\]
0a 00000086\`b357ccc0 00007ffc\`e8022193 VSSAPI\!CVssWriterImpl::OnPostSnapshotGuard+0x1d \[d:\\rs1\\base\\stor\\vss\\modules\\vswriter\\vswrtimp.cpp @ 5228\]
0b 00000086\`b357ccf0 00007ffc\`e80214f0 VSSAPI\!CVssWriterImpl::PostSnapshotInternal+0xc3b \[d:\\rs1\\base\\stor\\vss\\modules\\vswriter\\vswrtimp.cpp @ 3552\]