專利名稱:一種加密文件系統數據的恢復方法和裝置的制作方法
技術領域:
本發明涉及文件加密的領域,特別地,涉及一種加密文件系統數據的恢復方法和
裝直。
背景技術:
在使用加密文件系統(Encrypting File System, EFS)加密一個文件或文件夾時,操作系統首先會生成一個由偽隨機數組成的FEK(File Encryption Key,文件加密密鑰),然后將利用FEK和數據擴展標準X算法創建加密后的文件,并把它存儲到硬盤上,同時刪除未加密的原始文件。而在訪問被加密文件時,操作系統首先利用當前用戶的私鑰解密FEK,然后利用FEK解密出加密文件。經過EFS加密過的加密文件是以密文的形式存在的,當存儲加密文件的硬盤丟失,在沒有登錄操作系統對應賬戶的情況下是無法訪問加密文件的,所以,經過EFS加密過的文件的保密性強。因此,越來越多的企業和個人利用EFS來保護商業秘密或個人隱私等的數據文件。在實際應用中,EFS在操作系統底層自動完成對數據文件的加密和解密,對于操作系統上層的用戶來說加密文件是完全透明的,所以加密用戶可以直接打開、編輯、復制或黏貼經過EFS加密過的加密文件。然而,由于EFS加密強度大、加密過程復雜并且微軟公司從未透露過EFS的加密細節,用戶在使用EFS加密數據文件之后需要及時備份密鑰,如果用戶沒有及時備份密鑰,當發生經EFS加密的文件被誤刪除或操作系統有故障等情況時,用戶將無法通過登錄對應賬戶來借助加密文件系統組件來恢復EFS加密文件,也無法通過將硬盤連接到其它操作系統來恢復EFS加密文件,導致EFS加密文件永久丟失,對用戶造成無法彌補的損失。
發明內容
為解決上述問題,本發明提供一種加密文件系統數據的恢復方法和裝置,用于解決現有技術中,在操作系統出現故障或加密文件被誤刪除時,EFS加密文件無法恢復,導致EFS加密文件永久損失的問題。為此,本發明提供了一種加密文件系統數據恢復方法,其中,包括:
獲取加密文件的完整文件和/或碎片文件;
解析出所述加密文件的私鑰GUID、公鑰指紋和FEK ;
根據所述私鑰GUID和公鑰指紋檢索并解密對應私鑰文件以提取私鑰,利用私鑰解密所述FEK,以得到FEK明文;
從所述FEK明文中提取對稱加密算法標識符和對稱加密算法密鑰,再根據所述加密文件數據的相對偏移量解密出所述加密文件數據的明文;
將所述加密文件數據的明文輸出給用戶。其中,所述解析出所述加密文件的私鑰GUID、公鑰指紋和FEK具體包括:
獲取所述EFS加密文件和/或碎片文件,提取出所述加密文件的加密屬性數據流; 解析所述加密文件的加密屬性數據流以得到所述加密文件的私鑰GUID、公鑰指紋和加密 FEK。其中,所述根據所述私鑰GUID和公鑰指紋檢索并解密對應私鑰文件以提取私鑰,利用私鑰解密所述FEK具體包括:
根據所述私鑰GUID和公鑰指紋檢索所述加密文件的私鑰文件和包含私鑰文件的個人信息交換標準PFX證書文件;
解密加密文件的私鑰文件或PFX證書文件提取對應的私鑰。其中,所述根據所述私鑰GUID和公鑰指紋檢索對應的私鑰文件或包含私鑰文件的PFX證書文件具體包括:
如果檢索到的加密文件的私鑰文件,則提取私鑰文件中標準的DPAPI加密塊,從標準的DPAPI加密塊提取主密鑰⑶ID ;
以所述主密鑰GUID為關鍵字在所述數據源的用戶主密鑰存儲區下檢索主密鑰文件及其歷史憑據文件;
根據用戶登錄密碼和加密用戶SID從所述主密鑰文件及其歷史憑據文件中解析出64字節主密鑰;
根據所述DPAPI加密塊信息從所述主密鑰派生出會話密鑰,使用所述會話密鑰解析出所述加密文件的私鑰塊明文;
從所述私鑰塊明文的指定位置中提取RSA參數并構造出OPENSSL編碼結構的私鑰。其中,所述根據所述私鑰GUID和公鑰指紋檢索對應的私鑰文件或包含私鑰文件的PFX證書文件具體包括:
如果檢索到的私鑰為PFX證書文件,將所述PFX證書文件讀入內存,并在內存中將所述PFX證書文件從DER編碼轉化成OPENSSL編碼結構;
輸入所述PFX證書文件中私鑰的加密密碼,使用PFX證書中的散列算法,計算對應的消息認證代碼以驗證加密密碼是否正確,驗證通過后從所述PFX證書文件中提取OPENSSL編碼結構的私鑰。其中,所述從所述FEK明文中提取對稱加密算法標識符和對稱加密算法密鑰具體包括:
從所述FEK明文偏移O字節處讀取雙字長密鑰長度,從所述FEK明文偏移8字節處讀取雙字長對稱加密算法標識符,從所述FEK明文偏移16字節處讀取雙字長密鑰長度的對稱加密算法密鑰。其中,所述根據所述加密文件數據的相對偏移量解密出所述加密文件數據的明文具體包括:
根據所述對稱加密算法標識符獲取對稱加密算法的分組長度,將所述加密文件的完整文件和/或碎片文件按照分組長度進行分組,并計算各個分組數據的相對偏移量;
如果第i個分組數據的相對偏移量為512的倍數,則以對稱加密算法密鑰為密鑰,全O向量為初始化向量,以對稱加密算法解密該分組數據,以得到該分組數據的明文。其中,在所述對稱加密算法為AES-256高級加密算法時,將所述第i個分組數據轉化成二個64位整型數據,并將上述二個64位整型數據與所述第i個分組數據的相對偏移量進行異或操作。
其中,在所述對稱加密算法為DES標準加密算法時,將所述第i個分組數據作為一個64位整型數據,并將上述一個64位整型數據與所述第i個分組數據的相對偏移量進行異或操作。其中,所述根據所述加密文件數據的相對偏移量解密出所述加密文件數據的明文還包括:
如果第i個分組數據的相對偏移量不是512的倍數,則以對稱加密算法密鑰為密鑰,以第i_l個分組數據的數據為初始化向量,以對稱加密算法解密該分組數據,以得到該分組數據的明文。本發明還提供一種加密文件系統數據恢復的裝置,其中包括:
獲取模塊,用于獲取加密文件的完整文件和/或碎片文件;
解析模塊,用于解析出所述加密文件的私鑰GUID、公鑰指紋和FEK ;
檢索模塊,根據所述私鑰GUID和公鑰指紋檢索并解密計算對應私鑰文件以提取私鑰,利用私鑰解密所述FEK,以得到FEK明文;
解密模塊,用于從所述FEK明文中提取對稱加密算法標識符和對稱加密算法密鑰,再根據所述加密文件數據的相對偏移量解密相關數據獲取其數據明文;
輸出模塊,用于將所述加密文件數據的明文輸出給用戶。其中,所述解析模塊還用于:
獲取所述EFS加密文件和/或碎片文件,提取出所述加密文件的加密屬性數據流;解析出所述加密文件的加密屬性數據流以得到所述加密文件的私鑰GUID、公鑰指紋和加密FEK。其中,所述檢索模塊包括提取子模塊,所述提取子模塊用于:
根據所述私鑰GUID和公鑰指紋檢索所述加密文件的私鑰文件和包含私鑰文件的PFX證書文件;
解密加密文件的私鑰文件或PFX證書文件提取對應的私鑰。其中,所述提取子模塊還用于:
如果檢索到的加密文件是私鑰文件,則提取私鑰文件中標準的DPAPI加密塊,從標準的DPAPI加密塊提取主密鑰⑶ID ;
以所述主密鑰GUID為關鍵字在所述數據源的用戶主密鑰存儲區下檢索主密鑰文件及其歷史憑據文件;
根據用戶登錄密碼和加密用戶SID從所述主密鑰文件及其歷史憑據文件中解析出64字節主密鑰;
根據所述DPAPI加密塊信息從所述主密鑰派生出會話密鑰,使用所述會話密鑰解析出所述加密文件的私鑰塊明文;
從所述私鑰塊明文的指定位置中提取RSA參數并構造出OPENSSL編碼結構的私鑰。其中,所述提取子模塊還用于:
如果檢索到的私鑰為PFX證書文件,將所述PFX證書文件讀入內存,并在內存中將所述PFX證書文件從DER編碼轉化成OPENSSL編碼結構;
輸入所述PFX證書文件中私鑰的加密密碼,使用PFX證書中的散列算法,計算對應的消息認證代碼以驗證加密密碼是否正確,驗證通過后從所述PFX證書文件中提取OPENSSL編碼結構的私鑰。其中,所述解密模塊還用于:
從FEK明文偏移O字節處讀取雙字長密鑰長度,從所述FEK明文偏移8字節處讀取雙字長對稱加密算法標識符,從所述FEK明文偏移16字節處讀取雙字長密鑰長度的對稱加密算法密鑰。其中,所述解密模塊包括分組子模塊,所述分組子模塊用于:
根據所述對稱加密算法標識符獲取對稱加密算法的分組長度,將所述加密文件的完整文件和/或碎片文件按照分組長度進行分組,并計算各個分組數據的相對偏移量;
如果第i個分組數據的相對偏移量為512的倍數,則以對稱加密算法密鑰為密鑰,全O向量為初始化向量,以對稱加密算法解密該分組數據,以得到該分組數據的明文。其中,所述分組子模塊還用于:
在所述對稱加密算法為AES-256高級加密算法時,將所述第i個分組數據轉化成二個64位整型數據,并將上述二個64位整型數據與所述第i個分組數據的相對偏移量進行異或操作。其中,所述分組子模塊還用于:
在所述對稱加密算法為DES標準加密算法時,將所述第i個分組數據作為一個64位整型數據,并將上述一個64位整型數據與所述第i個分組數據的相對偏移量進行異或操作。其中,所述解密模塊還用于:
如果第i個分組數據的相對偏移量不是512的倍數,則以對稱加密算法密鑰為密鑰,以第i_l個分組數據為初始化向量,以對稱加密算法解密該分組數據,以得到該分組數據的明文。
本發明具有下述有益效果:
在本發明提供的加密文件系統數據恢復方法的實施例中,通過獲取單元輸入EFS加密文件的完整文件和/或碎片文件,解析出EFS加密文件的FEK明文,從FEK明文中提取對稱加密算法標識符和對稱加密算法密鑰,再根據EFS加密文件數據的相對偏移量解密出加密文件數據的明文,從而恢復EFS加密文件,避免EFS加密文件永久丟失,保障了 EFS加密文件的數據安全和使用。
圖1為本發明加密文件系統數據的恢復方法實施例的流程 圖2為本發明加密文件系統數據的恢復方法實施例中的加密文件的邏輯結構示意圖;圖3為本發明加密文件系統數據的恢復方法實施例中解析加密文件的私鑰GUID、公鑰指紋和FEK的流程 圖4為本發明加密文件系統數據的恢復方法實施例中加密文件處于加密狀態的內容示意 圖5為本發明加密文件系統數據的恢復方法實施例中檢索私鑰文件和包含私鑰的PFX證書文件的流程 圖6為本發明加密文件系統數據的恢復方法實施例中提取私鑰的流程圖;圖 為本發明加密文件系統數據的恢復方法實施例中根據FEK明文獲取加密文件數據明文的流程 圖8為本發明加密文件系統數據的恢復方法實施例中加密文件數據明文的內容示意
圖; 圖9為本發明加密文件系統數據恢復的裝置第一實施例的結構示意 圖10為本發明加密文件系統數據恢復的裝置第二實施例的結構示意圖。
具體實施例方式為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本發明作進一步詳細的說明。圖1為本發明加密文件系統數據的恢復方法實施例的流程圖,圖2為本實施例中加密文件的邏輯結構圖,圖2為本發明加密文件系統數據的恢復方法實施例中的加密文件的邏輯結構示意圖。如圖1所示,本實施例加密文件系統數據的恢復方法的工作流程包括如下具體步驟:
步驟101、獲取加密文件的完整文件和/或碎片文件。本發明各個實施例中的加密文件均為EFS加密文件,當加密文件被誤刪除或者操作系統發生故障等情況時,用戶需要對加密文件進行恢復操作。本實施例中加密文件的邏輯結構如圖2所示,加密文件包括頭部結構和文件體,頭部結構包括數據解密域(DataDecryption Field, DDF)加密段和數據恢復域(Data Recovery Field, DRF)加密段,DDF 加密段和DRF加密段包括有加密文件的公鑰指紋和加密的文件加密密鑰(File EncryptionKey,FEK)。在本步驟中,首先獲取加密文件的完整文件,或者獲取加密文件的碎片文件;然后通過加密文件的文件屬性分離出加密文件的完整文件或者加密文件的所有的碎片文件file,并分別提取加密文件對應的加密屬性數據流file.$EFS,然后進入步驟102。步驟102、解析加密文件的私鑰⑶ID、公鑰指紋和FEK。在本步驟中,解析加密文件的加密屬性數據流file.$EFS,得到與該用戶的私鑰對應的全球唯一標識符(Globally Unique Identif ier,⑶ID)、加密文件的DDF加密段和/或DRF加密段,然后從每一個DDF加密段和每一個DRF加密段提取加密文件的公鑰指紋和加密的FEK,并將上述的公鑰指紋和加密FEK添加到該加密文件的恢復密鑰對集〈私鑰GUID,公鑰指紋,加密FEK>中,然后進入步驟103。步驟103、根據私鑰GUID和公鑰指紋檢索私鑰并解密對應私鑰文件以提取私鑰,利用私鑰解密FEK,以得到FEK明文。在本步驟中,根據恢復密鑰對集中的私鑰GUID和公鑰指紋在加密文件的數據源上檢索該加密文件對應的私鑰文件以及包含有私鑰文件的PFX證書文件,使用加密文件的密碼解密上述的私鑰文件或PFX證書文件,以提取到該加密文件的私鑰。接著,利用該加密文件的私鑰解密步驟102中得到的加密FEK,從而得到加密文件的文件加密密鑰一FEK明文,然后進入步驟104。步驟104、從FEK明文中提取對稱加密算法標識符和對稱加密算法密鑰,再根據加密文件數據的相對偏移量解密出加密文件數據的明文。在本步驟中,從FEK明文中提取對稱加密算法標識和對應的對稱加密算法密鑰,然后根據加密文件的完整文件和/或碎片文件中數據的相對偏移量解密相關數據,從而得到加密文件的原始的數據明文,然后進入步驟105。步驟105、將加密文件數據的明文輸出給用戶。在本步驟中,通過輸出單元將加密文件數據的明文輸出給用戶;其中,輸出單元可以為顯示器、打印設備等,輸出單元也可以與通訊網絡連接,以對數據明文進行遠程發送。在本實施例中,通過獲取單元輸入EFS加密文件的完整文件和/或碎片文件,解析出EFS加密文件的FEK明文,從FEK明文中提取對稱加密算法標識符和對稱加密算法密鑰,再根據EFS加密數據的相對偏移量解密出加密文件數據的明文,從而恢復EFS加密文件,避免EFS加密文件永久丟失,保障了 EFS加密文件的數據安全和使用。圖3為本發明加密文件系統數據的恢復方法實施例中解析加密文件的私鑰GUID、公鑰指紋和FEK的流程圖,圖4為本發明加密文件系統數據的恢復方法實施例中加密文件處于加密狀態的內容示意圖。如圖3所示,本實施例中解析加密文件的私鑰GUID、公鑰指紋和FEK的流程包括如下具體步驟:
步驟301、獲取雙字長DDF加密鏈偏移位置和DRF加密鏈的偏移位置。在本步驟中,讀取加密文件的文件屬性頭部結構EFS_ATR_HEADER,分別從文件屬性頭部結構EFS_ATR_HEADER偏移64字節和68字節處獲取雙字長DDF加密鏈偏移位置dwOffsetDDF和DRF加密鏈的偏移位置dwOffsetDRF,然后進入步驟302。步驟302、初始化當前已分析加密段個數和當前偏移位置。在本步驟中,從DDF加密鏈偏移位置dwOffsetDDF處讀取雙字長DDF加密段個數dwDDFNum,并初始化當前已分析加密段個數dwCurNum
O,同時初始化當前偏移位置dwCurOffset dwOffsetDDF+4,然后進入步驟303。步驟303、判斷當前已分析加密段個數是否等于雙字長DDF加密段個數。在本步驟中,判斷當前已分析加密段個數dwCurNum是否等于雙字長DDF加密段個數dwDDFNum,如果判斷結果為是,則完成解析DDF加密鏈,然后進入步驟309 ;如果判斷結果為否,則從當前偏移位置dwCurOffset個字節處讀取DDF頭部結構EFS_DDF_HEADER,然后從DDF頭部結構的EFS_DDF_HEADER偏移4字節處獲取雙字長加密憑據頭部結構相對偏移dwCredHeaderOffset,然后進入步驟 304。步驟304、讀取加密文件的公鑰指紋頭部結構。在本步驟中,從相對當前偏移位置dwCurOffset偏移dwCredHeaderOffset個字節處讀取加密憑據頭部結構EFS_CRED_HEADER,加密憑據頭部結構從EFS_CRED_HEADER偏移16個字節處讀取公鑰指紋頭部結構偏移dwFingerprintHeaderOffset,然后從加密憑據頭部結構EFS_CRED_HEADER偏移dwFingerprintHeaderOffset字節處讀取公鑰指紋頭部結構EFS_FINGERPRINT_HEADER,然后進入步驟 305。步驟305、讀取加密文件的公鑰指紋。在本步驟中,從公鑰指紋頭部結構EFS_FINGERPRINT_HEADER偏移O字節處讀取公鑰指紋的偏移位置dwFingerprintOffset,然后從公鑰指紋頭部結構EFS_FINGERPRINT_HEADER偏移dwFingerprintOffset個字節處讀取公鑰指紋,然后進入步驟306。步驟306、讀取加密用戶的私鑰⑶ID。在本步驟中,從公鑰指紋頭部結構EFS_FINGERPRINT_HEADER偏移8字節處讀取加密用戶的私鑰⑶ID的偏移位置dwKeyGuidOffset,然后判斷私鑰⑶ID的偏移位置dwKeyGuidOffset是否為0,若判斷結果為否,則從公鑰指紋頭部結構EFS_FINGERPRINT_HEADER偏移dwKeyGuidOffset個字節處讀取加密用戶的私鑰⑶ID,然后進入步驟307。步驟307、獲得加密文件的加密FEK。在本步驟中,分別從DDF頭部結構EFS_DDF_HEADER偏移8字節和12字節處讀取加密FEK的大小dwFekSize和偏移dwFekOffset,然后從DDF頭部結構EFS_DDF_HEADER偏移dwFekOffset的位置處讀取dwFekSize字節的加密FEK,從而得到一個如表I所示的恢復密鑰對,
權利要求
1.一種加密文件系統數據的恢復方法,其特征在于包括: 獲取加密文件的完整文件和/或碎片文件; 解析出所述加密文件的私鑰GUID、公鑰指紋和FEK ; 根據所述私鑰GUID和公鑰指紋檢索并解密對應私鑰文件以提取私鑰,利用私鑰解密所述FEK,以得到FEK明文; 從所述FEK明文中提取對稱加密算法標識符和對稱加密算法密鑰,再根據所述加密文件數據的相對偏移量解密出所述加密文件數據的明文; 將所述加密文件數據的明文輸出給用戶。
2.根據權利要求1所述的加密文件系統數據的恢復方法,其特征在于,所述解析出所述加密文件的私鑰GUID、公鑰指紋和FEK具體包括: 獲取所述EFS加密文件和/或碎片文件,提取出所述加密文件的加密屬性數據流; 解析所述加密文件的加密屬性數據流以得到所述加密文件的私鑰GUID、公鑰指紋和加密 FEK。
3.根據權利要求1所述的加密文件系統數據的恢復方法,其特征在于,所述根據所述私鑰GUID和公鑰指紋檢索并解密對應私鑰文件以提取私鑰,利用私鑰解密所述FEK具體包括: 根據所述私鑰GUID和公鑰指紋檢索所述加密文件的私鑰文件和包含私鑰文件的個人信息交換標準PFX證書文件; 解密加密文件的私鑰文件或PFX證書文件提取對應的私鑰。
4.根據權利要求3所述的加密文件系統數據的恢復方法,其特征在于,所述根據所述私鑰GUID和公鑰指紋檢索對應的私鑰文件或包含私鑰文件的PFX證書文件具體包括: 如果檢索到的加密文件的私鑰文件,則提取私鑰文件中標準的DPAPI加密塊,從標準的DPAPI加密塊提取主密鑰⑶ID ; 以所述主密鑰GUID為關鍵字在所述數據源的用戶主密鑰存儲區下檢索主密鑰文件及其歷史憑據文件; 根據用戶登錄密碼和加密用戶SID從所述主密鑰文件及其歷史憑據文件中解析出64字節主密鑰; 根據所述DPAPI加密塊信息從所述主密鑰派生出會話密鑰,使用所述會話密鑰解析出所述加密文件的私鑰塊明文; 從所述私鑰塊明文的指定位置中提取RSA參數并構造出OPENSSL編碼結構的私鑰。
5.根據權利要求3所述的加密文件系統數據的恢復方法,其特征在于,所述根據所述私鑰GUID和公鑰指紋檢索對應的私鑰文件或包含私鑰文件的PFX證書文件具體包括: 如果檢索到的私鑰為PFX證書文件,將所述PFX證書文件讀入內存,并在內存中將所述PFX證書文件從DER編碼轉化成OPENSSL編碼結構; 輸入所述PFX證書文件中私鑰的加密密碼,使用PFX證書中的散列算法,計算對應的消息認證代碼以驗證加密密碼是否正確,驗證通過后從所述PFX證書文件中提取OPENSSL編碼結構的私鑰。
6.根據權利要求1所述的加密文件系統數據的恢復方法,其特征在于,所述從所述FEK明文中提取對稱加密算法標識符和對稱加密算法密鑰具體包括:從所述FEK明文偏移O字節處讀取雙字長密鑰長度,從所述FEK明文偏移8字節處讀取雙字長對稱加密算法標識符,從所述FEK明文偏移16字節處讀取雙字長密鑰長度的對稱加密算法密鑰。
7.根據權利要求1所述的加密文件系統數據的恢復方法,其特征在于,所述根據所述加密文件數據的相對偏移量解密出所述加密文件數據的明文具體包括: 根據所述對稱加密算法標識符獲取對稱加密算法的分組長度,將所述加密文件的完整文件和/或碎片文件按照分組長度進行分組,并計算各個分組數據的相對偏移量; 如果第i個分組數據的相對偏移量為512的倍數,則以對稱加密算法密鑰為密鑰,全O向量為初始化向量,以對稱加密算法解密該分組數據,以得到該分組數據的明文。
8.根據權利要求7所述的加密文件系統數據的恢復方法,其特征在于,在所述對稱加密算法為AES-256高級加密算法時,將所述第i個分組數據轉化成二個64位整型數據,并將上述二個64位整型數據與所述第i個分組數據的相對偏移量進行異或操作。
9.根據權利要求7所述的加密文件系統數據的恢復方法,其特征在于,在所述對稱加密算法為DES標準加密算法時,將所述第i個分組數據作為一個64位整型數據,并將上述一個64位整型數據與所述第i個分組數據的相對偏移量進行異或操作。
10.根據權利要求7所述的加密文件系統數據的恢復方法,其特征在于,所述根據所述加密文件數據的相對偏移量解密出所述加密文件數據的明文還包括: 如果第i個分組數據的相對偏移量不是512的倍數,則以對稱加密算法密鑰為密鑰,以第i_l個分組數據的數據為初始化向量,以對稱加密算法解密該分組數據,以得到該分組數據的明文。
11.一種加密文件系統數據恢復的裝置,其特征在于包括: 獲取模塊,用于獲取加密文件的完整文件和/或碎片文件; 解析模塊,用于解析出所述加密文件的私鑰GUID、公鑰指紋和FEK ; 檢索模塊,根據所述私鑰GUID和公鑰指紋檢索并解密計算對應私鑰文件以提取私鑰,利用私鑰解密所述FEK,以得到FEK明文; 解密模塊,用于從所述FEK明文中提取對稱加密算法標識符和對稱加密算法密鑰,再根據所述加密文件數據的相對偏移量解密相關數據獲取其數據明文; 輸出模塊,用于將所述加密文件數據的明文輸出給用戶。
12.根據權利要求11所述的加密文件系統數據恢復的裝置,其特征在于,所述解析模塊還用于: 獲取所述EFS加密文件和/或碎片文件,提取出所述加密文件的加密屬性數據流; 解析出所述加密文件的加密屬性數據流以得到所述加密文件的私鑰GUID、公鑰指紋和加密FEK。
13.根據權利要求11所述的加密文件系統數據恢復的裝置,其特征在于,所述檢索模塊包括提取子模塊,所述提取子模塊用于: 根據所述私鑰GUID和公鑰指紋檢索所述加密文件的私鑰文件和包含私鑰文件的PFX證書文件; 解密加密文件的私鑰文件或PFX證書文件提取對應的私鑰。
14.根據權利要求13所述的加密文件系統數據恢復的裝置,其特征在于,所述提取子模塊還用于: 如果檢索到的加密文件為私鑰文件,則提取私鑰文件中標準的DPAPI加密塊,從標準的DPAPI加密塊提取主密鑰⑶ID ; 以所述主密鑰GUID為關鍵字在所述數據源的用戶主密鑰存儲區下檢索主密鑰文件及其歷史憑據文件; 根據用戶登錄密碼和加密用戶SID從所述主密鑰文件及其歷史憑據文件中解析出64字節主密鑰; 根據所述DPAPI加密塊信息從所述主密鑰派生出會話密鑰,使用所述會話密鑰解析出所述加密文件的私鑰塊明文; 從所述私鑰塊明文的指定位置中提取RSA參數并構造出OPENSSL編碼結構的私鑰。
15.根據權利要求13所述的加密文件系統數據恢復的裝置,其特征在于,所述提取子模塊還用于: 如果檢索到的私鑰為PFX證書文件時,將所述PFX證書文件讀入內存,并在內存中將所述PFX證書文件從DE R編碼轉化成OPENSSL編碼結構; 輸入所述PFX證書文件中私鑰的加密密碼,使用PFX證書中的散列算法,計算對應的消息認證代碼以驗證加密密碼是否正確,驗證通過后從所述PFX證書文件中提取OPENSSL編碼結構的私鑰。
16.根據權利要求11所述的加密文件系統數據恢復的裝置,其特征在于,所述解密模塊還用于: 從FEK明文偏移O字節處讀取雙字長密鑰長度,從所述FEK明文偏移8字節處讀取雙字長對稱加密算法標識符,從所述FEK明文偏移16字節處讀取雙字長密鑰長度的對稱加密算法密鑰。
17.根據權利要求16所述的加密文件系統數據恢復的裝置,其特征在于,所述解密模塊包括分組子模塊,所述分組子模塊用于: 根據所述對稱加密算法標識符獲取對稱加密算法的分組長度,將所述加密文件的完整文件和/或碎片文件按照分組長度進行分組,并計算各個分組數據的相對偏移量; 如果第i個分組數據的相對偏移量為512的倍數,則以對稱加密算法密鑰為密鑰,全O向量為初始化向量,以對稱加密算法解密該分組數據,以得到該分組數據的明文。
18.根據權利要求17所述的加密文件系統數據恢復的裝置,其特征在于,所述分組子模塊還用于: 在所述對稱加密算法為AES-256高級加密算法時,將所述第i個分組數據轉化成二個64位整型數據,并將上述二個64位整型數據與所述第i個分組數據的相對偏移量進行異或操作。
19.根據權利要求17所述的加密文件系統數據恢復的裝置,其特征在于,所述分組子模塊還用于: 在所述對稱加密算法為DES標準加密算法時,將所述第i個分組數據作為一個64位整型數據,并將上述一個64位整型數據與所述第i個分組數據的相對偏移量進行異或操作。
20.根據權利要求17所述的加密文件系統數據恢復的裝置,其特征在于,所述解密模塊還用于:如果第i個分 組數據的相對偏移量不是512的倍數,則以對稱加密算法密鑰為密鑰,以第i_l個分組數據為初始化向量,以對稱加密算法解密該分組數據,以得到該分組數據的明文。
全文摘要
本發明提供了一種加密文件系統數據的恢復方法和裝置,其中,方法包括獲取加密文件的完整文件和/或碎片文件;解析出加密文件的私鑰GUID、公鑰指紋和FEK;根據私鑰GUID和公鑰指紋提取私鑰,利用私鑰解密FEK以得到FEK明文;從FEK明文中提取對稱加密算法標識符和對稱加密算法密鑰,再根據加密文件數據的相對偏移量解密出加密文件數據的明文;將加密文件數據的明文輸出給用戶。在本發明提供的實施例中,從FEK明文中提取對稱加密算法標識符和對稱加密算法密鑰,再根據加密文件數據的相對偏移量解密出加密文件數據的明文,從而恢復EFS加密文件,避免EFS加密文件永久丟失,保障了EFS加密文件的數據安全和使用。
文檔編號H04L9/32GK103198264SQ201310080720
公開日2013年7月10日 申請日期2013年3月14日 優先權日2013年3月14日
發明者陳江勇, 錢鏡潔, 林藝濱 申請人:廈門市美亞柏科信息股份有限公司