| name | implementing-disk-encryption-with-bitlocker |
| description | 使用 Microsoft BitLocker 在 Windows 端点上实施全盘加密,保护静态数据免受 设备丢失或被盗时未授权访问的威胁。适用于部署加密以满足合规要求、保护移动工作站 或在企业范围内实施数据保护控制的场景。适用于涉及 BitLocker 加密、磁盘加密、 TPM 配置或静态数据保护的请求。
|
| domain | cybersecurity |
| subdomain | endpoint-security |
| tags | ["endpoint","encryption","BitLocker","TPM","data-protection","windows-security"] |
| version | 1.0.0 |
| author | mahipal |
| license | Apache-2.0 |
使用 BitLocker 实施磁盘加密
使用场景
在以下情况下使用本技能:
- 加密 Windows 端点以保护静态数据,满足合规要求(PCI DSS、HIPAA、GDPR)
- 通过 Intune、SCCM 或 GPO 在企业设备群中部署 BitLocker
- 配置基于 TPM 的加密,并使用 PIN 或 USB 启动密钥增强安全性
- 在 Active Directory 或 Azure AD 中管理 BitLocker 恢复密钥
不适用于 Linux 磁盘加密(使用 LUKS/dm-crypt)或 macOS(使用 FileVault)。
前置条件
- Windows 10/11 专业版、企业版或教育版
- TPM 2.0 芯片(推荐;支持 TPM 1.2,但有限制)
- 已启用安全启动的 UEFI 固件(推荐)
- 独立系统分区(最小 200 MB,由 Windows 安装程序自动创建)
- 用于恢复密钥托管的 Active Directory 或 Azure AD
操作流程
步骤 1:验证 TPM 和系统要求
# 检查 TPM 状态
Get-Tpm
# ManufacturerId, ManufacturerVersion, TpmPresent, TpmReady, TpmEnabled
# 检查 TPM 版本(最佳兼容性需要 2.0)
(Get-WmiObject -Namespace "root\cimv2\security\microsofttpm" -Class Win32_Tpm).SpecVersion
# 检查 UEFI/安全启动
Confirm-SecureBootUEFI
# 如果已启用安全启动则返回 True
# 检查 BitLocker 就绪状态
$vol = Get-BitLockerVolume -MountPoint "C:"
$vol.VolumeStatus # 应为 "FullyDecrypted"
$vol.ProtectionStatus # 应为 "Off"
步骤 2:配置 BitLocker GPO 设置
计算机配置 → 管理模板 → Windows 组件 → BitLocker 驱动器加密
操作系统驱动器:
- 启动时要求其他身份验证:已启用
- 无兼容 TPM 时允许 BitLocker:已禁用(强制使用 TPM)
- 配置 TPM 启动:允许 TPM
- 配置 TPM 启动 PIN:允许与 TPM 配合使用的启动 PIN
- 配置 TPM 启动密钥:允许与 TPM 配合使用的启动密钥
- 选择如何恢复受 BitLocker 保护的操作系统驱动器:已启用
- 允许数据恢复代理:True
- 配置恢复信息存储到 AD DS:已启用
- 将操作系统驱动器的恢复信息保存到 AD DS:存储恢复密码和密钥包
- 在存储恢复信息之前不启用 BitLocker:已启用
- 选择驱动器加密方法和密码强度:
- 操作系统驱动器:XTS-AES 256 位(Windows 10 1511+)
- 固定驱动器:XTS-AES 256 位
- 可移动驱动器:AES-CBC 256 位(用于跨平台兼容性)
固定数据驱动器:
- 选择如何恢复受 BitLocker 保护的固定驱动器:已启用
- 在 AD DS 中存储恢复密码:已启用
可移动数据驱动器:
- 控制在可移动驱动器上使用 BitLocker:已启用
- 配置可移动驱动器的密码使用:要求复杂性
步骤 3:通过命令行启用 BitLocker
# 使用仅 TPM 保护程序启用 BitLocker(对用户透明)
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 `
-TpmProtector -SkipHardwareTest
# 使用 TPM + PIN 启用 BitLocker(推荐用于笔记本电脑)
$pin = ConvertTo-SecureString "123456" -AsPlainText -Force
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 `
-TpmAndPinProtector -Pin $pin
# 添加恢复密码保护程序
Add-BitLockerKeyProtector -MountPoint "C:" -RecoveryPasswordProtector
# 将恢复密钥备份到 Active Directory
Backup-BitLockerKeyProtector -MountPoint "C:" `
-KeyProtectorId (Get-BitLockerVolume -MountPoint "C:").KeyProtector[1].KeyProtectorId
# 加密固定数据驱动器
Enable-BitLocker -MountPoint "D:" -EncryptionMethod XtsAes256 `
-RecoveryPasswordProtector -AutoUnlockEnabled
步骤 4:通过 Intune 部署(企业版)
Intune → 端点安全 → 磁盘加密 → 创建配置文件
平台:Windows 10 及更高版本
配置文件:BitLocker
设置:
BitLocker 基本设置:
- 操作系统驱动器加密:要求
- 固定数据驱动器加密:要求
- 可移动数据驱动器加密:要求
操作系统驱动器设置:
- 启动时的其他身份验证:要求
- TPM 启动:允许
- TPM 启动 PIN:要求(用于高安全端点)
- 加密方法:XTS-AES 256 位
- 恢复:托管到 Azure AD
固定驱动器设置:
- 加密方法:XTS-AES 256 位
- 恢复:托管到 Azure AD
分配到:所有托管 Windows 设备(或特定组)
步骤 5:管理恢复密钥
# 查看本地系统上的恢复密钥
(Get-BitLockerVolume -MountPoint "C:").KeyProtector |
Where-Object {$_.KeyProtectorType -eq "RecoveryPassword"} |
Select-Object KeyProtectorId, RecoveryPassword
# 从 Active Directory 检索恢复密钥(需要 RSAT)
Get-ADObject -Filter {objectClass -eq "msFVE-RecoveryInformation"} `
-SearchBase "CN=COMPUTER01,OU=Workstations,DC=corp,DC=example,DC=com" `
-Properties msFVE-RecoveryPassword |
Select-Object -ExpandProperty msFVE-RecoveryPassword
# 从 Azure AD 检索恢复密钥
# Azure 门户 → Azure AD → 设备 → [设备] → BitLocker 密钥
# 或通过 Microsoft Graph API:
# GET /devices/{id}/bitlockerRecoveryKeys
步骤 6:监控加密状态
# 检查设备群中的加密状态
manage-bde -status C:
# 已加密驱动器的预期输出:
# 转换状态:完全加密
# 加密百分比:100.0%
# 加密方法:XTS-AES 256
# 保护状态:保护已开启
# 密钥保护程序:TPM,数字密码
# PowerShell 合规检查
$vol = Get-BitLockerVolume -MountPoint "C:"
if ($vol.ProtectionStatus -eq "On" -and $vol.VolumeStatus -eq "FullyEncrypted") {
Write-Host "合规:BitLocker 已启用且完全加密"
} else {
Write-Host "不合规:BitLocker 状态 - 保护:$($vol.ProtectionStatus),卷:$($vol.VolumeStatus)"
}
关键概念
| 术语 | 定义 |
|---|
| TPM(可信平台模块) | 存储 BitLocker 加密密钥并提供测量启动完整性的硬件安全芯片 |
| XTS-AES 256 | BitLocker 使用的加密算法;XTS 模式为磁盘加密提供比 CBC 更好的保护 |
| 恢复密钥 | 48 位数字密码,用于在 TPM 身份验证失败时解锁受 BitLocker 加密的驱动器 |
| 密钥保护程序 | 用于解锁 BitLocker 的方法(TPM、TPM+PIN、恢复密码、启动密钥、智能卡) |
| 仅已用空间加密 | 仅加密包含数据的扇区;初始加密速度更快,但可能在可用空间中留下残余数据 |
| 全盘加密 | 加密整个卷,包括可用空间;速度较慢,但对之前包含数据的驱动器更安全 |
工具与系统
- BitLocker(内置):Windows 全盘加密功能
- manage-bde.exe:命令行 BitLocker 管理工具
- BitLocker 恢复密码查看器:用于查看 Active Directory 中恢复密钥的 RSAT 工具
- MBAM(Microsoft BitLocker 管理和监控):企业 BitLocker 管理工具(旧版,已被 Intune 取代)
- Microsoft Intune:基于云的 BitLocker 策略部署和恢复密钥管理
常见误区
- 加密前未托管恢复密钥:如果在加密前未将恢复密钥保存到 AD/Azure AD,一旦 TPM 故障,密钥可能永久丢失。
- 使用仅 TPM 模式而不带 PIN:仅 TPM 模式对用户透明,但容易受到冷启动攻击和"邪恶女佣"攻击。为离开办公室的笔记本电脑添加启动 PIN。
- 在重新用途驱动器上仅加密已用空间:如果驱动器之前包含敏感数据,"仅已用空间"加密会将已删除的数据以未加密形式留在可用空间中。对重新用途的驱动器使用全盘加密。
- 忘记可移动驱动器:USB 驱动器和外部磁盘是常见的数据泄露途径。对可移动媒体强制使用 BitLocker To Go。
- SCCM 部署未预先配置:在 OSD 任务序列期间预先配置 BitLocker,以便在操作系统部署前进行加密,避免部署后的漫长加密过程。