在域网络中,您可以将加密驱动器的 BitLocker 恢复密钥存储在 Active Directory 域服务 (AD DS) 中。这是 BitLocker 驱动器加密技术为企业用户提供的最大功能之一。
BitLocker 恢复密钥是文件中唯一的 48 位数字密码或 256 位密钥。它们是在 BitLocker 安装期间生成的。域(安全)管理员可以手动管理 BitLocker 恢复密钥和密码。如果公司网络中的计算机数量不是很多,这很容易。但如果网络中有超过 100 个桌面,任务就会变得更加复杂。
配置 Active Directory 以存储 BitLocker 恢复密钥组策略 (GPO) 允许您在用户工作站上配置 BitLocker 代理。这允许您将 BitLocker 恢复密钥从本地计算机备份到 Active Directory 中的相关计算机对象。每个 BitLocker 恢复对象都有一个唯一的名称,并包含恢复密码的全局唯一标识符。 Active Directory 中的计算机对象可以存储多个 BitLocker 恢复密码。您可以使用“添加日期”参数找到上次保存的密码(这是密码保存到 AD 的日期)。
使用 BitLocker 的 Active Directory 要求BitLocker 恢复数据存储功能基于 Active Directory 架构的扩展。它还为您带来了额外的 Active Directory 自定义属性。您应该验证您的 AD 架构版本是否具有在 Active Directory 中存储 BitLocker 恢复密钥所需的属性,并检查是否需要更新 AD 架构。为此,请从 PowerShell Active Directory 模块运行以下 cmdlet:
Import-module ActiveDirectory Get-ADObject -SearchBase ((GET-ADRootDSE).SchemaNamingContext) -Filter {Name -like 'ms-FVE-*'}
应该有以下五个属性:
ms-FVE-KeyPackage;
ms-FVE-RecoveryGuid;
ms-FVE-恢复信息;
ms-FVE-恢复密码;
ms-FVE-VolumeGuid.
从 Windows Server 2012 上的 Active Directory 版本开始,这些属性默认可用。
在本文中,我们假设用户的工作站运行的是 Windows 10 Pro 或更高版本。
让我们看看如何配置 Active Directory 来存储 BitLocker 恢复信息。
首先,在 Windows Server 主机(或台式计算机)上安装 BitLocker 管理工具。在 Windows Server 上,您可以从服务器管理器控制台或使用 PowerShell 安装 BitLocker 驱动器加密功能:
Install-WindowsFeature BitLocker -IncludeAllSubFeature -IncludeManagementTools
在 Windows 10 和 11 上,您可以使用 PowerShell 安装 RSAT BitLocker 恢复工具包:
Add-WindowsCapability -Online -Name Rsat.BitLocker.Recovery.Tools~~~~0.0.1.0
配置 GPO 以在 Active Directory 中保存 BitLocker 恢复密钥使用组策略管理控制台 (GPMC.msc) 创建新的 GPO。将其链接到域或 OU 的根目录,该域或 OU 包含要在 Active Directory 数据库中存储其 BitLocker 恢复密码的计算机;
右键单击该 GPO,然后选择“编辑”;
展开 GPO 部分:计算机配置 > 策略 > 管理模板 > Windows 组件 > BitLocker 驱动器加密。编辑 Active Directory 域服务中存储 BitLocker 恢复信息的策略;
启用此策略并按如下方式配置:需要 BitLocker 备份到 AD DS:启用。选择要存储的 BitLocker 恢复信息:恢复密码和密钥包。您可以仅将恢复密码存储在AD中,或者将密码和恢复密钥一起存储;
根据要加密的驱动器,选择 BitLocker 驱动器加密下显示的部分之一:
– 固定数据驱动器;
– 操作系统驱动器;
– 可移动数据驱动器。
例如,您想要存储可移动驱动器的恢复密钥。转至可移动数据驱动器部分。查找策略选择如何恢复受 BitLocker 保护的可移动驱动器;
启用该策略。配置 BitLocker 恢复信息的用户存储:允许 48 位恢复密码并允许 256 位恢复密钥。检查以下选项:允许数据恢复代理、将 BitLocker 恢复信息保存到 Active Directory 域服务以及在将恢复信息存储到可移动数据驱动器的 AD DS 之前不要启用 BitLocker。最后一个选项可确保如果计算机未连接到域并且 BitLocker 恢复信息已成功备份到 AD DS,则用户无法打开 BitLocker。当用户在未连接到域网络的情况下尝试加密新的 USB 设备时,用户将收到一条错误消息;
您可以使用 GPO 选项选择驱动器加密方法和密码强度配置自定义驱动器加密算法。您可以为操作系统驱动器、固定数据设置不同的加密方法。和可移动驱动器;
使用 gpupdate 命令更新客户端上的组策略设置:
gpupdate /force
在 Windows 10/11 上启用 BitLocker在计算机的选定驱动器上打开 BitLocker。您可以使用 GUI 向导在 Windows 上手动启用 BitLocker。打开文件资源管理器 > 此电脑 > 右键单击可移动驱动器并选择打开 BitLocker)。
在自动化方案中,您可以使用 Enable-BitLocker PowerShell cmdlet 在 Windows 上启用 BitLocker 驱动器加密。
检查所选可移动驱动器是否未启用加密(VolumeStatus=FullyDecrypted,保护状态=Off):
Get-BitLockerVolume
使用 Enable-BitLocker cmdlet 时,您需要指定:
要加密的驱动器号;
密钥保护器 — 用于加密驱动器上的卷主密钥 (VMK) 的密钥保护器。您可以使用以下密钥保护器之一:仅受信任的平台模块 (TPM)、TPM + PIN、TPM + 启动密钥(USB 驱动器)、TPM + 启动密钥 + PIN、启动密钥、恢复密钥、密码、恢复密码或AD账户(可用于保护加密密钥);
加密方法 — 默认为 XTS-AES-128。如果需要,您可以将其更改为 AES-256;
仅已用空间 — 默认情况下,BitLocker 加密整个分区,包括未使用的空间。为了加快加密过程,可以使用-UsedSpaceOnly参数;
硬件加密 — 默认情况下,BitLocker 使用软件加密。如果您的驱动器支持硬件加密(适用于大多数流行的 SSD 驱动器),则可以使用 -HardwareEncryption 选项。
例如,以下命令将仅加密目标驱动器上的已用空间,跳过硬件测试,并将恢复密码保存到 Active Directory 计算机帐户:
Enable-Bitlocker -MountPoint E: -UsedSpaceOnly -SkipHardwareTest -RecoveryPasswordProtector
要使用 PIN 保护可移动存储,您需要使用以下命令进行加密:
$SecureString = ConvertTo-SecureString "1973" -AsPlainText -Force Enable-BitLocker -MountPoint E: -EncryptionMethod Aes256 -Pin $SecureString –TPMandPinProtector -UsedSpaceOnly
将 BitLocker 恢复密钥备份到 Active Directory此电脑上的 BitLocker 恢复密钥和密码会自动复制到 Active Directory
提示:如果在 AD 中启用集中式 BitLocker 组策略之前在某些计算机上配置了 BitLocker 加密,则只需为该计算机上的驱动器禁用和启用 BitLocker 即可。或者,您可以使用 Manage-bde 工具手动将 BitLocker 恢复密钥复制到 Active Directory。
获取加密卷的当前 BitLocker ID:
manage-bde -protectors -get e:
现在,您可以通过指定上一步中获取的 ID 将 BitLocker 恢复密钥发送到 AD:
manage-bde -protectors -adbackup e: -id '{DAB438E6-8B5F-4BDA-9273-C1654B49C717E}'
如果命令执行成功,您将看到一条消息:
恢复信息已成功备份到 Active Directory。
要执行此操作,您应该使用域帐户登录工作站,并具有本地管理员权限。
如果上一个命令返回错误“错误:组策略不允许将恢复信息存储到 Active Directory。未尝试该操作。”,您应该检查并启用以下 GPO 设置:
计算机配置 > 策略 > 管理模板 > 系统 > 可信平台模块服务:打开 TPM 备份到 Active Directory 域服务;
将 BitLocker 恢复信息存储在 Active Directory 域服务中(见上文);
BitLocker 驱动器加密模式(参见上文)。
您可以使用以下 PowerShell 脚本自动获取系统卷的 BitLocker 恢复密钥并将其保存到 Active Directory:
$BitVolume = Get-BitLockerVolume -MountPoint $env:SystemDrive $RecoveryKey = $BitVolume.KeyProtector | Where-Object { $_.KeyProtectorType -eq 'RecoveryPassword' } Backup-BitLockerKeyProtector -MountPoint $env:SystemDrive -KeyProtectorId $RecoveryKey.KeyProtectorID BackupToAAD-BitLockerKeyProtector -MountPoint $env:SystemDrive -KeyProtectorId $RecoveryKey.KeyProtectorID
如何远程启用 BitLocker?用户可以使用 Enable-BitLocker PowerShell cmdlet 或使用 manage-bde.exe cli 工具,从 Windows GUI 手动为选定的计算机驱动器启用 BitLocker。
Enable-BitLocker cmdlet 不允许它在远程计算机上运行。但您可以使用 PowerShell 远程处理(通过 WinRM)和 Invoke-Command cmdlet 来运行它。
以下 PowerShell 脚本提示您输入远程计算机的名称以及将用于加密系统驱动器的 BitLocker 密码:
$Password = Read-Host -Prompt "Enter BitLocker Password" -AsSecureString $rmtComputer = Read-Host -Prompt "Enter remote computer name or IP address" Invoke-Command -ComputerName $rmtComputer -ScriptBlock { Enable-Bitlocker -MountPoint $env:SystemDrive -EncryptionMehod -UsedSpaceOnly -Password $using:Password -PasswordProtector -SkipHardwareTest }
如果远程计算机上未配置 WinRM,您可以使用包含内置远程处理功能的 Manage-BDE 命令。您可以使用 -ComputerName 参数指定要执行 BitLocker 加密的远程计算机名称。
使用以下命令加密运行 Windows 10 的远程设备:
Manage-BDE -On C: -RecoveryPassword -EncryptionMethod xts_aes256 -SkipHardwareTest -ComputerName lon-wks-c211
现在您可以检查远程设备上的 BitLocker 状态:
Manage-BDE -status -computername lon-wks-c211 C:
如何在 Active Directory 中查找 BitLocker 恢复密钥?您可以在新选项卡“BitLocker Recovery”上找到每台计算机的可用恢复密钥。它位于 Active Directory 用户和计算机管理单元的计算机帐户属性中。
如果 BitLocker 恢复选项卡丢失,请使用 PowerShell 启用它:
Install-WindowsFeature RSAT-Feature-Tools-BitLocker-BdeAducExt
您可以在此选项卡上看到以下信息:
恢复密钥 — 您可以将此密钥提供给用户,以便在操作系统出现故障或用户忘记 Bitlocker 密码时解密 Bitlocker 驱动器;
Bitlocker 恢复数据添加到 AD 时的计算机名称和日期;
密码 ID — 用户必须向您提供密码 ID 的前 4 或 8 个字符。
您还可以使用特殊插件在 AD—BitLocker 恢复密码查看器中查找并显示 BitLocker 恢复密钥。它是远程服务器管理工具 (RSAT) 的一部分。
安装 BitLocker 恢复密码查看器工具后,您可以直接从 ADUC 控制台搜索恢复密钥。选择域根目录,然后单击操作 > 查找 BitLocker 恢复密码。
您可以使用 PowerShell 从 AD 检索特定计算机的 BitLocker 恢复密钥。以下 PoSh 脚本可以列出名为“lon-wks-c211”的域计算机的 BitLocker 恢复信息:
$ADComputer = 'lon-wks-c211' $DN = Get-ADComputer $ADComputer | Select-Object -ExpandProperty DistinguishedName $ADobj = get-adobject -Filter {objectclass -eq 'msFVE-RecoveryInformation'} -SearchBase $DN -Properties 'msFVE-RecoveryPassword' | Select-Object Name,msFVE-RecoveryPassword [Ordered]@{ Computer = $ADComputer RecoveryPassword = $ADobj.'msFVE-RecoveryPassword' Date = Get-Date -Date ($ADobj.Name ).Split('{')[0] BitlocerKeyID = (($ADobj.Name ).Split('{')[1]).TrimEnd('}') }
或者使用以下单行:
Get-ADComputer 'lon-wks-c211'| Get-ADObject -properties * | Select-Object distinguishedname, msFVE-REcoveryPassword, whencreated
委派在 AD 中查看 BitLocker 恢复密钥的权限您可以将查看 AD 中有关 BitLocker 恢复密钥的信息的权限委托给特定用户组。例如,安全管理员。
我们创建了一个名为 BitLocker Viewers 的 Active Directory 组。
右键单击包含具有 BitLocker 恢复密钥的计算机对象的 Active Directory OU。选择委托控制。
添加 BitLocker 查看器组。
在向导的下一步中,选择创建要委派的自定义任务。
然后选择选项“仅文件夹中的以下对象”。检查 MSFVE-RecoveryInformation 对象。
授予完全控制权限。
现在,添加到“BitLocker 查看者”组的所有用户都可以查看包含 BitLocker 恢复信息的“恢复”选项卡。