您好, 访客   登录/注册

基于EFS加密文件系统的研究

来源:用户上传      作者: 刘一鸥

  EFS(加密文件系统)是微软操作系统提供的一个很好的文件加密机制。本文对Windows的NTFS文件系统所采用的EFS做了详细的分析,解释了EFS加密的概念,分析了使用EFS的好处,说明了进行EFS加解密的过程以及其存在的局限性。
  [关键词]NTFSEFS加密 研究
  
  一、什么是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算法创建加密后的文件,并把它存储到硬盘上,同时删除未加密的原始文件。随后系统利用用户的公钥加密FEK,并把加密后的FEK存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用户的私钥解密FEK,然后利用FEK解密出文件。
  使用EFS的好处:EFS加密机制和操作系统紧密结合,因此不必为了加密数据安装额外的软件,节约了使用成本。EFS集成进文件系统,因此一个恶意的用户不能绕过文件系统访问到硬盘,而且,所有运行在内核模式的EFS驱动程序不能由用户直接访问。 EFS加密系统对用户是透明的。 EFS密码组结合了对称加密(DESX)和非对称加密(RSA)的优点,数据使用对称加密进行加密,优于对数据使用非对称加密(用这种方法仅FEK被加密)。 Windows的CryptoAPI体系允许用户在智能卡上存取他们的私钥,这比将钥匙放在硬盘或软盘上更为安全,这也使多个位置访问成为可能。
  二、如何使用EFS加密
  当一个用户使用EFS去加密文件时,必须存在一个公钥和一个私钥,如果用户没有,EFS服务将会自动产生一对。对于初级用户来说,即使他完全不懂加密,也能加密文件,可以对单个文件进行加密,也可以对一个文件夹进行加密,这样所有写入文件夹的文件将自动被加密。
  一旦用户发布命令加密文件或试图添加一个文件到一个已加密的文件夹中,EFS将进行以下几步:
  第一步:文件被拷贝到临时文本文件,当拷贝过程中发生错误时利用此文件进行恢复。第二步:文件被一个随机产生的Key加密,这个Key叫作文件加密钥匙(FEK),FEK的长度为128位(仅US和Canada),这个文件使用DESX加密算法进行加密。 第三步:产生数据加密区域Data Decryptong Field(DDF),这个区域包含了使用RSA加密的FEK和用户的公钥。 第四步:如果系统设置了加密的代理,EFS同时会创建一个数据恢复块Data Recovery Field(DRF),然后把使用恢复代理密匙加密过的FEK放在DRF。这个区域的目的是为了在用户解密文件的过程中可能解密文件不可用(丢失Key、离开公司等)。 第五步:包含加密数据、DDF及所有DRF的加密文件被写入磁盘。 第六步:在第一步中创建的文本文件被删除。
  下面的进程在数据被解密时发生:
  第一步:使用DDF和用户的私钥解密FEK。 第二步:使用FEK解密文件。 在恢复代理恢复文件的过程中,同样的进程产生,除了在第一步中使用DRF而不是DDF。
  此外还可以在命令行模式下用“cipher”命令完成对数据的加密和解密操作,至于“cipher”命令更详细的使用方法则可以通过在命令符后输入“cipher/?”并回车获得。
  注意事项:如果把未加密的文件复制到具有加密属性的文件夹中,这些文件将会被自动加密。若是将加密数据移出来,如果移动到NTFS分区上,数据依旧保持加密属性;如果移动到FAT分区上,这些数据将会被自动解密。被EFS加密过的数据不能在Windows中直接共享。如果通过网络传输经EFS加密过的数据,这些数据在网络上将会以明文的形式传输。NTFS分区上保存的数据还可以被压缩,不过一个文件不能同时被压缩和加密。Windows的系统文件和系统文件夹也无法被加密。
  三、EFS的局限性
  安全性的增加伴随着花费的增加,任何加密进程都将会增加处理量和降低某些方面的性能,下面是关于在硬盘上加密文件的实行结果。
  仅仅可以对存储在磁盘上的文件进行加密,而不是对网络上传输的数据加密。必须应用其它的加密方法,例如IPSec,去实现安全网络传输。
  自动病毒监测不能扫描加密文件除非他们访问到用户的钥匙。
  如果一个文件或硬盘被偷,恶意的用户将有可能用大量的时间破译加密数据,数据可能会被解密。
  EFS仅仅工作在NTFS卷,目前EFS在FAT卷上不支持。
  EFS目前使用DESX作为它的加密算法,而更强壮的加密得法已存在,微软许诺在将来的EFS版本提供支持。
  如果系统文件被加密,系统将不能用,EFS仅可以对数据文件加密。操作系统需要引导的文件不能被加密,否则在开机的时候将不能访问。
  定义太多的恢复代理将影响性能。对每一个恢复代理,FEK发布被加密的同时创建一个DRF,这将引起两个问题:一是,为存储多个DRF需要大量的磁盘空间,二是,创建多个DRF将花费更多的时间和处理器资源。
  EFS将增加系统管理员的管理,而且管理加密钥匙的区域是非常重要的。
  在加密进程的第一步中创建的文本备份文件在进程中以未加密的格式存在,恶意用户可能在文件存在时访问到这个文件。
  四、结论
  对Windows操作系统EFS是一个受欢迎的附加功能,它对用户是透明的操作,有助于减少物理安全的危险,任何的安全技术,都有其局限性和问题,不能预防所有的问题,但作为全面的安全策略的一部分,EFS对阻止未授权的用户查看敏感数据是一个非常有用的工具。


转载注明来源:https://www.xzbu.com/2/view-462405.htm