应用层加密与内核级加密有什么不同?
在众多电子文档安全系统中,有的说是用内核级加密技术,有的用应用层加密技术,前天有一个品牌的技术人员跟我说,应用层加密不安全。现在我就说说应用层加密与内核级加密的不同之处。
标签
- 01
应用层加密 内核级加密
正文
- 01
透明加解密技术是近年来针对企业文件保密需求应运而生的一种文件加密技术。所谓透明,是指对使用者来说是不可见的。当使用者在打开或编辑指定文件时,系统将自动对未加密的文件进行加密,对已加密的文件自动解密。文件在硬盘上是密文,在内存中是明文。一旦离开使用环境,由于应用程序无法获得自动解密的服务而无法打开,从而起到保护文件内容的效果。 透明加解密技术是与操作系统紧密结合的一种技术,它工作于操作系统底层,从技术角度看,可分为内核级加密和应用级加密两类。 应用层加密:属于内容级安全管理软件,基于Windows操作系统的API hook技术制造,其软件本身是跟应用软件有紧密关系的一种方式。 缺点1:应用程序紧密相关性,其工作的有效性跟应用程序的版本联系非常紧密,如果版本变化,会导致加密的失效. 缺点2 :可靠性差、大文件容易死机、速度慢. 缺点3:很多应用软件为防止病毒或者黑客倾入,均设有反hook陷阱,一旦发现有hook侵入,即终止软件运行. 优点1:技术简单,开发容易; 优点2:网络操作能力不受限制 驱动层加密:基于windows的文件系统(过滤)驱动(IFS)技术,工作在windows的内核层。与应用软件无相关性,属于内容级管理软件. 缺点1:驱动技术,基于Windows操作系统内核,开发难度大. 缺点2 :网络操作能力,需要专门处理. 优点1:驱动加密技术与应用程序无关,需要监控应用程序名单 ; 优点2:内核层加解密,受windows系统保护; 优点3:加解密速度快,安全可靠,大文件不会死机;
- 02
透明加密技术原理 透明加密技术是与windows紧密结合的一种技术,它工作于windows的底层。通过监控应用程序对文件的操作,在打开文件时自动对密文进行解密,在写文件时自动将内存中的明文加密写入存储介质。从而保证存储介质上的文件始终处于加密状态。 监控windows打开(读)、保存(写)可以在windows操作文件的几个层面上进行。 为了实现透明加密的目的,透明加密技术必须在程序读写文件时改变程序的读写方式。使密文在读入内存时程序能够识别,而在保存时又要将明文转换成密文。Window 允许编程者在内核级和用户级对文件的读写进行操作。内核级提供了虚拟驱动的方式,用户级提供Hook API的方式。因此,透明加密技术也分为API HOOK广度和VDM(Windows Driver Model)内核设备驱动方式两种技术。API HOOK俗称钩子技术,VDM俗称驱动技术。 基于OS应用层透明加密技术 Windows应用程序数据访问机制 所有Windosw应用程序都是通过windows API函数对文件进行读写的。程序在打开或新建一个文件时,一般要调用windows的CreateFile或OpenFile、ReadFile等Windows API函数;而在向磁盘写文件时要调用WriteFile函数。 同时windows提供了一种叫钩子(Hook)的消息处理机制,允许应用程序将自己安装一个子程序到其它的程序中,以监视指定窗口某种类型的消息。当消息到达后,先处理安装的子程序后再处理原程序。这就是钩子。 加密原理: 钩子透明加密技术就是将上述两种技术组合而成的。通过windows的钩子技术,监控应用程序对文件的打开和保存,当打开文件时,先将密文转换后再让程序读入内存,保证程序读到的是明文,而在保存时,又将内存中的明文加密后再写入到磁盘中。如图所示。 钩子透明加密技术与应用程序密切相关,它是通过监控应用程序的启动而启动的。一旦应用程序名更改,则无法挂钩。同时,由于不同应用程序在读写文件时所用的方式方法不尽相同,同一个软件不同的版本在处理数据时也有变化,钩子透明加密必须针对每种应用程序、甚至每个版本进行开发。 目前不少应用程序为了限止黑客入侵设置了反钩子技术,这类程序在启动时,一旦发现有钩子入侵,将会自动停止运行。 基于OS驱动层透明加密技术 Windows驱动层加密原理: 驱动加密技术基于windows的文件系统(过滤)驱动(IFS)技术,工作在windows的内核层。我们在安装计算机硬件时,经常要安装其驱动,如打印机、U盘的驱动。文件系统驱动就是把文件作为一种设备来处理的一种虚拟驱动。当应用程序对某种后缀文件进行操作时,文件驱动会监控到程序的操作,并改变其操作方式,从而达到透明加密的效果。 驱动加密技术与应用程序无关,他工作于windows API函数的下层。当API函数对指定类型文件进行读操作时,系统自动将文件解密;当进入写操作时,自动将明文进行加密。由于工作在受windows保护的内核层,运行速度更快,加解密操作更稳定。 驱动加密要达到文件保密的目的,还必须与用户层的应用程序打交道。通知系统哪些程序是合法的程序,哪些程序是非法的程序。 驱动透明加密工作在内核层。如图所示。 驱动加密技术虽然有诸多的优点,但由于涉及到windows底层的诸多处理,开发难度很大。如果处理不好与其它驱动的冲突,应用程序白名单等问题,将难以成为一个好的透明加密产品。
- 03
应用层与驱动曾透明加密技术的比较