加密文件系统优点算法
1, 加密文件转移到别的物理介质上时,没有额外的加密/解密开销。安全
2, 支持文件粒度的加密,也就是说,用户能够选择对哪些文件或目录加密。并且,应用程序不用关心文件是否被加密,能够彻底透明地访问加密文件。服务器
3, 无需预先保留足够的空间,用户能够随时加密或恢复文件。网络
4, 对单个加密文件更改密钥和加密算法比较容易。分布式
5, 不一样的文件可使用不一样的加密算法和密钥,增大了破解的难度。性能
6, 只有加密文件才须要特殊的加密/解密处理,普通文件的存取没有额外开销。加密
CFS设计
CFS是一个Unix下的加密文件系统,工做在用户层,以NFS服务器的形式工做。CFS须要用户在本地或远程文件系统中建立一个目录,用来存取加密数据。密钥和加密算法是在这个目录建立时指定的。用户须要经过一个挂载命令向CFS代理发送加密数据访问请求。代理负责验证用户ID和密钥是否合法,而后在挂载点目录建立一个目录供用户访问。挂载成功后,用户将看到解密后的数据,并能够像操做普通目录同样在这个目录里存取数据,惟一的不一样在十全部的数据都会被透明的加密。CFS是一个设计合理、可移植、内置多种加密算法的加密文件系统,但由十它工做在用户模式,大量时间被花费在用户空间和内核空间之间的上下文环境切换,所以效率较低。代理
BestCrypt继承
BestCrypt是一个商用的加密回环设备驱动。这种回环设备把一个文件(此文件被称为容器)虚拟成一个块设备;对这个块设备的写操做会以加密的形式写入容器文件中,设备之上能够挂载任何基十块设备的文件系统,使文件系统具备加密功能。这种策略的优点在十文件系统的元数据也会被加密o BestCrypt适合单用户的环境,由容器的全部者保存密钥。可是在多用户环境下,缺少灵活的访问控制机制保证多用户共享的安全性。
Cryptfs
Cryptfs是一个可堆叠的加密文件系统,它工做内核层,能够在其它文件系统之上提供加密功能。它支持Linux, FreeBSD和Solaris二个平台,ifu b‘性能理想。但它只是一个原型系统,缺少一个完整的安全文件系统应具备的密钥管理和多种加密算法支持。NCryptfs是Cryptfs的扩展,其目标是在安全性、易用性和效率之间获得一个平衡点,而且提供了足够复杂的机制来实现这一目标。NCryptfs只支持Linux平台,并且不支持数据的完整性检查。
StegFS
StegFS 是一个采用了数据隐藏技术的加密文件系统。若是有对手入侵这个系统,他们只可以发现系统中存在一些隐藏数据,但他们没法知道隐藏数据的内容,也没法知道隐藏数据的具体位置。该系统是经过修改EXT2文件系统实现的,因此工做在内核层。StegFS实现的安全保护在有些环境下是有必要的,但它的性能很是差,以致十没法胜任大多数的应用。
Cephese
Cephese文件系统是SFS的一个扩展,实现了数据以加密的形式在服务器磁盘上存储,同时提供了基十组的文件共享机制。组中不一样文件使用不一样的文件密钥进行加密,同一个组的文件对应的密钥存放在一个lockbox中,并用一个组密钥加密。使用一个独立的组服务器进行组密钥发布,实现方式要求用户引入公钥体制。Cephese仍然继承了SFS的安全通信协议,使用会话密钥对客户端与服务器的通信会话进行加密,这意味着文件数据被加密了两次,带来了多余的计算负担。
当前主流分布式文件系统的不足
经过前面的分析能够看出,当前普遍使用的NFS和Coda等分布式文件系统,仅仅提供了在传输线路上的数据安全保护,数据在服务器端是以明文存储的,这存在着极大的安全隐患。
加密文件系统以加密的形式对文件数据进行存储,有效的解决了上述问题。但
它们并无注重分布式环境下的需求,更多的是定位在本地文件系统或局域网内使
用的网络文件系统。在分布式环境下,它们面临下面的问题:
1.对加密文件共享的支持较差。如CFS并无提供对文件共享的支持。
2.缺少灵活的密钥管理机制。它们都固化了密钥管理,用户没法根据应用须要选择最合适的方案。
3.缺少合理的实现方式,没法与现有的分布式文件系统结合。例如CFS和Cephese都是经过对某个版本的NFS代码进行修改实现的,若是NFS发布了新的版本,它们必须随之升级,不然没法利用新版本带来的特性。实际上它们中不少已经中止开发了。