BitLocker

**BitLocker** 是內建於 Windows Vista 及之後作業系統的磁碟加密功能，通過加密整個磁碟分割區來保護使用者資料。它預設在密碼塊連結（CBC）或 XTS 模式下使用 128 位元或 256 位金鑰的 AES 加密演算法。其中 CBC 用於每個單獨的磁碟磁區，不在整個磁碟上使用。

## 歷史

BitLocker 起源於微軟 2004 年的下一代安全計算基礎架構，其臨時代號為「基石」（Cornerstone），功能為保護裝置上的資訊，尤其是在裝置遺失或被盜的情況下。另一個特性為「程式碼完整性根檢測」（Code Integrity Rooting），旨在驗證 Microsoft Windows 引導與系統檔案的完整性。

當與相容的可信平台模組（TPM）結合使用時，BitLocker 可以在解密受保護的卷之前驗證引導和系統檔案的完整性，如果驗證失敗，會禁止使用者存取受保護的系統。在 Windows Vista 發售之前，BitLocker 簡稱安全啟動（Secure Startup）。

## 可用系統

BitLocker 內建於以下系統：

* Windows Vista 與 Windows 7 旗艦版與企業版
* Windows 8 與 8.1 專業版與企業版
* Windows 10 與 Windows 11 專業版、企業版與教育版
* Windows Server 2008 及其之後系統

最初，Windows Vista 中的 BitLocker 圖形介面只能加密作業系統卷。從 Windows Vista Service Pack 1 和 Windows Server 2008 開始，圖形工具可以加密作業系統卷以外的卷。然而，BitLocker 的某些功能（例如打開或關閉自動釘選）必須通過名為 `manage-bde.wsf` 的命令列工具進行管理。

新版 BitLocker 首次包含在 Windows 7 和 Windows Server 2008 R2 中，增加了加密抽取式驅動器的功能。在 Windows XP 或 Windows Vista 上，BitLocker To Go Reader 程式可以實現對使用 FAT16、FAT32 或 exFAT 檔案系統驅動器的唯讀存取。另外，新的命令列工具 `manage-bde` 替換了舊的 `manage-bde.wsf`。

從 Windows Server 2012 和 Windows 8 開始，微軟通過硬碟加密規範完善了 BitLocker，該規範允許將 BitLocker 的加密操作下放到儲存裝置的硬體中完成。此外，BitLocker 現在可以通過 Windows PowerShell 進行管理。最後，Windows 8 企業版引入了 Windows To Go，可受 BitLocker 保護。

### 裝置加密

Windows Mobile 6.5、Windows RT 和 Windows 8.1 標準版包含裝置加密（Device encryption）——BitLocker 的功能限制版本 —— 用於加密整個系統。使用具有管理權限的微軟帳戶登入將自動啟動加密過程。恢復金鑰儲存到微軟帳戶或 Active Directory 中，允許任何電腦檢索。雖然 Win 8.1 全版本提供了裝置加密功能，但與 BitLocker 不同，裝置加密要求裝置符合 InstantGo（前稱 Connected Standby，譯為聯網待機）規範，需要固態驅動器，不可拆卸 RAM（防止冷啟動攻擊）和一個 TPM 2.0 晶片。

## 加密模式

有三種認證機制可以用來構建 BitLocker 加密：

* 透明執行模式：此模式使用 TPM 1.2 硬體的功能來透明執行。此模式下，使用者在無感知的情況下正常啟動並登入到 Windows。用於磁碟加密的金鑰由 TPM 晶片密封（加密），且在未檢測到有對早期啟動組件的修改的情況下被釋放到作業系統載入程式碼中。因為其允許攻擊者啟動已關閉電源的機器，所以這種模式很容易受到冷啟動攻擊。
* 使用者認證模式：此模式要求使用者以預引導 PIN 或密碼的形式向預引導環境提供認證。
* USB 金鑰模式：使用者必須將包含啟動金鑰的 USB 裝置插入電腦才能啟動受保護的作業系統。此模式要求受保護機器上的 BIOS 支援在作業系統預載入階段讀取 USB 裝置。金鑰還可以通過使用 CCID（晶片卡介面裝置）讀取加密智慧卡獲得。使用 CCID 比單純將金鑰檔案儲存在外部 USB 隨身碟更安全，因為 CCID 協定使用嵌入在智慧卡中的加密處理器隱藏私鑰，防止金鑰因智慧卡內容泄露而被簡單取得。

