TPM 如何讓 BitLocker 更難被破解?那能擋住量子電腦嗎?
| | | 0 | |
依據新聞報導,警方在調查捷運隨機攻擊事件時,由外觀燒毀的筆電取出的 SSD 固態硬碟,硬體仍完好無損功能正常,但因資料被 Windows BitLocker 加密無法讀取,求助華碩與微軟亦無解,警方表示之後可能會採取「暴力破解」方式,逐一嘗試測試 48 位密碼。(登楞!)
等等,先不要!

Bitlocker 的修復金鑰(Recovery Key)是一串長達 48 位的十進位數字,粗估有 1048 種可能(先忽略因檢核規則非所有組合皆有效),地球上大約有 1050 ~ 1052 個原子,想暴力破解等同要數完地球上 1% 的原子,不可能成功,而且要是成功,這世界反而會崩,因為幾乎所有資安機制都是建立在「超大計算量數學問題不可能被暴力破解」的前題上。
但仔細想想,筆電開機後能正常讀取 SSD,代表解密金鑰一定就存在電腦裡,設法挖出金鑰問題不就解了?但沒這麼簡單,因為「信賴平臺模組 (TPM)」。對,就是那個安裝 Windows 11 一定要有,搞到許多老電腦無法升級的 TPM。(註:主要是 Win11 把規格門檻拉高到 TPM 2.0 造成)
前兩天看到專攻資料救援的 OSSLab 有篇 FB 貼文提到 BitLocker、TPM 跟一堆術語。我對 BitLocker 跟 TPM 一知半解,讀完好像懂了又好像沒懂,有種鞋子跑進小石子的不適感,索性花點時間問 AI 查資料弄懂它。
(心得:這個議題有點冷,資料偏少,AI 給的答案很多是七分對三分錯,而我對這塊領域也陌生,故需時時警覺處處存疑並反覆求證,才不會囫圇吞錯。話雖如此,內容仍可能有謬誤之處,歡迎指正)
Trusted Platform Module (TPM) 是電腦主機的硬體機制,用於儲存加密金鑰以及確保作業系統及韌體可被驗證沒有被竄改。TPM 可以是獨立晶片,也可以內建在 CPU 裡面(例如:Microsoft Pluton 安全處理器)。TPM 1.2 早在 2005 年已成為 PC 標準規格,故實務使用的 BitLocker,加密金鑰幾乎都是使用 TPM 保存。而 TPM 具有多項硬體保護,確保攻擊用任何手段都無法從 TPM 硬拿出金鑰。

深入一點看,BitLocker 加密金鑰採分層設計,有三個獨立層級:
- FVEK (Full Volume Encryption Key):FVEK 是實際加密資料對稱式金鑰 (XTS-AES 128 / XTS-AES 256,或舊式 AES-CBC 128/AES-CBC 256 參考),金鑰本身被 VMK 加密儲存在磁碟中繼資料區(FVE Metadata 區塊,會存多份備份)。
- VMK (Volume Master Key):加密 FVEK 的主金鑰,使用 AES 256,是整個安全架構的關鍵。VMK 也是加密後儲存在磁碟,需使用金鑰保護器解密。
- 金鑰保護器 (Key Protectors):包括 TPM (使用 Storage Root Key, SRK 加密)、PIN 碼、USB 啟動金鑰等,決定誰和在什麼條件下可以解除 VMK 的保護。TPM 是預設的保護機制,但可增加 PIN 或啟動密鑰構成多因素驗證。
採用分層設計最大的優點是 - 某些層被破壞時,資料仍受保護。例如,磁碟本身被偷走,由於 FVEK 仍被 VMK 加密,VMK 又被 TPM 密封,攻擊者沒拿到 TPM,就解不了密。

