安全性

使用 BitLocker 磁碟機加密保護資料的關鍵

Byron Hynes

 

摘要:

  • 完整磁碟區加密
  • BitLocker 金鑰
  • 設定 BitLocker

Windows BitLocker 磁碟機加密無疑是 Windows Vista 中最廣受討論的一項功能。不過,多數人很難得有機會測試 BitLocker 以親身瞭解

其用途和運作原理,特別是受限於電腦並沒有可信賴平台模組 (TPM)。在本文中,我將介紹 BitLocker™ 的基本概念,讓您可以評估其潛力並考慮納入您的升級計劃。首先我將提供一些背景和概念資訊,接著討論有關啟用 BitLocker 和資料修復與管理,最後則介紹 BitLocker 如何協助處理報廢的電腦。為了更清楚瞭解本文談論的術語,請參閱「磁碟和磁碟區」資訊看板。

磁碟和磁碟區

磁碟和磁碟區這兩個術語經常令人混淆。以下摘錄簡短的名詞解釋供您參考。

磁碟分割:磁碟分割是實體硬碟的一個區段。這種邏輯結構定義於儲存在磁碟上的磁碟分割表中。

磁碟區:磁碟區是 Windows 中由一或多個磁碟分割所組成的邏輯結構,且由所謂磁碟區管理員的 Windows 元件加以定義。除了磁碟區管理員和啟動元件外,作業系統的其餘部分以及應用程式都是使用磁碟區而非磁碟分割。在 Windows 用戶端作業系統中 (包括 Windows Vista),磁碟分割和磁碟區通常具有一對一關聯性。而在伺服器中,每個磁碟區通常由多個磁碟分割所組成,例如典型的 RAID 組態配置。

使用中的磁碟分割:一次只有一個磁碟分割可標記成使用中的磁碟分割。這種磁碟分割內有用來啟動作業系統的開機磁區。使用中的磁碟分割有時稱為系統磁碟分割或系統磁碟區,但請勿將這些用語與 Windows OS 磁碟區搞混了。

Windows OS 磁碟區:這種磁碟區內有 Windows 安裝,包括 System 和 System32 資料夾。Windows Vista 上市前的用語稱之為開機磁碟分割 (且目前仍然常用)。使用 Windows OS 磁碟區一詞更加清楚明瞭,可避免永無止盡將開機磁碟分割與系統磁碟分割搞混。在以往,講師有時會提醒學員牢記「諸位是從系統磁碟分割開機,並在開機磁碟分割上尋找系統檔案」。

在 Windows Vista 之前,Windows OS 磁碟區 (也稱為開機磁碟分割) 和使用中的磁碟分割 (也稱為系統磁碟分割) 是指同樣的東西,因為大多數用戶端電腦的硬碟都只設定成一個大型磁碟分割。如 [圖 A] 所示,您可以在 Windows Vista 的 [磁碟管理] 主控台中看到每個磁碟分割或磁碟區受指派的功能。

[圖 A] 磁碟分割的功能

[圖 A]** 磁碟分割的功能 **(按影像可放大)

BitLocker 實際具備兩項相輔相成但截然不同的功能。首先,BitLocker 會為 Windows® OS 磁碟區提供完整磁碟區加密。其次,在具有相容 TPM 的電腦上,BitLocker 則提供方法於 Windows Vista™ 啟動前驗證早期啟動元件的完整性。

若要使用 BitLocker 的所有功能,您的電腦必須已有相容的 TPM 微晶片和 BIOS。所謂相容是指支援 TPM 以及 Trusted Computing Group (TCG) 所定義之 Static Root of Trust Measurement 的 TPM 1.2 版和 BIOS。但是,不具有相容 TPM 和 BIOS 的電腦仍可使用 BitLocker 加密。

完整磁碟區加密

BitLocker 提供完整磁碟區加密,以確保所有寫入 Windows OS 磁碟區的資料都已加密。此為組織妥善保護電腦上所儲存之機密資訊的關鍵,尤其是膝上型和攜帶型電腦。

