BitLocker

BitLocker是內置於Windows Vista及之後作業系統的磁碟加密功能，通過加密整個磁碟分區來保護使用者數據。它默認在密碼塊連結（CBC）或磁碟加密理論模式下使用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的功能限制版本——用於加密整個系統。使用具有管理權限的微軟帳戶登錄將自動啟動加密過程。恢復密鑰存儲到微軟帳戶或活動目錄中，允許任何電腦檢索。雖然Win 8.1全版本提供了設備加密功能，但與BitLocker不同，設備加密要求設備符合InstantGo（前稱Connected Standby，譯為聯網待機）規範，需要固態驅動器，不可拆卸RAM（防止冷啟動攻擊）和一個TPM 2.0晶片。

## 加密模式

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

- 透明運行模式：此模式使用TPM 1.2硬體的功能來透明運行。此模式下，使用者在無感知的情況下正常啟動並登錄到Windows。用於磁碟加密的密鑰由TPM晶片密封（加密），且在未檢測到有對早期啟動組件的修改的情況下被釋放到作業系統加載代碼中。因為其允許攻擊者啟動已關閉電源的機器，所以這種模式很容易受到冷啟動攻擊。
- 使用者認證模式：此模式要求使用者以預引導PIN或密碼的形式向預引導環境提供認證。
- USB密鑰模式：使用者必須將包含啟動密鑰的USB設備插入電腦才能啟動受保護的作業系統。此模式要求受保護機器上的BIOS支持在作業系統預加載階段讀取USB設備。密鑰還可以通過使用CCID (協議)（晶片卡接口設備）讀取加密智慧卡獲得。使用CCID比單純將密鑰文件存儲在外部U盤更安全，因為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提供了針對不同類別攻擊的保護。

在活動目錄環境中，BitLocker支持可選密鑰託管到活動目錄。如果活動目錄服務託管在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標準的磁碟加密理論加密演算法。

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

## manage-bde工具

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

選項｜功能

-status｜分區的加密/解密及其正在進展中的狀態顯示

-on｜開始加密

-off｜開始解密

-pause｜暫停加密或解密

-resume｜恢復加密或解密

-lock｜阻止對加密數據的訪問

-unlock｜允許對加密數據的訪問

-autounlock｜管理自動解鎖數據分卷

-protectors｜管理加密密鑰的保護方式

-tpm｜配置電腦的可信平台模塊

-SetIdentifier、-si｜配置分卷的identification field

-ForceRecovery、-fr｜強制被BitLocker保護的作業系統在重啟時恢復

-changepassword｜修改數據分卷的口令

-changepin｜修改分卷的PIN

-changekey｜修改分卷的啟動密鑰

-upgrade｜升級BitLocker版本

-ComputerName、-cn｜在另一台電腦上運行，如「ComputerX」，「127.0.0.1」

-?、/?｜顯示幫助。如「-ParameterSet -?」

-Help、-h｜顯示完整幫助，如「-ParameterSet -h」

## 基本資料

- 開發者：微軟
- 發行日期：2006年11月30日
- 其他名稱：設備加密
- 作業系統：Microsoft Windows
- 類型：磁碟加密軟體