圖:Full Volume Encryption (FVE) Metadata 區塊範例 圖片來源
這裡有個好問題:為何不用 TPM 直接加密 FVEK 就好?還多生一支 VMK?
實務上 BitLocker 可以有多個金鑰保護器,VMK 除了會用 TPM SRK 加密之外,文章開始提到的 48 位數字(Recovery Key, RK)也是另一種金鑰保護器,此外還有 USB 啟動金鑰、PIN 衍生金鑰等,故磁碟上同時存在不同金鑰保護器金鑰加密的 VMK,用任何一種方法都可以解密 VMK 取出 FVEK 還原資料,而這也符合業界廣泛採用的 DEK-KEK (Data Encryption Key - Key Encryption Key) 加密模式。
那麼,攻擊者把整台電腦抱走,有 SSD、有 TPM,但若像本次案例,電腦本身毀損,是否有辦法拆開主機,把 SSD 甚至 TPM 搬到其他電腦上,再設法把 VMK 偷出來還原資料?
答案是幾無可能。
TPM 有所謂的 PCR (Platform Configuration Registers) 機制,會紀錄從系統打開電源到進入作業系統前,所有關鍵組件的數位指紋(Hash),包括:
- PCR 0-3:主機板韌體、BIOS、微代碼更新
- PCR 4:啟動管理程式(Boot Manager)
- PCR 7:安全啟動(Secure Boot)狀態
- PCR 11:BitLocker 自身的設定資訊
當 TPM 偵測到以上 PCR 有任何改變時(把磁碟機裝到其他電腦上、換 CPU、偷改 BIOS 加入後門),便會拒絕解密 VMK。由於 TPM 用來加密 VMK 的 RSA 私鑰始終被鎖在 TPM 硬體裡,資料是傳進去解密再傳出來,私鑰永遠不會離開 TPM 被寫入記憶體,不可能複製或備份私鑰解密 VMK。
那麼有可能拆開 TPM 用物理方法讀取?TPM 有三種:參考
- Discrete TPM (dTPM) - 封裝成半導體零件的獨立元件
- Integrated TPM - TPM 位由於一個或多個半導體封裝整合成的專用硬體上,但邏輯上為獨立元件
- Firmware TPM (fTPM) - 以韌體形式在 CPU Trusted Execution Environment (TEE,CPU 內部的受保護軟體環境) 執行,如 ARM TrustZone 或 Intel SGX
dTPM 晶片擁有最強大的安全防護,能一些額外物理防護,像是偵測溫度、電壓和衝擊變化,當偵測到篡改或試圖切割外殼時,TPM 便將自動清除其非揮發性記憶體中的敏感資料,即使攻擊者能拆開 TPM 晶片,金鑰資料也早就不見了。
但現今一般筆電、PC 或平板都不是用獨立 dTPM,而是使用 Intel、AMD 或高通 CPU 提供的 fTPM。以 Intel 為例,其 fTPM 官方名稱為 Intel Platform Trust Technology (Intel PTT)。
PTT 確保特定的程式碼只能運行在一個隔離執行環境(與作業系統完全隔絕),確保即使 Windows 遭到入侵被惡意控制,攻擊者也無法直接讀取 PTT 內部的秘密。但由於 PTT 本身沒有非揮發性記憶 (NVRAM),加密後的金鑰資料會儲存在主機板的 SPI Flash (BIOS Flash),PTT 則會用晶片組內部的硬體邏輯來處理密鑰生成、亂數產生(RNG) 以及 PCR 度量。至於 fTPM 確保金鑰永不外流的做法,靠的是硬體唯一金鑰 (HUK) 與 OTP Fuses。
在製造 CPU 時,有一組隨機且唯一的 HUK (Hardware Unique Key) 會以熔斷保險絲的方式「燒入」CPU 硬體,這個 HUK 只有邏輯電路或 TEE 可存取,普通的作業系統或 BIOS 完全看不到。fTPM 不直接使用 HUK,而是以其為「種子」透過金鑰衍生函式 (KDF) 生成用於加密外部儲存資料的儲存根金鑰 (Storage Root Key, SRK),SRK 私鑰被加密形成 Key Blob 存成 Flash。當需要解密時,由 BIOS Flash/eMMC 取得 Key Blob,在 TEE 內部解密出私鑰再進行 RSA 解密運算,便能模擬 dTPM 或 HSM 將私鑰鎖在硬體永不外流的效果。
至於要如何防止 TEE 與 BIOS Flash 間傳輸被竊聽、重放(Replay Attack)、竄改?所謂的快閃記憶體 RPMC (Replay-Protected Monotonic Counter) 技術 可以幫上一點忙,透過單向性計數器 (Monotonic Counter) 和 HMAC-SHA-256 安全雜湊,能防止訊息偽造及重放攻擊。
做個簡單總結:
- BitLocker 採用多層金鑰機制 FEVK (XFS-AES 128/256)、VMK (AES-256)、SRK (RSA 2048),前兩者存在磁碟機,後者鎖在 TPM
- VMK 使用多種方式加密,用任一者方式解開都可以讀取加密內容,預設是用 TPM,另一種常見的就是 48 位數字修復金鑰 (RK)
- 若一切正常,開機後可用 TPM 以 SRK 解密 VMK 再解密 FEVK,即可順利讀寫加密磁區
- 一旦 TPM 遇到 CPU、主機板更換、BIOS 異動等狀態,TPM 將視為非信任環境,拒絕解密 VMK。此時若知 48 位數字 RK,仍能解密 VMK 讀取資料
- 現今一般筆電、PC 其實沒有獨立 TPM 晶片,多是採用 CPU 內建的 fTPM,由於 SRK 無法存在 CPU 裡面,是加密後以 Key Blob 格式存入 BIOS 所在的 Flash,並透過 RPMC 等技術防止偽造及重放攻擊
由 BitLocker 原理及使用的演算法,都清楚導向「以當今硬體能力無法暴力破解」的結論。那麼只最後一個問題,傳說中會瓦解當今資安防線的量子電腦呢?
首先要先建立一個觀念,量子電腦對當代密碼學所造成的威脅僅限於「部分」密碼學演算法,RSA、DSA、ECDSA 等公開金鑰演算法,將會在量子電腦成熟後潰不成軍,但 SHA、AES 短期內還算安全。

