永发信息网

如何解密“加密内容以便保护数据”

答案:2  悬赏:0  手机版
解决时间 2021-05-05 06:10
前几天贪好玩加密了一些重要图片,原以为可以解密的,但今天打开看看才知道不能浏览了(可是文件是存在的)!上去看了很多高手的做法,还是不行,可能是因为我没有备份密匙和证书的原因吧,我又没重装过系统,不知道咋办?希望曾经遇到过这种情况的朋友帮一下忙,这图片对我很重要(本人用的是XP系统)!谢了……
最佳答案

(1) 必须知道该被删帐户的密码。


(2) 该被删帐户的配置文件必须存在。如果使用“本地用户和组”管理单元删除帐户,则配置文件保留的机会很大,如果使用“用户帐户”控制面板删除帐户,则有一半机会保留配置文件。如果配置文件不幸被删,则只能祈祷可以借助Easy Recovery之类的数据恢复工具进行恢复。


可能有些朋友会觉得这两个条件比较苛刻,此处卖个关子先……


EFS加密原理


大家知道,EFS加密实际上综合了对称加密和不对称加密:


(1) 随机生成一个文件加密密钥(叫做FEK),用来加密和解密文件。


(2) 这个FEK会被当前帐户的公钥进行加密,加密后的FEK副本保存在文件$EFS属性的DDF字段里。


(3) 要想解密文件,首先必须用当前用户的私钥去解密FEK,然后用FEK去解密文件。


看到这里,似乎EFS的脉络已经很清晰,其实不然,这样还不足于确保EFS的安全性。系统还会对EFS添加两层保护措施:


(1) Windows会用64字节的主密钥(Master Key)对私钥进行加密,加密后的私钥保存在以下文件夹:


%UserProfile%\Application Data\Microsoft\Crypto\RSA\SID


提示 Windows系统里的各种私有密钥,都用相应的主密钥进行加密。Windows Vista的BitLocker加密,也用其主密钥对FVEK(全卷加密密钥)进行加密。


(2) 为了保护主密钥,系统会对主密钥本身进行加密(使用的密钥由帐户密码派生而来),加密后的主密钥保存在以下文件夹:


%UserProfile%\Application Data\Microsoft\Protect\SID


整个EFS加密的密钥架构如图1所示。


图1


提示 EFS密钥的结构部分,参考自《Windows Internals 4th》的第12章。


回到“任务描述”部分所述的两个条件,现在我们应该明白原因了:


(1) 必须知道该被删帐户的密码:没有帐户密码,就无法解密主密钥。因为其加密密钥是由帐户密码派生而来的。


提示 难怪Windows XP和2000不同,管理员重设帐户密码,也不能解密EFS文件。


(2) 该被删帐户的配置文件必须存在:加密后的私钥和主密钥(还包括证书和公钥),都保存在配置文件里,所以配置文件万万不可丢失,否则就会彻底“鬼子不能进村”。重装系统后,原来的配置文件肯定被删,这时候当然不可能恢复EFS文件。


可能有用户会想,只需新建一个同名的用户帐户,然后把原来配置文件复制给新帐户,不就可以解密EFS文件了?原因在于帐户的SID,因为新建用户的SID不可能和老帐户一样,所以常规方法是不可能奏效的。我们必须另辟蹊径,让系统再造一个完全一样的SID!


恢复步骤


为了方便描述,这里假设被删帐户的用户名为Admin,Windows安装在C盘。


1.再造SID


注意 本方法取自“声明”部分提到的那篇文章。


首先确认被删帐户的SID,这里可以进入以下文件夹:


C:\Documents and Settings\Admin\Application Data\Microsoft\Crypto\RSA


在其下应该有一个以该被删帐户的SID为名的文件夹,例如是S-1-5-21-4662660629-873921405-788003330-1004(RID为1004)


现在我们要设法让新建帐户同样具有1004的RID,这样就能达到目的。


在Windows中,下一个新建帐户所分配的RID是由HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account注册表项的F键值所确定的。F键值是二进制类型的数据,在偏移量0048处的四个字节,定义下一个帐户的RID。那么也就是说,只需要修改0048处的四个字节,就能达到目的(让新建帐户获得1004的RID)!


确认好以后,别忘记把Admin帐户的配置文件转移到别的地方!


(1) 默认情况下,只有system帐户才有权限访问HKEY_LOCAL_MACHINE\SAM,这里在CMD命令提示符窗口,运行以下命令,以system帐户身份打开注册表编辑器:


