数据保密之透明加密技术分析透明加密技术是近年来针对企业数据保密需求应运而生的一种数据加密技术。所谓透明,是指对使用者来说是透明的,感觉不到加密存在,当使用者在打开或编辑指定文件时,系统将自动对加密的数据进行解密,让使用者看到的是明文。保存数据的时候,系统自动对数据进行加密,保存的是密文。而没有权限的人,无法读取保密数据,从而达到数据保密的效果。自WindowsNT问世以来,微软提出的分层的概念,使透明加密有了实现的可能。自上而下,应用软件,应用层APIhook(俗称钩子),文件过滤驱动,卷过滤驱动,磁盘过滤驱动,另外还有网络过滤驱动,各种设备过滤驱动。其中应用软件和应用层apihook在应用层(R3),从文件过滤驱动开始,属于内核层(R0).数据透明加密技术,目前为止,发展了3代,分别为第一代APIHOOK应用层透明加密技术;第二代文件过滤驱动层(内核)加密技术;第三代内核级纵深加密技术;第一代:APIHOOK应用层透明加密技术技术及设计思路:应用层透明加密技术俗称钩子透明加密技术。这种技术就是将上述两种技术(应用层API和Hook)组合而成的。通过windows的钩子技术,监控应用程序对文件的打开和保存,当打开文件时,先将密文转换后再让程序读入内存,保证程序读到的是明文,而在保存时,又将内存中的明文加密后再写入到磁盘中。应用层APIHOOK加密技术,特点是实现简单,缺点是可靠性差,速度超级慢,因为需要临时文件,也容易破解。但由于直接对文件加密直观感觉非常好,对于当初空白的市场来讲,这一旗号确实打动了不少企业。第二代:文件过滤驱动加密技术驱动加密技术是基于windows的文件系统(过滤)驱动技术,工作在windows的内核层,处于应用层APIHook的下面,卷过滤和磁盘过滤的上面。设计思想是建立当应用程序(进程)和文件格式(后缀名)进行关联,当用户操作某种后缀文件时对该文件进行加密解密操作,从而达到加密的效果。内核层文件过滤驱动技术,分IFS和Minifilter2类。IFS出现较早,Minfilter出现在xp以后。两者的区别可以理解为VC++和MFC的区别,IFS很多事情需要自己处理,而Minifilter是微软提供了很多成熟库,直接用。由于windows文件保存的时候,存在缓存,并不是立即写入文件,所以根据是否处理了双缓bug,后来做了些细分,但本质还是一样,都是问题的修正版本而已。但由于工作在受windows保护的内核层,运行速度比APIHOOK加密速度快,解决了很多问题和风险。文件过滤驱动技术实现相对简单,但稳定性一直不太理想。第三代:内核级纵深沙盒加密技术之所以叫内核级纵深沙盒加密技术,主要原因是使用了磁盘过滤驱动技术,卷过滤驱动技术,文件过滤驱动技术,网络过滤驱动(NDIS/TDI)技术等一系列内核级驱动技术,从上到下,纵深防御加密。沙盒加密,是当使用者操作涉密数据的时候,对其过程进行控制,对其结果进行加密保存,每个模块只做自己最擅长的那块,所以非常稳定。加密的沙盒是个容器,把涉密软件,文件扔到容器中加密。而这个容器是透明的,使用者感觉不到它的存在。,第三代透明加密技术的特点是,涉密数据使用前,先初始化涉密沙盒,沙盒加密一旦成功,之后所有的数据都是数据实体,不针对文件个体,所以无数据破损等问题。特点是速度快,稳定,但技术相当复杂。第一代,第二代本质都是采用的针对单个文件实体进行加密,如a.txt内容为1234,加密后变成@#$%%+标记。@#$%%是把原文1234进行加密之后的密文。而标记的用途是用来区分一个a.txt文件是否是已经被加密。当系统遇到一个文件的时候,首先判断这个标记是否存在,如果存在,表明时被系统加密过的,则走解密读取流程,如果不是加密的,就无需解密,直接显示给使用者,只是当保存的时候,再进行加密,使其成文密文+标记。这就带来一个巨大的风险:如果是一个较大文件,加密过程中发生异常,标记没加上,那么下次读这个文件的时候,因为没有读到表记,而采用原文读取,然后再加密,那么这个文件就彻底毁坏了。这个现象在第一代APIHOOK透明加密技术的产品中特别明显,在第二代文件过滤驱动产品中,因为速度变快了,使文件破损发生概率减低了很多,但并没有本质解决这个问题。另外,...