一种EFS加密文件的恢复方法及系统技术方案

技术编号:8366731 阅读:365 留言:0更新日期:2013-02-28 05:04
本发明专利技术属于文件恢复技术领域,具体涉及一种EFS加密文件的恢复方法及系统。本发明专利技术通过创建一个新的大小相同的EFS加密文件,再通过将需恢复的EFS加密文件的加密数据和$EFS属性数据与新建的EFS加密文件的加密数据和$EFS属性数据进行替换,进而使得新建的EFS加密文件和需恢复的EFS加密文件相同,从而恢复误删除、格式化等原因丢失的EFS加密文件。

【技术实现步骤摘要】

本专利技术属于文件恢复
,具体涉及一种EFS加密文件的恢复方法及系统
技术介绍
NTFS 是 Windows NT 以及之后的 Windows 2000、Windows XP、Windows Server2003> Windows Server 2008> Windows Vista 和 Windows 7 的标准文件系统。NTFS 取代了文件分配表(FAT)文件系统,为Microsoft的Windows系列操作系统提供文件系统。NTFS中,卷中所有存放的数据均在一个叫$MFT的文件中,叫主文件表(MasterFileTable)。]fli$MFT则由文件记录(File Record)数组构成。File Record的大小一般是固定的,通常情况下均为1KB,这个概念相当于Linux中的inode。File Record在$MFT文件中物理上是连续的,且从O开始编号。$MFT仅供File System本身组织、架构文件系统使 用,这在NTFS中称为元数据(MFTadata)。主文件表(MFT)的是一个映射磁盘中储存的所有对象的索引文件。在MFT中,NTFS磁盘上的每个文件(包括MFT自身)至少有一映射项。MFT中的各项包含如下数据大小、时间及时间戳、安全属性和数据位置。文件加密,是一种根据要求在操作系统层自动地对写入存储介质的数据进行加密的技术。EFS (Encrypting File System,加密文件系统)是 Windows 2000 及以上 Windows版本中,用于对NTFS文件系统卷上的文件进行加密。EFS加密是基于公钥策略的。在使用EFS加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的FEK (File Encryption Key,文件加密钥匙),然后将利用FEK和数据扩展标准X算法创建加密后的文件,并把它存储到硬盘上,同时删除未加密的原始文件。随后系统利用你的公钥加密FEK,并把加密后的FEK存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用户的私钥解密FEK,然后利用FEK解密出文件。在首次使用EFS时,如果用户还没有公钥/私钥对(统称为密钥),则会首先生成密钥,然后加密数据。如果登录到了域环境中,密钥的生成依赖于域控制器,否则依赖于本地机器。EFS加密系统对用户是透明的。这也就是说,如果你加密了一些数据,那么你对这些数据的访问将是完全允许的,并不会受到任何限制。而其他非授权用户试图访问加密过的数据时,就会收到“访问拒绝”的错误提示。EFS加密的用户验证过程是在登录Windows时进行的,只要登录到Windows,就可以打开任何一个被授权的加密文件。目前已知EFS文件的恢复方法,只局限于文件没有被删除,或者文件所在分区没有被格式化的情况。但是,当一个EFS文件因为文件被误删除、格式化等原因数据丢失时,目前没有任何公开的方法或者软件能够恢复。
技术实现思路
为了解决上述问题,本专利技术的目的在于提供一种EFS加密文件的恢复方法及系统,用于恢复误删除、格式化等原因丢失的EFS加密文件。为了实现上述专利技术目的,本专利技术所采取的技术方案如下一种EFS加密文件的恢复方法,包括以下步骤扫描获取待恢复的第一 EFS加密文件的第一主文件表(MFT)所在磁盘中的位置;根据所述第一主文件表(MFT)获取该第一 EFS加密文件的加密数据和$EFS属性数据在磁盘中的位置;在NTFS文件系统的分区中创建第二 EFS加密文件,并扫描获取该第二 EFS加密文件的第二主文件表(MFT)所在磁盘的位置,该第二 EFS加密文件的大小和所述第一 EFS加密文件大小相同; 根据所述第二主文件表(MFT)获取该第二 EFS加密文件的加密数据和$EFS属性数据在磁盘中的位置;读取所述第一 EFS加密文件的加密数据,并将其写入到所述第二 EFS加密文件的加密数据所在磁盘中的位置;读取所述第一 EFS加密文件的$EFS属性数据,并将其写入到第二 EFS加密文件的$EFS属性数据所在磁盘中的位置。进一步的,根据主文件表(MFT)获取EFS加密文件的加密数据和EFS属性数据在磁盘中的位置,具体是读取EFS加密文件的主文件表(MFT),并根据该主文件表(MFT)中的未命名$DATA属性获取加密数据所在磁盘中的位置;读取EFS加密文件的主文件表(MFT),并根据该主文件表(MFT)中的$EFS属性获取$EFS属性数据所在磁盘中的位置。进一步的,将所述第一 EFS加密文件的加密数据写入到第二 EFS加密文件的加密数据所在位置时,一次或多次读写完成。进一步的,读取所述第一 EFS加密文件的$EFS属性数据,并将其写入到第二 EFS加密文件的$EFS属性数据所在磁盘中的位置,具体是判断所述第一 EFS加密文件的$EFS属性是否为常驻属性,若是,则先将第一主文件表(MFT)中的更新序列数组(UpdateSequenceArray)的每个元素依次和第一主文件表(MFT)中每个扇区最后2个字节数据进行数据交换,再读取其$EFS属性数据;若否,则直接根据第一 EFS加密文件的$EFS属性,读取第一 EFS加密文件的$EFS属性数据;判断所述第二 EFS加密文件的$EFS属性是否为常驻属性,若是,则将第一 EFS加密文件的$EFS属性数据写入第二 EFS加密文件的$EFS属性数据所在的位置,存盘前需先将第二主文件表(MFT)中的更新序列数组(Update SequenceArray)的每个元素依次和第二主文件表(MFT)中每个扇区最后2个字节数据进行数据交换;若否,则直接将第一 EFS加密文件的$EFS属性数据写入第二 EFS加密文件的$EFS属性数据所在磁盘中的位置。进一步的,所述创建的第二 EFS加密文件所在的分区与所述第一 EFS加密文件所在的分区不同。进一步的,在向第二 EFS加密文件写入第一 EFS加密文件的加密数据和$EFS属性数据后,还包括重新启动计算机;或者重新加载所述第二 EFS加密文件所在的磁盘分区。—种EFS加密文件的恢复系统,该系统包括以下模块第一主文件表(MFT)位置获取模块,扫描获取待恢复的第一 EFS加密文件的第一主文件表(MFT)所在磁盘中的位置;第一 EFS加密文件的加密数据和$EFS属性数据获取模块,根据所述第一主文件表(MFT)获取该第一 EFS加密文件的加密数据和$EFS属性数据在磁盘中的位置;第二 EFS加密文件创建模块,在NTFS文件系统的分区中创建第二 EFS加密文件,并扫描获取该第二 EFS加密文件的第二主文件表(MFT)所在磁盘的位置,该第二 EFS加密文件的大小和所述第一 EFS加密文件大小相同;第二 EFS加密文件的加密数据和$EFS属性获取模块,根据所述第二主文件表(MFT)获取该第二 EFS加密文件的加密数据和$EFS属性数据在磁盘中的位置;加密数据写入模块,读取所述第一 EFS加密文件的加密数据,并将其写入到所述第二 EFS加密文件的加密数据所在磁盘中的位置;$EFS属性数据写入模块,读取所述第一 EFS加密文件的$EFS属性数据,并将其写入到第二 EFS加密文件的$EFS属性数据所在磁盘中的位置。·进一步的,所述第一 EFS加密文件的加密数据和$本文档来自技高网
...

【技术保护点】
一种EFS加密文件的恢复方法,其特征在于包括以下步骤:扫描获取待恢复的第一EFS加密文件的第一主文件表(MFT)所在磁盘中的位置;根据所述第一主文件表(MFT)获取该第一EFS加密文件的加密数据和$EFS属性数据在磁盘中的位置;在NTFS文件系统的分区中创建第二EFS加密文件,并扫描获取该第二EFS加密文件的第二主文件表(MFT)所在磁盘的位置,该第二EFS加密文件的大小和所述第一EFS加密文件大小相同;根据所述第二主文件表(MFT)获取该第二EFS加密文件的加密数据和$EFS属性数据在磁盘中的位置;读取所述第一EFS加密文件的加密数据,并将其写入到所述第二EFS加密文件的加密数据所在磁盘中的位置;读取所述第一EFS加密文件的$EFS属性数据,并将其写入到第二EFS加密文件的$EFS属性数据所在磁盘中的位置。

【技术特征摘要】

【专利技术属性】
技术研发人员:涂彦晖
申请(专利权)人:珠海市彦安科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1