NTFS文件加密与解密
 什么是EFS加密
  EFSEncrypting 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加密),你无法加密保存在FATFAT32分区上的数据。
  对于想加密的文件或文件夹,只需要用鼠标右键点击,然后选择属性,在常规选项卡下点击高级按钮,之后在弹出的窗口中选中加密内容以保护数据,然后点击确定,等待片刻数
据就加密好了。如果你加密的是一个文件夹,系统还会询问你,是把这个加密属性应用到文件夹上还是文件夹以及内部的所有子文件夹。按照你的实际情况来操作即可。解密数据也是很简单的,同样是按照上面的方法,把加密内容以保护数据前的钩消除,然后确定。
  如果你不喜欢图形界面的操作,还可以在命令行模式下用“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_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EFS,在编辑菜单上点击新建-Dword,输入“EfsConfiguration”作为键名,并设置键值为“1”,这样本机的EFS加密就被禁用了。而以后如果又想使用时只需把键值改为“0”
  如何保证EFS加密的安全和可靠
  前面我们已经了解到,在EFS加密体系中,数据是靠FEK加密的,而FEK又会跟用户的公钥一起加密保存;解密的时候顺序刚好相反,首先用私钥解密出FEK,然后用FEK解密数据。可见,用户的密钥在EFS加密中起了很大作用。
  密钥又是怎么来的呢?在Windows 2000/XP中,每一个用户都有一个SIDSecurity 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 XPWindows 2000两种情况分别加以说明。
  由于Windows XP没有默认的恢复代理,因此我们加密数据之前最好能先指定一个默认的恢复代理(建议设置Administrator为恢复代理,虽然这个账户没有显示在欢迎屏幕上,不过确实是存在的)。这样设置:
  首先要获得可以导入作为恢复代理的用户密钥,如果你想让Administrator成为恢复代理,首先就要用Administrator账户登录系统。在欢迎屏幕上连续按CtrlAltDel两次,打开登录对话框,在用户名处输入Administrator,密码框中输入你安装系统时设置的Administrator密码,然后登录。首先在硬盘上一个方便的地方建立一个临时的文件,文件类型不限。在运行中输入“CMD”然后回车,打开命令提示行窗口,在命令提示符后输入“cipher /r:c:\1”,回车后系统还会询问你是否用密码把证书保护起来,你可以按照你的情况来决定,如果不需要密码
保护就直接按回车。完成后我们能在C盘的根目录下到1. cer1. pfx两个文件(为了显示的清楚我在文件夹选项中设置了显示所有文件类型的扩展名,这样我们可以更清楚地了解到底生成了哪些文件)。
  之后开始设置恢复代理。对于1. pfx这个文件,同样需要用鼠标右键点击,然后按照向导的提示安装。而1. cer则有些不同,在运行中输入“gpedit.msc”并回车,打开组策略编辑器。在计算机配置-Windows设置-安全设置-公钥策略-正在加密文件系统菜单下,在右侧
窗口的空白处点击鼠标右键,并选择添加数据恢复代理,然后会出现添加故障恢复代理向导按照这个向导打开,如果一切无误就可以看见图五的界面,这说明我们已经把本机的Administrator设置为故障恢复代理。
  如果你愿意,也可以设置其它用户为恢复代理。需要注意的是,你导入证书所用的1.pfx1.
cer是用哪个账户登录后生成的,那么导入证书后设置的恢复代理就是这位用户。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。