飓风营救 找回失落的EFS加密文件

郭建伟2015-01-04 09:07应用 标签:飓风 加密 文件

系统自带的EFS加密功能你用过吗?使用EFS加密应该注意些什么问题,丢失了密钥和证书又该如何解决处理呢?来看看小梁和老徐的经历吧。

小梁想保护自己的一些重要文件,听别人介绍系统自带的EFS加密功能强悍实用,于是小梁决定采用此法保护数据。经过实际使用,果然觉得EFS加密方法很好用。过了一段时间,小梁觉得系统运行速度明显降低,于是重新格式化重装了系统,可是当其操作之前的EFS加密文件时,却无法进行正常访问了。这可急坏小梁,他赶紧向技术部的老徐求救,老徐问小梁:“您事先导出了证书和密钥文件了吗?”,“什么证书密钥啊!”,看着小梁一脸的迷茫,老徐好笑又无奈的说:“没有密钥和证书,EFS加密文件几乎无法恢复!”。“啊!我的重要文件难道就此消失了吗?”。看着小梁着急上火的摸样,老徐不紧不慢的说:“办法嘛,还是有的,就是比较麻烦!”。“快说嘛!再麻烦也比重要数据丢失好啊!”老徐并不着急:“要想找回加密文件,还得从EFS加密原理说起!”。

浅析EFS加密原理

老徐告诉小梁,EFS采用的是基于公钥和私钥相配合的加密策略。其实际操作过程比较复杂,简单的说,当加密文件时,Windows会根据当前用户密码派生出密钥,系统使用该密钥对公钥进行加密,之后使用该公钥对私钥进行加密。而且在初次使用EFS加密时,系统会随机产生私钥。小梁好奇的问:“公钥和私钥究竟是些什么文件,它们深藏何处呢?”。“问得好!”,老徐接着说:“加密后的私钥文件保存在“C:\Documents and Settings\账户名\Application Data\Microsoft\Crypto\RSA\SID”文件夹中,注意,其中的“账户名”表示使用EFS加密的账户名称,例如“Administrator”等。“SID”表示系统标示符,实际上就是一串字符,不同的电脑其SID可能不同,例如“S-1-5-21-842925246-1580818891-682003330”等。对应的,公钥文件和证书保存在“C:\Documents and Settings\Administrator\Application Data\Microsoft\SystemCertificates\My\Certificates”文件夹中。”

“有了公钥和私钥,就可以找回加密文件吗?小梁问道。老徐接着说:“当然还不够,还需要找到EFS主密钥文件,其保存在“C:\Documents and Settings\账户名\Application Data\Microsoft\Protect\SID”文件夹中。”“哦!原来解密EFS文件,还需要这么多密钥的紧密配合啊!”小梁如有所悟的说。”“NO!有了这些密钥还是不够的!”老徐补充道:“要想顺利找回EFS加密文件,总体来说必须拥有以下三个条件,其一是必须获得公钥和公钥证书,私钥和主密码文件,也就是上述三个文件夹中的所有文件。其二是必须使用原用户的账户和密码,其三是使用原账户的SID和RID身份标识信息。”“什么是SID和RID啊?”小梁发问道。“SID是Security Identifiers安全标识符的缩写,是标识用户、组和计算机帐户的唯一的字符串号码。RID即相对标示符,本地帐户的 SID 由计算机的 SID 和附加的 RID(相对标识符)组成。”

找回所需的密钥文件

老徐继续说:“从EFS加密原理分析,只要恢复了相关密钥文件,创建与原账户同名同密码的账户,再根据原账户信息对其SID和RID进行修改,就可以找回这些EFS加密文件了!”“这么复杂啊,有点晕!”小梁面有难色。“其实操作起来并不复杂!”,老梁一边说,一边拿出优盘查到小梁的电脑上,“这是WinPE优盘,里面有不少反删除工具,找回密钥文件全靠它了。”老徐使用WinPE优盘引导系统,进入Windows PE环境。之后随手启动了Easy Recovery这款强悍的恢复工具。“Easy Recovery很好用,恢复文件很给力!”老徐满脸自信的说。老徐在Easy Recovery主界面(如图1)左侧点击“数据恢复”项,在右侧窗口中点击“格式化恢复”按钮,在向导界面左侧选择目标磁盘,这里为C盘,点击“下一步”按钮,Easy Recovery即可对C盘进行深度扫描,来寻找可以恢复的格式化之前的文件。

图1

图1

