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