攜帶型電腦遺失或遭竊的情形時有所聞。隨著行動運算功能逐漸普及,機動人力與日俱增,任何員工都有可能隨身攜帶數百 GB 的組織商業秘密、機密文件或客戶的個人識別資訊 (PII)。只要上網任意搜尋,就會發現充斥著遺失這類資料的新聞 (隱私權情報交換所 Privacy Rights Clearinghouse 聲稱,自 2005 年迄今已有超過一億零四百萬筆的個人資訊記錄遺失或外洩)。

多數組織已循法律途徑或行政命令的規範來保護各類私密資訊;即便您還未受到法律的約束,迫於商業利益也得委屈求全。

為何要加密整個磁碟區?

如果您是經驗豐富的 Windows 系統管理員,可能早就很熟悉 Windows 的加密選項,例如加密檔案系統 (EFS) 甚或 Rights Management Services (RMS) 所提供的加密與保護。BitLocker 最大的差別在於一經啟用後,即自動全盤包含整個磁碟區。

例如,使用 EFS 時,您必須特別指定要保護哪些檔案和資料夾。Windows Vista 提供了一些新選項使 EFS 更加靈活,且 EFS 和 RMS 可分別解決 BitLocker 能力所不及的若干問題。但 EFS 和 RMS 都重度仰賴系統管理員設定,且其設計目的並非保護整個磁碟區的所有內容。

相反地,BitLocker 會加密所有寫入已受 BitLocker 保護之磁碟區的內容,包括作業系統本身、登錄、休眠檔案和分頁檔、應用程式以及應用程式使用的資料。

有三個項目並未加密:開機磁區、標示為無法讀取的任何已損毀磁區,以及磁碟區中繼資料。磁碟區中繼資料含有用來管理 BitLocker 的三份資料複本,包括磁碟區的相關統計資訊和某些解密金鑰受保護的複本。這些項目不需要加密是因為它們並無獨特性,既不貴重也不屬於個人識別資訊。

完整磁碟區加密可以防範離線攻擊,亦即試圖略過作業系統來發動的攻擊類型。例如,常見的離線攻擊就是竊取電腦再拆下硬碟,然後裝入執行別的 Windows 版本或其他作業系統的另一台電腦做為次要磁碟機,以擺脫 NTFS 權限和使用者密碼的約束。使用這類攻擊方式無法讀取 BitLocker 保護的磁碟區。

BitLocker 如何加密資料

BitLocker 使用先進加密標準 (AES) 演算法搭配 128 位元金鑰。為了提供更妥善的保護,可使用群組原則或 BitLocker Windows Management Instrumentation (WMI) 提供者,將金鑰增強至 256 位元金鑰。

磁碟區內的每個磁區會個別加密,而其加密金鑰的某一部分是從磁區編號本身取得。這表示即使兩個磁區包含完全相同的未加密資料,寫入磁碟的已加密位元組也不同,所以很難試圖藉由建立和加密已知的資訊片段查出金鑰。

使用 AES 加密資料之前,BitLocker 還會用到一種演算法稱為 Diffuser。撇開密碼編譯的細節不談,簡單來講 Diffuser 可確保縱使純文字只有些微變動,也將導致整個磁區上的加密文字產生變化。這也讓攻擊者更難查出金鑰或資料。

如果您對 BitLocker 加密演算法的細節感興趣,可參閱 Neil Ferguson 的論文《AES-CBC + Elephant Diffuser:Windows Vista 的磁碟加密演算法》。

BitLocker 金鑰

每當處理加密問題,您都必須認識金鑰,BitLocker 也不例外。BitLocker 使用極精緻但又略顯複雜的金鑰架構。

磁區本身加密時所用的金鑰稱為完整磁碟區加密金鑰 (FVEK)。然而,使用者既無法使用也存取不到 FVEK。接著 FVEK 則以所謂的磁碟區主要金鑰 (VMK) 進行加密。用這麼抽象的方式處理自有其獨特的優點,但也讓人稍難理解整個過程。FVEK 視同機密受到嚴密保護,因為一旦洩露了這個金鑰,所有的磁區都需要重新加密。由於這是既費時又工程浩大的作業,任何人都希望能盡量避免。正因如此,系統將轉而處理 VMK。

