欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

文档安全加密系统的实现方式(图)

程序员文章站 2022-09-29 20:39:22
加密技术是利用数学或物理手段,对电子信息在传输过程中或存储设备内的数据进行保护,以防止泄漏的技术。在信息安全技术中,加密技术占有重要的地位,在保密通信、数据安全、软件加密... 08-10-08...

加密技术是利用数学或物理手段,对电子信息在传输过程中或存储设备内的数据进行保护,以防止泄漏的技术。在信息安全技术中,加密技术占有重要的地位,在保密通信、数据安全、软件加密等均使用了加密技术。常用的加密算法有des系列(包括des和3des),rc系列(常用的有rc4和rc6)和aes等对称加密算法(加密密钥和解密密钥相同或相似)以及rsa等非对称加密算法。除此此外,还有用于获取信息摘要的md5等。这些常用的加密算法,只要设置合适的密码,在现有的计算机技术条件下,一般均可满足安全性要求,但不同的加密算法,需要的计算量有很大的不同。对于文档安全加密系统,加密算法是整个系统的核心,其选择的依据一般根据系统的安全性要求进行确定,在满足安全性要求的前提下,尽可能选用速度快的加密算法,在条件容许的情况下,可以采用硬件的方式对数据进行加密(如直接利用安全芯片提供的加密算法进行加密等)。
  1. 文档安全中的加密技术
  虽然加密算法是文档安全系统的核心,但加密算法以何种方式进行实现,是决定文档安全系统的关键。在文档安全系统中,常用的实现方式有静态加密方式和动态加密方式,静态加密是指在加密期间,待加密的数据处于未使用状态(静态),这些数据一旦加密,在使用前,需首先通过静态解密得到明文,然后才能使用。目前市场上许多加密软件产品就属于这种加密方式。
  与静态加密不同,动态加密(也称实时加密,透明加密等,其英文名为encrypt on-the-fly),是指数据在使用过程中(动态)自动对数据进行加密或解密操作,无需用户的干预,合法用户在使用加密的文件前,也不需要进行解密操作即可使用,表面看来,访问加密的文件和访问未加密的文件基本相同,对合法用户来说,这些加密文件是“透明的”,即好像没有加密一样,但对于没有访问权限的用户,即使通过其它非常规手段得到了这些文件,由于文件是加密的,因此也无法使用。由于动态加密技术不仅不改变用户的使用习惯,而且无需用户太多的干预操作即可实现文档的安全,因而近年来得到了广泛的应用。
  由于动态加密要实时加密数据,必须动态跟踪需要加密的数据流,而且其实现的层次一般位于系统内核中,因此,从实现的技术角度看,实现动态加密要比静态加密难的多,需要解决的技术难点也远远超过静态加密。
  2. 文档安全加密系统的实现层次
  在现代操作系统中,文件的操作均通过文件系统进行,虽然不同的操作系统支持的文件系统不同,但对文件的访问方式基本相同,在windows系统中,文件系统是以设备驱动程序形式存在的。windows的设备驱动程序采用分层方式,允许在应用程序和硬件之间存在多个驱动程序层次,其中过滤驱动程序是一种特殊类型的中间驱动程序,它们位于其它驱动程序的上层或下层,截获发送给低层驱动程序设备对象的请求,在请求到达低层驱动程序之前,过滤驱动程序可以更改该请求,而低层驱动程序完全不知道在其上层驱动中发生的一切操作。图1给出了windows系统中的文件操作流程,其中层次i和ii属于应用层;层次iii和iv属于操作系统内核层。从中可以看出,一个应用程序(i层)在发出文件操作请求时,需要经过操作系统提供的api层(ii层)、文件过滤驱动程序层(iii层)和文件系统层(iv层)才能访问文件,由此可知,文档安全加密系统也只能在这四个层次上进行实现。
  文件系统的这种组织结构决定了文档安全加密系统的实现方式,在数据从应用程序访问文件所经过的每个层次中,均可对访问的数据实施加密/解密操作,由于层次i只能获取应用程序自身读写的数据,其他应用程序的数据不经过该层,因此,在层次i中只能实现静态加密,无法实现动态加密;即使是层次ii,也并不是所有文件数据均通过该层,但在该层可以拦截到各种文件的打开、关闭等操作。因此,在应用层实现的动态加解密产品无法真正做到“实时”加密/解密操作,一般只能通过其他变相的方式进行实现(一般均在层次ii进行实现)。例如,在应用程序打开文件时,先直接解密整个文件或解密整个文件到其他路径,然后让应用程序直接(重定向)访问这个完全解密的文件,而在应用程序关闭这个文件时,再将已解密的文件进行加密。其实质是静态加解密过程的自动化,并不属于严格意义上的动态加密。
  只有在层次iii和iv中才能拦截到各种文件操作,因此,真正的动态加解密产品只能在内核层进行实现。
  
文档安全加密系统的实现方式(图)
  图1 windows系统中文件的操作流程