在现代操作系统中,文件的操作均通过文件系统进行,虽然不同的操作系统支持的文件系统不同,但对文件的访问方式基本相同,在Windows系统中,文件系统是以设备驱动程序形式存在的。Windows的设备驱动程序采用分层方式,允许在应用程序和硬件之间存在多个驱动程序层次,其中过滤驱动程序是一种特殊类型的中间驱动程序,它们位于其它驱动程序的上层或下层,截获发送给低层驱动程序设备对象的请求,在请求到达低层驱动程序之前,过滤驱动程序可以更改该请求,而低层驱动程序完全不知道在其上层驱动中发生的一切操作。图1给出了Windows系统中的文件操作流程,其中层次I和II属于应用层;层次III和IV属于操作系统内核层。从中可以看出,一个应用程序(I层)在发出文件操作请求时,需要经过操作系统提供的API层(II层)、文件过滤驱动程序层(III层)和文件系统层(IV层)才能访问文件,由此可知,文档安全加密系统也只能在这四个层次上进行实现。
文件系统的这种组织结构决定了文档安全加密系统的实现方式,在数据从应用程序访问文件所经过的每个层次中,均可对访问的数据实施加密解密操作,由于层次I只能获取应用程序自身读写的数据,其他应用程序的数据不经过该层,因此,在层次I中只能实现静态加密,无法实现动态加密;即使是层次II,也并不是所有文件数据均通过该层,但在该层可以拦截到各种文件的打开、关闭等操作。因此,在应用层实现的动态加解密产品无法真正做到“实时”加密解密操作,一般只能通过其他变相的方式进行实现(一般均在层次II进行实现)。例如,在应用程序打开文件时,先直接解密整个文件或解密整个文件到其他路径,然后让应用程序直接(重定向)访问这个完全解密的文件,而在应用程序关闭这个文件时,再将已解密的文件进行加密。其实质是静态加解密过程的自动化,并不属于严格意义上的动态加密。
只有在层次III和IV中才能拦截到各种文件操作,因此,真正的动态加解密产品只能在内核层进行实现。
3.在系统内核层实现动态加解密在文件过滤驱动层(III)和文件系统层(IV),不仅能够获得文件的各种信息,而且能够获得访问这些文件的进程信息和用户信息等,因此,可以研制出功能非常强大的文档安全产品。就动态加解密产品而言,有些文件系统自身就支持文件的动态加解密,如Windows系统中的NTFS文件系统,其本身就提供了EFS(EncryptionFileSystem)支持,但作为一种通用的系统,虽然提供了细粒度的控制能力(如可以控制到每个文件),但在实际应用中,其加密对象一般以分区或目录为单位,难以做到满足各种用户个性化的要求,如自动加密某些类型文件等。虽然有某些不足,但支持动态加密的文件系统在某种程度上可以提供和磁盘级加密技术相匹敌的安全性。由于文件系统提供的动态加密技术难以满足用户的个性化需求,因此,为第三方提供动态加解密安全产品提供了足够的空间。
要研发在文件级的动态加解密安全产品,虽然与具体的操作系统有关,但仍有多种方法可供选择,一般可通过Hook或过滤驱动等方式嵌入到文件系统中,使其成为文件系统的一部分,从某种意义上来说,第三方的动态加解密产品可以看作是文件系统的一个功能扩展,这种扩展往往以模块化的形式出现,能够根据需要进行挂接或卸载,从而能够满足用户的各种需求,这是作为文件系统内嵌的动态加密系统难以做到的。
4.文档安全加密系统的实例对于个人用户,由于不涉及权限和密钥的管理分配等,文档安全加密系统一般只需要在客户端实现加解密等功能即可;对于单位用户来说,只提供加解密等功能是远远不够的,必须提供相应的管理系统,如用户身份的确认,权限分配,密钥管理、安全策略管理等多种功能。虽然不同的文档安全系统有不同的实现方式,但总体架构基本是相似的。下面我们以亿赛通公司的文档安全加密系统SmartSec为例,对文档安全加密系统的实现方式进行分析和说明。
图2是SmartSec的总体架构图,整个安全系统由服务器端和客户端两大部分组成,支持CS和BS两种组织结构。服务端主要由用户管理、密钥管理、文档流转管理、安全引擎等组成。其中用户管理主要负责用户身份的验证,权限的分配和管理等;文档流转管理的主要功能是负责文档在单位内部不同部门之间的流转和单位内部与外部之间的流转工作,在保证文档不影响用户交流的情况下,为文档提供安全保障。如控制文档的浏览次数、使用时间,拥有的权限等。密钥管理用于实现不同部门之间的密钥分配和交换等功能;安全策略管理用于设置和管理系统的安全策略以及为每个用户分配相应的安全策略等;安全引擎主要为服务器系统提供安全保障,如验证安全系统模块的运行权限和条件等,并提供对服务器端存储的文档进行加密解密等多种安全相关的功能。
图3给出了SmartSec客户端的实现原理,从中可以看出,SmartSec的动态加解密是以文件过滤驱动程序的方式进行实现的(位于层次III),同时在应用层(层次II)和内核层(层次III)均提供访问控制功能,除此之外,还提供了日志和程序行为控制等功能,这种通过应用层和内核层相互配合的实现方式,不仅能提供更高的安全性,而且有助于降低安全系统对系统性能的影响。(IT168)
信息发布:广州名易软件有限公司 http://www.myidp.net