Windows 加密原理詳解


BitLocker加密原理

一、總體概況:

Bitlocker 可以拆分為bit locker,直接翻譯的話就是比特鎖,意思是每個 bit 都加密。Bitlocker 使用 AES 加密算法加密整個卷來保護數據。簡單來說,BitLocker 會將 Windows 的安裝分區或者其他用於保存文件的分區進行加密,並將密鑰保存在硬盤之外的地方,並對早期啟動組件完整性檢查,合並到一起來增強數據保護。

BitLocker 主要有兩種工作模式:TPM 模式和 U盤模式,同時為了實現更高程度的安全,我們還可以同時啟用這兩種模式。

二、加密模式

關鍵詞:TPM(Trusted Platform Module,可信平台模塊)
(以下內容摘自windows自帶系統介紹:學習加以整理)

TPM (受信任的平台模塊) 可用於提高電腦的安全性。  它可由 BitLocker 驅動器加密、Windows Hello 等服務用安全的創建建和存儲加密密鑰,以及確認設備上的操作系統和固件符合要求,並且未被篡改,通常,它是母板上單獨的芯片。
TPM的主要作用是利用安全的經過驗證的加密密鑰帶來強大的設備安全性。TPM功能的核心是簽注密鑰,這是在生產過程中內置到TPM硬件的加密密鑰。這個簽注密鑰的私鑰部分絕不會出現在TPM外部或暴露給其他組件、軟件、程序或個人。另一個關鍵密鑰是存儲根密鑰,該密鑰也存儲在TPM內;它被用來保護其他應用程序創建的TPM密鑰,使這些密鑰只能由TPM通過被稱為綁定的過程來解密,TPM也是通過該過程鎖定數據到設備。與簽注密鑰不同,只有當TPM設備第一次被初始化或新用戶獲得所有權時,存儲根密鑰才會被創建。

(以下內容摘自CSDN學習:學習借鑒)
有三種認證機制用來構建 Bitlocker。

透明運行模式:此模式利用 TPM 硬件來提供透明的用戶體驗。所謂透明,就是用戶可以在毫無知覺的情況下正常的使用電腦,可以在系統盤加密的情況且未檢測到對啟動組件的修改的情況下通過 TPM 硬件提供的密鑰正常登錄到 windows。由於這種方式允許攻擊者物理接觸計算機並且允許攻擊者啟動已關閉的計算機,所以這種方式容易受到冷啟動攻擊。

用戶認證模式:此模式要求用戶在預啟動環境下提供引導 PIN 或密碼進行認證。

USB 密鑰認證模式:此模式下用戶必須將包含啟動密鑰的 USB 設備插入計算機才能啟動受保護的操作系統。並且此模式下要求計算機 BIOS 支持在預加載階段讀取 USB 設備。密鑰還可以通過智能卡設備獲取,使用智能卡設備比單純地將密鑰保存在 USB 設備中要安全,因為智能卡使用內置的加密處理器將密鑰加密存儲,防止密鑰因智能卡內容泄露被簡單地獲取到。

BitLocker的透明運行模式和用戶認證模式使用 TPM 硬件檢測 BIOS 和 MBR 預加載環境是否有未經授權的改變。如果檢測到任何未經授權的更改,BitLocker 將在 USB 設備上請求一個恢復密鑰。該加密密鑰用於解密卷主密鑰,並允許繼續運行引導過程。

三、BitLocker 加密原理:

(以下內容摘自知乎,學習加以補充)

(圖片來源MSDN)
Encrypted-加密的
Decrypt-解密
圖解順序的步驟如下:
1.BIOS 啟動並初始化TPM。並measure firmware(測量固件部分敏感內容和啟動分區,我理解是類似身份驗證等,輸入的password信息)以及bootloader,將結果放入PCR組。
(BlOS(Basic Input Output System)從字義上稱為“基本輸出輸入系統”, 專門負責系統硬件各種參數設定,本質上是“程序”,也就是一組“代碼”。 在嵌入式操作系統中,BootLoader是在操作系統內核運行之前運行。可以初始化硬件設備、建立內存空間映射圖,從而將系統的軟硬件環境帶到一個合適狀態,以便為最終調用操作系統內核准備好正確的環境。)
2.如果 PCR 值與期望值相匹配,則 TPM 將使用存儲根密鑰 (SRK) 對卷主密鑰 (VMK) 進行解密。
3.從卷中讀取加密 FVEK,並使用解密 VMK 對其進行解密。
4.訪問磁盤扇區時,使用 FVEK 進行解密。
5.為應用程序和過程提供解密數據。
其中SRK存儲在TPM芯片中,它是整個過程的信任根。BitLocker通過檢測PCR組,對主啟動記錄 (MBR) 代碼、NTFS 啟動扇區、NTFS 啟動塊、啟動管理器和其他重要組件進行檢查,如果被更改,則第2步將出錯,要求輸入recovery PIN值。