以 VMK 加密的 FVEK 儲存在磁碟上,屬於磁碟區中繼資料的一部分。儘管 FVEK 儲存於本機,但絕對會先加密再寫入磁碟。

VMK 也經過加密、「受到保護」,然而金鑰保護裝置可能不止一種。預設的金鑰保護裝置是 TPM。有關 TPM 的使用情形,將於<完整性檢查>一節中討論。此外還會建立修復密碼,充當金鑰保護裝置以因應緊急情況。稍後亦將討論到資料修復。

您可以結合 TPM 與 PIN 數字,或是儲存在 USB 磁碟機上的部分金鑰來加強安全性。這些方法都屬於雙重要素驗證形式。如果您的電腦沒有相容的 TPM 晶片和 BIOS,BitLocker 仍可設定為將金鑰保護裝置完全儲存在 USB 磁碟機上。此即所謂啟動金鑰。

您無須解密資料就能停用 BitLocker;這樣一來,VMK 將只受到未經加密即儲存的新金鑰保護裝置所保護。請注意,這種清除金鑰會讓系統得以將磁碟機當成未受保護一般來存取。

系統會在啟動時查詢 TPM、檢查 USB 連接埠,或者若有必要還會提示使用者 (稱為修復),以找出合適的金鑰保護裝置。一旦找到金鑰保護裝置,Windows 就能解密 VMK,再接著解密 FVEK,最後解密磁碟上儲存的資料。此程序如 [圖 1] 所示。

[圖 1] BitLocker 預設啟動程序

[圖 1]** BitLocker 預設啟動程序 **

完整性檢查

由於啟動程序最早期階段中的元件必須未經加密否則無法啟動電腦,也就使得攻擊者可趁機變更這些早期啟動元件的程式碼 (回想一下 Rootkit) 進而取得電腦的存取權,屆時即使磁碟上的資料已加密亦無濟於事。

如果入侵者使用這類攻擊方式,便極有可能存取到 BitLocker 金鑰或使用者密碼等機密資訊,然後利用這些資訊破解其他的安全防護措施。

防範這類攻擊正是 BitLocker 專案小組創造該項功能的一大初衷。就某方面而言,加密意味著幾乎已經大功告成。完整磁碟區加密讓 BitLocker 既可保護系統的完整性,也能在早期啟動元件遭竄改時防止 Windows 啟動。

具有相容 TPM 的電腦一經啟動,每個早期啟動元件如 BIOS、主開機記錄 (MBR)、開機磁區和開機管理程式碼就會檢查即將執行的程式碼、計算雜湊值,並將此值儲存到 TPM 中特定的暫存器,稱為平台設定暫存器 (PCR)。雜湊值一旦儲存到 PCR 中,即無法取代或清除其值,除非重新啟動系統。BitLocker 使用 TPM 及儲存在 PCR 中的值來保護 VMK。

TPM 可建立金鑰以連結特定的 PCR 值。建立這類金鑰時,TPM 會將金鑰加密,而且只有該特定 TPM 可將其解密。此外,只有在目前的 PCR 值與建立金鑰時指定的值相符之情況下,TPM 才會將金鑰解密。這稱為密封 TPM 的金鑰。

根據預設,BitLocker 會密封 Core Root of Trust Measurement (CRTM)、BIOS 以及任何 Platform Extensions、Option ROM 碼、MBR 碼、NTFS 開機磁區和開機管理程式所測量的金鑰。如果這其中有任何項目意外變更,BitLocker 將會鎖定磁碟機以禁止存取或解密。

BitLocker 預設會尋找並使用 TPM。您可以利用群組原則或本機原則設定,將 BitLocker 改為不與 TPM 搭配運作,並將金鑰儲存到外接式 USB 快閃磁碟機;但若沒有 TPM,BitLocker 即無法驗證系統完整性。

初次啟用 BitLocker