【延伸閱讀】
依據 BitLocker 設計,FEVK 與 VMK 使用 AES 128/256,用量子電腦也很難破解(如果不放心,FEVK 可提升到 XFS-AES 256),IBM 預估 2033+ 可以造出 1G 量子位元,約等於 2000 邏輯量子位元的電腦,RSA-2024 似乎有點危險。但由 BitLocker 的運作來看,TPM 大可將 SRK 公私鑰都鎖在內部不外流,在沒拿到公鑰的狀況下,量子電腦與 Shor 演算法也無用武之地~

由此說來,量子電腦在破解 BitLocker 上不太有著力點,對 FVEK/VMK 的 AES 對稱式加密殺傷力不夠強,又拿不到 SRK 的 RSA 公鑰無從下手。不過,我猜 BitLocker / TPM 規格未來幾年還會會遷移到 PQC 後量子加密標準 (FIPS 203 ML-KEM 已於 2024 年發佈),屆時重新用 ML-KEM 加密 VMK 即可。另外,量子電腦還會怎麼發展未知,如果要防止現在偷資料,等未來科技進步再破解的 Harvest Now, Decrypt Later (HNDL) 攻擊,硬碟與 SSD 即使有加密也要謹慎保管、確實銷毀,別抱有反正有加密被偷也沒關係的心態,現在是如此,未來很難說。
【參考資料】
- 微軟提供給 NIST 的技術資料:BitLocker™ Drive Encryption Security Policy For FIPS 140-2 Validation
- A Deep Dive into TPM-based BitLocker Drive Encryption
補充:如果有登入 Microsoft 帳號,48 碼修復金鑰會被備份到雲端,是另一個取回來源。參考

官方說明:尋找您的 BitLocker 修復金鑰

Comments
Be the first to post a comment