Win32_EncryptableVolume 类的 ProtectKeyWithTPMAndStartupKey 方法

Win32_EncryptableVolume 类的 ProtectKeyWithTPMAndStartupKey 方法通过使用计算机上的受信任的平台模块 (TPM) 安全硬件(如果可用)保护卷的加密密钥,并在启动时必须提供给计算机的外部密钥进行增强。

通过 TPM 进行验证和包含外部密钥的 USB 内存设备的输入都需要访问卷的加密密钥并解锁卷内容。 使用 SaveExternalKeyToFile 方法将此外部密钥保存到 USB 内存设备上的文件,以用作启动密钥。

此方法仅适用于包含当前正在运行的操作系统的卷。

为卷创建类型为“TPM 和启动密钥”的密钥保护程序(如果尚不存在)。

语法

uint32 ProtectKeyWithTPMAndStartupKey(
  [in, optional] string FriendlyName,
  [in, optional] uint8  PlatformValidationProfile[],
  [in, optional] uint8  ExternalKey[],
  [out]          string VolumeKeyProtectorID
);

参数

FriendlyName [in, optional]

类型: 字符串

此密钥保护程序的用户分配的字符串标识符。 如果未指定此参数,则使用空白值。

PlatformValidationProfile [in, optional]

类型: uint8[]

一个整数数组,指定计算机的受信任平台模块 (TPM) 安全硬件如何保护磁盘卷的加密密钥。

平台验证配置文件由一组平台配置寄存器 (PCR) 索引(包括 0 到 23)组成。 参数中的重复值将被忽略。 每个 PCR 索引都与操作系统启动时运行的服务相关联。 每次计算机启动时,TPM 都会检查平台验证配置文件中指定的服务未更改。 如果在 BitLocker 驱动器加密 (BDE) 保护保持打开状态时,这些服务中的任何一项发生更改,TPM 将不会释放加密密钥来解锁磁盘卷,并且计算机将进入恢复模式。

如果在启用相应的组策略设置时指定此参数,则它必须与组策略设置匹配。

如果未指定此参数,则使用默认值 0、2、4、5、8、9、10 和 11。 默认平台验证配置文件保护加密密钥,防止对以下元素进行更改:

  • 核心度量信任根 (CRTM)
  • BIOS
  • 平台扩展 (PCR 0)
  • 选项 ROM Code (PCR 2)
  • 主启动记录 (MBR) Code (PCR 4)
  • 主启动记录 (MBR) 分区表 (PCR 5)
  • NTFS 启动扇区 (PCR 8)
  • NTFS 启动块 (PCR 9)
  • 启动管理器 (PCR 10)
  • BitLocker 访问控制 (PCR 11)

为了保护计算机的安全性,建议使用默认配置文件。 若要防止早期启动配置更改,请使用 PCR 0、1、2、3、4、5、8、9、10、11 的配置文件。 统一可扩展固件接口 (基于 UEFI) 的计算机默认不使用 PCR 5。

从默认配置文件更改会影响计算机的安全性和可管理性。 BitLocker 对平台修改 (恶意或授权) 的敏感度会分别根据 PCR 的包含或排除而增加或减少。 若要启用 BitLocker 保护,平台验证配置文件必须包含 PCR 11。

含义
0
度量的核心信任根 (CRTM) 、BIOS 和平台扩展
1
平台和主板配置和数据
2
选项 ROM 代码
3
选项 ROM 配置和数据
4
主启动记录 (MBR) 代码
5
主启动记录 (MBR) 分区表
6
状态转换和唤醒事件
7
计算机Manufacturer-Specific
8
NTFS 启动扇区
9
NTFS 启动块
10
启动管理器
11
BitLocker 访问控制
12
定义供静态操作系统使用
13
定义供静态操作系统使用
14
定义供静态操作系统使用
15
定义供静态操作系统使用
16
用于调试
17
动态 CRTM
18
平台定义
19
由受信任的操作系统使用
20
由受信任的操作系统使用
21
由受信任的操作系统使用
22
由受信任的操作系统使用
23
应用程序支持

 

