摘要:efs(加密文件系统)是微软操作系统提供的一个很好的文件加密机制。本文对windows的ntfs文件系统所采用的efs做了详细的分析,解释了efs加密的概念,分析了使用efs的好处,说明了进行efs加解密的过程以及其存在的局限性。
关键词:ntfs;efs加密
一、什么是efs加密
efs(encrypting file system,加密文件系统)是windows 2000/xp/vista所特有的一个实用功能,对于ntfs卷上的文件和数据,都可以直接被操作系统加密保存。如果硬盘上的文件已经使用efs进行了加密,即使一个攻击者能访问到硬盘上,由于没有解密的密钥,文件也是不可用的,在很大程度上提高了数据的安全性。这种特性对于移动用户、通过宽带连接的用户、对敏感数据有更高安全要求的机构的益处是显而易见的。
efs可以被认为除ntfs外的第二层防护,为访问一个被加密的文件,用户必须有访问到文件的ntfs权限。在相关ntfs权限的用户能看到文件夹中的文件,但不能打开文件除非有相应的解密密钥。同样,一个用户有相应的密钥但没有相应的ntfs权限也不能访问到文件。所以一个用户要能打开加密的文件,同时需要ntfs权限和解密密钥。
efs加密是基于公钥策略的。在使用efs加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的fek (file encryption key,文件加密钥匙),然后将利用fek和数据扩展标准x算法创建加密后的文件,并把它存储到硬盘上,同时删除未加密的原始文件。WwW.133229.Com随后系统利用用户的公钥加密fek,并把加密后的fek存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用户的私钥解密fek,然后利用fek解密出文件。
二、使用efs的好处
efs加密机制和操作系统紧密结合,因此不必为了加密数据安装额外的软件,节约了使用成本。访问一个加密的文件不需要用户任何的操作,而先前的第三方的文件加密工具需要用户每次访问文件时键入口令,它们并没有与文件系统或操作系统进行无缝地集成。
efs集成进文件系统,因此一个恶意的用户不能绕过文件系统访问到硬盘,而且,所有运行在内核模式的efs驱动程序不能由用户直接访问。
efs加密系统对用户是透明的。如果某用户加密了一些数据,那么该用户对这些数据的访问将是完全允许的,并不会受到任何限制。而其他非授权用户试图访问加密过的数据时,就会收到“访问拒绝”的错误提示。efs加密的用户验证过程是在登录windows时进行的,只要登录到windows,就可以打开任何一个被授权的加密文件。
efs密码组结合了对称加密(desx)和非对称加密(rsa)的优点,数据使用对称加密进行加密,优于对数据使用非对称加密(用这种方法仅fek被加密)。
windows 的cryptoapi体系允许用户在智能卡上存取他们的私钥,这比将钥匙放在硬盘或软盘上更为安全,这也使多个位置访问成为可能。
三、如何使用efs加密
当一个用户使用efs去加密文件时,必须存在一个公钥和一个私钥,如果用户没有,efs服务将会自动产生一对。对于初级用户来说,即使他完全不懂加密,也能加密文件,可以对单个文件进行加密,也可以对一个文件夹进行加密,这样所有写入文件夹的文件将自动被加密。
一旦用户发布命令加密文件或试图添加一个文件到一个已加密的文件夹中,efs将进行以下几步:
第一步:文件被拷贝到临时文本文件,当拷贝过程中发生错误时利用此文件进行恢复。
第二步:文件被一个随机产生的key加密,这个key叫作文件加密钥匙(fek),fek的长度为128位(仅us和canada),这个文件使用desx加密算法进行加密。
第三步:产生数据加密区域data decryptong field(ddf),这个区域包含了使用rsa加密的fek和用户的公钥。