全卷加密密鑰(Full Volume Encryption Key,FVEK)
整個 BitLocker 體系中最重要的一把密鑰,每一個加密的磁盤分區都有自己獨立的 FVEK 密鑰。FVEK 使用 AES 算法加密解密扇區密鑰。
卷主密鑰(Volume Master Key,VMK)
Windows 操作系統使用 VMK 通過 AES 算法加密解密不同磁盤分區的 FVEK。
存儲根密鑰(Storage Root Key,SRK)
如果使用了 TPM 芯片,TPM 會生產一個 RSA 算法的 SRK,然后用 SRK 密鑰對 VMK 密鑰進行加密解密。
啟動密鑰(Startup Key)
如果使用 U 盤,Windows 系統會在 U 盤保存一個啟動密鑰,然后用該密鑰通過 AES 算法對 VMK 密鑰進行加密解密。

我大體整理了一個中文的思路圖。

經過查詢資料,我認為Password應該起到的作用是利用TPM生成全卷加密密鑰,進而可以解密磁盤的VMK密鑰,進而可以得出整個磁盤原始信息。主要加密利用的原理是AES算法。

四、Bitlocker的能否破解?

經過網上的瀏覽資料,可以分為以下幾個破解方向:
1,如果備份密鑰放在其他主機磁盤中,黑客可以通過查詢主機中的備份密鑰進行破解。
2,如果備份密鑰保存在windows賬戶中,則黑客可以通過套取用戶密碼等方式,進行賬戶破解,進而得到備份密鑰進行破解。
3,使用BitLocker而不使用TPM時,所需加密密鑰存儲在USB閃存驅動器中,必須提供該驅動器才能解鎖存儲在卷上的數據。
4,針對算法破解,BitLocker使用AES(高級加密標准/Advanced Encryption Standard)128位或256位的加密算法進行加密,其加密的安全可靠性得到了保證,通常情況下,只要密碼有足夠強度,

BitLocker 驅動器加密功能默認使用128位 ASE 算法進行加密,也可以設置使用256位 ASE 算法。ASE 算法的復雜性可以參考下面的內容。
如果采用暴力破解的方式破解128位 ASE 算法大概需要嘗試 2的126.1次方(2^126.1)次才能破解;256位 AES 算法大概需要嘗試 2的254.4次方(2^254.4)次才能破解。
如果是1秒鍾嘗試20億億次不同的組合。1075/(20*108*108*86400*365)=1058/86400/365/2>1050年。這么長時間遠遠大於太陽的壽命,6*109億年。
即使是我國“天河二號”超級計算機的運算速度每秒10億億次,枚舉思路的時間消耗也非常大。

這種加密思路就很難被破解,但現在也有一些其他針對加密機制等等破解方法。

①如BitCracker
是第一個針對使用BitLocker加密的存儲設備(硬盤,USB Pendrive,SD卡等)的開源密碼破解工具,BitLocker是Windows Vista,7,8.1和10(Ultimate,Pro和Enterprise)上提供的加密功能版本)。BitLocker提供了許多不同的身份驗證方法來加密存儲設備,如可信平台模塊(TPM),智能卡,恢復密碼,用戶提供的密碼。
通過字典攻擊,BitCracker嘗試找到正確的用戶密碼或恢復密碼來解密加密的存儲設備。它已在CUDA和OpenCL中實現。
但經過查閱資料,這種方法需要提供大量的字典,進行攻擊,仍然屬於字典攻擊。

②據微軟透露,BitLocker沒有刻意設置后門。沒有后門,執法機構就無法從安全通道獲取微軟提供的用戶驅動器上的數據。BitLocker的“透明運行模式”和“用戶認證模式”使用TPM硬件檢測BIOS和MBR預加載環境是否有未經授權的改變。如果檢測到任何未經授權的更改,BitLocker將在USB設備上請求一個恢復密鑰。該加密密鑰用於解密卷主密鑰,並允許繼續運行引導過程[45]。

