根据网上流传的资料,EFS(Encrypting File System)

EFS加密是基于公钥策略的。在使用EFS加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的FEK(File Encryption Key,文件加密钥匙),然后将利用FEK和数据扩展标准X算法创建加密后的文件,并把它存储到硬盘上,同时删除未加密的原始文件。随后系统利用你的公钥加密FEK,并把加密后的FEK存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用户的私钥解密FEK,然后利用FEK解密出文件。在首次使用EFS时,如果用户还没有公钥/私钥对(统称为密钥),则会首先生成密钥,然后加密数据。如果你登录到了域环境中,密钥的生成依赖于域控制器,否则依赖于本地机器。
对于EFS,首先要了解以下概念。 
(1)安全标识符(SID,“安全ID”):是来识别用户、组和计算机帐户的标志符。
在第一次创建一个帐户时,windows系统将给每一个帐户发布一个唯一的 SID。Windows 中的内部进程通过帐户的 SID 而不是帐户的名字来区别账户。相当于人的身份证号码,一些严肃的场合,我们通过身份证号码来区分不同的人而不是通过姓名来区分。要注意的是,如果一个账户被错误删除了,即使重建一个相同名字的账户,其SID也和被删除账户的SID不同,对计算机来说,这仍然是两个不同的账户。
然后,我们了解一下公钥和私钥。
(2)公钥(public key):EFS中公钥是一个运算函数,其作用就是用来加密数据,就相当于一把锁。这把锁可以放置在internet上,让别人使用这把锁来加密数据然后传给锁的主人。任何人都可以看到并使用这把锁来加密数据,但是如果没有锁的钥匙就打不开锁,因此看不到锁住以后的数据内容,所以公钥暴露在公共场所并没有安全性的问题。
(3)私钥(private key):对应公钥一对一对存在,其实就是用来开锁的钥匙。私钥不能随便泄露,如果私钥被盗或者被复制,那么别人使用你的公钥加密的数据如果传输时被拦截,就很容易被解密了。同理,如果我们自己的私钥损坏或者丢失了,那么我们同样不能打开这把锁,也即是不能对接收到的别人已经用我的公钥加密了的数据进行解密了,这种情况下,我们必须重新购买锁和对应的钥匙,也就是需要重新申请一对公钥和私钥。
EFS使用一种名为FEK(文件加密密钥:File Encryption Key)的对称密钥。FEK即用于加密,也用于解密。
(1)EFS在加密文件时,会给文件加上专用锁,并生成由伪随机数组成FEK,然后将利用FEK和数据扩展标准X算法创建加密后的文件,并把它存储到硬盘上,同时删除未加密的原始文件。随后EFS使用了用户的公钥加密FEK,并在加密文件的文件头的数据加密区(DDF)中保存加密的FEK。
(2)EFS在解密文件时,首先取加用户的私钥,然后用它解密文件头DDF中的FEK,最后用该FEK解密文件。
EFS能在文件头中保存多个DDF,这样将允许多个用户对文件进行加密,每个DDF都包含相同的密钥,都经过不同用户的公钥加密过。
接下来,我们不禁要问:公钥和私钥都存在哪个位置呢?
(1)公钥
Windows系统用公钥加密,公钥保存在账户的配置文件中:
C:\Documents and Settings\用户名\Application Data\Microsoft\SystemCertificates\My\Certificates
看起来公钥与EFS解密无关,因为它只负责加密。
(2)私钥
EFS用公钥加密,切换用户登录后,因为不同的用户私钥不一样,所以不能解密,当然就不能打开其他用户的EFS文件了。
那么,用户EFS使用的私钥肯定是和用户的SID相对应的。官方文件是这样说的:“EFS文件使用前不需要解密。当向磁盘存储和从磁盘读取字节时,加密和解密透明地完成。EFS 自动检测加密文件,并从系统密钥存储区定位用户密钥。”因此,可以推测私钥存放在Documents and Settings文件夹的用户下面。经过检测,密钥存放在C:\Documents and Settings\用户名\Application Data\Microsoft\Crypto\RSA下。

解密EFS需要以下2个东东:
1、 该SID的私钥,例如在这个路径下:
C:\Documents and Settings\Administrator\Application Data\Microsoft\Crypto\RSA\S-1-5-21-3366775526-2458569512-1599005884-500\

2、该SID的密码

因此,在没有事先备份EFS证书的前提下想要解密EFS,需要上述2个东东。
对于第一个东东,如果C盘已经格式化了且没有备份,那就放弃吧。目前我还没找到根据SID重新生成私钥的方法。
对于第二个东东,如果忘记了密码,可以用SAMinside工具软件,破解Windows密码。SAMinside为一款俄罗斯人出品Windows密码恢复软件,支持Windows NT/2000/XP/Vista操作系统。
SAMinside需要事先拿到Windows的SAM文件,一般位于C:\WINDOWS\system32\config\,一共需要2个文件:SAM、System 。屡试不爽。

也有网友说LC4、LC5工具软件也可以破解密码,我还没试过。
在拿到上述2个东东之后,就可以用Advanced EFS Data Recovery这个工具软件去解密EFS文件。
注意:这个工具的未注册版只能破解EFS文件的前1K字节。

