WINDOWS加密文件系统的简介和使用
版权:CLIC注释:
    你今天加密了吗?公司的商业秘密文件安全吗?想杜绝门事件吗?估计99%的人在自己机器上的文件(不管这些文件是多么的机密)都是没有加密的。是WINDOWS系统没有加密功能吗?NO!是大家不知道或者不会使用而已!在WINDOWS 2000以上、NTFS V5版本格式分区上的WINDOWS操作系统提供了一个叫做Encrypting File System(简称EFS)加密文件系统的新功能。该功能是一种安全的本地信息加密服务,使用核心的文件加密技术在NTFS卷上存储加密的文件,可以防止那些未经允许的对敏感数据进行物理访问的入侵者(偷取笔记本电脑,硬盘等)
    一、EFS是如何工作的?
    当一个用户使用EFS去加密文件时,必须存在一个公钥和一个私钥,如果用户没有,EFS服务自动产生一对。EFS怎么建立qq加密系统对用户是透明的,对于用户来说,即使他完全不懂加密,也能加密文件,可以对单个文件进行加密,也可以对一个文件夹进行加密,所有写入该文件夹的文件都将自动被加密。
    一旦用户发布命令加密文件或试图添加一个文件到一个已加密的文件夹中,EFS将进行以下几步:
    1NTFS女模王瑞儿首先在这个文件所在卷(分区)的卷(分区)信息目录下(目录名为:System Volume Information,隐藏在根目录下面)创建一个叫做efs0.log的日志文件,当拷贝过程中发生错误时利用此文件进行恢复
    2、然后EFS服务调用系统API产生一个FEK密匙(File Encryption Key,文件加密密匙),长度一般为128位,对文件进行DES X加密算法加密;(默认的加密算法为128位的DES X算法,可选更为强大的1683DES算法)
    3、虽然FEK是在每次写文件时随机产生,但如果明文保存该密匙也会导致有泄密的漏洞,因此FEK密匙同样要进行不可逆的、非对称的加密后才能保存下来。所以此时EFS服务会根据用户的SID产生对应的、唯一性的公有/私有密匙对;
    4、然后EFS服务创建一个数据解密块Data Decryptong Field(DDF),并利用公有/私有密匙对中的公有密匙对FEK进行1024位的RSA算法加密,保存在DDF中;
    5、如果系统设置了恢复代理EFS服务还会同时创建一个数据恢复块Data Recovery Field(DRF),然后把使用恢复代理密匙(通常为另一个用户的公有密匙)加密过的FEK放在DRF。每定义一个恢复代理,EFS将会创建一个Data Recovery Agent(DRA)。恢复代理其实就是为了防止用户的密匙丢失、损坏等导致不能解密文件时可以有其他的密匙来进行解密;恢复代理可以有多个,每设置一个就会存在一个DRF
    6、最后把包含加密数据、DDF及所有DRF的加密文件写入磁盘,并删除加密过程中产生的所有临时文件;
    解密的过程和加密的过程是相反的:首先,系统检测用户是否具有被EFS服务使用的私有密匙。如果有的话,系统将会在读取用户EFS属性的同时在DDFDRF中寻属于当前用户的DDFDRF数据块。如果到的话,用户私有密匙将会解密出FEK;使用解密出来的FEKEFS服务对加密的文件数据进行解密。
    二、EFS的应用
    EFS可以被认为是NTFS(分区)文件权限外的第二层防护,为了访问一个被EFS加密的文件,用户必须具有访问文件的NTFS权限,而且同时还必须具有解密文件所需的密匙,缺少其中任何一样都会导致无法正常访问。对于NTFS权限,其实质只是操作系统通过一系列的文件属性来控制访问的权限,因为文件内容还是原样地保存在磁盘上,因此可以通过很多办法来跳过这类限制进行未授权访问,如把硬盘移到其他机器上直接读取、使用调试工具跳过权限控制判断部分、使用口令破解程序等等。然而EFS加密则是采用不可逆的、非对称的密匙对文件进行加密后保存,所以从根本上限制了非法访问。EFS是本质上对文件内容进行加密后保存,所以十分适合应对突发性事件而产生的安全和泄密情况,其他如硬盘格式化、物理性损坏等保护措施都需要一段时间去实施,而且不能保证被部分恢复的风险。
    三、EFS的设置和使用
    1、选择需要加密的文件夹或文件,点击鼠标右键,选"属性"
   
    2、点击"高级",进入高级属性;
   
    3、选择"加密内容以便保护数据",点"确认"即可。
   
    4、加密后的文件夹或文件,在资源管理器里会显示为浅绿;
   
    此外,在加密文件的过程中,系统将把原来的文件存储到缓冲区,然后在加密后将原文件删除。这些被删除掉的文件在系统上并不是不可能恢复的,通过磁盘文件恢复工具很有可能被恢复过来而造成泄密,此时您需要考虑通过其他磁盘安全工具,或者使用系统内建的"cipher"命令对磁盘上的已删除文件进行清除,具体的步骤是,在命令行窗口中键入"cipher /w D:\TEST"即可清除DTEST文件夹中已删除文件残留的碎片,如果不输入文件夹名称则将对整个磁盘进行清理。
    四、EFS密钥的备份
    根据上面对EFS的介绍,大家可以了解到用户的密钥是文件解密的必要条件,如果丢失了密钥,被加密的文件就相当于垃圾文件,不可恢复的,所以备份密钥也是用户必须重视的一项内容。
