透明文件加密技术

来源:互联网 发布:数据接口程序 编辑:程序博客网 时间:2024/06/08 19:12

转自:http://www.cnblogs.com/caoyawei/archive/2009/04/17/1437858.html


前一阵子,因为工作需要,需要做一些内网安全的东西,要防止局域网内的文件保密,就接触到一些透明加密技术。看看资料,写了点笔记。

1. 基于文件的透明加密

基于文件名称的透明加密系统根据访问的文件的名称,主要是根据文件的后缀或者所在的目录,或者文件本身的特征来判断是否进行加解密[23]。

具体可以实现通过设置关键文件及其读/写权限(文件名支持通配符*和?)来控制关键文件的读/写访问;记录关键文件的读/写访问;记录可移动磁盘的写访问等功能。

2. 基于进程的透明加密

基于进程的透明加密系统根据访问文件的进程来判断是否进行加解密。进程是操作系统内部的调度单位。而每一个文件访问都可以关联到一个具体的进程。基于进程的透明加密系统以系统的进程为单位进行加解密控制。


基于进程的透明加密系统需要区分出哪些进程要对受保护的机密文件进行访问,那些不需要对机密文件进行访问。对于需要对机密文件进行访问的进程,系统将它的读写1/O经过动态加解密,来保证用户对文件的访问。对于不是访问机密文件的进程,透明加密系统让它不经过动态加解密驱动,正常的访问未受保护的普通文件。这样,系统内的进程就被分为了两类。一类是在透明加密系统的监控下,通过动态加解密来访问信息文件的进程,称之为“受监控进程”。另一类不受透明加密系统影响,正常的访问不受保护的常规文件,这些进程称之为“不受监控进程” 。反过来说,受监控进程的写操作都被加密,读操作都被解密;而不受监控进程的读写操作不受影响。

基于进程的透明加密系统需要监控进程和非监控进程之间的通信。如果一个受监控进程把通过解密得到的数据作为通信数据发送给一个不受监控的进程,那么不受监控的进程就可以把这些数据不经加密的写入到磁盘上,从而窃取了机密文件。透明加密系统要阻止被监控进程和不被监控进程之间的通信。这样,受监控进程和不受监控进程就被分隔在两个互不相通的环境中。

基于进程的透明加密系统的主要功能除了要提供驱动层的加解密外,还需要可靠地鉴别进程的能力。

基于进程的透明加密系统的缺点是应用环境复杂时,管理难度大,用户基本不能自主添加对新应用的支持。理论上,如果监控进程和非监控进程需要读写共同的配置文件,它就无法实现。基于进程的透明加密系统由于是以系统进程为单位来判断是否对一个正在编辑的文件加密或者解密,所以它最致命的弱点是不能很好解决插件、宏的泄密问题,即如何区别进程内的插件和它本身的读取。由于读取时会进行解密,那么如果无法区分是插件还是进程本身,插件读取到明文后通过网络等非保存的手段就可以将明文发送出去。因此,这类系统还需要其它的辅助手段进一步细化对文件访问的控制。

3. 基于磁盘的透明加密

基于磁盘的透明加密系统以磁盘分区为单位,对保存在该磁盘上的文件全部加密。系统通过配置文件、分区头部的特殊标记来标识这是一个加密的分区。微软在新的操作系统Vista中提供了BitLock技术,可以加密整个分区。但是更常见的是使用虚拟磁盘技术来实现基于磁盘的透明加密系统。

基于磁盘的透明加密系统只需要判断被访问的文件所在的分区就可以判断文件是否是加密的,因此它比基于文件名称和进程的透明加密系统逻辑上面更加简单。通过指定某个分区或者创建一个虚拟磁盘分区,基于磁盘的透明加密系统自动对保存到该分区的文件加密,并自动解密从该分区读取的内容。

基于磁盘的透明加密系统和文件类型、访问的进程都没有关系。但在实际的防泄密应用中,需要限制一些进程对加密分区的访问。

基于磁盘的透明加密系统需要阻止将加密磁盘中的文件复制到非加密磁盘和通过外设端口、网络发送出去泄密。