③一旦受BitLocker保護的機器開始運行,其密鑰就會存儲在內存中,可能易受能夠訪問物理內存的進程的攻擊,例如通過1394或Thunderbolt DMA通道攻擊。從Windows 10版本1803開始,微軟向BitLocker添加名為“內核DMA保護”的新功能,可防止通過Thunderbolt 3端口進行的DMA攻擊。2015年11月10日,微軟發布了一項安全更新,修補BitLocker中的安全漏洞。漏洞使攻擊者可以繞過目標計算機上的Kerberos身份驗證,只有在計算機已加入域,目標系統已啟用BitLocker且沒有PIN或USB密鑰的情況下,才能利用該繞過漏洞。

所以,我認為如果針對Bitlocker的加密算法,利用字典攻擊,枚舉攻擊,時間消耗非常大,依靠目前的常規算力難以實現,但是,Bitlocker的具體加密機制上,如TPM等等程序機制中,仍存在一些可以利用的加密漏洞,仍具有可以破解的可能性.
(此為知乎上的存在的破解思路:https://zhuanlan.zhihu.com/p/437950204)

五、Bitlocker的算法加密改進

BitLocker加密是近幾代Windows操作系統(包括Win7/Win8/Win8.1)都有的功能,開啟BitLocker后可對分區中的數據進行加密,防止你的數據失竊,在很多新出廠的Windows平板設備中也都默認啟用該功能。
在Win10 TH2中微軟引入了名為XTS-AES加密算法,使得數據加密更加安全。BitLocker支持128位和256位XTS-AES Key,不過你需要注意的是,采用新加密算法加密的驅動器在舊版本Windows操作系統中是不可以被訪問的。改進后的BitLocker可以讓用戶通過Azure活動目錄恢復設備。

主要新特性包括:
通過Azure活動目錄加密和恢復設備。
除了使用微軟賬戶,也可通過加入到Azure Active Directory域來自動加密設備。當設備被加密后,BitLocker恢復密鑰會自動托管到Azure Active Directory。這樣你便可以輕松在線恢復設備。
DMA端口保護。
用於配置預啟動恢復的新組策略。你現在可以自定義預啟動恢復提示信息以及恢復URL地址。微軟一直在不斷增強系統的安全性能,一方面提升系統的網絡安全性,另一方面提升本地數據存儲安全性,這些功能對於企業客戶來說尤為重要。

XTS-AES算法介紹(截取知乎):
XTS即基於XEX(XOR-ENCRYPT-XOR)的密文竊取算法的可調整的密碼本模式(Tweakable Codebook mode),該算法主要用於以數據單元(包括扇區、邏輯磁盤塊等)為基礎結構的存儲設備中靜止狀態數據的加密。
我們都知道磁盤上的數據是有一定格式的,比如一個扇區是512字節,磁盤加密直接要對寫入扇區的明文進行加密,記錄在磁盤扇區上的是相應的密文。
而我們通過傳統的AES加密方法,比如CBC加密模式,密文須包含一個128bit的初始向量。那么問題來了,我們豈不是要騰出額外的128個bit專門存儲初始向量?
這樣做是增加了磁盤的開銷,而且明文和密文在扇區上的存儲也不是一一對應的,這給磁盤底層的加密實現帶來很大的麻煩。
更為關鍵的是,傳統的加密算法,更改密匙非常不便,一旦更改,就意味着要重新進行密匙擴展算法,對磁盤來說要增加很大的開銷,同時還要擔心密匙泄露的問題。
在這種情況下,針對磁盤加密的特點,2002年,Moses Liskov,Ronald L.Rivest, David Wagner,首次提出了可調整的分組密碼。
這個概念,跟傳統的分組密碼相比,除了密匙和明文這兩個輸入外,還引入另外一個輸入---tweak,即可調整值。
這樣做的好處是,在不更改密匙的情況下,僅僅改變tweak值,就可以給加密系統提供多變性,既減少了磁盤的開銷,也不怕密匙泄露,因為tweak值是公開的,就算泄露了tweak值,如果不知道密匙,是無法破解系統的。而且,這種算法,不需要初始向量,也就避免我們上面所述的明文和密文在扇區上的存儲不對應的問題。
XTS-AES算法是基於以上思想,被IEEE采用的一個標准。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM