本發(fā)明專(zhuān)利技術(shù)屬于文件恢復(fù)技術(shù)領(lǐng)域,具體涉及一種EFS加密文件的恢復(fù)方法及系統(tǒng)。本發(fā)明專(zhuān)利技術(shù)通過(guò)創(chuàng)建一個(gè)新的大小相同的EFS加密文件,再通過(guò)將需恢復(fù)的EFS加密文件的加密數(shù)據(jù)和$EFS屬性數(shù)據(jù)與新建的EFS加密文件的加密數(shù)據(jù)和$EFS屬性數(shù)據(jù)進(jìn)行替換,進(jìn)而使得新建的EFS加密文件和需恢復(fù)的EFS加密文件相同,從而恢復(fù)誤刪除、格式化等原因丟失的EFS加密文件。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專(zhuān)利技術(shù)屬于文件恢復(fù)
,具體涉及一種EFS加密文件的恢復(fù)方法及系統(tǒng)。
技術(shù)介紹
NTFS 是 Windows NT 以及之后的 Windows 2000、Windows XP、Windows Server2003> Windows Server 2008> Windows Vista 和 Windows 7 的標(biāo)準(zhǔn)文件系統(tǒng)。NTFS 取代了文件分配表(FAT)文件系統(tǒng),為Microsoft的Windows系列操作系統(tǒng)提供文件系統(tǒng)。NTFS中,卷中所有存放的數(shù)據(jù)均在一個(gè)叫$MFT的文件中,叫主文件表(MasterFileTable)。]fli$MFT則由文件記錄(File Record)數(shù)組構(gòu)成。File Record的大小一般是固定的,通常情況下均為1KB,這個(gè)概念相當(dāng)于Linux中的inode。File Record在$MFT文件中物理上是連續(xù)的,且從O開(kāi)始編號(hào)。$MFT僅供File System本身組織、架構(gòu)文件系統(tǒng)使 用,這在NTFS中稱(chēng)為元數(shù)據(jù)(MFTadata)。主文件表(MFT)的是一個(gè)映射磁盤(pán)中儲(chǔ)存的所有對(duì)象的索引文件。在MFT中,NTFS磁盤(pán)上的每個(gè)文件(包括MFT自身)至少有一映射項(xiàng)。MFT中的各項(xiàng)包含如下數(shù)據(jù)大小、時(shí)間及時(shí)間戳、安全屬性和數(shù)據(jù)位置。文件加密,是一種根據(jù)要求在操作系統(tǒng)層自動(dòng)地對(duì)寫(xiě)入存儲(chǔ)介質(zhì)的數(shù)據(jù)進(jìn)行加密的技術(shù)。EFS (Encrypting File System,加密文件系統(tǒng))是 Windows 2000 及以上 Windows版本中,用于對(duì)NTFS文件系統(tǒng)卷上的文件進(jìn)行加密。EFS加密是基于公鑰策略的。在使用EFS加密一個(gè)文件或文件夾時(shí),系統(tǒng)首先會(huì)生成一個(gè)由偽隨機(jī)數(shù)組成的FEK (File Encryption Key,文件加密鑰匙),然后將利用FEK和數(shù)據(jù)擴(kuò)展標(biāo)準(zhǔn)X算法創(chuàng)建加密后的文件,并把它存儲(chǔ)到硬盤(pán)上,同時(shí)刪除未加密的原始文件。隨后系統(tǒng)利用你的公鑰加密FEK,并把加密后的FEK存儲(chǔ)在同一個(gè)加密文件中。而在訪(fǎng)問(wèn)被加密的文件時(shí),系統(tǒng)首先利用當(dāng)前用戶(hù)的私鑰解密FEK,然后利用FEK解密出文件。在首次使用EFS時(shí),如果用戶(hù)還沒(méi)有公鑰/私鑰對(duì)(統(tǒng)稱(chēng)為密鑰),則會(huì)首先生成密鑰,然后加密數(shù)據(jù)。如果登錄到了域環(huán)境中,密鑰的生成依賴(lài)于域控制器,否則依賴(lài)于本地機(jī)器。EFS加密系統(tǒng)對(duì)用戶(hù)是透明的。這也就是說(shuō),如果你加密了一些數(shù)據(jù),那么你對(duì)這些數(shù)據(jù)的訪(fǎng)問(wèn)將是完全允許的,并不會(huì)受到任何限制。而其他非授權(quán)用戶(hù)試圖訪(fǎng)問(wèn)加密過(guò)的數(shù)據(jù)時(shí),就會(huì)收到“訪(fǎng)問(wèn)拒絕”的錯(cuò)誤提示。EFS加密的用戶(hù)驗(yàn)證過(guò)程是在登錄Windows時(shí)進(jìn)行的,只要登錄到Windows,就可以打開(kāi)任何一個(gè)被授權(quán)的加密文件。目前已知EFS文件的恢復(fù)方法,只局限于文件沒(méi)有被刪除,或者文件所在分區(qū)沒(méi)有被格式化的情況。但是,當(dāng)一個(gè)EFS文件因?yàn)槲募徽`刪除、格式化等原因數(shù)據(jù)丟失時(shí),目前沒(méi)有任何公開(kāi)的方法或者軟件能夠恢復(fù)。
技術(shù)實(shí)現(xiàn)思路
為了解決上述問(wèn)題,本專(zhuān)利技術(shù)的目的在于提供一種EFS加密文件的恢復(fù)方法及系統(tǒng),用于恢復(fù)誤刪除、格式化等原因丟失的EFS加密文件。為了實(shí)現(xiàn)上述專(zhuān)利技術(shù)目的,本專(zhuān)利技術(shù)所采取的技術(shù)方案如下一種EFS加密文件的恢復(fù)方法,包括以下步驟掃描獲取待恢復(fù)的第一 EFS加密文件的第一主文件表(MFT)所在磁盤(pán)中的位置;根據(jù)所述第一主文件表(MFT)獲取該第一 EFS加密文件的加密數(shù)據(jù)和$EFS屬性數(shù)據(jù)在磁盤(pán)中的位置;在NTFS文件系統(tǒng)的分區(qū)中創(chuàng)建第二 EFS加密文件,并掃描獲取該第二 EFS加密文件的第二主文件表(MFT)所在磁盤(pán)的位置,該第二 EFS加密文件的大小和所述第一 EFS加密文件大小相同; 根據(jù)所述第二主文件表(MFT)獲取該第二 EFS加密文件的加密數(shù)據(jù)和$EFS屬性數(shù)據(jù)在磁盤(pán)中的位置;讀取所述第一 EFS加密文件的加密數(shù)據(jù),并將其寫(xiě)入到所述第二 EFS加密文件的加密數(shù)據(jù)所在磁盤(pán)中的位置;讀取所述第一 EFS加密文件的$EFS屬性數(shù)據(jù),并將其寫(xiě)入到第二 EFS加密文件的$EFS屬性數(shù)據(jù)所在磁盤(pán)中的位置。進(jìn)一步的,根據(jù)主文件表(MFT)獲取EFS加密文件的加密數(shù)據(jù)和EFS屬性數(shù)據(jù)在磁盤(pán)中的位置,具體是讀取EFS加密文件的主文件表(MFT),并根據(jù)該主文件表(MFT)中的未命名$DATA屬性獲取加密數(shù)據(jù)所在磁盤(pán)中的位置;讀取EFS加密文件的主文件表(MFT),并根據(jù)該主文件表(MFT)中的$EFS屬性獲取$EFS屬性數(shù)據(jù)所在磁盤(pán)中的位置。進(jìn)一步的,將所述第一 EFS加密文件的加密數(shù)據(jù)寫(xiě)入到第二 EFS加密文件的加密數(shù)據(jù)所在位置時(shí),一次或多次讀寫(xiě)完成。進(jìn)一步的,讀取所述第一 EFS加密文件的$EFS屬性數(shù)據(jù),并將其寫(xiě)入到第二 EFS加密文件的$EFS屬性數(shù)據(jù)所在磁盤(pán)中的位置,具體是判斷所述第一 EFS加密文件的$EFS屬性是否為常駐屬性,若是,則先將第一主文件表(MFT)中的更新序列數(shù)組(UpdateSequenceArray)的每個(gè)元素依次和第一主文件表(MFT)中每個(gè)扇區(qū)最后2個(gè)字節(jié)數(shù)據(jù)進(jìn)行數(shù)據(jù)交換,再讀取其$EFS屬性數(shù)據(jù);若否,則直接根據(jù)第一 EFS加密文件的$EFS屬性,讀取第一 EFS加密文件的$EFS屬性數(shù)據(jù);判斷所述第二 EFS加密文件的$EFS屬性是否為常駐屬性,若是,則將第一 EFS加密文件的$EFS屬性數(shù)據(jù)寫(xiě)入第二 EFS加密文件的$EFS屬性數(shù)據(jù)所在的位置,存盤(pán)前需先將第二主文件表(MFT)中的更新序列數(shù)組(Update SequenceArray)的每個(gè)元素依次和第二主文件表(MFT)中每個(gè)扇區(qū)最后2個(gè)字節(jié)數(shù)據(jù)進(jìn)行數(shù)據(jù)交換;若否,則直接將第一 EFS加密文件的$EFS屬性數(shù)據(jù)寫(xiě)入第二 EFS加密文件的$EFS屬性數(shù)據(jù)所在磁盤(pán)中的位置。進(jìn)一步的,所述創(chuàng)建的第二 EFS加密文件所在的分區(qū)與所述第一 EFS加密文件所在的分區(qū)不同。進(jìn)一步的,在向第二 EFS加密文件寫(xiě)入第一 EFS加密文件的加密數(shù)據(jù)和$EFS屬性數(shù)據(jù)后,還包括重新啟動(dòng)計(jì)算機(jī);或者重新加載所述第二 EFS加密文件所在的磁盤(pán)分區(qū)?!NEFS加密文件的恢復(fù)系統(tǒng),該系統(tǒng)包括以下模塊第一主文件表(MFT)位置獲取模塊,掃描獲取待恢復(fù)的第一 EFS加密文件的第一主文件表(MFT)所在磁盤(pán)中的位置;第一 EFS加密文件的加密數(shù)據(jù)和$EFS屬性數(shù)據(jù)獲取模塊,根據(jù)所述第一主文件表(MFT)獲取該第一 EFS加密文件的加密數(shù)據(jù)和$EFS屬性數(shù)據(jù)在磁盤(pán)中的位置;第二 EFS加密文件創(chuàng)建模塊,在NTFS文件系統(tǒng)的分區(qū)中創(chuàng)建第二 EFS加密文件,并掃描獲取該第二 EFS加密文件的第二主文件表(MFT)所在磁盤(pán)的位置,該第二 EFS加密文件的大小和所述第一 EFS加密文件大小相同;第二 EFS加密文件的加密數(shù)據(jù)和$EFS屬性獲取模塊,根據(jù)所述第二主文件表(MFT)獲取該第二 EFS加密文件的加密數(shù)據(jù)和$EFS屬性數(shù)據(jù)在磁盤(pán)中的位置;加密數(shù)據(jù)寫(xiě)入模塊,讀取所述第一 EFS加密文件的加密數(shù)據(jù),并將其寫(xiě)入到所述第二 EFS加密文件的加密數(shù)據(jù)所在磁盤(pán)中的位置;$EFS屬性數(shù)據(jù)寫(xiě)入模塊,讀取所述第一 EFS加密文件的$EFS屬性數(shù)據(jù),并將其寫(xiě)入到第二 EFS加密文件的$EFS屬性數(shù)據(jù)所在磁盤(pán)中的位置?!みM(jìn)一步的,所述第一 EFS加密文件的加密數(shù)據(jù)和$本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種EFS加密文件的恢復(fù)方法,其特征在于包括以下步驟:掃描獲取待恢復(fù)的第一EFS加密文件的第一主文件表(MFT)所在磁盤(pán)中的位置;根據(jù)所述第一主文件表(MFT)獲取該第一EFS加密文件的加密數(shù)據(jù)和$EFS屬性數(shù)據(jù)在磁盤(pán)中的位置;在NTFS文件系統(tǒng)的分區(qū)中創(chuàng)建第二EFS加密文件,并掃描獲取該第二EFS加密文件的第二主文件表(MFT)所在磁盤(pán)的位置,該第二EFS加密文件的大小和所述第一EFS加密文件大小相同;根據(jù)所述第二主文件表(MFT)獲取該第二EFS加密文件的加密數(shù)據(jù)和$EFS屬性數(shù)據(jù)在磁盤(pán)中的位置;讀取所述第一EFS加密文件的加密數(shù)據(jù),并將其寫(xiě)入到所述第二EFS加密文件的加密數(shù)據(jù)所在磁盤(pán)中的位置;讀取所述第一EFS加密文件的$EFS屬性數(shù)據(jù),并將其寫(xiě)入到第二EFS加密文件的$EFS屬性數(shù)據(jù)所在磁盤(pán)中的位置。
【技術(shù)特征摘要】
【專(zhuān)利技術(shù)屬性】
技術(shù)研發(fā)人員:涂彥暉,
申請(qǐng)(專(zhuān)利權(quán))人:珠海市彥安科技有限公司,
類(lèi)型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。