BitLocker 內建於 Windows Vista Enterprise 和 Windows Vista Ultimate (下一版的 Windows Server®,代號 "Longhorn" 亦將隨附 BitLocker 做為選用元件)。

下面的討論假定您的電腦已有相容的 TPM 可供測試。如果您想要在沒有 TPM 的電腦上啟用 BitLocker,請依照「在不含 TPM 的情況下使用 BitLocker」資訊看板所列的步驟執行。

在不含 TPM 的情況下使用 BitLocker

BitLocker 預設會使用 TPM,因此如果您並無此配備,Windows 起先將不允許您啟用 BitLocker。不過,以下摘錄自《Windows BitLocker 磁碟機加密逐步指南》的程序將可讓您在沒有 TPM 的情況下使用 BitLocker。

若要執行這些步驟,您必須以系統管理員身分登入。即使沒有 TPM,您的電腦仍需支援在啟動程序期間讀取 USB 快閃磁碟機。此外,當您啟用 BitLocker 及每次重新啟動電腦時,都必須已接上可用的 USB 快閃磁碟機。

請遵循下列步驟,在不含相容 TPM 的電腦上開啟 BitLocker 磁碟機加密:

  1. 按一下 [開始],在 [開始搜尋] 方塊中輸入 gpedit.msc,然後按 ENTER。
  2. 如果出現 [使用者帳戶控制] 對話方塊,請確認提議的動作是您所要求的,然後按一下 [繼續]。
  3. 在 [群組原則物件編輯器] 主控台樹狀目錄中,依序按一下 [本機電腦原則]、[系統管理範本] 和 [Windows 元件],再按兩下 [BitLocker 磁碟機加密]。
  4. 按兩下 [控制台設定: 啟用進階啟動選項] 設定項目。[控制台設定: 啟用進階啟動選項] 對話方塊便會出現。
  5. 選取 [已啟用] 選項,然後選取 [在不含相容 TPM 的情形下允許使用 BitLocker] 核取方塊,再按一下 [確定]。如此即已變更原則設定,接著您就可以使用啟動金鑰代替 TPM。
  6. 關閉 [群組原則物件編輯器]。
  7. 若要強制立刻套用群組原則,請按一下 [開始],在 [開始搜尋] 方塊中輸入 gpupdate.exe /force,然後按 ENTER。等候程序完成。

啟用 BitLocker 最重要的一環在於確認磁碟區已正確設定。BitLocker 必須從尚未加密的使用中磁碟分割來讀取開機磁區、開機管理程式和 Windows 載入器程式 (這些元件均受到上述的系統完整性步驟所保護)。由於其他 Windows 元件可能暫時需要用到使用中的磁碟分割,Microsoft 建議使用中的磁碟分割至少應有 1.5GB。您最好也一併設定 NTFS 權限,以免使用者意外寫入資料至該磁碟區。

Windows 本身將會安裝到另一個較大的磁碟區,而此磁碟區則可加密。若您是在全新的系統上安裝 Windows,就可以依照《Windows BitLocker 磁碟機加密逐步指南》提供的指示,手動設定各磁碟區。

您可利用 BitLocker Drive Preparation Tool (BitLocker 磁碟機準備工具),協助您設定系統以便支援 BitLocker。此工具會幫您辦妥繁複的磁碟機設定工作,屬於 Windows Vista Ultimate Extra 所附的功能,而部署 Windows Vista Enterprise 的客戶亦可取得。如需 BitLocker Drive Preparation Tool 的詳細指示,請造訪 support.microsoft.com/kb/930063

BitLocker Drive Preparation Tool 會自動壓縮磁碟區 (如果只有一個磁碟區)、建立第二個磁碟分割並將其指定成使用中的磁碟分割、進行所有必要的設定變更,然後將啟動檔案移至正確位置。

設定好磁碟區之後,要啟用 BitLocker 就非常簡單。請在 [控制台] 的 [安全性] 區段中,按一下 [BitLocker 磁碟機加密] 圖示。當您認可 UAC 同意提示後,便會出現如 [圖 2] 的畫面。

[圖 2] 啟用 BitLocker

[圖 2]** 啟用 BitLocker **(按影像可放大)

接下來的確切步驟視電腦的 TPM 晶片狀態而定。如果 TPM 晶片尚未初始化,將會執行可信賴平台模組 (TPM) 初始化精靈。請遵循指示初始化 TPM,再依提示重新啟動電腦。

一旦 TPM 已初始化,即出現如 [圖 3] 所示的 [儲存修復密碼] 頁面。您必須有修復密碼,才能在 TPM 失效或發生其他問題時修復資料。此頁面允許您將修復密碼儲存到 USB 快閃磁碟機、儲存到本機或網路磁碟,或列印密碼妥善保管。您必須至少選擇以上其中一個選項,並可選擇儲存多份複本。當修復密碼已儲存後,[下一步] 按鈕即呈現啟用狀態。請按一下該按鈕。

[圖 3] 儲存修復密碼

[圖 3]** 儲存修復密碼 **(按影像可放大)

接著會出現 [加密選取的磁碟區 (Encrypt the selected disk volume)] 頁面,而您則可選擇是否要在開始加密前先執行系統檢查。系統檢查需要重新啟動電腦,卻是確保 TPM、BIOS 和 USB 連接埠均可搭配 BitLocker 正常運作的最佳方式。重新啟動電腦後若偵測到任何問題,將會出現錯誤訊息;反之則顯示 [加密進行中] 狀態列。

就是這樣。加密將在幕後完成,因此您可以繼續使用電腦。初步加密一旦完成,便會出現通知訊息。您也可以將游標移到螢幕下方工作列中的 [BitLocker 磁碟機加密] 圖示上,來監視磁碟區加密進行中的完成狀態。如需詳細資訊,請參閱稍早提到的逐步指南。

某些使用者可能會感到訝異,為何 BitLocker 並未在電腦啟動時提示使用者,也沒有任何其他明顯的干擾動作。這是因為 BitLocker 預設會先仰賴 TPM 確認系統完整性,再解除鎖定磁碟區的緣故。此過程將自動進行而讓使用者不致察覺。

您可以將 BitLocker 設定為要求在啟動時輸入 PIN,或出示儲存於 USB 快閃磁碟機上的金鑰。這可增強安全性,因此如果增強安全性的好處勝過輸入 PIN 所帶來的不便,則建議採用。我的主張是一直都這麼做 (換句話說,我的桌上型電腦需要 PIN 而膝上型電腦需要 USB 金鑰)。

BitLocker 修復

只要涉及到加密,尤其是商務或企業環境,必定得設法讓已獲授權的使用者都能取回自己的資料,就算正常存取途徑發生問題或手邊沒有金鑰也一樣。BitLocker 將這種情形稱為修復。

萬一早期啟動元件發生意外變更,或您遺失了 USB 啟動金鑰,還是使用者忘記自己的 PIN,BitLocker 都將無法完成正常啟動程序。BitLocker 會繼續鎖定磁碟區以致 Windows 無法啟動。相對地,開機管理程式中的 BitLocker 程式碼將顯示文字畫面。若您已在 USB 快閃磁碟機上儲存修復密碼 (有時稱為修復金鑰),則會出現如 [圖 4] 的畫面。

[圖 4] 尋找修復金鑰

[圖 4]** 尋找修復金鑰 **(按影像可放大)

您必須在啟動電腦時接上 USB 快閃磁碟機,這樣 BitLocker 才能讀取。因此若您已有包含修復密碼的 USB 快閃磁碟機,請將其插入然後按 ESC。如果您沒有這種磁碟機,請按 Enter 以顯示如 [圖 5] 的畫面。萬一 USB 磁碟機上沒有修復金鑰,您也會看到這個畫面。

[圖 5] 輸入 BitLocker 密碼

[圖 5]** 輸入 BitLocker 密碼 **(按影像可放大)

