破解微软的EFS efs加密文件怎么破解
EFS 只能对存储在磁盘上的数据进行加密,是一种安全的本地信息加密服务.EFS使用核心的的文件加密技术在NTFS卷上存储加密文件.
它可以防止那些未经允许的对敏感数据进行物理访问的入侵者(偷取笔记本电脑,硬盘等)
EFS是如何工作的
当一个用户使用EFS去加密文件时,必须存在一个公钥和一个私钥,如果用户没有,EFS服务自动产生一对。对于初级用户来说,即使他完全不懂加密,也能加密文件,可以对单个文件进行加密,也可以对一个文件夹进行加密,这样所有写入文件夹的文件将自动被加密。
一旦用户发布命令加密文件或试图添加一个文件到一个已加密的文件夹中,EFS将进行以下几步:
第一步:NTFS首先在这个文件所在卷的卷信息目录下(这个目录隐藏在根目录下面)创建一个叫做efs0.log的日志文件,当拷贝过程中发生错误时利用此文件进行恢复。
第二步:然后EFS调用CryptoAPI设备环境.设备环境使用Microsoft Base Cryptographic Provider 1.0 产生密匙,当打开这个设备环境后,EFS产生FEK(File Encryption Key,文件加密密匙).FEK的长度为128位(仅US和Canada),这个文件使用DESX加密算法进行加密。
第三步: 获取公有/私有密匙对;如果这个密匙还没有的话(当EFS第一次被调用时),EFS产生一对新的密匙.EFS使用1024位的RSA算法去加密FEK.
第四步:EFS为当前用户创建一个数据解密块Data Decryptong Field(DDF),在这里存放FEK然后用公有密匙加密FEK.
第五步:如果系统设置了加密的代理,EFS同时会创建一个数据恢复块Data Recovery Field(DRF),然后把使用恢复代理密匙加密过的FEK放在DRF.每定义一个恢复代理,EFS将会创建一个Data Recovery Agent(DRA).Winxp没有恢复代理这个功能,所以没有这一步.,这个区域的目的是为了在用户解密文件的中可能解密文件不可用。这些用户叫做恢复代理,恢复代理在EDRP(Encryption Data Recovery Policy,加密数据恢复策略)中定义,它是一个域的安全策略。如果一个域的EDRP没有设置,本地EDRP被使用。在任一种情况下,在一个加密发生时,EDRP必须存在(因此至少有一个恢复代理被定义)。DRF包含使用RSA加密的FEK和恢复代理的公钥。如果在EDRP列表中有多个恢复代理,FEK必须用每个恢复代理的公钥进行加密,因此,必须为个恢复代理创建一个DRF。
第六步:包含加密数据、DDF及所有DRF的加密文件被写入磁盘。
第七步: 在加密文件所在的文件夹下将会创建一个叫做Efs0.tmp的临时文件.要加密的内容被拷贝到这个临时文件,然后原来的文件被加密后的数据覆盖.在默认的情况下,EFS使用128位的DESX算法加密文件数据,但是Windows还允许使用更强大的的168位的3DES算法加密文件,这是FIPS算法必须打开,因为在默认的情况下它是关闭的.
第八步:在第一步中创建的文本文件和第七步中产生的临时文件被删除。
加密过程图片可参考 http://www.ntfs.com/images/encryption.gif
文件被加密后,只有可以从DDF或是DRF中解密出FEK的用户才可以访问文件.这种机制和一般的安全机制不同并意 味着要想访问文件,除了要有访问这个文件的权力外还必须拥有被用户的公有密匙加密过的FEK.只有使用私有密匙解密文件的用户才可以访问文件.这样的话会有一个问题:就是一个可以访问文件的用户可把文件加密之后,文件真正的拥有者却不能访问文件.解决这个问题的办法:用户加密文件的时候只创建一个文件解密块Data Decryption Field(DDF),但是只后他可以增加附加用户到密匙队列.这种情况下,EFS简单地把FEK用想给其他用户访问权的用户的私有密匙加密.然后用这些用户的公有密匙加密FEK,新增加的DDF和第一个DDF放在一起(这些新增加的用户对文件只有访问的权力).
解密的过程和加密的过程是相反的,参考http://www.ntfs.com/images/decryption.gif
首先,系统检测用户是否具有被EFS使用的私有密匙.如果有的话,系统将会在读取EFS属性,同时在DDF对列中寻找当前用户的DDF.如果DDF找到的话,用户私有密匙将会在那里解密出FEK.使用解密出来的FEK,EFS去解密加密的文件数据.需要注意的是文件从来不会完全被加密,但是有时候会去加密一些特殊的扇区如果上层模块要求的话.
EFS组成
EFS由EFS服务、EFS驱动、EFS文件系统运行库(FSRTL)和Win32 API。EFS服务作为一个标准系统服务运行,它是Windows 2000安全子系统的一部分。它与CryptoAPI接口产生钥匙、DDF和DRF,EFS驱动就象是NTFS的一部分,它呼叫EFS服务请求钥匙,DDF和DRF作为需要被创建,一个EFS驱动的组成是EFS FSRTL,它定义了EFS驱动程序能作为NTFS的代表而执行的功能。
EFS和NTFS如何共存
EFS可以被认为除NTFS外的第二层防护,为访问一个被加密的文件,用户必须有访问到文件的NTFS权限。在相关NTFS权限的用户能看到文件夹中的文件,但不能打开文件除非有相应的解密钥匙。同样,一个用户有相应的钥匙但没有相应的NTFS权限也不能访问到文件。所以一个用户要能打开加密的文件,同时需要NTFS权限和解密钥匙。
然而,NTFS权限可能被大量的方法穿越,包括口令破解程序、用户在离开前没有退出系统或系统内部的NTFSDOS。在NT4.0下,游戏结束了――硬盘上所有的数据都可以访问了。在Windows 2000下,当一个文件用EFS加密后,一个未授权的用户,即使访问到磁盘上的文件,但也不能访问文件上数据,因为没有授权用户的私钥。
EFS 属性
当NTFS加密文件的时候,它首先会为文件设置加密标志,然后在存储DDF和DDR的地方为文件创建一个$EFS属性.这个属性的属性ID=0x100,它可以被加长,占有0.5k到若干k的大小,这个大小是由DDF和DRF的数量决定的.
http://www.ntfs.com/images/efs_header.gif
下面是一个详细的EFS属性的例子.
http://www.raid1.cn/efs/pic/attribute/EFS_example.gif
紫色:EFS属性大小
天蓝色:电脑安全标识符和用户数字.它指定EFS存储证书的文件夹.为了得到文件
夹的名字,EFS会做一些转换.
5A56B378 1C365429 A851FF09 D040000 - 存储在$EFS中的数据.
78B3565A 2954361C 09FF15A8 000004D0 - 转换后的结果.
2025018970-693384732-167712168-1232 - 转换成十进制.
S-1-5-21-2025018970-693384732-167712168-1232 - 加上安全标识符前缀.
得到的文件夹就是:
%UserProfile%ApplicationDataMicrosoftCryptoRSAS-1-5-21-2025018970-693384732167712168-1232
粉红色:公有密匙特性
黄色:私有密匙全局唯一标识符(同时被当作容器名字).当EFS从CryptoAPI provider中获取设备环境的时候使用这个名字.如果$EFS属性只有一个DDF,容器的名字可以从$efs中计算出来.但是当更多的用户加入这个文件的时候(就会有更多的DDF和DRF),私有密匙全局唯一标识符并不是保存所有的用户,其它的必须从基于公有密匙存储特性的证书中恢复.
红色:加密提供器的名字(Microsoft Base Cryptographic Provider v.1.0)
绿色:用户的名称,DDF和DRF的所有者.
蓝色:加密后的FEK.通常FEK是128位的,但是被1024位的RSA密匙加密后,长度变成1024位.
随着稳定性和可靠性的逐步提高,Windows 2000/XP已经被越来越多的人使用,很多人还用Windows 2000/XP自带的EFS加密功能把自己的一些重要数据加密保存。虽然EFS易用性不错,不过发生问题后就难解决了,例如不做任何准备就重装了操作系统,那很可能导致以前的加密数据无法解密。最近一段时间我们已经可以在越来越多的论坛和新闻组中看到网友的求救,都是类似这样的问题而导致重要数据无法打开,损失惨重。为了避免更多人受到损失,这里我把使用EFS加密的注事项写出来,希望对大家有所帮助。
注意,下文中的Windows XP皆指Professional版,Windows XP Home版并不支持EFS加密。
什么是EFS加密
EFS(Encrypting File System,加密文件系统)是Windows 2000/XP所特有的一个实用功能,对于NTFS卷上的文件和数据,都可以直接被操作系统加密保存,在很大程度上提高了数据的安全性。
EFS加密是基于公钥策略的。在使用EFS加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的FEK (File Encryption Key,文件加密钥匙),然后将利用FEK和数据扩展标准X算法创建加密后的文件,并把它存储到硬盘上,同时删除未加密的原始文件。随后系统利用你的公钥加密FEK,并把加密后的FEK存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用户的私钥解密FEK,然后利用FEK解密出文件。在首次使用EFS时,如果用户还没有公钥/私钥对(统称为密钥),则会首先生成密钥,然后加密数据。如果你登录到了域环境中,密钥的生成依赖于域控制器,否则它就依赖于本地机器。
EFS加密有什么好处
首先,EFS加密机制和操作系统紧密结合,因此我们不必为了加密数据安装额外的软件,这节约了我们的使用成本。
其次,EFS加密系统对用户是透明的。这也就是说,如果你加密了一些数据,那么你对这些数据的访问将是完全允许的,并不会受到任何限制。而其他非授权用户试图访问加密过的数据时,就会收到“访问拒绝”的错误提示。EFS加密的用户验证过程是在登录Windows时进行的,只要登录到Windows,就可以打开任何一个被授权的加密文件。
如何使用EFS加密
要使用EFS加密,首先要保证你的操作系统符合要求。目前支持EFS加密的Windows操作系统主要有Windows 2000全部版本和Windows XP Professional。至于还未正式发行的Windows Server 2003和传闻中的开发代号为Longhorn的新一带操作系统,目前看来也支持这种加密机制。其次,EFS加密只对NTFS5分区上的数据有效(注意,这里我们提到了NTFS5分区,这是指由Windows 2000/XP格式化过的NTFS分区;而由Windows NT4格式化的NTFS分区是NTFS4格式的,虽然同样是NTFS文件系统,但它不支持EFS加密),你无法加密保存在FAT和FAT32分区上的数据。
对于想加密的文件或文件夹,只需要用鼠标右键点击,然后选择“属性”,在常规选项卡下点击“高级”按钮,之后在弹出的窗口中选中“加密内容以保护数据”,然后点击确定,等待片刻数据就加密好了。如果你加密的是一个文件夹,系统还会询问你,是把这个加密属性应用到文件夹上还是文件夹以及内部的所有子文件夹。按照你的实际情况来操作即可。解密数据也是很简单的,同样是按照上面的方法,把“加密内容以保护数据”前的钩消除,然后确定。
如果你不喜欢图形界面的操作,还可以在命令行模式下用“cipher”命令完成对数据的加密和解密操作,至于“cipher”命令更详细的使用方法则可以通过在命令符后输入“cipher/?”并回车获得。
注意事项:如果把未加密的文件复制到具有加密属性的文件夹中,这些文件将会被自动加密。若是将加密数据移出来,如果移动到NTFS分区上,数据依旧保持加密属性;如果移动到FAT分区上,这些数据将会被自动解密。被EFS加密过的数据不能在Windows中直接共享。如果通过网络传输经EFS加密过的数据,这些数据在网络上将会以明文的形式传输。NTFS分区上保存的数据还可以被压缩,不过一个文件不能同时被压缩和加密。最后一点,Windows的系统文件和系统文件夹无法被加密。
这里还有个窍门,用传统的方法加密文件,必须打开层层菜单并依次确认,非常麻烦,不过只要修改一下注册表,就可以给鼠标的右键菜单中增添“加密”和“解密”的选项。
在运行中输入“regedit”并回车,打开注册表编辑器,定位到:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion /Explorer/Advanced ,在“编辑”菜单上点击“新建-Dword值”,输入“EncryptionContextMenu”作为键名,并设置键值为“1”。现在退出注册表编辑器,打开资源管理器,任意选中一个NTFS分区上的文件或者文件夹,然后点击鼠标右键,就可以在右键菜单中找到相应的选项,直接点击就可以完成加密解密的操作。
如果你想设置禁止加密某个文件夹,可以在这个文件夹中创建一个名为“Desktop.ini”的文件,然后用记事本打开,并添加如下内容:
[Encryption]
Disable=1
之后保存并关闭这个文件。这样,以后要加密这个文件夹的时候就会收到错误信息,除非这个文件被删除。
而如果你想在本机上彻底禁用EFS加密,则可以通过修改注册表实现。在运行中输入“Regedit”并回车,打开注册表编辑器,定位到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionEFS,在“编辑”菜单上点击“新建-Dword值”,输入“EfsConfiguration”作为键名,并设置键值为“1”,这样本机的EFS加密就被禁用了。而以后如果又想使用时只需把键值改为“0”。
如何保证EFS加密的安全和可靠
前面我们已经了解到,在EFS加密体系中,数据是靠FEK加密的,而FEK又会跟用户的公钥一起加密保存;解密的时候顺序刚好相反,首先用私钥解密出FEK,然后用FEK解密数据。可见,用户的密钥在EFS加密中起了很大作用。
密钥又是怎么来的呢?在Windows 2000/XP中,每一个用户都有一个SID(Security Identifier,安全标示符)以区分各自的身份,每个人的SID都是不相同的,并且有唯一性。可以这样理解:把SID想象成人的指纹,虽然世界上已经有几十亿人(同名同姓的也有很多),可是理论上还没有哪两个人的指纹是完全相同的。因此,这具有唯一性的SID就保证了EFS加密的绝对安全和可靠。因为理论上没有SID相同的用户,因而用户的密钥也就绝不会相同。在第一次加密数据的时候,操作系统就会根据加密者的SID生成该用户的密钥,并把公钥和私钥分开保存起来,供用户加密和解密数据。
这一切,都保证了EFS机制的可靠。
其次,EFS机制在设计的时候就考虑到了多种突发情况的产生,因此在EFS加密系统中,还有恢复代理(Recovery Agent)这一概念。
举例来说,公司财务部的一个职工加密了财务数据的报表,某天这位职工辞职了,安全起见你直接删除了这位职工的账户。直到有一天需要用到这位职工创建的财务报表时才发现这些报表是被加密的,而用户账户已经删除,这些文件无法打开了。不过恢复代理的存在就解决了这些问题。因为被EFS加密过的文件,除了加密者本人之外还有恢复代理可以打开。
对于Windows 2000来说,在单机和工作组环境下,默认的恢复代理是 Administrator ;Windows XP在单机和工作组环境下没有默认的恢复代理。而在域环境中就完全不同了,所有加入域的Windows 2000/XP计算机,默认的恢复代理全部是域管理员。
这一切,都保证了被加密数据的安全。
如何避免不慎使用EFS加密带来的损失
如果你也和我一样,由于对EFS加密不了解致使重要数据丢失,那么也别气馁,就当买了个教训。毕竟通过这事情你还是能学会很多东西的。那就是:备份密钥!设置有效的恢复代理!
对于上面讲到的情况1,备份密钥可以避免这种悲剧的发生。在运行中输入“certmgr.msc”然后回车,打开证书管理器。密钥的导出和导入工作都将在这里进行。
在你加密过文件或文件夹后,打开证书管理器,在“当前用户”-“个人”-“证书”路径下,应该可以看见一个以你的用户名为名称的证书(如果你还没有加密任何数据,这里是不会有证书的)。右键点击这个证书,在“所有任务”中点击“导出”。之后会弹出一个证书导出向导,在向导中有一步会询问你是否导出私钥,在这里要选择“导出私钥”,其它选项按照默认设置,连续点击继续,最后输入该用户的密码和想要保存的路径并确认,导出工作就完成了。导出的证书将是一个pfx为后缀的文件。
重装操作系统之后找到之前导出的pfx文件,鼠标右键点击,并选择“安装PFX”,之后会出现一个导入向导,按照导入向导的提示完成操作(注意,如果你之前在导出证书时选择了用密码保护证书,那么在这里导入这个证书时就需要提供正确的密码,否则将不能继续),而之前加密的数据也就全部可以正确打开。
对于情况2,我们对Windows XP和Windows 2000两种情况分别加以说明。
由于Windows XP没有默认的恢复代理,因此我们加密数据之前最好能先指定一个默认的恢复代理(建议设置Administrator为恢复代理,虽然这个账户没有显示在欢迎屏幕上,不过确实是存在的)。这样设置:
首先要获得可以导入作为恢复代理的用户密钥,如果你想让Administrator成为恢复代理,首先就要用Administrator账户登录系统。在欢迎屏幕上连续按Ctrl+Alt+Del两次,打开登录对话框,在用户名处输入Administrator,密码框中输入你安装系统时设置的Administrator密码,然后登录。首先在硬盘上一个方便的地方建立一个临时的文件,文件类型不限。这里我们以C盘根目录下的一个1.txt文本文件文件为例,建立好后在运行中输入“CMD”然后回车,打开命令提示行窗口,在命令提示符后输入“cipher /r:c:1.txt”,回车后系统还会询问你是否用密码把证书保护起来,你可以按照你的情况来决定,如果不需要密码保护就直接按回车。完成后我们能在C盘的根目录下找到1.txt.cer和1.txt.pfx两个文件(为了显示的清楚我在文件夹选项中设置了显示所有文件类型的扩展名,这样我们可以更清楚地了解到底生成了哪些文件)。
之后开始设置恢复代理。对于1.txt.pfx这个文件,同样需要用鼠标右键点击,然后按照向导的提示安装。而1.txt.cer则有些不同,在运行中输入“gpedit.msc”并回车,打开组策略编辑器。在“计算机配置-Windows设置-安全设置-公钥策略-正在加密文件系统”菜单下,在右侧窗口的空白处点击鼠标右键,并选择“添加数据恢复代理”,然后会出现“添加故障恢复代理向导”按照这个向导打开1.txt.cer,如果一切无误就可以看见图五的界面,这说明我们已经把本机的Administrator设置为故障恢复代理。
如果你愿意,也可以设置其它用户为恢复代理。需要注意的是,你导入证书所用的1.txt.pfx和1.txt.cer是用哪个账户登录后生成的,那么导入证书后设置的恢复代理就是这位用户。
在设置了有效的恢复代理后,用恢复代理登录系统就可以直接解密文件。但如果你在设置恢复代理之前就加密过数据,那么这些数据恢复代理仍然是无法打开的。
而对于Windows 2000就更加简单,Windows 2000有恢复代理,因此只要用恢复代理(默认的就是Administrator)的账号登录系统,就可以解密文件。
如何在本机上共享经EFS加密过的数据
加密过的文件只有加密者本人和恢复代理可以打开,如果你要和本机的其它用户共享加密文件又该怎么办?这在Windows 2000中是不行的,不过在Windows XP中可以做到。
选中一个希望共享的加密文件(注意,只能是文件,而不能是文件夹),在文件上用鼠标右键点击,并选择“属性”,之后在属性对话框的“常规”选项卡上点击“高级”按钮,然后再点击“详细信息”,之后你可以看见类似图六的窗口,在这里你可以决定谁可以打开这个加密文件以及察看文件的恢复代理是具体是谁。
对EFS加密的几个错误认识
很多人对EFS理解的不够彻底,因此在使用过程中总会有一些疑问。一般情况下,我们最常见的疑问有以下几种:
1, 为什么打开加密过的文件时没有需要我输入密码?
这正是EFS加密的一个特性,同时也是EFS加密和操作系统紧密结合的最佳证明。因为跟一般的加密软件不同,EFS加密不是靠双击文件,然后弹出一个对话框,然后输入正确的密码来确认的用户的;EFS加密的用户确认工作在登录到Windows时就已经进行了。一旦你用适当的账户登录,那你就能打开相应的任何加密文件,并不需要提供什么额外的密码。
2, 我的加密文件已经打不开了,我能够把NTFS分区转换成FAT32分区来挽救我的文件吗?
这当然是不可能的了。很多人尝试过各种方法,例如把NTFS分区转换成FAT32分区;用NTFS DOS之类的软件到DOS下去把文件复制到FAT32分区等,不过这些尝试都以失败告终。毕竟EFS是一种加密,而不是一般的什么权限之类的东西,这些方法对付EFS加密都是无济于事。而如果你的密钥丢失或者没有做好备份,那么一旦发生事故所有加密过的数据就都没救了。
3, 我加密数据后重装了操作系统,现在加密数据不能打开了。如果我使用跟前一个系统相同的用户名和密码总应该就可以了吧?
这当然也是不行的,我们在前面已经了解到,跟EFS加密系统密切相关的密钥是根据每个用户的SID得来的。尽管你在新的系统中使用了相同的用户名和密码,但是这个用户的SID已经变了。这个可以理解为两个同名同姓的人,虽然他们的名字相同,不过指纹绝不可能相同,那么这种想法对于只认指纹不认人名的EFS加密系统当然是无效的。
4, 被EFS加密过的数据是不是就绝对安全了呢?
当然不是,安全永远都是相对的。以被EFS加密过的文件为例,如果没有合适的密钥,虽然无法打开加密文件,不过仍然可以删除(有些小人确实会这样想:你竟然敢加密了不让我看!那好,我就删除了它,咱们都别看)。所以对于重要文件,最佳的做法是NTFS权限和EFS加密并用。这样,如果非法用户没有合适的权限,将不能访问受保护的文件和文件夹;而即使拥有权限(例如为了非法获得重要数据而重新安装操作系统,并以新的管理员身份给自己指派权限),没有密钥同样还是打不开加密数据。
5, 我只是用Ghost恢复了一下系统,用户账户和相应的SID都没有变,怎么以前的加密文件也打不开了?
这也是正常的,因为EFS加密所用到的密钥并不是在创建用户的时候生成,而是在你第一次用EFS加密文件的时候。如果你用Ghost创建系统的镜像前还没有加密过任何文件,那你的系统中就没有密钥,而这样的系统制作的镜像当然也就不包括密钥。一旦你加密了文件,并用Ghost恢复系统到创建镜像的状态,解密文件所用的密钥就丢失了。因此这个问题一定需要主意!
希望本文对你使用EFS加密有所帮助,希望你的数据能够更加安全!
更多阅读
doc文件怎么打开,doc的几种打开方式 doc文件默认打开方式
doc文件怎么打开,doc的几种打开方式——简介doc文件怎么打开打开方法doc文件怎么打开,doc的几种打开方式——工具/原料WordWord Viewer 2003
amr文件怎么打开 精 qq的amr文件怎么打开
amr文件怎么打开 精——简介AMR(全称是Adaptibve Multi-Rate)是一种音频格式。主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。目前AMR格式出现比较多的是诺基亚、索尼爱立
永久删除的文件怎么恢复 精 恢复永久性删除文件
永久删除的文件怎么恢复 精——简介有时候我们在删除文件的时候不小心将文件永久删除了,想要找会的时候回收站里也没有。还有就是我们清空回收站里的内容后突然想要还原某个文件。这时你不用后悔刚才操作失误,因为你的文件还没有丢失,
ipa文件怎么安装到iPhone iPhone怎么安装ipa ipa怎么安装到iphone
ipa文件怎么安装到iPhone iPhone怎么安装ipa——简介我们通常见到的一些 ipa 文件都是一些破解之类的软件,或是一些内测版的软件。那 ipa 文件怎么安装到 iPhone 上呢?首先需要我们的 iPhone 手机是已经越狱了的,随后我们可以用第三方
安卓手机怎么隐藏加密 文件夹软件 如何隐藏加密文件夹
在使用安卓手机的过程当中,我们往往出于各种各样的原因,对于文件夹需要做一定的保护。而隐藏(加密)文件夹,不失为一种有效的方式。那么安卓手机怎么隐藏(加密)文件夹呢?首先我们对需要隐藏的文件夹重命名。命名规则很简单,在文件