文/刘晖
从windows 2000开始,微软新增了一种叫做EFS(Encrypting File System,加密文件系统)的加密方法。这是一种既方便又安全的加密方式,然而人们总是对它敬而远之,为什么呢?一方面,EFS加密方式不像其他加密软件那样容易理解。另一方面,由于EFS的高安全性,如果用户操作不当则很可能导致数据丢失。为了帮助大家理解EFS,避免使用中的错误操作,我们准备了这篇文章,希望你能真正地用好EFS。
提示:要使用EFS,必须满足两个条件:
1. 文件需要保存在NTFS文件系统的分区上。
2. 操作系统必须支持EFS加密。目前支持EFS的操作系统主要有:Windows 2000、Windows XP Professional(不包括Home版),还有Windows Server 2003。
EFS加密的优势
既然EFS如此麻烦,为什么不使用更简单的加密方法呢?例如用WinRAR将文件压缩的时候设置密码,这样解压时就需要提供密码,不是很直观吗?其实不然。首先EFS使用密钥加密,不易被破解。虽然Winrar可以给压缩的文件设置密码,但是网上有很多破解工具都可以破解,而EFS自从1999年发布至今,已经问世超过5年了,可至今没有听说有谁能够破解掉。其次,EFS和系统结合紧密,如果你用帐户A加密了数据,那么只有使用帐户A登录系统,才能打开文件。另外,EFS对用户是完全透明的,EFS加密后的文件对于加密者来说,和没有加密的文件是完全一样的,可以直接在资源管理器中打开查看、编辑、删除、复制和移动(复制和移动的时候文件的加密属性可能会发生变化,我们会在下期文章中讨论),所有操作都和平时一样。
加密方法
下面我们就来说说如何将文件(夹)用EFS加密,最简单的办法就是在目标对象上点击鼠标右键,选择“属性”,打开属性对话框,然后在常规选项卡上点击“高级”按钮,打开高级属性对话框,选中“加密内容以便保护数据”这个选项(如图1)。
这里有一点需要注意,我们可以对NTFS分区上的文件进行加密或者压缩,然而这两种属性不能同时应用到一个对象上。也就是说,一个文件被加密后就不能被压缩,被压缩后就不能被加密。想要知道文件有没有被加密或者压缩很简单,默认设置下,在Windows资源管理器中,正常文件会用黑色文字显示,而压缩后的文件会用蓝色文字显示,加密后的文件则会用绿色文字显示。
每次加密都需要打开其高级属性对话框,非常麻烦。我们可以打开注册表编辑器,定HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,在这里新建一个名为EncryptionContextMenu的DWord值,并将其数值设置为“1”,这样用鼠标右键点击一个文件或文件夹的时候,右键菜单中就会有加密(如果目标对象尚未被加密)或者解密(如果目标对象已经被加密)选项,只要选择相应的选项就可以直接完成操作(如图2)。
加密后文件的共享
默认情况下,加密后的文件只有加密者可以访问。如果因为特殊情况,你需要将你自己加密后的文件和别人共享,那么还需要额外的设置。要注意的是,这个特性仅在Windows XP之后的操作系统中提供,Windows 2000下无法共享EFS加密后的文件。同时共享只能用于单个文件,而无法用于整个文件夹。
如果有一个加密后的文件希望共享,可以首先在这个文件上点击鼠标右键,选择“属性”,打开属性对话框。接着点击常规选项卡上的“高级”按钮,打开高级属性对话框,并点击“详细信息”按钮,打开如图3所示的详细信息对话框。
在这个对话框中点击“添加”按钮,就可以选择你希望可以打开这个文件的用户。不过要注意,这里添加用户并不是添加用户的名称,而是添加用户的公钥,也就是说希望共享文件的用户必须有自己的公钥。
密钥的备份和恢复
你肯定觉得EFS非常简单吧?为什么有很多人在使用EFS的时候出现问题呢?笔者认为最大的原因在于很多人并没有真正理解EFS的加密方式。说到加密,密钥是一个非常重要的概念。EFS是一种公钥加密,那么这里就要说说什么是公钥加密了。在使用EFS加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的FEK (File Encryption Key,文件加密钥匙),然后利用FEK和数据扩展标准X算法创建加密后的文件,并把它存储到硬盘上,同时删除未加密的原始文件。随后系统利用你的公钥加密FEK,并把加密后的FEK存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用户的私钥解密FEK,然后利用FEK解密出文件。在首次使用EFS时,如果用户还没有公钥/私钥对(统称为密钥),则会首先生成密钥,然后加密数据。
从这段话中我们可以看出两个重点:文件的加密和解密都需要密钥的参与,而密钥分为公钥和私钥两种。很明显,无论是加密还是解密文件,都需要用到个人密钥。加密文件的时候使用公钥,解密文件的时候则使用相对应的私钥。那么无论是丢失了公钥还是私钥,都会给我们的使用带来麻烦,尤其是私钥,丢失之后就再也无法解密文件了。
为了保证数据安全,我们最好能在加密文件之后立即将自己的密钥备份出来,并保存到安全的地方,以防系统崩溃或其他原因导致数据无法解密。如何备份密钥呢?运行“certmgr.msc”打开证书管理器,在“当前用户/个人/证书”路径下,应该可以看见一个以你的用户名为名称的证书(如果你还没有加密任何数据,这里是不会有证书的)。用鼠标右键点击这个证书,在“所有任务”中点击“导出”(如图4)。之后会弹出一个证书导出向导,在向导中有一步会询问你是否导出私钥,在这里要选择“导出私钥”,其它选项按照默认设置,连续点击继续,最后输入该用户的密码和想要保存的路径并确认,导出工作就完成了。导出的证书将是一个pfx为后缀的文件。这个pfx文件最好能保存到其他位置,并且要保证该文件的安全。
恢复密钥
当用户的密钥丢失后,例如重装了操作系统,或者无意中删除了某个帐户,我们只要找到之前导出的pfx文件,用鼠标右键点击,并选择“安装PFX”,之后会出现一个导入向导,按照导入向导的提示完成操作(注意,如果你之前在导出证书时选择了用密码保护证书,那么在这里导入这个证书时就需要提供正确的密码,否则将不能继续),而之前加密的数据也就全部可以正确打开。
讲到这里,相信你对EFS的基本使用方法已经有了一个大概的认识,不过光有理论知识是不够的,笔者希望大家都多在实践中掌握EFS的使用。 由于EFS安全性非常高,如果使用不慎或方法不当则可能造成非常麻烦的后果,所以建议大家先用不重要的文件进行EFS加密的试验。而在下期杂志中,我们会针对用户在使用EFS的过程中遇到的各种问题进行解答。
以上文章由《电脑迷》提供,网易学院整理发布。转载时请保留此信息,谢谢合作。
[1] [2] [3]
>(出处:http://www.sheup.com)