EFS(Encrypting File System,
加密文件系统)是Windows 2000/XP所特有的一个实用功能,对于NTFS卷上的文件和数据,都可以直接被
操作系统加密保存,在很大程度上提高了数据的安全性。
简介
EFS加密是基于公钥策略的。然后将利用FEK和数据扩展标准X算法创建加密后的文件,。如果你登录到了域环境中,密钥的生成依赖于域控制器,否则它就依赖于本地机器
EFS加密解密
EFS 加密解密都是透明完成, 如果用户加密了一些数据, 那么其对这些数据的访问将是完全允许的, 并不会受到任何限制。而其他非授权用户试图访问加密过的数据时, 就会收到“拒绝访问”的错误提示。
a.最简单的办法就是在目标对象上点击鼠标右键,选择“属性”,打开属性对话框,然后在常规选项卡上点击“高级”按钮,打开高级属性对话框,选中“加密内容以便保护数据”这个选项,反之解密。
b.每次加密都需要打开其高级属性对话框,非常麻烦。我们可以打开
注册表编辑器
加密后文件的共享
默认情况下,加密后的文件只有加密者可以访问。如果因为特殊情况,你需要将你自己加密后的文件和别人共享,那么还需要额外的设置。要注意的是,这个特性仅在
Windows XP之后的
操作系统中提供,Windows 2000下无法共享EFS加密后的文件。同时共享只能用于单个文件,而无法用于整个文件夹。
在这个对话框中点击“添加”按钮,就可以选择你希望可以打开这个文件的用户。不过要注意,这里添加用户并不是添加用户的名称,而是添加用户的
公钥,也就是说希望共享文件的用户必须有自己的公钥。
密钥的备份和恢复
说到加密,
密钥是一个非常重要的概念。EFS是一种公钥加密,那么这里就要说说什么是公钥加密了。在使用EFS加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的FEK (File Encryption Key,
文件加密钥匙),然后利用FEK和数据扩展标准X算法创建加密后的文件,并把它存储到硬盘上,同时删除未加密的原始文件。随后系统利用你的
公钥加密FEK,并把加密后的FEK存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用户的私钥解密FEK,然后利用FEK解密出文件。在首次使用EFS时,如果用户还没有
公钥/私钥对(统称为密钥),则会首先生成密钥,然后加密数据。
文件的加密和解密都需要
密钥的参与,而密钥分为公钥和
私钥两种。很明显,无论是加密还是解密文件,都需要用到个人
密钥。加密文件的时候使用
公钥,解密文件的时候则使用相对应的
私钥。那么无论是丢失了公钥还是
私钥,都会给我们的使用带来麻烦,尤其是私钥,丢失之后就再也无法解密文件了。
为了保证数据安全,最好能在加密文件之后立即将自己的
密钥备份出来,并保存到安全的地方,以防系统崩溃或其他原因导致数据无法解密。方法是,运行“certmgr.msc”打开证书管理器,在“当前用户/个人/证书”路径下,应该可以看见一个以你的用户名为名称的证书(如果你还没有加密任何数据,这里是不会有证书的)。用鼠标右键点击这个证书,在“所有任务”中点击“导出”。之后会弹出一个证书导出向导,在向导中有一步会询问你是否导出
私钥,在这里要选择“导出私钥”,其它选项按照默认设置,连续点击继续,最后输入该用户的密码和想要保存的路径并确认,导出工作就完成了。导出的证书将是一个
pfx为后缀的文件。这个
pfx文件最好能保存到其他位置,并且要保证该文件的安全。
恢复密钥
当用户的
密钥丢失后,如重装了
操作系统,或者无意中删除了某个帐户,我们只要找到之前导出的
pfx文件,用鼠标右键点击,并选择“安装PFX”,之后会出现一个导入向导,按照导入向导的提示完成操作(注意,如果你之前在导出证书时选择了用密码保护证书,那么在这里导入这个证书时就需要提供正确的密码,否则将不能继续),而之前加密的数据也就全部可以正确打开。
相关问题
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恢复系统到创建镜像的状态,解密文件所用的
密钥就丢失了。因此这个问题一定需要注意!
注意事项
如果把未加密的文件复制到具有加密属性的文件夹中,这些文件将会被自动加密。若是将加密数据移出来(前提:你正在使用的账户有移动\u590d制\u5220除已加密文件的权限),如果移动到NTFS分区上,数据依旧保持加密属性;如果移动到FAT分区上,这些数据将会被自动解密。被EFS加密过的数据不能在Windows中直接共享。如果通过
网络传输经EFS加密过的数据,这些数据在网络上将会以明文的形式传输。NTFS分区上保存的数据还可以被压缩,不过一个文件不能同时被压缩和加密。最后一点,Windows的
系统文件和
系统文件夹无法被加密。