WinXP的EFS加密文件如何解密?

根据网上流传的资料,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下。

160128367.png
解密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 。屡试不爽。

132738829.png

155426246.png

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

161021807.png

160035292.png

160402361.png

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

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于滚动条出现页面跳动问题

二、CSS3计算calc和vw单位巧妙实现滚动条出现页面不跳动 很简单,只要一行代码就搞定了: .wrap-outer {margin-left: calc(100vw - 100%); } 或者: .wrap-outer {padding-left: calc(100vw - 100%); } 然后就可以庆祝放鞭炮啦!&…

JAVA生产环境验证_Java生产环境下性能监控与调优详解

本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优;通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出、cpu负载飙高等问题;学会线上代码调试,Tomcat、Nginx,GC调优等手段&a…

17款漂亮的 HTML5 网站模板免费下载

在过去的几年,设计师们已开始关注和使用 HTML5 了,如今 HTML5 得到了更加广泛的应用。今天,本文与大家分享17款免费的 HTML5 网站模板,看看有没自己喜欢的。 1- Smart Net 免费下载 2- Photo Art 免费下载 3- The Art Of Business…

ES6 (总结篇二)

一.字符串扩展 1.indexOf和index 之前做项目,遇到判断一个字符串是否存在,不清楚用index还是indexOf,百度之后,用了indexOf。indexOf:返回某个指定的字符串值在字符串中首次出现的位置 ,如果没有找到这个值…

python中try finally的用法_Python中的try-finally子句

您可以将finally:块与try:块一起使用。finally块是放置必须执行的所有代码的位置,无论try块是否引发异常。try-finally语句的语法是:try:You do your operations here;......................Due to any exception, this may be s…

工作三个月的总结

想想,我已经工作三个月了,总结一下我的工作经验。 找到了和自己专业相关的工作javaweb方面。虽然是个小公司,我 已经很知足了,对于没有上个好大学的我,真的很满意。 到公司没有几天,我就开始熟悉公司正在做…

关于jrebel碰到的一次问题记录

今天使用jrebel更新gitlab的代码之后,项目总是启动报错。报一个类找不到,但是这个类在整个目录下搜索不到,在target的class目录看了下也没有对应的目录。郁闷了好久,最后同事看了下,在整个target目录搜了下&#xff0c…

java动态生成sdk_android、java制作sdk以及自动生成文档

最近一直在做android开发,昨天经理让我写个接口SDK做个接口文档,以便后面的开发。这让我很焦灼,SDK怎么做?要是只有敲代码还好。可是那个接口文档!!!文档这东西最讨厌了,头都大了后来…

利用 Selenium 自动化 web 测试

Selenium 是一个健壮的工具集合,跨很多平台支持针对基于 web 的应用程序的测试自动化的敏捷开发。它是一个开源的、轻量级的自动化工具,很容易集成到各种项目中,支持多种编程语言,比如 .NET、Perl、Python、Ruby 和 Java™ 编程语…

Python3异常处理

Python3异常处理 一. 简介 在编程过程中为了增加友好性,在程序出现Bug时一般不会直接将错误信息展示给用户,而是提供一个友好的输出提示。 二. 使用 1. 异常基础 常用结构: 1234try:passexcept Exception,ex:pass其他结构: 123456…

php 正则替换style,php正则去除js,class,id,style标签代码

在写xml的时候,文档要求内容里面只要图片和段落就可以了,其他的css,js什么的都不需要。所以,在输出的时候,就要用正则去过滤掉不需要的标签代码。第一种:php正则去除js标签代码。$preg "/$content preg_replace…

Flex 序列化自定义类 解决 sharedObject 保存自定义对象

问题我想把自定义类实例存储到LSO解决办法使用flash.net.registerClassAlias( )方法保留类型信息并把类实例添加到共享对象的data属性上。讨论LSOs 使用特殊的二进制格式,Action Message Format (AMF),当要在LSO中存储类实例时,实例会被编码为…

js禁止页面滚动

1.申明函数&#xff1a; function preventBackgroundScroll(e: React.WheelEvent){ const target e.currentTarget if ( (e.deltaY < 0 && target.scrollTop < 0) || (e.deltaY > 0 && target.scrollHeight - target.clientHeight - target.scrollTo…

当老虎来临时

两个人在森林里&#xff0c;遇到了一只大老虎。A就赶紧从背后取下一双更轻便的运动鞋换上。B急死了&#xff0c;骂道&#xff1a;“你干嘛呢&#xff0c;再换鞋也跑不过老虎啊&#xff01;” A说&#xff1a;“我只要跑得比你快就好了。” 心得&#xff1a;二十一世纪&am…

R学习-小白笔记05

----回归诊断----#样本是否符合正态分布假设&#xff1f;#是否存在离群值导致模型产生较大误差&#xff1f;#线性模型是否合理&#xff1f;#误差是否满足独立性&#xff0c;等方差&#xff0c;正态分布等假设条件&#xff1f;#是否存在多重共线性&#xff1f; ----正态分布检验…

入门笔记(启动篇)

linux启动过程&#xff1a; bios自检&#xff0d;&#xff0d;&#xff1e;MRB&#xff0d;&#xff0d;&#xff1e;GRUB&#xff0d;&#xff0d;&#xff1e;内核加载&#xff0d;&#xff0d;&#xff1e;INIT&#xff0d;&#xff0d;&#xff1e; /etc/i…

乌班图 之 常用操作命令(二)

一、tree命令 tree [目录名]  以树状图列出文件目录 -d 只显示目录&#xff0c;不显示文件。 二、cp命令 cp即copy   cp 源文件 目标文件 -i  重名自动 覆盖 加了 -i 提示   y/n -r  复制目录及该目录下所有字目录和文件&#xff0c;目标文件必须是一个目录名。 三、…

php 对比两个压缩包内容,php实现的zip文件内容比较类

本文实例讲述了php实现的zip文件内容比较类。是一个非常实用的PHP类文件。分享给大家供大家参考。具体分析如下&#xff1a;该php zip文件比较类主要实现比较两个zip文件的内容&#xff0c;返回新增&#xff0c;删除&#xff0c;及相同的文件列表。暂时只支持单层。需求&#x…

Exchange2010外部传输域的使用方法

安装好EX2010后并不能马上与外部邮件进行收发&#xff0c;需要进行以下几个配置&#xff1a; 1、配置接收连接器 2、配置接受域 3、配置发送连接器 可以参考这个链接&#xff1a;http://www.chinaemail.com.cn/server/xtfl/Exchange/201101/59114.html 下面以我的实例来说明一…

Shiro安全框架入门篇

一、Shiro框架介绍 Apache Shiro是Java的一个安全框架&#xff0c;旨在简化身份验证和授权。Shiro在JavaSE和JavaEE项目中都可以使用。它主要用来处理身份认证&#xff0c;授权&#xff0c;企业会话管理和加密等。Shiro的具体功能点如下&#xff1a; &#xff08;1&#xff09;…