如果你想设置禁止加密某个文件夹,可以在这个文件夹中创建一个名为“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”,之后会出现一个导入向导,按照导入向导的提示完成操作(注意,如果你之前在导出证书时选择了用密码保护证书,那么在这里导入这个证书时就需要提供正确的密码,否则将不能继续),而之前加密的数据也就全部可以正确打开。