前言:從新聞事件談起

2025 年台北捷運發生重大事件,媒體曾報導 ASUS 協助檢警「破解」嫌犯筆電。這則新聞讓許多人誤以為廠商擁有「萬用後門」或神秘的破解技術。
真相是:該筆電並未真正啟用 BitLocker 保護,而是處於「Protection Off」狀態,也就是 Clear Key 模式。
ASUS 只是提供同型號電腦,讓系統能夠讀取硬碟上已明文存放的金鑰並正常開機。這並非破解,而是 BitLocker 本身的設計機制。
本文將從技術規格角度,完整解析這個常被誤解的「Clear Key」機制。

Clear Key 機制深度解析

本節將從數位鑑識資料救援的實務角度,深入分析 BitLocker 的 Clear Key 機制。這是理解「為何某些 BitLocker 加密硬碟不需密碼就能讀取」的關鍵。

現象:為何 UFS Explorer 能直接讀取?

在資料救援實務中,經常遇到以下情況:

  • 客戶送來的 BitLocker 加密硬碟,在 PC-3000 等工具中可以直接展開資料,完全不需要輸入密碼或恢復金鑰
  • Windows 系統顯示磁碟為「BitLocker 已啟用」,但狀態為 “Waiting for Activation”“Protection Off”

這並非軟硬體「破解」了 AES-256 加密!

實際原因是:硬碟處於以下兩種狀態之一:

  1. 預先配置(Pre-provisioned):Windows 安裝時已啟用 BitLocker,但尚未設定保護機制(如 TPM 或密碼)
  2. 保護暫停(Suspended):用戶執行過 manage-bde -protectors -disable C: 命令

在這兩種狀態下,磁碟上的資料確實已經被 AES 加密,但解密所需的金鑰是以明文形式存放在 FVE Metadata 中。這就是所謂的 Clear Key 模式。

原理:BitLocker 金鑰層級架構

要理解 Clear Key,必須先掌握 BitLocker 的三層金鑰架構:

關鍵理解: Clear Key 本身就是一把 KEK(Key Encryption Key)。它不是直接解密資料的 FVEK,而是用來解開 VMK 的鑰匙。

規格驗證:libbde 文件 Section 5.9 解讀

根據 libbde BitLocker規格文件 Section 5.9(FVE Volume Master Key 結構),以下是 VMK 的完整資料結構:

FVE Volume Master Key (VMK) 結構表

Offset 大小 欄位名稱 說明
0 16 bytes Key Identifier 金鑰識別碼(GUID)
16 8 bytes Last Modification Time 最後修改時間(FILETIME)
24 2 bytes Unknown 未知欄位
26 2 bytes Protection Type 保護類型(關鍵欄位!)
28 變動 Properties 巢狀結構,包含解鎖 VMK 所需的材料

Key Protection Types(Section 5.9.1)- 最關鍵的表格

Offset 26 的 Protection Type 欄位決定了 VMK 的保護方式:

保護類型 說明
0x0000 Clear Key VMK 以明文金鑰保護(等同未保護)
0x0100 TPM VMK 由 TPM 晶片保護
0x0200 Startup Key VMK 由啟動金鑰(USB)保護
0x0500 TPM + PIN VMK 由 TPM 加 PIN 碼保護
0x0800 Recovery Password VMK 由 48 位數恢復金鑰保護
0x2000 Password VMK 由用戶密碼保護

重點:Protection Type = 0x0000 時,Offset 28 的 Properties 結構中會包含:

  1. 256-bit 明文金鑰(Clear Key / KEK):直接以原始 bytes 存放
  2. AES-CCM 加密的 VMK:被上述 Clear Key 保護的 Volume Master Key

解密流程

// Step 1: 從 Metadata Offset 28 讀取明文 Clear Key (KEK)
clear_key = read_metadata(offset=28, size=32);  // 256-bit

// Step 2: 用 Clear Key 解密 AES-CCM 封裝的 VMK
vmk = aes_ccm_decrypt(encrypted_vmk, key=clear_key);

// Step 3: 用 VMK 解密 FVEK
fvek = aes_ccm_decrypt(encrypted_fvek, key=vmk);

// Step 4: 用 FVEK 解密實際磁碟資料
data = aes_xts_decrypt(sector_data, key=fvek);

這就是為什麼 資料救援設備 等軟體工具能「直接」讀取 Clear Key 模式的 BitLocker 磁碟——它只是按照規格讀取明文存放的 KEK,再一層層解密而已。

觀念釐清:Metadata ≠ FVEK

常見誤區 「FVE Metadata 裡存的就是 FVEK,所以 Clear Key 模式下 FVEK 是明文的」

正確理解

  • Metadata 存放的是 VMK 的「解鎖材料」,而非 FVEK
  • 即便在 Clear Key 模式,VMK 依然被 AES-CCM 封裝
  • 差別只在於:解開 VMK 的鑰匙(KEK)被放在旁邊,就像「把門鎖的鑰匙掛在門把上」
  • FVEK 更是被 VMK 多包了一層保護

回到

北捷案:技術真相

現在我們可以理解 ASUS 協助警方的技術細節:

  1. 嫌犯筆電的 BitLocker 處於 Protection Type = 0x0000(Clear Key 模式)
  2. 這表示 KEK 以明文形式存放在 FVE Metadata
  3. ASUS 提供同型號電腦,讓系統能正確識別硬體、載入驅動程式
  4. Windows 開機時自動從 Metadata 讀取 Clear Key → 解密 VMK → 解密 FVEK → 磁碟可讀


這不是「破解」,這是 BitLocker 原本的設計行為。
廠商沒有後門,AES 沒有被攻破,只是該筆電從未真正啟用保護機制。

Thx Chang

Author Thx Chang

More posts by Thx Chang