上述認證機制支援以下組合，全部具有可選的代管恢復金鑰：

* 僅 TPM
* TPM + PIN
* TPM + PIN + USB 金鑰
* TPM + USB 金鑰
* USB 金鑰
* 僅口令

## 執行

BitLocker 是邏輯卷加密系統。一個卷的範圍可以是硬碟機的一部份、整個驅動器或多個驅動器。啟用後，TPM 和 BitLocker 可以確保可信引導路徑（如 BIOS 和引導磁區）的完整性，阻止大多數離線物理攻擊和引導磁區惡意軟體。

為使 BitLocker 加密儲存作業系統卷，至少需要兩個 NTFS 格式的卷：一個用於作業系統（通常為本機磁碟 (C)），另一個大小至少為 100 MB，用於作業系統引導。BitLocker 需要後者保持未加密狀態 —— 在 Windows Vista 上，此卷必須分配一個驅動器號，而在 Windows 7 上則不需要。與以前的 Windows 版本不同，Vista 的「diskpart」命令列工具可以縮小 NTFS 卷的大小，以便從已分配的空間建立此卷。微軟還有一個名為 BitLocker 驅動器準備工具的軟體，可將 Windows Vista 上的現有捲縮小，為新的引導卷騰出空間，並將必要的引導檔案傳輸到卷中。

建立備用啟動分割區後需要初始化 TPM 模組（假設正在使用此功能），之後組態所需的磁碟加密金鑰保護機制，如 TPM、PIN 或 USB 金鑰。對卷的加密會在後台完成，這在大型磁碟上可能需要大量時間，因為每個邏輯磁區都要被讀取、加密並重寫回磁碟。這些金鑰只有在整個卷被加密後才會被保護，這時此卷被認為是安全的。 BitLocker 使用低階裝置驅動程式對所有檔案操作進行加密和解密，這對於在平台上與加密卷進行互動操作的應用程式是透明的。

加密檔案系統（EFS）可以與 BitLocker 結合使用，在作業系統執行時提供保護。要控制作業系統中的處理程序和使用者對檔案的存取，使用者只能使用執行於 Windows 層面的加密軟體（如 EFS）。因此，BitLocker 和 EFS 提供了針對不同類別攻擊的保護。

在 Active Directory 環境中，BitLocker 支援可選金鑰代管到 Active Directory。如果 Active Directory 服務代管在 Windows Server 2008 之前的 Windows 版本上，則可能需要先進行架構更新。

BitLocker 和其他全磁碟加密系統可能被惡意啟動管理器攻擊。一旦惡意引導程式取得解密用資訊，它就可以解密卷主金鑰（Volume Master Key，VMK），然後解密或修改加密硬碟上的任何資訊。通過組態 TPM 來保護受信任的啟動路徑，包括 BIOS 和引導磁區，BitLocker 可以減輕此威脅。 （注意，引導路徑的一些非惡意更改可能會導致平台組態暫存器檢查失敗，從而生成錯誤的警告。）

## 安全問題

據微軟透露，BitLocker 沒有刻意設定後門。沒有後門，執法機構就無法從安全通道取得微軟提供的使用者驅動器上的資料。2006 年，英國內政部擔心缺乏後門，試圖與微軟談判，微軟開發人員尼爾斯・弗格森和其他微軟的發言人表示他們不會增加後門。微軟工程師曾表示，雖然沒有正式的書面請求，聯邦調查局特工也在許多會議上向他們施加壓力，要求增加後門。微軟的工程師最終向 FBI 建議，特工應該尋找 BitLocker 程式建議其使用者建立的金鑰硬拷貝。雖然 BitLocker 使用的 AES 加密演算法屬公有領域，但它在 BitLocker 以及軟體的其他組件中的實現都是專有的。該程式碼可供微軟合作夥伴和企業審查，但須遵守保密協定。

