EFS只能加密存儲在磁盤上的數據,這是壹種安全的本地信息加密服務。EFS使用核心文件加密技術在NTFS卷上存儲加密文件。
它可以防止入侵者未經允許物理訪問敏感數據(竊取筆記本電腦、硬盤等)。)
EFS是如何運作的
當用戶使用EFS加密文件時,必須有壹個公鑰和壹個私鑰。如果用戶沒有,EFS服務會自動生成壹對。對於新手用戶來說,即使完全不懂加密,也可以加密文件,可以是單個文件,也可以是文件夾,這樣所有寫入文件夾的文件都會自動加密。
壹旦用戶發出加密文件的命令或試圖將文件添加到加密文件夾,EFS將采取以下步驟:
第壹步:NTFS首先在該文件所在卷的卷信息目錄下創建壹個名為efs0.log的日誌文件(該目錄隱藏在根目錄下),在復制過程中出現錯誤時使用該文件進行恢復。
第二步:然後EFS調用CryptoAPI設備環境。設備環境使用Microsoft基本加密提供程序1.0來生成密鑰。當這個設備環境打開時,EFS生成FEK(文件加密密鑰)。FEK的長度為128位(僅限美國和加拿大),該文件采用DESX加密算法加密。
步驟3:獲得公鑰/私鑰對;如果這個密鑰不可用(當EFS第壹次被調用時),EFS生成壹個新的密鑰對。EFS使用1024位RSA算法加密FEK。
步驟4: EFS為當前用戶創建壹個數據解密塊(DDF ), FEK存儲在這裏,然後用公鑰加密。
第五步:如果在系統中設置了加密代理,EFS將同時創建壹個數據恢復字段(DRF),然後把用恢復代理密鑰加密的FEK放在DRF中。對於定義的每個恢復代理,EFS將創建壹個數據恢復代理(DRA)。Winxp沒有恢復代理的功能,所以沒有這個步驟。此區域的目的是當用戶解密文件時,解密的文件可能不可用。這些用戶稱為恢復代理。恢復代理在EDRP(加密數據恢復策略)中定義,這是壹種域安全策略。如果未設置域的EDRP,則使用本地EDRP。在任壹情況下,當加密發生時,EDRP必須存在(因此至少定義了壹個恢復代理)。DRF包含由RSA加密的FEK和恢復代理的公鑰。如果EDRP列表中有多個恢復代理,FEK必須用每個恢復代理的公鑰加密,因此必須為每個恢復代理創建壹個DRF。
第六步:加密文件包括加密數據,DDF和所有DRF被寫入磁盤。
第7步:在加密文件所在的文件夾下創建壹個名為Efs0.tmp的臨時文件。要加密的內容將被復制到這個臨時文件中,然後原始文件將被加密的數據覆蓋。默認情況下,EFS使用128位DESX算法加密文件數據,但Windows也允許更強大的168位3DES算法加密文件,這就是FIPS算法。
步驟8:刪除步驟1中創建的文本文件和步驟7中生成的臨時文件。
加密過程的圖片請參考/EFS/PIC/Attribute/EFS _ example . gif。
紫色:EFS屬性大小
天藍色:計算機安全標識符和用戶號。它指定EFS存儲證書的文件夾。為了拿到文件。
文件夾的名稱,EFS會做壹些轉換。
5a 56b 378 1c 365429 a 851ff 09d 040000-數據存儲在$EFS。
78b 3565 a 29543619ff 15a 8000004d 0-換算後的結果。
2025018970-69384732-167712168-1232-轉換為十進制。
s-1-5-21-2025018970-693384732-167712168-1232-加上安全標識符前綴。
生成的文件夾是:
% user profile % \ application data \ Microsoft \ Crypto \ RSA \ S-1-5-21-2025018970-693384732167712168-1232 \
粉色:公鑰特征
黃色:私鑰全局唯壹標識符(也稱為容器名)。當EFS從CryptoAPI提供者獲得設備環境時,使用該名稱。如果$EFS屬性只有壹個DDF,則可以從$efs計算出容器名稱。但是當更多的用戶加入這個文件時(將會有更多的DDF和DRF),私鑰全局唯壹標識符並不能保存所有的用戶,其他的必須根據公鑰的存儲特性從證書中恢復。
紅色:加密提供程序的名稱(Microsoft base cryptographic provider v . 1.0)。
綠色:用戶名,DDF和DRF的所有者。
藍色:加密FEK。通常情況下,FEK是128比特,但經過1024比特的RSA密鑰加密後,其長度就變成了1024比特。