# Implementing Disk Encryption With Bitlocker

> 使用 Microsoft BitLocker 在 Windows 端点上实施全盘加密，保护静态数据免受 设备丢失或被盗时未授权访问的威胁。适用于部署加密以满足合规要求、保护移动工作站 或在企业范围内实施数据保护控制的场景。适用于涉及 BitLocker 加密、磁盘加密、 TPM 配置或静态数据保护的请求。

- Skill: `killvxk/implementing-disk-encryption-with-bitlocker` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/implementing-disk-encryption-with-bitlocker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/implementing-disk-encryption-with-bitlocker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/implementing-disk-encryption-with-bitlocker

---

# 使用 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 和系统要求

```powershell
# 检查 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

```powershell
# 使用仅 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：管理恢复密钥

```powershell
# 查看本地系统上的恢复密钥
(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：监控加密状态

```powershell
# 检查设备群中的加密状态
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，以便在操作系统部署前进行加密，避免部署后的漫长加密过程。