BitLocker 的「透明執行模式」和「使用者認證模式」使用 TPM 硬體檢測 BIOS 和 MBR 預載入環境是否有未經授權的改變。如果檢測到任何未經授權的更改，BitLocker 將在 USB 裝置上請求一個恢復金鑰。該加密金鑰用於解密卷主金鑰，並允許繼續執行引導過程。

2008 年 2 月，一個安全研究小組發布了所謂「冷啟動攻擊」的詳細資訊，其通過將機器從抽取式媒介（如 USB 驅動器）引導到另一個作業系統，然後轉儲預引導記憶體中的內容來損害諸如 BitLocker 的全磁碟加密系統。攻擊依賴於這樣一個事實：電源關閉後，DRAM 會保留長達數分鐘的資訊（冷卻後的保留時間更長）。美國專利 9,514,789 號描述的 Bress/ Menz 裝置可以完成這種攻擊。單獨使用 TPM 不會提供任何保護，因為 Windows 執行時金鑰儲存在記憶體中。其他供應商和作業系統（包括 Linux 和 Mac OS X）的類似全磁碟加密機制也容易遭受同樣的攻擊。普林斯頓大學教授的一篇論文推薦在未取得擁有者物理控制的情況下應將電腦關閉而不是處於睡眠模式，並且把加密軟體組態為需要密碼才能啟動機器。

一旦受 BitLocker 保護的機器開始執行，其金鑰就會儲存在記憶體中，可能易受能夠存取實體記憶體的處理程序的攻擊，例如通過 1394 或 Thunderbolt DMA 通道攻擊。從 Windows 10 版本 1803 開始，微軟向 BitLocker 添加名為「核心 DMA 保護」的新功能，可防止通過 Thunderbolt 3 埠進行的 DMA 攻擊。

最初，Windows Vista 使用 AES 的密碼塊連結（CBC）+ 大象擴散器（Elephant Diffuser）模式進行磁碟加密。自 Windows 8 和 Windows Server 2012 開始，微軟在沒有聲明原因的情況下從 BitLocker 方案中移除了大象擴散器（Elephant Diffuser），僅使用 CBC 模式進行磁碟加密。軟體工程師丹・羅森多夫（Dan Rosendorf）的研究表明，移除大象擴散器對 BitLocker 加密的安全性有「不可否認的負面影響」。微軟隨後說明擴散器移除的原因是效能問題以及不遵守聯邦資訊處理標準（FIPS）。從 Windows 10 版本 1511 開始，微軟向 BitLocker 添加了新的符合 FIPS 標準的 XTS-AES 加密演算法。

2015 年 11 月 10 日，微軟發布了一項安全更新，修補 BitLocker 中的安全漏洞。漏洞使攻擊者可以繞過目標電腦上的 Kerberos 身分驗證，只有在電腦已加入域，目標系統已啟用 BitLocker 且沒有 PIN 或 USB 金鑰的情況下，才能利用該繞過漏洞。

## manage-bde 工具

Windows 7 中加入了 `manage-bde` 命令列工具以管理 BitLocker 加密分割區。其主要功能參數為：

## 參見

* Windows Vista 新功能
* Windows 組件列表
* 下一代安全計算基礎

## 參考資料

## 外部連結

* BitLocker 驅動器加密概述（頁面存檔備份，存於網際網路檔案館）
* 下載 BitLocker 驅動器準備工具（頁面存檔備份，存於網際網路檔案館）
* Windows 硬體開發者中心 BitLocker 頁面（頁面存檔備份，存於網際網路檔案館）
* 系統完整性團隊部落格
* 攻擊 BitLocker 引導過程（頁面存檔備份，存於網際網路檔案館）
* 修復 BitLocker 無法修改密碼錯誤（頁面存檔備份，存於網際網路檔案館）

Aka.ms/myrecoverykey