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的功能限制版本——用於加密整個系統。使用具有管理權限的微軟帳戶登錄將自動啟動加密過程。恢復密鑰存儲到微軟帳戶或活動目錄中，允許任何計算機檢索。雖然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年，英國內政部擔心缺乏後門，試圖與微軟談判，微軟開發人員Niels Ferguson和其他微軟的發言人表示他們不會增加後門。微軟工程師曾表示，雖然沒有正式的書面請求，聯邦調查局特工也在許多會議上向他們施加壓力，要求增加後門。微軟的工程師最終向FBI建議，特工應該尋找BitLocker程序建議其用戶創建的密鑰Hard copy。雖然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 驅動器加密概述date=20161117004346 - 下載BitLocker 驅動器準備工具date=20190924171028 - Windows硬件開發者中心BitLocker頁面date=20100926011715 - 系統完整性團隊博客- 攻擊BitLocker引導過程date=20170705102910 - 修復BitLocker無法修改密碼錯誤date=20171211213700