自從微軟在Windows Vista首次引入Bitlocker以來,它已經(jīng)越來越多的出現(xiàn)在我們的周圍。尤其是企業(yè)用戶,Bitlocker的保護(hù)已經(jīng)變得不可缺少。本文將深入討論它的原理和如何提高它的安全性。 什么是Bitlocker?BitLocker 驅(qū)動(dòng)加密是集成在Windows Server 2008和Windows Vista及以后版本中的一個(gè)新的安全特性,它通過緊密集成在Windows操作系統(tǒng)中的方案,來幫助降低數(shù)據(jù)偷竊或丟失導(dǎo)致的泄露,被盜,或不正確地報(bào)廢計(jì)算機(jī)硬件所帶來的實(shí)際威脅。BitLocker 是一種全卷加密技術(shù),如果計(jì)算機(jī)在所安裝操作系統(tǒng)脫機(jī)時(shí)受損,則該技術(shù)可確保存儲(chǔ)在此計(jì)算機(jī)上的數(shù)據(jù)不會(huì)暴露。 它是針對(duì)具有兼容的受信任的平臺(tái)模塊 (TPM) 微型芯片和 BIOS 的系統(tǒng)而設(shè)計(jì)的。 如果存在這些組件,則 BitLocker 將使用它們來增強(qiáng)對(duì)數(shù)據(jù)的保護(hù),并幫助確保早期啟動(dòng)組件的完整性。 此功能通過加密整個(gè)卷來幫助防止數(shù)據(jù)被盜或未經(jīng)授權(quán)查看。 簡(jiǎn)單來說,BitLocker會(huì)將Windows的安裝分區(qū)或者其他用于保存文件的分區(qū)進(jìn)行加密,并將密鑰保存在硬盤之外的地方,并對(duì)早期啟動(dòng)組件完整性檢查,合并到一起來增強(qiáng)數(shù)據(jù)保護(hù)。 BitLocker主要有兩種工作模式:TPM模式和U盤模式,同時(shí)為了實(shí)現(xiàn)更高程度的安全,我們還可以同時(shí)啟用這兩種模式。本文主要討論TPM模式。 TPM和BitlockerTPM(Trusted Platform Module,可信平臺(tái)模塊)是根據(jù)國(guó)際行業(yè)標(biāo)準(zhǔn)組織可信計(jì)算組(TCG,其中包括微軟、英特爾和惠普等公司)規(guī)范制作的模塊,可以是dTPM真實(shí)硬件也可以是fTPM等由固件模擬的軟件模塊。TPM 1.2最早大規(guī)模商用,現(xiàn)在TPM2.0也開始廣泛使用了。 TPM的主要作用是利用安全的經(jīng)過驗(yàn)證的加密密鑰帶來強(qiáng)大的設(shè)備安全性。TPM功能的核心是簽注密鑰,這是在生產(chǎn)過程中內(nèi)置到TPM硬件的加密密鑰。這個(gè)簽注密鑰的私鑰部分絕不會(huì)出現(xiàn)在TPM外部或暴露給其他組件、軟件、程序或個(gè)人。另一個(gè)關(guān)鍵密鑰是存儲(chǔ)根密鑰,該密鑰也存儲(chǔ)在TPM內(nèi);它被用來保護(hù)其他應(yīng)用程序創(chuàng)建的TPM密鑰,使這些密鑰只能由TPM通過被稱為綁定的過程來解密,TPM也是通過該過程鎖定數(shù)據(jù)到設(shè)備。與簽注密鑰不同,只有當(dāng)TPM設(shè)備第一次被初始化或新用戶獲得所有權(quán)時(shí),存儲(chǔ)根密鑰才會(huì)被創(chuàng)建。 TPM還可以通過平臺(tái)配置寄存器(PCR:Platform Configuration Register)機(jī)制來記錄系統(tǒng)的狀態(tài)。這允許TPM進(jìn)行預(yù)啟動(dòng)系統(tǒng)完整性檢查,也被稱為遠(yuǎn)程證明,這是一個(gè)功能強(qiáng)大的數(shù)據(jù)保護(hù)功能。通過將數(shù)據(jù)加密密鑰存儲(chǔ)在TPM中,數(shù)據(jù)可以有效地受到保護(hù),其中TPM有一系列參考值來檢查PCR們的狀態(tài)。只有系統(tǒng)狀態(tài)與存儲(chǔ)的PCR值匹配,這些密鑰才會(huì)啟封和使用,并且,只有在滿足特定硬件和軟件條件時(shí),才能夠訪問系統(tǒng)。 TPM是許多安全應(yīng)用的核心,我們今后會(huì)單獨(dú)介紹它。本文只要知道Bitlocker最關(guān)心的密鑰存儲(chǔ)和PCR即可。 Bitlocker原理我們僅僅介紹使用了TPM的Bitlocker。這就要求計(jì)算機(jī)安裝了TPM 1.2以上硬件(dTPM或者fTPM),其他沒有任何要求。整個(gè)解密的流程圖如下: (圖片來源MSDN) 圖解順序的步驟如下: 1. BIOS 啟動(dòng)并初始化TPM。并measure firmware部分敏感內(nèi)容和啟動(dòng)分區(qū)以及bootloader,將結(jié)果放入PCR組。 2.如果 PCR 值與期望值相匹配,則 TPM 將使用存儲(chǔ)根密鑰 (SRK) 對(duì)卷主密鑰 (VMK) 進(jìn)行解密。 3. 從卷中讀取加密 FVEK,并使用解密 VMK 對(duì)其進(jìn)行解密。 4. 訪問磁盤扇區(qū)時(shí),使用 FVEK 進(jìn)行解密。 5. 為應(yīng)用程序和過程提供解密數(shù)據(jù)。 其中SRK存儲(chǔ)在TPM芯片中,它是整個(gè)過程的信任根。BitLocker通過檢測(cè)PCR組,對(duì)主啟動(dòng)記錄 (MBR) 代碼、NTFS 啟動(dòng)扇區(qū)、NTFS 啟動(dòng)塊、啟動(dòng)管理器和其他重要組件進(jìn)行檢查,如果被更改,則第2步將出錯(cuò),要求輸入recovery PIN值。 Bitlocker作用以及局限如前文所說,BitLocker會(huì)將Windows的安裝分區(qū)或者其他用于保存文件的分區(qū)進(jìn)行加密,并將密鑰保存在硬盤之外的地方,并對(duì)早期啟動(dòng)組件完整性檢查,合并到一起來增強(qiáng)數(shù)據(jù)保護(hù)。 1. Windows安裝盤和其他資料盤的加密,保護(hù)了脫機(jī)攻擊。即把磁盤拆下來到別的機(jī)器上讀出結(jié)果來。這樣就算你的筆記本硬盤丟失了,里面的重要信息別人也拿不走。注意這里bootloader所在的UEFI啟動(dòng)分區(qū)并沒有加密。 2. 啟動(dòng)組件完整性檢查,保證了如果啟動(dòng)組件被更改,就拒絕啟動(dòng),防止被植入惡意代碼,造成整個(gè)鏈條的崩潰。 但是啟用TPM后,因?yàn)镾RK存儲(chǔ)在TPM中,而不是像USB方式那樣隨時(shí)帶走。這樣雖然便利,不需要開機(jī)輸入密碼,但是硬件整體丟失后也為竊賊造成了方便。所以微軟推薦采取TPM加PIN碼的方式,可以大大降低數(shù)據(jù)泄漏的風(fēng)險(xiǎn)。 安全性Bitlocker采用AES128或者256來加密數(shù)據(jù),十分安全。固件通過measure啟動(dòng)中關(guān)鍵組件并存入PCR中保證了啟動(dòng)路徑不被攻擊,聽起來現(xiàn)在已經(jīng)十分安全了,但是很久之前就被發(fā)現(xiàn)有一個(gè)漏洞:“邪惡女服務(wù)員攻擊”。 它所描述的就是這樣一種情形:當(dāng)計(jì)算機(jī)主人離開旅館客房,而計(jì)算機(jī)無人看守時(shí),一個(gè)邪惡的女服務(wù)生或任何其他可以進(jìn)入這個(gè)房間的人,就可以隨意鼓搗這臺(tái)計(jì)算機(jī)了。因?yàn)樵谙到y(tǒng)引導(dǎo)期間,BitLocker需要與用戶交互來獲得一個(gè)口令: 而這個(gè)階段在Bootloader,而bootloader所在的UEFI啟動(dòng)分區(qū)并沒有加密。這就造成了可乘之機(jī): 1. 該邪惡的女服務(wù)員將惡意軟件放入U(xiǎn)盤,開機(jī)直接進(jìn)入shell,將惡意軟件copy到UEFI分區(qū)并修改啟動(dòng)路徑。 2. 主人回家開機(jī)。 3. 惡意軟件模仿Bitlocker彈出需要密碼的界面。 4. 主人不明就里,輸入密碼。 5. 惡意軟件截獲秘密,發(fā)送到特定郵箱。它清空自己痕跡并重新啟動(dòng)。 6. 由于惡意軟件痕跡被完全清除,PCR正常,正牌Bitlocker要求密碼,主人又看到密碼界面,以為輸錯(cuò)了,又輸一遍,并順利進(jìn)入系統(tǒng),一切正常。 7. 第二天,邪惡服務(wù)員乘主人不在,拿著密碼開機(jī)并copy關(guān)鍵數(shù)據(jù)到U盤。 8. 邪惡女服務(wù)員消失。一個(gè)巨大的陰謀正在醞釀。。。。。。。OMG?。?/p> 有什么應(yīng)對(duì)的辦法嗎?其實(shí)你一定還記得我們介紹過的UEFI安全啟動(dòng)吧(UEFI安全啟動(dòng)),它會(huì)驗(yàn)證Bootloader的簽名,它和Bitlocker配合起來可以防止這個(gè)風(fēng)險(xiǎn)。 其他有一些雜項(xiàng)需要說明一下: 1. Bitlocker不一定需要TPM. UEFI安全啟動(dòng)也不一定需要TPM。 2. Bitlocker并不會(huì)加密UEFI分區(qū),因?yàn)閁EFI固件不知道如何解密它。 3. Bitlocker和UEFI安全啟動(dòng)無關(guān),Bitlocker也不一定要求UEFI。 4. Bitlocker加密硬盤會(huì)造成性能損失,對(duì)機(jī)械硬盤有5%-15%的性能降低,但對(duì)SSD影響較小。 5. Bitlocker和TPM+密碼聯(lián)合使用后,如果密碼丟失或者TPM損壞(可能性很小),則需要Recovery PIN(超長(zhǎng))。如果Recovery PIN丟失,個(gè)人用戶數(shù)據(jù)將會(huì)丟失(就算TPM拆下來也沒有用)。企業(yè)用戶可以啟用BitLocker Active Directory Recovery Password Viewer (RSAT),這樣Recovery PIN會(huì)存儲(chǔ)在企業(yè)活動(dòng)目錄域服務(wù)器中,丟失后只要打個(gè)電話給IT就可以了,這也是為什么企業(yè)為什么不擔(dān)心密碼丟失而大規(guī)模使用Bitlocker的原因。詳見(BitLocker Active Directory Recovery Password Viewer Overview) |
|