
EFS加密和解密.docx
12页EFS加密和解密EFS是一种系统自带的文件加密技术,下面就讲如何进行EFS加密以及如何解密的相关知识……大家对Windows2000/XP/2003系统提供的EFS(加密文件系统)功能一定不陌生吧!它应用在NTFS文件系统中,能有效保护机器中的重要数据不被非法侵犯通常情况下,用户在Windows图形界面中对文件或文件夹进行EFS加密和解密操作这里笔者介绍它的另一种使用方法——cipher.exe命令cipher・exe命令格式:CTPHER[/E|/D][/S:directory][/A][/I][/F][/H][pathname[...]]CTPHER/KCTPHER/R:filename—参数介绍:—/A使用于目录和文件—/D解密指定的目录—/E加密指定的目录—/F强制加密所有指定的对象—/H显示具有隐藏、系统属性的文件—/T出现错误后,继续执行指定操作—/K为运行cipher的用户创建新文件加密密钥/R生成一个EFS恢复代理密钥和证书,然后将它写入一个・PFX文件(含有证书和密钥)和一个・CER文件(只含有证书)中—/S在指定目录及其所有子目录的目录中执行指定操作应用实例:一、加密目录文件夹和文件1. 加密F盘下的efs目录点击“开始一运行”,在运行对话框中输入“CMD”命令,弹出“命令提示符”窗口,进入到“F:\>”提示符下,然后运行“cipher/eefs”命令,接着系统提示“正在加密f:\中的目录,efs[OK],一个目录中一个目录被加密”信息后,完成“efs”目录的加密操作。
如果要加密efs目录下的所有子目录,运行“cipher/e/s:efs”命令即可2. 加密F盘下efsl目录中的“ichat.txt”文件在命令提示符窗口中运行“cipher/e/aefs1\ichat.txt”命令后,系统提示“ichat.txt[OK],1个目录中的1个文件(或目录)已被加密”信息后,完成对ichat.txt文件的加密如果要加密该目录下的所有文件,运行“cipher/e/aefs1\*”命令即可二、查询加密目录和加密文件使用cipher.exe命令可以查询系统中哪些目录和文件被加密,如查询F盘中的efs目录是否被加密,在命令提示符窗口中输入“cipherefs”命令,然后系统提示“Eefs”信息,说明efs目录已被加密要查询efs目录中哪些文件已被加密,运行“cipherefs\*”命令即可三、解密目录文件夹在命令提示符窗口中运行“cipher/defs”命令后,就将efs目录解密要解密efs目录下的所有子目录运行“cipher/d/s:efs”命令即可要解密efsl目录ichat.txt文件,运行“cipher/d/aefsl\ichat.txt”命令,解密该目录所有文件,运行“cipher/d/aefs1\*”命令即可。
四、导出证书和私匙在命令提示符下运行“cipher/R:rtj”,其中rtj为导出文件的文件名,接着系统提示“请键入密码来保护.PFX文件:”,两次输入密码后,就在所在目录下生成“rtj.CER”和“rtj.PFX”这两个文件其中rtj.CER为用户证书,rtj.PFX为证书和密钥文件一旦用户丢失了证书和密钥无法解密EFS加密文件,只要将rtj.CER和rtj.PFX文件导入即可EFS加密出了问题怎么办?几天前,一位朋友给我发出十万火急的求援消息,他在公司计算机中用EFS加密的文件不能打开了了,里面有所有重要客户资料他说由于系统用户配置问题,他删除了自己的账户,重新建了一个相同用户名的账户,但是不料以前加密的文件夹再也不能打开了不过,幸好这位仁兄使用的Windows2000,我告诉他可以使用恢复代理来解密,才使他放下心来类似这样的求救可以在众多技术论坛中看到,且越来越多,并非每个朋友都是幸运的,由于重要数据无法打开导致损失惨重的事件也是屡见不鲜如果你也使用Windows2000/XP,并对数据加密,为避免受到损失,就需要了解EFS加密,并成为个中高手什么是EFS从Windows2000开始,微软对NTFS文件系统进行了升级,将在WindowsNT中使用的4.0升级为5.0,其最大的特点就是安全特性更加强大,特别是增加了加密文件系统EFS,用来在使用NTFS文件系统的卷上直接加密数据,能让用户在系统上使用公钥加密去保护私有的数据。
你可以为某个隐私的文件或文件夹加密,以防止他人使用没有正确权限的人即使能访问到硬盘,若试图操作加密的文件或文件夹,则会收到一条“拒绝访问”错误消息另外,用户验证过程是在登录Windows时进行的,这就保证了EFS加密系统对计算机用户来说是透明的通俗地说,只要具有权限的账户登录到Windows,就可以像打开任何一个普通文件一样使用自己加密的文件,而不像通常的加密软件会弹出一个对话框,让你输入密码,这就大大方便了使用者用ESF加密文件当你使用了Windows2000/XP/2003系统(注意WindowsXP家庭版不支持EFS加密文件系统),且格式化磁盘为NTFS文件系统,你就具有了应用EFS的条件要使用EFS加密,只须打开资源管理器,在需要加密的文件(夹)上点鼠标右键,选“属性”,在“属性”对话框中点“高级”打开“高级属性”对话框,勾选“加密内容以便保护数据”(图1)(取消该选项前的钩即可解密文件)确定”后点击“应用”,如果加密的是文件夹,则会弹出图2所示对话框,你可以根据需要选择是仅加密此文件夹还是将此文件夹下的子文件夹和文件也一起加密最后点击“确定”后,在默认情况下,一般你会发现文件(夹)在资源管理器中显示的颜色变为彩色,表示已经被加密(或压缩)了。
提示:你也可以不使文件(夹)变色,在资源管理器中,点“工具一文件夹选项一查看”,将“用彩色显示加密或压缩的NTFS文件”取消即可EFS加密解密技巧在实际应用中,我们还可以通过各种技巧来完成EFS加密的相关操作1. 添加“加密”右键菜单如果觉得上述加密方法还是太烦琐,可以在“运行”中输入“regedit”,打开注册表编辑器,找到HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced,在右边窗口中点击鼠标右键,选择“新建—Dword值”,取键名为“EncryptionContextMenu”,并设置键值为“1”退出注册表编辑器,打开资源管理器,任意选中一个NTFS分区上的文件(夹),点鼠标右键,菜单中多出了一个“加(解)密”的选项你可以直接点击此菜单,即可完成加密解密操作2. 禁止加密某个文件夹如果你想设置禁止加密某个文件夹,可以在这个文件夹中创建一个名为“Desktop.ini”的文件,然后用记事本编辑内容为:EncryptionDisable=1但是这个方法不能禁止已加密文件夹的文件以及子文件夹。
3. 彻底禁止EFS加密要在机器上彻底禁用EFS加密,可以通过修改注册表实现点击“开始一运行”,输入“Regedit”回车,打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\EFS,在“编辑”菜单上点击“新建—Dword值”,输入“EfsConfiguration”作为键名,并设置键值为“1”,这样本机的EFS加密就被禁用了如果想重新使用EFS加密时,只要把键值改为“0”即可备份加密证书重新安装系统后要打开加密文件的解决办法EFS加密原理让我们来简单了解一下EFS是如何工作的在EFS中,数据靠FEK(文件加密钥匙)加密,而FEK跟用户的公钥一起加密保存;解密的时候顺序刚好相反,首先用私钥解密出FEK,然后用FEK解密数据简言之,系统是靠你的公钥/私钥(统称密钥)来加解密的那么密钥从何而来呢?密钥是通过用户的SID产生的在Windows2000/XP中,每一个用户都有一个SID(安全标示符),首次使用EFS时,系统会根据SID首先生成密钥SID都是惟一的,如同人的指纹,因而用户的密钥也绝不会相同,这就保证了EFS加密的可靠。
目前,据官方消息说EFS还未证实被破解过需要注意的是,如果重新安装了系统,就会产生一个新的SID,即使你安装系统的时候采用的是原来的用户名和密码,也无法直接打开原来被加密的文件(夹)了,很多朋友经常由于忽略了这一点而导致数据损失备份密钥既然EFS采用加密密钥来进行加解密,那么只要加密密钥存在,我们就能恢复数据因此,将密钥备份下来以作不时之需是最好的办法点击“开始一运行”,在“运行”对话框中输入“certmgr.msc”打开证书管理器,打开“证书一当前用户”下的“个人一证书”,只要你做过加密操作,右边窗口就会有与用户名同名的(如果有多份证书,选“预期目的”为“加密文件系统”)证书选中证书后点鼠标右键,选“所有任务一导出”,在弹出的“证书导出向导”中,选择“导出私钥”,并按照向导的要求输入密码来保护导出的私钥,最后存储为一个PFX后缀的文件(如图3所示)图3当加密文件的账户出现问题或重新安装了系统后需要访问或解密以前加密的文件时,只要使用鼠标右键单击备份的证书,选择“安装PFX”,系统将弹出“证书导入向导”,键入当初导出证书时输入用于保护备份证书的密码,然后选择让向导“根据证书类型,自动选择证书存储区”即可。
完成后就可以访问以前的加密文件了提示:需要注意的是,任何其他用户只要获得了你备份的证书,都可以对你的加密文件进行解密,因此一定要确保备份证书的安全性小知识1. 把未加密的文件复制到已经加密的文件夹中,这些文件会被自动加密2. 若是将加密文件移动到NTFS分区上,数据会保留加密属性;如果移动到FAT(FAT32)区上,这些数据将会被自动解密另外,NTFS分区上保存的文件不能同时被压缩和加密3. Windows的系统文件和系统文件夹不能被加密用恢复代理解密文件删除用户后打开加密文件的解决办法EFS加密是安全可靠的,那么,一旦用户账户被删除,就像开头提到的那位,重新创建一个相同的用户可以打开吗?答案当然是否定的,重新创建的用户虽然与以前用户同名,但是系统却不会分配相同的SID(记住,不可能存在相同SID!除非是克隆系统),因此密钥也不同,加密的文件自然就无法打开了当然,这种情况也不是完全没有解决的办法,因为用EFS加密过的文件,除了加密者本人之外还有“恢复代理”可以打开恢复代理是一种特殊的用户,作用是解开用EFS加密的文件对于Windows2000来说,在单机和工作组环境下,默认的恢复代理是Administrator;WindowsXP在单机和工作组环境下没有默认的恢复代理。
而在域环境中就完全不同了,所有加入域的Windows2000/XP计算机,默认的恢复代理全部是域管理员所以我说那位网友是幸运的,因为他用的是Windows2000,可以用Administrator这个用户登录系统,然后就能直接打开或者解密文件大量使用WindowsXP的朋友就没有那么幸运了,由于没有默认的恢复代理,事先又没有设置恢复代理,一旦用户被删除,你面临的将是数据的丢失因此如果你使用的是WindowsXP用户,请事先设置恢复代理设置WindowsXP恢复代理1. 首先确定用哪个用户作为恢复代理,可以设置任何用户,比如你想让USER成为恢复代理,就用USER账户登录系统(一般建议使用Administrator作为恢复代理)2. 在“运行”中输入“cipher/。