psexec -i -d -s %windir%\regedit.exe


提示 可以在以下网站下载psexec:


http://www.sysinternals.com/Utilities/PsExec.html


(2) 定位到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account注册表项,双击打开右侧的F键值。


(3) 这里要说明一下,Windows是以十六进制、而且以反转形式保存下一个帐户的RID。什么意思呢?也就是说,如果是1004的RID,对应十六进制就是03EC,但是我们必须把它反转过来变成EC03,再扩展为4个字节,就是EC 03 00 00。


所以,我们应该把F键值的0048偏移量处,把其中四个字节改为“EC 03 00 00”,如图2所示。


图2


(4) 重要:别忘了重启计算机!


(5) 重启以后,新建一个同名帐户Admin,它的SID应该和以前是完全一样。如果不相信的话,可以借助GetSID或者PsGetSID等工具测试一下。


2.“破解”EFS


接下来的方法就非常简单了,用新建的Admin帐户身份登录系统,随便加密一个文件,然后注销,用管理员帐户登录系统,把原来保留的配置文件复制到C:\Documents and Settings\Admin文件夹下。


再用Admin帐户登录系统,现在可以解密原来的EFS文件了。


疑难解答


1.如果已经重装系统,那怎么办?


“声明”部分提到的那篇文章里提到,如果还记得原来帐户的密码,并且配置文件没有被删除的话,还有希望。这时候可以借助sysinternals的NEWSID工具把系统的计算机SID重设为原来的值,再用前面描述的方法构造所需的RID,这样就可以获得所需的帐户SID。剩余步骤完全一样。


http://www.sysinternals.com/Utilities/NewSid.html


2.有用户曾经遇到这样的问题:登录系统时收到提示说密码过期,需要重设,重设密码登录后发现打开EFS文件。


KB890951提到这个问题。其解释是因为在修改密码时,系统还没有加载配置文件(有点语焉不详),原文如下:


This problem occurs because the user profile for the current user is not loaded correctly after you change the password.


配置文件和EFS有何相干?看完本文,大家应该知道,EFS的私钥和主密钥都是保存在配置文件里的。由于配置文件没有加载,所以主密钥的加密版本没有得到更新(没有跟上帐户密码的变化),导致主密钥无法正确解密,从而无法解密私钥和FEK。这就是问题的真正原因。


该KB提供了一个内部补丁,可以解决这个问题。KB890951的链接如下:


http://support.microsoft.com/kb/890951


3.有关公钥的问题


为了容易理解,笔者故意忽略了公钥。公钥保存也保存在帐户的配置文件里:


%UserProfile%\Application Data\Microsoft\SystemCertificates\My\Certificates


在EFS恢复的操作中,必须确保公钥也要复制到新帐户的配置文件里。尽管看起来公钥与EFS解密无关(它负责加密)。


原来,加密文件$EFS属性的DDF字段里除了有帐户SID和加密的FEK副本外,还有公钥的指纹信息(Public Key Thumbprint)和私钥GUID信息(私钥的某种散列值)。


系统在扫描加密文件$EFS属性中的DDF字段时,根据用户配置文件里的公钥中所包含的公钥指纹和私钥GUID信息,当然还有帐户的SID,来判断该帐户是否具有对应的DDF字段,从而判断该用户是否属于合法的EFS文件拥有者。


所以公钥也很重要。


当然公钥是可以“伪造”的(可以伪造出所需的公钥指纹和私钥GUID),以欺骗EFS系统,具体方法可以参考国外的那篇原稿,此处不再赘述。


加强EFS的安全


由于EFS把所有的相关密钥都保存在Windows分区,所以这可能给EFS带来一定的安全隐患。目前有一些第三方工具号称可以破解EFS,这些工具首先攻击SAM配置单元文件,尝试破解帐户密码,从而破解帐户密码→主密钥的加密密钥→主密钥→EFS私钥→FEK的“密钥链”。


为了防止攻击者窥视我们的EFS文件,可以借助以下三种方法:


1.导出删除私钥


可以用证书向导导出EFS加密证书和私钥,并且在“证书导出向导”对话框里选择删除私钥,如图3所示。


图3


删除私钥以后,攻击者就没有办法访问EFS加密文件了,而我们需要访问时,只需导入先前备份的证书和私钥即可。


2.System Key提供额外的保护