ExternalKey [in, optional]

类型: uint8[]

字节数组,指定计算机启动时用于解锁卷的 256 位外部密钥。

如果未指定外部键,则随机生成一个。 使用 GetKeyProtectorExternalKey 方法获取随机生成的密钥。

VolumeKeyProtectorID [out]

类型: 字符串

一个字符串,它是与创建的密钥保护程序关联的唯一标识符,可用于管理密钥保护程序。

如果驱动器支持硬件加密,并且 BitLocker 尚未获取带所有权,则 ID 字符串设置为“BitLocker”,并将密钥保护程序写入每个带元数据。

返回值

类型: uint32

此方法返回以下代码之一,如果失败,则返回另一个错误代码。

返回代码/值 说明
S_OK
0 (0x0)
方法成功。
FVE_E_LOCKED_VOLUME
2150694912 (0x80310000)
卷已锁定。
TBS_E_SERVICE_NOT_RUNNING
2150121480 (0x80284008)
在此计算机上找不到兼容的 TPM。
FVE_E_FOREIGN_VOLUME
2150694947 (0x80310023)
TPM 无法保护卷的加密密钥,因为卷不包含当前运行的操作系统。
E_INVALIDARG
2147942487 (0x80070057)
提供了 PlatformValidationProfile 参数,但其值不在已知范围内,或者与当前生效的 组策略 设置不匹配。
提供了 ExternalKey 参数,但不是大小为 32 的数组。
FVE_E_BOOTABLE_CDDVD
2150694960 (0x80310030)
在此计算机中找到可启动 CD/DVD。 删除 CD/DVD 并重新启动计算机。
FVE_E_PROTECTOR_EXISTS
2150694961 (0x80310031)
此类型的密钥保护程序已存在。

 

安全注意事项

为了保护计算机的安全性,建议使用默认配置文件。 为了防止早期启动代码更改,请使用 PCR 0、2、4、5、8、9、10 和 11 的配置文件。 若要防止早期启动配置更改,请使用 PCR 0、1、2、3、4、5、8、9、10、11 的配置文件。

从默认配置文件更改会影响计算机的安全性或可用性。

备注

对于一个卷,最多可以存在一个类型为“TPM 和启动密钥”的密钥保护程序。 如果要更改现有“TPM 加启动密钥”密钥保护程序使用的显示名称或平台验证配置文件,必须先删除现有的密钥保护程序,然后调用 ProtectKeyWithTPMAndStartupKey 以创建新的密钥保护程序。 在无法获取卷加密密钥访问权限的恢复方案中,应指定其他密钥保护程序来解锁卷;例如,当 TPM 无法成功验证平台验证配置文件或包含外部密钥的 USB 内存丢失时。

使用 ProtectKeyWithExternalKeyProtectKeyWithNumericalPassword 创建一个或多个密钥保护程序,用于恢复本来锁定的卷。

虽然可以同时具有类型为“TPM”的密钥保护器和另一种类型为“TPM 和启动密钥”的密钥保护程序,但“TPM”密钥保护程序类型的存在会抵消其他基于 TPM 的密钥保护程序的影响。

托管对象格式 (MOF) 文件包含 Windows Management Instrumentation (WMI) 类的定义。 MOF 文件未作为 Windows SDK 的一部分安装。 使用 服务器管理器添加关联角色时,它们安装在服务器上。 有关 MOF 文件的详细信息,请参阅 托管对象格式 (MOF)

要求

要求
最低受支持的客户端
Windows Vista 企业版,Windows Vista 旗舰版 [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]
命名空间
Root\CIMV2\Security\MicrosoftVolumeEncryption
MOF
Win32_encryptablevolume.mof

另请参阅

Win32_EncryptableVolume

Win32_Tpm