Microsoft Encrypting File System(EFS)简介
由于近来经常出现有些朋友因为在WIN2000中对某些文件进行了加密,而后又删除了加密
该文件的帐号而导致无法访问加密文件的问题,现对WIN2000中的加密作一简要介绍,并说明
加密后的注意事项。
★★★注意:本文适用于Windows 2000,不适用Windows 98及其以下版本,文章中的原理
在Windows XP中同样适用,但在具体操作方面Win2000和Win xp的操作界面可能有所不同。以
下没有特别说明,均指在Windows 2000中的操作。
★EFS简介
EFS内置于WIN2000的NTFS文件系统中,利用EFS,可以为磁盘中的NTFS文件中的数据加密
,EFS加密建立在公钥基础之上的。在EFS中,用户认证中的公钥将加密文件的密钥进行加密
。经过加密的文件密钥表保存在加密文件中。要解密文件密钥,文件所有者必须提供私钥,
该私钥只有文件所有者才有。在你加密文件后,系统就会对文件加密,所有的文件加密密钥
都存储在文件头标的Data Decryption Field(DDF-数据解密区)和Data Recovery Field(
DRF-数据恢复区)中。当你打开一个加密的文件时,EFS自动在文件头标中检测加密的文件
,查找用户证书和相关联的私钥,EFS将你的私钥应用于DDF,用以将文件加密密钥列表解锁
,进而将文件内容以无格式文本的形式显示出来。看起来好像很复杂,但是这一切都由操作
系统搞定,他对文件的所有者来说是透明的,也就是说,对于文件所有者来说,他不会感觉
到和操作其它普通的文件有什么区别,但是对于没有被授权的用户来说,他就会被拒绝访问
该加密的文件。加密文件的备份和移动文件如果也是在NTFS分区中,那么他们也是加密的。
在编辑文档时,很多的应用程序会创建临时文件,这些临时文件可以未经加密存放在磁盘上
,而在运行WIN2000的机子上,因为EFS作用于文件层,所以只要所有加密的文件都处于NTFS
分区中,那么他们所有的副本也都是加密的。驻留于WINDOWS操作系统内核中的EFS,使用未
分页池存储文件密钥,以确保它们不被复制到页面文件中。因此,对加密文件进行编辑时产
生的临时性文件也不会泄露被加密文件的秘密,而且在编辑完成后,被加密的文件也不会以
未加密的形式被保存在页面文件或临时文件中。
★EFS的实现方法
首先要说明的是,EFS只能在NTFS分区中实现,即在FAT分区中是无法实现该功能的。实
现加密的方法如下:
点击你要加密的文件夹或文件,选属性,在常规中有个高级按钮,点高级,里面有个“
加密内容以便保护数据”,在前面打上钩,确定即可,这时他会提示你加密文件夹还是只加
密文件,这个自己看得懂,不用我说了吧!好了,这样这个文件就被加密了,现在你选中该
文件,在左边的提示(就是我的电脑中左边显示文件名,修改时间,大小,属性的那个地方
,不是在文件属性中)中会出现加密字样(如果压缩的话,就会显示压缩),加密文件夹的
操作一样,我就不说明了。
而解密过程刚好相反,就是把“加密内容以便保护数据”前面那个钩去掉即可。怎么样
,很简单吧??
★加密文件的复制移动等问题
1、只要是NTFS分区,不管是在分区间或者是分区内,那么无论是复制还是移动都会保持加
密状态。(这点和压缩不一样)
2、复制或者移动到非NTFS分区,那么加密属性将丢失,即变成不加密状态。
★注意事项
1、加密和压缩无法并存,即要压缩就无法加密,要加密就无法压缩。二者只能取其一。
2、加密的文件或文件夹无法共享。
3、默认情况下,EFS提供的加密的标准是56位。
★★★★★特别注意:4、当删除了加密该文件夹或者文件的帐号后,或者重新安装系统
后,该加密的文件夹或文件将无法使用,就算重新建立一个一模一样的帐户也不行,这点需
特别注意,很多朋友就是栽在这一点上,原因是Win2000是根据SID,而不是用户名来认帐户
的(原理说过很多次了,看我的另外一篇文章:有关WIN2000中NTFS权限的介绍及应用)
★忠告
一、在删除加密文件夹或文件的帐户或者重新安装系统之前,先把加密的文件进行解密,然
后再进行相关操作。(这点很多人会忘记,都是直接删除帐号,然后才发现还有加密文件,
结果加密的文件就这样挂了)。
二、在加密了文件之后,把你的证书导出,放在安全的地方,这是最好的解决办法。如果这
样做的话,就算把帐号删除,或者重新安装系统之前没有把加密的文件解密也没有关系。(
当然,为防万一,如果记得的话,还是先解密比较保险一点,因为你不知道这个证书会不会
坏掉,比如你把证书导出到软盘上,而你又很衰,刚好软盘又损坏什么的),到时候只要重
新建立一个新的帐号,这个帐号随便你怎么起,不一定要和原来的一样。然后再把先前导出
的证书再导入到新建的帐号中即可。不过需要注意的一点是,如果是先解密,然后再删除帐
号,之后再重新建立帐号,然后再重新加密的话,那么先前导出的证书就没有用了,需要重
新导出,原因很简单,因为这时候你是用新的帐号来加密文件,不是原来的那个帐号了。
下面介绍导出证书的步骤:
1、在运行中输入mmc,回车
2、控制台-》添加/删除管理单元
3、添加-》证书-》选择“我的用户帐户”
4、展开“证书-用户帐户”-》个人-》证书,在右边就可以看到你的证书了,不过有可能
有几个证书,你选在“预期目的”中写着“加密文件系统”的那个。
5、选中证书,点右键-》所有任务-》导出,选“是,导出私钥”,注意,这一步不要搞
错了。然后下一步直到出现叫你输入密码的对话框。输入等下导入时用的密码,这个密码随
便你取,你自己记住就行。
6、选择一个保存的地方以及文件名。下一步,完成。
7、搞定。
下面介绍导入证书的步骤:
很简单,用你想要的帐号登陆,然后直接双击你刚才导出的证书,一直下一步,直到叫
你输入密码为止,然后输入你在导出证书时设置的密码,一直下一步,然后他会提示你导入
成功即可。
这时候你就可以用加密的文件了。
★用导出证书的最大的优点是:不用考虑是不是还有文件没有解密,这些文件在哪里等这
些问题。
★用导出证书的最大的缺点是:如果你导出的证书被人盗取,那么别人就有可能通过导入
你的证书将文件解密。
三、如果你把你自己的证书给搞丢了,那么你自己都无法打开自己加密的文件,那么这时候
就要用到第三种方法,那就是恢复代理,用恢复代理的帐户登陆,就可以解开加密的文件。
在域中,域管理员是默认的恢复代理,在本机中,本地管理员(也就是Administrator)是默
认的恢复代理。但是如果代理名称改变了,那么对文件的访问将被拒绝,这点要注意。
所以归根结底,最好的办法就是使用证书导出/导入大法!!!(o^-^o)