System Key可以对SAM配置单元文件和EFS私钥提供额外保护。Windows XP的System Key默认保存在本地,我们可以运行syskey命令,强制系统将System Key保存在软盘里,或者用启动密码(startup password)来生成System Key。


由于EFS“密钥链”的根密钥(System Key)没有保存在本地计算机中, 所以攻击者将更加难以破解EFS加密。


提示 BitLocker加密的recovery key,类似于syskey的startup password,都是借助启动时所输入的一串密码来生成所需的密钥。


3.BitLocker提供更彻底的保护


本方法仅适用于Windows Vista(Enterprise和Ultimate Edition)。


最彻底的保护方法,首推Windows Vista新引入的BitLocker加密,这时候Windows分区的所有内容全部被加密(包括SAM配置单元、EFS密钥)。


BitLocker(TPM1.2)加密可以看成是Windows启动保护器。在系统启动时,TPM芯片会负责分析各个重要的启动组件,以判断自己是否位于原来的计算机环境。如果是的话,就依次释放BitLocker加密所需的密钥链,我们才能顺利地访问Windows,才能访问EFS文件。


如果攻击者企图把硬盘挂接到别的计算机上,系统就会拒绝释放密钥,整个Windows Vista分区处于加密状态。


如果攻击者窃取了计算机,并且窃取了BitLocker所需所有条件(TPM芯片自不必说,假设也获得密钥U盘)。这时候系统能够顺利引导,并且成功释放BitLocker密钥链。但是攻击者还必须想办法知道帐户的密码,否则无法登录系统,Windows分区依然处于加密状态。


EFS额外保护的原理如图4所示。


图4


4.题外话:为什么释放BitLocker密钥以后,Windows分区依然处于加密状态?


所以尽管BitLocker密钥已经释放,但是Windows分区并没有被立即全部解密。否则每次启动,都要解密整个Windows分区,得花多少时间(笔者的Vista分区完全解密,共花3小时)!


原来BitLocker加密是以一个FVE Filter Driver来实现加密和解密,该Filter Driver处于文件系统驱动的下层。登录系统以后,用户需要访问文件时,文件系统会自动请求FVE Filter Driver进行解密,猜想应该是一次解密一个Block,每个Block可能是512字节(和EFS一样),不敢确定。对于用户来说,这个过程是完全透明的,同时对性能的影响很小,几乎可以忽略不计。EFS加密的情况有点类似。


写在最后


这里非常敬佩国外微软技术爱好者的执着,事实上该作者还有一篇经典的文章(描述SAM配置单元文件的二进制结构),链接如下,非常值得推荐。


很难想象,要编写这样的文章,得花费多少的人力和时间,要做多少的实验才能在SAM数据库逐个字节地找出其对应的含义!




本人总结:


只要将原用户配置文件下的文件拷到新用户下,如用户原new:C:\Documents and Settings\new\Local Settings\Application Data\Microsoft拷到:新用户user下面即可,C:\Documents and Settings\user\Local Settings\Application Data\Microsoft 。

全部回答

如果xp用户没变的话,可能是你修改了登陆密码,改回原来加密时的密码就行。

如果不是这个用户,用原来那个用户

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁能告诉我改键的步骤
为什么找不到守护甜心的游戏
汉釜宫自助烧烤火锅惠农店我想知道这个在什么
七夕专用花束怎么用
微信好友多少人上限,微信好友现在限制为多少
谁能在一天之内把Q音速给我升到6级并且给我点
如何给Flash模块加版权?
苏大新生的那个188电话卡
请问,从重庆菜园坝坐火车出发,到哪里的坐的
有网购经验的MM可不可以提供下面一款衣服?
580022这几天会这样呢,请高手帮忙解释一下,
下川岛-诚信煲仔饭在什么地方啊,我要过去处
形容“逢人就说好听的套近乎,遇到朋友有事就
请问燃气公司与新华书店谁更前景好?
怎么样淘宝信誉才可以上去
推荐资讯
班主任寄语初中彩虹,描写雨后彩虹的诗句
人一共有多少颗牙啊?
社区菜单在哪里
90w收QQ三国50及新装上装或武器
我上传在http://flash.qq.com的动画怎么不见
怎么样隐藏所有的图标、包括/会员?
想开个网店 请教卖什么东东好 最好是哪里有可
求几首好听的非主流歌曲
8.8酒店三里河店停车场(出入口)地址在什么地
赣州离南昌多少公里,从南昌到赣州多少公里?
为什么总感觉好困阿
photoshopcs5官方原版简体中文下载
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?