標籤:
Windows加密是安全體系的重要基礎和組成部分。現代CPU的保護模式是系統安全的硬體基石,基於CPU硬體的特權分級,Windows讓自身的關鍵系統代碼運行在高處理器特權級的核心模式,各種應用程式則運行在低處理器特權級的使用者態,保證了系統層面的基本安全控制邏輯(如記憶體、檔案等系統資源的存取控制機制等)的有效性。加密技術與系統安全控制邏輯的結合,使得使用者資訊在面對一定程度上不可靠的儲存和傳輸環境時,如電腦失竊、存在網路嗅探的情形下,仍能保持其私密性、不可篡改的完整性等安全屬性。
Windows加密技術可以從兩個層面予以討論。其一是基本的密碼編譯演算法服務,這是基本的層面,在這個層面上,摘要,對稱式加密,非對稱式加密等基本的密碼編譯演算法可以通過CryptoAPI等作業系統API介面,為應用程式所用。其二是Windows系統加密功能,這個層面的內容包括EFS,使用者資訊保護,SSL等網路加密協議等等。Windows在其基本密碼編譯演算法服務的基礎上,建立一個較為完善的加密系統。這個加密系統一方面保護Windows系統(單機和域)的安全,另一方面,也提供了可供應用程式直接使用的系統級加密保護服務。
Windows密碼編譯演算法以服務提供軟體包(CSP)機制組織管理。Windows定義了CSP的架構及其API。通過這些API函數,應用程式可以枚舉系統中存在的CSP,選擇符合自己需要的CSP,使用CSP所實現的演算法進行加密操作。每個CSP包含有來自某個廠商實現的一組密碼編譯演算法和密鑰保護機制,不同的CSP可以含有相同演算法的不同實現。有的CSP是與硬體結合的,演算法邏輯和密鑰保護實現在獨立的硬體上,這種CSP起著介面適配作用,使得應用軟體與這些加密硬體隔離開來。微軟在Windows中預置了幾個CSP,這些CSP所包含的密碼編譯演算法在所有的Windows電腦上都是立即可用的。通過CSP架構,應用軟體可以使用Windows定義的統一API,實施加密操作。這樣,應用很容易適應不同的密碼編譯演算法實現方式。看上去差異很大的加密實現方式,對於應用程式來說,只是CSP名稱的差異。CSP的選用很容易做成可以配置的選項,有應用系統集中管控或者由終端使用者自行選擇。
Windows加密系統的目標有,保護Windows電腦和Windows網路自身、使用者賬戶安全、使用者資料安全。Windows系統發行介質含有微軟的公開金鑰,使用基於數位簽章技術的程式碼簽署機制,來驗證系統組件的完整性。這一完整性保證了系統代碼的確來自微軟官方,不會被第三方篡改。
在Windows被安裝到一台電腦上的時候,會隨機產生該電腦的安全標識(SID)和裝置主要金鑰。裝置主要金鑰被用來保護本機電腦邊界之內的資料,驗證裝置在Windows域中成員資格。
在Windows中建立一個使用者帳戶時,會產生一個使用者SID和使用者主要金鑰。使用者主要金鑰密鑰被使用者口令加密保護。Windows系統為使用者對一些重要的安全資料進行了加密,如數位憑證私密金鑰、系統工具已儲存的網路登入口令等等,這些都是由使用者主要金鑰所保護的。由於使用者主要金鑰使用使用者口令加密儲存,所以管理員強制重設使用者口令時,是無法解密恢複原來的主要金鑰的。這時,我們會看到這樣的提示:“您正在重設xxxx的密碼。如果這樣做,xxxx將丟失網站或網路資源的所有個人認證和儲存的密碼”。這也意味著即使是管理員,也不能通過重設口令這一途徑讀取使用者的加密資訊。值得注意的是,使用者口令本身使用了摘要演算法加密,為了對抗字典攻擊,Windows在註冊表中只儲存了摘要值的一半位元。由於還原主要金鑰需要全部的位元,這使得攻擊者即使“碰”上了註冊表中的這一半位元,也不能解密還原使用者的主要金鑰。
Windows加密檔案系統(EFS)對使用者資料提供了保護。加密檔案系統使用混合加密體制保護檔案內容。每個EFS加密的檔案都使用隨機產生的不同對稱金鑰(FEK)保護。FEK被使用者數位憑證公開金鑰加密保護,還原FEK需要能夠訪問使用者的檔案加密認證私密金鑰。這一私密金鑰又得到使用者主要金鑰的保護,使用者主要金鑰又在使用者口令的保護之下。由於重設使用者密碼會失去原先的主要金鑰,從而失去EFS的訪問能力,所以會導致不再能夠開啟原先使用EFS加密的檔案。這種情況下,唯一的途徑是使用在第一次加密檔案時,備份的EFS檔案加密認證私密金鑰。EFS加密與不加密的區別在於,對於不加密的檔案,具有管理員權限的賬戶,不登入使用者賬戶,也能開啟這些檔案。裝置或者硬碟失竊時,資訊竊賊是很容易得到這樣一個許可權的,把硬碟掛在自己的電腦上就可以了。EFS以強加密阻止這一情況的發生。如果冠希當初勾選了檔案夾的加密屬性以開啟EFS,再配合以一個不易猜測的Windows開機登入口令,他就不會因送修電腦而被那麼早的被送上新聞頭條。
在保護本地各種加密要素安全的基礎上,Windows實現了一系列網路加密協議,有些是Windows網路專用的,如RDP協議;有些是互連網通用的,如SSL、IPSec等。應用程式可以通過相關的加密API,利用這些系統中實現了的加密協議,加密保護應用程式在網路上傳輸的資訊。
Windows加密技術概述