標籤:模仿 wrap 資料 load 提高 可能性 鎖定 class 惠普
轉:Bitlocker、TPM和系統安全
自從微軟在Windows Vista首次引入Bitlocker以來,它已經越來越多的出現在我們的周圍。尤其是企業使用者,Bitlocker的保護已經變得不可缺少。本文將深入討論它的原理和如何提高它的安全性。
什麼是Bitlocker?
BitLocker 驅動加密是整合在Windows Server 2008和Windows Vista及以後版本中的一個新的安全特性,它通過緊密整合在Windows作業系統中的方案,來協助降低資料偷竊或丟失導致的泄露,被盜,或不正確地報廢電腦硬體所帶來的實際威脅。BitLocker 是一種完整磁碟區加密技術,如果電腦在所安裝作業系統離線時受損,則該技術可確儲存儲在此電腦上的資料不會暴露。 它是針對具有相容的信賴平台模組 (TPM) 微型晶片和 BIOS 的系統而設計的。 如果存在這些組件,則 BitLocker 將使用它們來增強對資料的保護,並協助確保早期啟動組件的完整性。 此功能通過加密整個捲來協助防止資料被盜或未經授權查看。
簡單來說,BitLocker會將Windows的安裝分區或者其他用於儲存檔案的分區進行加密,並將密鑰儲存在硬碟之外的地方,並對早期啟動組件完整性檢查,合并到一起來增強資料保護。
BitLocker主要有兩種工作模式:TPM模式和隨身碟模式,同時為了實現更高程度的安全,我們還可以同時啟用這兩種模式。本文主要討論TPM模式。
TPM和Bitlocker
TPM(Trusted Platform Module,可信平台模組)是根據國際行業標準組織可信計算群組(TCG,其中包括微軟、英特爾和惠普等公司)規範製作的模組,可以是dTPM真實硬體也可以是fTPM等由韌體類比的軟體模組。TPM 1.2最早大規模商用,現在TPM2.0也開始廣泛使用了。
TPM的主要作用是利用安全的經過驗證的加密金鑰帶來強大的裝置安全性。TPM功能的核心是簽注密鑰,這是在生產過程中內建到TPM硬體的加密金鑰。這個簽注密鑰的私密金鑰部分絕不會出現在TPM外部或暴露給其他組件、軟體、程式或個人。另一個關鍵密鑰是儲存根金鑰,該密鑰也儲存在TPM內;它被用來保護其他應用程式建立的TPM密鑰,使這些密鑰只能由TPM通過被稱為綁定的過程來解密,TPM也是通過該過程鎖定資料到裝置。與簽注密鑰不同,只有當TPM裝置第一次被初始化或新使用者獲得所有權時,儲存根金鑰才會被建立。
TPM還可以通過平台配置寄存器(PCR)機制來記錄系統的狀態。這允許TPM進行開機前系統完整性檢查,也被稱為遠程證明,這是一個功能強大的資料保護功能。通過將資料加密金鑰儲存在TPM中,資料可以有效地受到保護,其中TPM有一系列參考值來檢查PCR們的狀態。只有系統狀態與儲存的PCR值匹配,這些密鑰才會啟封和使用,並且,只有在滿足特定硬體和軟體條件時,才能夠訪問系統。
TPM是許多安全應用的核心,我們今後會單獨介紹它。本文只要知道Bitlocker最關心的金鑰儲存區和PCR即可。
Bitlocker原理
我們僅僅介紹使用了TPM的Bitlocker。這就要求電腦安裝了TPM 1.2以上硬體(dTPM或者fTPM),其他沒有任何要求。整個解密的流程圖如下:
(圖片來源MSDN)
圖解順序的步驟如下:
1. BIOS 啟動並初始化TPM。並measure firmware部分敏感內容和開機磁碟分割以及bootloader,將結果放入PCR組。
2.如果 PCR 值與期望值相匹配,則 TPM 將使用儲存根金鑰 (SRK) 對卷主要金鑰 (VMK) 進行解密。
3. 從卷中讀取加密 FVEK,並使用解密 VMK 對其進行解密。
4. 訪問磁碟扇區時,使用 FVEK 進行解密。
5. 為應用程式和過程提供解密資料。
其中SRK儲存在TPM晶片中,它是整個過程的根信任。BitLocker通過檢測PCR組,對主開機記錄 (MBR) 代碼、NTFS 開機磁區、NTFS 啟動塊、啟動管理器和其他重要組件進行檢查,如果被更改,則第2步將出錯,要求輸入recovery PIN值。
Bitlocker作用以及局限
如前文所說,BitLocker會將Windows的安裝分區或者其他用於儲存檔案的分區進行加密,並將密鑰儲存在硬碟之外的地方,並對早期啟動組件完整性檢查,合并到一起來增強資料保護。
1. Windows安裝盤和其他資料硬碟的加密,保護了離線攻擊。即把磁碟拆下來到別的機器上讀出結果來。這樣就算你的筆記本硬碟丟失了,裡面的重要訊息別人也拿不走。注意這裡bootloader所在的UEFI開機磁碟分割並沒有加密。
2. 啟動組件完整性檢查,保證了如果啟動組件被更改,就拒絕啟動,防止被植入惡意代碼,造成整個鏈條的崩潰。
但是啟用TPM後,因為SRK儲存在TPM中,而不是像USB方式那樣隨時帶走。這樣雖然便利,不需要開機輸入密碼,但是硬體整體丟失後也為竊賊造成了方便。所以微軟推薦採取TPM加數字 PIN 碼的方式,可以大大降低資料泄漏的風險。
安全性
Bitlocker採用AES128或者256來加密資料,十分安全。韌體通過measure啟動中關鍵組件並存入PCR中保證了啟動路徑不被攻擊,聽起來現在已經十分安全了,但是很久之前就被發現有一個漏洞:“邪惡女服務員攻擊”。
它所描述的就是這樣一種情形:當電腦主人離開旅館客房,而電腦無人看守時,一個邪惡的女服務生或任何其他可以進入這個房間的人,就可以隨意鼓搗這台電腦了。因為在系統引導期間,BitLocker需要與使用者互動來獲得一個口令:
而這個階段在Bootloader,而bootloader所在的UEFI開機磁碟分割並沒有加密。這就造成了可乘之機:
1. 該邪惡的女服務員將惡意軟體放入隨身碟,開機直接進入shell,將惡意軟體copy到UEFI分區並修改啟動路徑。
2. 主人回家開機。
3. 惡意軟體模仿Bitlocker彈出要求輸入密碼的介面。
4. 主人不明就裡,輸入密碼。
5. 惡意軟體截獲秘密,發送到特定郵箱。它清空自己痕迹並重新啟動。
6. 由於惡意軟體痕迹被完全清除,PCR正常,正牌Bitlocker要求密碼,主人又看到密碼介面,以為輸錯了,又輸一遍,並順利進入系統,一切正常。
7. 第二天,邪惡服務員乘主人不在,拿著密碼開機並copy關鍵資料到隨身碟。
8. 邪惡女服務員消失。一個巨大的陰謀正在醞釀。。。。。。。OMG!!
有什麼應對的辦法嗎?其實你一定還記得我們介紹過的UEFI安全啟動吧(UEFI安全啟動),它會驗證Bootloader的簽名,它和Bitlocker配合起來可以防止這個風險。
其他
有一些雜項需要說明一下:
1. Bitlocker不一定需要TPM. UEFI安全啟動也不一定需要TPM。
2. Bitlocker並不會加密UEFI分區,因為UEFI韌體不知道如何解密它。
3. Bitlocker和UEFI安全啟動無關,Bitlocker也不一定要求UEFI。
4. Bitlocker加密硬碟會造成效能損失,對機械硬碟有5%-15%的效能降低,但對SSD影響較小。
5. Bitlocker和TPM+密碼聯合使用後,如果密碼丟失或者TPM損壞(可能性很小),則需要Recovery PIN(超長)。如果Recovery PIN丟失,個人使用者資料將會丟失(就算TPM拆下來也沒有用)。企業使用者可以啟用BitLocker Active Directory Recovery Password Viewer (RSAT),這樣Recovery PIN會儲存在企業活動目錄網域服務器中,丟失後只要打個電話給IT就可以了,這也是為什麼企業為什麼不擔心密碼丟失而大規模使用Bitlocker的原因。詳見(BitLocker Active Directory Recovery Password Viewer Overview)
更多系統安全文章:
老狼:Bitlocker、TPM和系統安全?zhuanlan.zhihu.com老狼:趣話安全啟動:迷思與啟示?zhuanlan.zhihu.com老狼:UEFI安全啟動?zhuanlan.zhihu.com老狼:基於靜態可信根(SRTM)的Bitlocker的工作原理是什嗎??zhuanlan.zhihu.com
TPM:dTPM(硬體)和fTPM(韌體類比的軟體模組)