現在 BitLocker 正要尋找可用來解除鎖定磁碟機的 48 位數密碼。如果您先前選擇列印修復密碼,請找出當時列印在紙上的數字;或者若您是將修復密碼儲存到資料夾,請從位在該處的檔案中找出密碼。

對企業來說,管理修復密碼最簡單的方法是讓密碼自動儲存在 Active Directory® 中。如需徹底瞭解如何設定這種方法,請參閱 go.microsoft.com/fwlink/?LinkId=87067

在日後的文章中,我將詳述 BitLocker 的管理功能,但本篇概論想先向您預告 BitLocker 附有整套 WMI 提供者,可透過與 WMI 相容以網路為主的企業管理 (WBEM) 系統來管理 BitLocker (及 TPM)。這表示您也可以使用 VBScript 或 Windows PowerShell™ 等任何可存取 WMI 物件的指令碼語言為 BitLocker 編寫指令碼。

BitLocker 亦隨附命令列工具 manage-bde.wsf,此工具利用 WMI 提供者讓您能夠管理本機或遠端電腦上的 BitLocker。如需詳細資訊,請以較高的權限啟動命令提示字元,然後輸入 manage-bde.wsf /?。

安全地解除任務

每一台電腦終究都得解除任務 (報廢)。企業通常投入大量人力物力,以確保磁碟機卸除前均已完全清空。從磁碟機移除機密資料的過程大致都很耗時間或所費不貲,甚至造成硬體損毀而萬劫不復。BitLocker 提供了更具成本效益的其他選項。

您無須擔心移除資料這類現實問題,BitLocker 打從一開始就已確保機密資料安全無虞地儲存在磁碟上。由於寫入磁碟的內容都已加密,只要銷毀加密金鑰的所有複本便能讓資料永遠無法存取。硬碟本身則毫髮無損可重複使用。

當您需要將 BitLocker 保護的磁碟區解除任務時,有幾種處理方式可供選擇。例如,您可將金鑰封存到安全的中央站台位置,再從磁碟區中繼資料刪除金鑰的所有複本。這樣便能安心轉運電腦,或將長時間庫存不用的系統暫時解除任務。如此既可確保已獲授權的使用者仍可存取資料,又能防止未獲授權的使用者存取,比方像是設備的新主人。

您也可以選擇從磁碟區中繼資料及任何封存位置 (如 Active Directory) 刪除金鑰的所有複本,又或者只建立新的金鑰但不儲存。由於少了解密金鑰,任何人均無法修復或擷取資料。

不論您選擇哪一種處理方式,幾乎都能立即移除和銷毀磁碟區中繼資料內的金鑰,並可交由一位系統管理員同時處理多部系統。以最少的人力物力換來高水準的永久保護,何樂而不為?Windows Vista 中的格式化公用程式已有所更新,如今格式化命令會刪除磁碟區中繼資料並覆寫這些磁區,因此也會妥當地刪除 BitLocker 金鑰。

結語

BitLocker 是設計用來防範特定威脅且功能強大的工具,而確實也表現得相當優異。不過,切莫誤認為只要有 BitLocker 就能防範一切威脅。繼續採取適當的防護控制 (例如強式密碼) 仍是關鍵。

切記 BitLocker 可牽制離線攻擊。這意謂著一旦 Windows 已在執行中,即表示 BitLocker 已解除鎖定磁碟區。也就是說,BitLocker 無法為執行中的系統提供保護。諸如 EFS 和 RMS 等技術則彌補了 BitLocker 的不足,可於作業系統執行期間保護資訊。

如需 BitLocker 的詳細資訊,請造訪 Microsoft 網站,參閱 technet.microsoft.com/windowsvista/aa905065.aspx 所列的各篇文章。如需 TPM 規格及 TCG 的詳細資訊,請參閱 TCG 網站上的<可信賴平台模組 (TPM) 規格>一節,網址為 go.microsoft.com/fwlink/?LinkId=72757

Byron Hynes 服務於 Microsoft 的 Windows Server 使用者協助事業群。他曾擔任過顧問和訓練師。您可以透過電子郵件地址 bhynes@microsoft.com 與他連絡。

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.