简短说明
这是一台戴尔 Inspiration 15 7000,运行戴尔随笔记本安装的原厂 Windows 10。临时移除驱动器后,它无法再从其内部 SSD 启动。通过命令行工具检查驱动器显示驱动器已加密。
以下是完整解释:
抱歉写了这么长,我尝试将其结构写得尽可能好...
发生了什么:
驱动器被移除(用于创建克隆,但由于目标驱动器空间不足而失败)并重新插入,其他一切都没有改变。尝试重新打开笔记本电脑,但启动失败。
初步检查:
检查 BIOS(名为“Bootsequenz”的屏幕)显示 SSD 的分区 1 为 UEFI 条目,但缺少“Windows 启动管理器”条目。我认为它以前看起来与此类似,或者只是有 Windows 启动管理器条目(图片来自互联网):
通过 USB 使用 Windows 10 安装映像的命令行工具进行检查,我得到以下条目:
C:\>manage-bde -status G:
BitLocker Drive Encryption: Configuration Tool version 10.0.22000
Copyright (C) 2013 Microsoft Corporation. All rights reserved.
Volume G: []
[Data Volume]
Size: Unknown GB
BitLocker Version: 2.0
Conversion Status: Used Space Only Encrypted
Percentage Encrypted: 100,0%
Encryption Method: XTS-AES 128
Protection Status: Protection Off
Lock Status: Unlocked
Identification Field: Unknown
Automatic Unlock: Disabled
Key Protectors: None Found
更深入的分析:
用户未通过 Windows/Bitlocker 启用 Bitlocker,因此未保存恢复密钥。所以我想知道这里发生了什么。我试过,manage-bde -protectors -get c:
应该能给我恢复密钥的标识,但它说找不到任何安全措施。manage-bde -off C:
也不可能。我还读到它不一定是 Bitlocker 本身,而是基于 Bitlocker 的实现。
其他背景信息:
设备/笔记本电脑已实现 PPT,而非 TPM(BIOS 中没有 TPM 选项).PPT在BIOS中被激活。
在 BIOS 中,安全启动选项已启用,安全启动模式为“部署模式”。在专家密钥管理中,“自定义模式”未启用,但“PK”选项下似乎存储了一些密钥。
加密分区是 Windows 系统分区(460 GB),磁盘布局或多或少具有标准的 Windows 分区,与手动安装 Windows 相同。开头是 EFI 系统分区,后面是系统分区。虽然有两个额外的恢复分区,可能用于戴尔恢复选项,但 EFI 分区没有常规的 100MB,而是 650MB。以下是屏幕截图
diskmgmt.msc
(插入外部 USB 驱动器):尝试使用 Clonezilla 和 Acronis 进行克隆
另外一件奇怪的事情:我很确定,因为我截取了一张截图,但请谨慎对待(以防我混淆了什么):移除 SSD 后,在另一个 Win 11 系统中将其作为外部 USB 驱动器进行测试,文件可以访问(但驱动器图标上显示了 Bitlocker 符号)。如果这是真的,那么分区一定是未加密的,或者虽然已加密,但数据仍然可以访问!这听起来有点奇怪。特别是当我将 SSD 插入同一个 Win 11 系统时,磁盘管理器中只会显示一个 Bitlocker 加密分区(见上面的截图)。这是我通过 Win 11 访问根目录时的截图:
我不记得 C 盘在启动时在资源管理器中附加了某种“锁定”符号。加密/解密是否可能不是在 Windows 中完成的,而是通过某些 BIOS 功能(基于 Bitlockertech)完成的,因此对 Windows 本身不可见?我找到了一个旧的屏幕截图,这个分区上没有锁定符号,只有常规分区磁盘符号和共享符号:
我对这个问题的看法:
我不太熟悉安全措施,所以我读了一点资料(例如这里),据我所知,在我的情况下,BIOS 可以通过 TPM 或 PPT 处理加密(无需 PIN 即可激活 BitLocker:仅限 TPM)。所以据我所知,SSD 从一开始就是加密的,这是正确的吗?如果是这样,是什么处理解密的?由于 TPM 未在 BIOS 中激活,所以是 PPT?为什么它不再处理它了?就系统而言,在我将 SSD 重新插入原始笔记本电脑后,没有任何变化。
不过,我可以在其他系统中访问该驱动器,这似乎很奇怪。这让我相信某种安全措施触发了加密的启用。当驱动器作为外部 USB 驱动器安装时,数据是否可以以某种方式加密并且仍然可以读取?
可能的解决方案:
我在网上发现了导致此类问题的各种原因和解决方案(例如,在 BIOS 中的专家密钥管理中恢复出厂设置或通过 添加保护器manage-bde -protectors -add c: -tpm
),但我不想在彻底了解会发生什么之前尝试任何事情,这样就不会让事情变得更糟。
我最好的猜测是manage-bde -protectors -add c: -tpm
可以解决问题,基本上再次将 tpm 添加为有效的密钥保护器(因为目前它显示Key Protectors: None Found
)。但同样,我不想只是尝试一下,因为我目前的理解有些有限。
但似乎有几个人成功恢复了数据。所以我希望得到一些有用的见解。
答案1
设备/笔记本电脑已实现 PPT,但未实现 TPM(BIOS 中没有 TPM 选项)。BIOS 中已激活 PPT。
英特尔PTT是TPM 2.0 的实现,对于操作系统来说,它与独立的 TPM 设备相同。
所以据我了解,SSD 从一开始就是加密的,对吗?
很有可能,是的,我怀疑它是加密的,但处于“开放”或“暂停”模式 - 也就是说,存储了音量密钥清楚在磁盘本身上,等待你稍后完全激活它(让你有机会存储恢复密钥,或者等待 MS 帐户被附加,等等)。TPM 不参与然而。
我见过 Windows 对其“设备加密”功能这样做,因为从用户的角度来看,它允许立即对磁盘进行“加密”(无需等待几个小时直到加密过程发生) - 系统只是用实际的保护器替换了明文密钥。
请注意它是怎样说的:
Protection Status: Protection Off
Lock Status: Unlocked
表示数据已经可以访问。
(加密现有磁盘还会引发一个问题,即加密过程中以前未加密的数据是否会被安全地覆盖;如果首先没有未加密的数据,这不再是问题。)
如果 BitLocker 的密钥存储在 TPM 中,则克隆启用了 BitLocker 保护的驱动器将永远无法起作用。
对于大多数使用基于 CPU 的加密(而非 OPAL)的系统来说,这完全是胡说八道。加密数据仍然只是数据:它不会变得不可复制。这无所谓如何它已被加密,但密钥在哪里也不知道——相同的字节解密后会得到相同的东西。
我最好的猜测是 manage-bde -protectors -add c: -tpm 可以解决问题,基本上将 tpm 再次添加为有效的密钥保护器
不,它并不是这样运作的。保护器不仅仅是配置条目,它们还保存实际主加密密钥的副本——如果磁盘被锁定且密钥未知,您就无法凭空生成一个有效的保护器。
TPM 没有店铺直接访问单个 BitLocker 密钥;而 Windows 则要求它加密使用 TPM 的内部密钥解密磁盘密钥,并将密封版本返回操作系统进行存储,在本例中即为 BitLocker 标头。换句话说,BitLocker 保护器仅仅引用 TPM 是不够的,除非它拥有原始密封数据,否则它什么也做不了。
另一方面,如果磁盘是解锁(表示主密钥目前已知),你当然可以添加一个新的TPM 保护器,但它似乎在您的环境中实际上没有用。
答案2
在网上连续阅读了几个小时有关 BitLocker 的信息后,我设法找回了“恢复密钥”。实际上,使用 PS 非常“简单” manage-bde -on g: -recoverypassword
。这会触发输入(新)密码的选项,并让我有机会保存恢复密钥。
我想这应该可以通过 GUI 来实现,也可以通过密码选项来选择激活 Bitlocker 的选项,因为没有设置密码,我怀疑它会接受一个新密码。
这是之后驱动器的状态manage-bde -status g:
:
Volume G: []
[Data Volume]
Size: Unknown GB
BitLocker Version: 2.0
Conversion Status: Used Space Only Encrypted
Percentage Encrypted: 100,0%
Encryption Method: XTS-AES 128
Protection Status: Protection On
Lock Status: Unlocked
Identification Field: Unknown
Automatic Unlock: Disabled
Key Protectors:
Password
Numerical Password
External Key
我可以在 Windows 下安装该分区(我收到一条错误消息,提示它无法读取或已损坏)但通过 Linux 安装它dislocker
可以正常工作。
更新:
我设法通过从加密分区恢复,在 Windows 中检索数据:repair-bde g: h: -force -rp 111111-222222-333333-444444-555555-666666-777777-888888
。不确定为什么 Linux 能够挂载该分区,而 Windows 却不能。