从上面的介绍可知,用户一旦使用过EFS加密,就会在系统里产生一对公有和私有的密钥,如果只是为了保证以后解密的需要,我们只需要备份私有密钥就可以了。
在控制面板里打开证书管理器,在"当前用户""证书"路径下,应该可以看见一个以你的用户名为名称的证书(如果你还没有加密任何数据,这里是不会有证书的)。右键点击这个证书,在"所有任务"中点击"导出"。之后会弹出一个证书导出向导,在向导中有一步会询问你是否导出私钥,在这里要选择"导出私钥",其它选项按照默认设置,连续点击继续,最后输入该用户的密码和想要保存的路径并确认,导出工作就完成了。导出的证书将是一个pfx为后缀的文件。
    以后如果遇到证书丢失、系统重装等情况,可以到之前导出的pfx文件,鼠标右键点击,并选择"安装PFX",之后会出现一个导入向导,按照导入向导的提示完成操作(注意,如果你之前在导出证书时选择了用密码保护证书,那么在这里导入这个证书时就需要提供正确的密码,否则将不能继续),之前加密的文件也就全部可以正确打开了。
    五、WINDOWS XP的特殊性
    比较遗憾的是在WINDOWS XP HOME版,是没有EFS功能的,只有在WINDOWS XP Profressional版本里才是标准内置服务。还有一个比较特殊的情况,就是WINDOWS XP下的qq客服EFS服务是没有默认的恢复代理,也就是说,默认情况下,通过EFS加密的文件只有当时使用加密的用户可以进行解密,其他任何用户包括管理员用户都是无法进行解密的。如果用户要设置恢复代理,需要进行以下操作:
    1、首先要获得可以导入作为恢复代理的用户密钥,例如你想让Administrator成为恢复代理,首先用Administrator登录系统,随便在硬盘上建一个临时的文件(d:\为例),文件类型不限;然后进入命令行窗口,输入"cipher /r:d:\",执行后系统还会询问你是否用密码把证书保护起来,你可以按照你的情况来决定,如果不需要密码保护就直接按回车。完成后我们能在白百合演过的电影D盘的根目录下到 (公钥) pfx(私钥) 两个文件。
    2、设置恢复代理。在运行中输入"gpedit.msc"并执行,打开组策略编辑器。在"计算机配置-Windows设置-安全设置-公钥策略-正在加密文件系统"菜单下,在右侧窗口的空白处点击鼠标右键,并选择"添加数据恢复代理",然后会出现"添加故障恢复代理向导"按照这个向导打开,如果一切无误就可以看见本机的Administrator设置为故障恢复代理。
赫子铭现状    3、如果需要设置多个恢复代理,可以重复第12步骤来实现;
还有一个要注意的地方,上面产生的是两个文件,设置恢复代理使用的是公钥证书文件,恢复代理是用于加密的,如果要访问和解密文件就要用到私钥证书文件,这时只需要用鼠标右键点击该文件pfx,选择"导入证书"即可。
在我们省的AD域环境里,所有加入域的WINDOWS XP系统都自动通过组策略设置了主域管理员的恢复代理,一旦出现加密文件无法访问的时候,还是可以通过主域管理员来进行解密恢复的!
    六、EFS加密常见问题
    1、我的加密文件已经打不开了,我能够把NTFS分区转换成FAT32分区来挽救我的文件吗?
这当然是不可能的了。很多人尝试过各种方法,例如把NTFS分区转换成FAT32分区;NTFS DOS之类的软件到DOS下去把文件复制到FAT32分区等,不过这些尝试都以失败告终。毕竟EFS是一种加密,而不是一般的什么权限之类的东西,这些方法对付EFS加密都是无济于事。而如果你的密钥丢失或者没有做好备份,那么一旦发生事故所有加密过的数据就都没救了。
    2、我加密数据后重装了操作系统,现在加密数据不能打开了。如果我使用跟前一个系统相同的用户名和密码总应该就可以了吧?
这当然也是不行的,我们在前面已经了解到,跟EFS加密系统密切相关的密钥是根据每个用户的分期买车SID得来的。尽管你在新的系统中使用了相同的用户名和密码,但是这个用户的SID已经变了。这个可以理解为两个同名同姓的人,虽然他们的名字相同,不过指纹绝不可 能相同,那么这种想法对于只认指纹不认人名的EFS加密系统当然是无效的。
    3、被EFS加密过的数据是不是就绝对安全了呢?
当然不是,安全永远都是相对的。以被EFS加密过的文件为例,如果没有合适的密钥,虽然无法打开加密文件,不过仍然可以删除(有些小人确实会这样想:你竟然敢加密了不让我看!那好,我就删除了它,咱们都别看)。所以对于重要文件,最佳的做法是NTFS权限 EFS加密并用。这样,如果非法用户没有合适的权限,将不能访问受保护的文件和文件夹;而即使拥有权限(例如为了非法获得重要数据而重新安装操作系统,并以新的管理员身份给自己指派权限),没有密钥同样还是打不开加密数据。
    4、我只是用Ghost恢复了一下系统,用户账户和相应的SID都没有变,怎么以前的加密文件也打不开了?
这也是正常的,因为EFS加密所用到的密钥并不是在创建用户的时候生成,而是在你第一次用EFS加密文件的时候。如果你用Ghost创建系统的镜像前还没有加密过任何文件,那你的系统中就没有密钥,而这样的系统制作的镜像当然也就不包括密钥。一旦你加密了文件,并用Ghost恢复系统到创建镜像的状态,解密文件所用的密钥就丢失了。因此这个问题一定需要主意!