当扫描完成后,Easy Recovery会列出所有可以恢复的文件信息。看着数量众多的文件信息,小梁有点不知所措。“不急,我们可以根据和密钥文件相关的关键字,顺藤摸瓜找到所需的密钥文件来。”老徐毕竟经验丰富,之间他在在文件恢复窗口中点击“查找”按钮,在搜素窗口中输入“RSA”,“Certificates”,“Crypto”,“Protect”等关键字信息,很快,就搜索到了与之相关的一些文件夹。老徐勾选所有找到的文件夹,将其恢复到正常状态。之后经过简单的甄别,从中找到了上述三个密钥文件夹,将其完整复制到优盘上,作为恢复EFS加密文件的依据。“注意,从这些文件夹中我们可以读取SID和RID值”,老徐提醒小梁,“你看,对于‘C:\Documents and Settings\Administrator\Application Data\Microsoft\Protect\S-1-5-21-842925246-1580818891-682003330-500’文件夹来说,其显示SID为‘S-1-5-21-842925246-1580818891-682003330’,RID为‘500’。顺便提一下,在恢复上述文件夹过程中,需要一定的耐心哦。除了使用Easy Recovery搜索功能寻找目标文件夹,也可以手工搜索这些文件夹。一种恢复软件不行,可以更换另一种反删除工具继续尝试,不要轻易放弃哦!”老徐如数家珍的说,“例如Easy Recovery,Finaldata,Easy Undelete,R-Studio等,都是很好用的反删除工具。” 

恢复EFS加密文件

“哈哈,终于找到了这些可爱的密钥文件,我的加密文件有救了!”小梁几乎要欢呼起来,“赶快将这些密钥文件复制到C盘,我要拥抱我的加密文件。”“急什么,事情没那么简单!如果只是将这些密钥文件夹简单复制回来,是无法正常打开原来的EFS加密文件的。我们必须构建一个解密账户,才能顺利找回EFS加密文件。我们已经知道了原账户的SID标识符。因此,首先需要让当前系统的SID值和原系统“看齐”才行”,老徐一边说一边运行了Newsid这款小工具,在其“Choose a SID”窗口(如图2)中选择“Specify SID”项,输入获得的SID字符串,点击“Next”按钮,完成SID的修改操作。

图2

图2

“修改RID值有点复杂,需要拥有SYSTEM账户权限,还要我有PsExec这个好用的小工具!”,老徐经常倒腾系统,对这些操作早已十分熟悉。只见他将“Psexec.exe”复制到系统文件夹中,之后在CMD窗口中执行命令“psexec -i -d -s %windir%\regedit.exe”,回车后自动打开注册表编辑器。“看,咱们已经使用SYSTEM账户的身份运行注册表编辑器了。”老徐在其中展开“HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names”分支,“小梁你看,RID标识符为500,将其转换成16进制就是1F4,前部补零后为01F4。数据在磁盘存储应该翻转归来,实际数值就变成了F401。在上述注册表分支右侧窗口双击“F”键值名,在弹出窗口(如图3)中的“数值数据”栏中找到“0048”偏移量,将其数值更改为F401”就OK了”。

图3

图3

“终于搞定了,你的加密文件就要重见天日了!”老徐高兴的说,“因为您前后使用的都是Administrator账户,操作起来就简单多了。”“以前的登录密码记得吗?”老徐问小梁。“当然记得”,小梁答道。老徐很快将Administrator密码进行了修改,使其与以前密码完全一致。之后老徐随便对一个文件进行了EFS加密,同时将恢复好三个密钥文件夹复制到对应位置。重新启动系统后,使用原密码登录系统后,小梁终于可以顺利的读取这些宝贵的EFS加密文件了。老徐告诉小梁:“如果是非管理员账户,必须先在管理员账户环境中完成对应账户的创建操作,之后使用该账户登录系统,使用EFS加密技术随意加密一个文件。然后注销更换到管理员账户环境中,将上述恢复的三个密钥文件夹复制到对应位置,重启电脑并使用该账户登录系统,才可以正常访问原先的EFS加密文件。”最后,老徐语重心长的告诫小梁:“使用上述方法虽然找回了加密文件,不过只是无奈之举,存在很大的风险。这一次还算咱们的运气比较好,总算恢复了密钥文件。否则的话,EFS加密文件是无法恢复的。切记,使用EFS加密文件,一定要事先做好证书和密钥的导出操作,这样即使重装系统,也可以快速导入密钥,顺利访问加密文件,再也不必费时费力的折腾了!”

小提示:要想顺利解密EFS文件,必须事先运行“certmgr.msc”程序,在证书管理窗口左侧选择“个人”→“证书”项,在右侧窗口中选择目标账户名,在其右键菜单上点击“所有任务”→“导出”项,在操作向导帮助下,导出密钥和证书文件。当系统重装后,双击导出的密钥文件(后缀为“.pfx”),按照提示导入密钥信息,就可以顺利访问EFS加密文件了。