首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

企业级加密文件系统 eCryptfs 详解(1)

企业级加密文件系统 eCryptfs 详解(1)

加密文件系统概述什么是加密文件系统近年来,保护敏感数据不被泄漏成为人们关注的热点问题。入侵者除了直接盗取物理存储设备,还可以通过网络攻击来窃夺文件数据;而且,由于共享的需求,敏感数据会由多人访问,这也增大了泄漏的可能性。对数据或文件进行加密已经成为一种公认的比较成功的保护方法。事实上,人们早已开发了许多优秀的加密算法,如 DES、AES、RSA 等,并且有一些应用程序如 crypt 使用这些加密算法,用户通过这些工具手工地完成加密、解密的工作。由于这些应用程序操作麻烦、没有和整个系统紧密地结合而且容易受到攻击,因此一般用户并不愿意使用。
加密文件系统通过将加密服务集成到文件系统这一层面来解决上面的问题。加密文件的内容一般经过对称密钥算法加密后以密文的形式存放在物理介质上,即使文件丢失或被窃取,在加密密钥未泄漏的情况下,非授权用户几乎无法通过密文逆向获得文件的明文,从而保证了高安全性。与此同时,授权用户对加密文件的访问则非常方便。用户通过初始身份认证后,对加密文件的访问和普通文件没有什么区别,就好像该文件并没有被加密过,这是因为加密文件系统自动地在后台做了相关的加密和解密的工作。由于加密文件系统一般工作在内核态,普通的攻击比较难于奏效。还有一类系统级加密方案是基于块设备,与它们相比,加密文件系统具有更多的优势,例如:
  • 支持文件粒度的加密,也就是说,用户可以选择对哪些文件或目录加密。而且,应用程序不用关心文件是否被加密,可以完全透明地访问加密文件。
  • 无需预先保留足够的空间,用户可以随时加密或恢复文件。
  • 对单个加密文件更改密钥和加密算法比较容易。
  • 不同的文件可以使用不同的加密算法和密钥,增大了破解的难度。
  • 只有加密文件才需要特殊的加密/解密处理,普通文件的存取没有额外开销。
  • 加密文件转移到别的物理介质上时,没有额外的加密/解密开销。
加密文件系统的分类加密文件系统基本上可以分为两大类,两类的实现方式和目标都有比较大的区别。一类是面向网络存储服务的,通常是基于 NFS 客户/服务器模型,通常称为网络加密文件系统。在网络加密文件系统中,数据以密文的方式保存在网络文件系统中,用户通过客户机服务进程与网络文件服务器交互,网络文件服务器负责将用户请求的密文传递到客户机服务进程,由客户机服务进程进行解密再交给应用程序。在这个模型中,只要求客户机操作系统是可信的,而网络服务器由于不接触明文数据,不要求其可信。另一类是本地加密文件系统,密文数据直接存放在本地物理介质上(硬盘,U 盘等),由操作系统或服务进程完成数据的读取、加密/解密工作。本地加密文件系统的目标是应对存储介质失窃的威胁,安全模型同样把加密文件系统所在的操作系统视为可信的。
本地加密文件系统又可以细分为两种,一种是在原有的普通文件系统上直接加入加密功能,如 Reiser4,但是现有的 Ext2, Ext3 等常用文件系统并不支持加密功能,因此用户不得不转换整个文件系统;另一种被称为堆叠式加密文件系统(Stackable Cryptographic File System)。这种加密文件系统可以看成一个加密/解密的转换层,而并不是一个真实的全功能文件系统。堆叠式加密文件系统没有相应的磁盘布局,也不实现数据在物理介质上存取的功能。它必须架构在别的普通文件系统之上,读加密文件时先通过下层普通文件系统将文件的密文读入内存,解密后再将明文返回到上层的用户进程;写加密文件时先将内存中的明文加密,然后传给下层普通文件系统,由它们真正地写入物理介质。堆叠式加密文件的优势在于实现相对容易(因为功能相对简单)且用户可以任意选择下层的普通文件系统来存放加密文件。本文讨论的 eCryptfs 属于本地堆叠式加密文件系统的范畴。
现有加密文件系统的不足加密文件系统的概念由来已久,现实世界中已有诸多的实现,例如 CFS[2], TCFS, Crypt-FS, FSFS, Waycryptic 和 Windows EFS 等,但是这些加密文件系统有着内在的局限和安全问题。
CFS 和 TCFS 通过 NFS 客户/服务器模型来提供加密服务,只使用了 DES 算法来加密文件内容。这两种文件系统主要的缺点在于:难于使用、共享加密文件非常困难、用户不能选择加密算法、交换区或临时文件可能会泄漏明文以及性能较差等等。
Waycryptic 是一个堆叠式加密文件系统,通过修改 Linux 内核的虚拟文件系统层(VFS)来提供加密及解密的功能。Waycryptic 使用两种算法来加密文件:加密文件内容使用对称密钥算法,如AES,密钥随机产生;同时使用一种公开密钥算法,如RSA,加密刚才提及的密钥。这种综合两种加密算法的方式既保证了加密/解密的速度,又极大地提高了安全性。同时Waycryptic允许加密文件方便安全地在多个用户间共享;为了应对密钥的丢失,Waycryptic允许用户指定别的帐号来恢复文件。但是 Waycryptic 主要是一个研究项目,比较适合个人单机使用,无法满足企业或需要更高安全级别的用户的需求。
Windows EFS(Encrypting File System) 是对 NTFS 文件系统的功能扩充,可以方便地加密 NTFS卷上的文件或目录。Windows EFS 简单易用,功能强大,不足之处在于只能在 Windows 操作系统的 NTFS 卷上才能使用,文件内容使用的加密算法比较单一。此外,如果事先没有备份证书的话,一旦重装系统就无法再访问加密文件。
返回列表