实际案例:
我的C盘在重装系统之前用GHOST做了镜像,装完系统后发现D盘还有15GB的文件里处于EFS控制下,无法打开这些文件。
于是从GHOST镜像里把C盘的上述所需的文件都释放出来,然后用上述工具处理。最终,15GB文件被挽救过来了,好激动呀。
注意1:安装上述工具时,防病毒软件通常都会报警,请注意分辨安装程序包是否真正存在病毒或***。

注意2:在 Windows 7 中,EFS 的体系结构已更改为合并椭圆曲线加密(ECC),支持以混合模式操作 ECC 和 RSA 算法。这样便为使用以前版本的 Windows 中支持的算法创建的 EFS 文件提供了向后兼容性。EFS 的策略设置位于本地组策略编辑器的“本地计算机策略\Windows 设置\安全设置\公钥策略\加密文件系统”下。

WinXP的EFS加密文件如何解密?相关推荐

  1. WINDOWS XP SP2 NTFS EFS加密文件的解密案例

       北京一用户,原系统分为3个区,C盘安装WINDOWS XP SP2,D及E盘为用户重要数据区,其中D盘有用户特别重要的几个文件,当初为安全性考虑,设置了NTFS的EFS加密,后系统运行缓慢,重装 ...

  2. 【绝对原创】最新研究成果,EFS加密文件真的可以解密!各位不要放弃哈~

    我是一名正在读计算机专业的博士,前一段时间花费了几个月研究EFS解密技术,终于成功了,现在总结一下,给各位一个启示~ 关于EFS加密: EFS(Encrypting File System,加密文件系 ...

  3. 分析针对EFS加密文件无法打开的情况数据恢复的解决方式

    (一)故障类型:EFS加密文件无法打开 (二)典型特征: 1.重装系统后以前加密的文件无法打开 2.密钥文件丢失导致加密文件无法打开 (三)损坏程度星级评价:★★★★ [故障原理及恢复思路] 在使用E ...

  4. Win7 EFS 加密文件图解

    EFS加密是基于公钥策略的. 在使用EFS加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的FEK(File Encryption Key,文件文件加密钥匙),然后将利用FEK和数据扩展标准X ...

  5. 用EFS加密文件的方法

    用EFS加密文件的方法 实验任务 实验内容 1.创建两个账户 2.在NTFS分区建立一个efstest文件夹和文本 3.加密文件 4.备份密钥 5.导入密钥 实验任务 任务 用EFS加密文件的方法 1 ...

  6. 恢复重装系统后的EFS加密文件

    本来要写一段前言的讲一下事情的经过的,最后决定删除,直接进入主题"恢复重装系统后的EFS加密文件"(PS:我在网上基本没搜到有意义的教程,基本上都是有偿恢复的广告.如果你看了这篇文 ...

  7. PDF加密文件怎么解密,解密的方法有哪些

    很多人在网上下载了PDF文件之后,发现都是加密的,但是又需要用到,该怎么办呢?PDF加密文件怎么解密?今天呢就来给大家说说解密的方法有哪些哦,还在等什么,赶紧来试试吧. 其实解密的方法也比较简单,解除 ...

  8. EPS加密文件与解密

    EPS加密文件与解密 1.新建用户 2.在C盘下创建一个新的文件夹,在文件夹里创建一个空白文本 3.右键新建文件夹,点击高级 4.切换新建的用户,点击新建的文本 发现打不开(说明加密成功) 5.win ...

  9. 记一次重装系统后恢复EFS加密文件过程

    之前用了8年的win7系统被我删注册表给折腾挂了, 无法进入系统, 无法进入安全模式, 无法使用光盘修复 只能重装系统,习惯性的重装前GHOST备份了一下 今天忽然发现有好几个项目文件居然成了绿色的, ...

最新文章

  1. 2.1 . df 命令和du命令
  2. PHP微信登錄(網頁授權)之後的獲取用戶的信息
  3. 得到win7 win8的桌面句柄
  4. 标准C/C++程序通过gSOAP调用WebService
  5. 基本的阿里云Linux服务器设置
  6. 【Java面试题】40 你所知道的集合类都有哪些?主要方法?
  7. 通用JdbcDao更新,增加动态数据源,支持权重和读写分离
  8. Linux系统剪贴板getContents()非常之慢
  9. 苹果注册开发者账号过程
  10. 荣耀终端android面试,华为终端面试经验
  11. CSDN愈来愈金钱化
  12. 2.8/4/6/8mm/12mm焦距的镜头分别能监控多大范围?
  13. Schema_CN28_CNNG净薪酬计算
  14. ElecSuper ESN4485 MOS场效应晶体管
  15. 搜狗壁纸停运了,但我还是想推荐它……(附个人的一点想法)
  16. linux主机通过top看CPU性能指标
  17. 3800hk 黑鹰大米被抓视频报道
  18. 智慧管廊综合管理系统设计方案
  19. 多款优秀的支持C、C++等多种语言的网络在线编译器
  20. 成功解决微信屏蔽网页跳转到app(apk)下载

热门文章

  1. #RANK_1 极其简单的递归——骑士与金币
  2. hibernate课程 初探单表映射3-1 hibernate单表操作简介
  3. caffe cifar10试跑问题总结
  4. Linux命令工具基础02 文件及目录管理
  5. Effective Objective-C 2.0 初读小结
  6. Python环境 及安装
  7. luogu2770 航空路线问题 网络流
  8. linux下kafka与zookeeper集群部署
  9. leetcode-114. Flatten Binary Tree to Linked List
  10. 数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器(转)...