何慧, 陈恭亮, 李建华
(上海交通大学电气与电子信息工程学院,上海 200240)
基于应用审计与透明加密技术的文件保护系统设计*
何慧1, 陈恭亮2, 李建华3
(上海交通大学电气与电子信息工程学院,上海 200240)
在数据泄露的问题上,许多已经被研究的方案,它们能一定程度上保护这些数据,但是却给系统的易用性带来严重影响。针对此问题,本文提出了一种基于驱动层透明加密系统的新模型。一方面,结合应用审计技术与透明加解密技术,给数据提供双层保护。另一方面,针对双缓存技术所存在的缺陷和不足,提出新的缓存管理的方案来实现缓存同步的问题,解决了可能因缓存导致的泄密问题,也在大大提高系统了性能和易用性。同时,对于文档密钥管理和用户合法性认证,提出新的方案,使得密钥管理和用户认证变得简单而且安全可行。
数据泄露;透明加密;应用审计;缓存管理;密钥管理;合法性认证
信息技术的普及,产生了大量的重要信息数据,在日益激烈的市场竞争形势下,核心数据就是企业的命脉。企业信息系统在广泛应用的同时也产生了大量的电子信息数据。这些信息数据在获取、共享和传播更加便捷,但是同样易被复制、携带、修改和传输,这就引发了信息数据安全及数据泄密问题。IDC(Internet Data Center)调查报告显示,全球仍有近80%的受访企业在2013年遭遇过信息泄露事件,有超过80%来自组织内部,75%以上是由信息化数据文件的泄露造成的。因此,确保文件数据的安全,已经越来越受到许多企业的重视。
针对数据安全防护的问题,文件加解密技术应运而生。文件加解密技术在多年以前就已经开始着手研究了,并且日趋成熟。早期的APIHOOK技术,由于其对应用程序的工作方式是密切相关的,导致系统兼容性差。同时,HOOK技术本身所存在的技术缺陷,容易被反HOOK技术破解,造成安全性也极有待考虑。基于文件系统过滤的透明加解密技术越来越多的得到研究。文献[1][2]中提出的透明加解密系统,在某种程度上提出了一种很好的系统原型,但是为了适应机密进程和非机密进程对加密文件访问的控制,采取了频繁清除缓存数据以转换数据状态,降低了缓存的利用效率,同时也引起一些系统的兼容性问题。文献[3]也提出了自己的框架,但并没有提到如何处理系统的缓存问题,而缓存问题在文件透明加密系统中具有极大的影响。文献[4]中针对单缓存技术在过滤驱动透明加解密中存在的缺陷和不足,提出了双缓存的机制,使得机密进程访问解密缓存区的数据,非机密进程访问加密缓存区数据。但是双缓存的机制也容易造成系统资源的浪费,而且双缓存同步问题没有处理好就容易导致文件损坏或系统蓝屏。
因此,本文主要针对兼容性提高,缓存处理以及系统安全性的提高这三方面对现有透明加密技术进行改进与优化,目标是设计出一套实际环境中可用的透明加密系统。
1)基于文件系统过滤驱动实现透明加解密系统,提高系统兼容性和可靠性。
2)对于透明加解密技术中一直难以解决的cache问题,本文基于Minifilter[5]架构的基础上实现缓存的同步,在避免因缓存泄密的同时,也保证了加解密的效率和可靠性。
3)结合应用审计技术和透明加解密技术,给数据信息带来双层安全保护,做到事前防御,事中控制,事后追踪。
1.1 APIHOOK透明加密技术
作为第一代出现的透明加密技术,采用的是应用层的API HOOK技术。通常采用的手段是在需要保护的软件中注入第三方模块,将各类文件操作如WriteFile/ReadFile等系统函数Hook掉,使其优先进入第三方模块处理,之后再于第三方模块中调用被Hook的系统函数。尽管该技术从理论上可行,然而在实际应用过程中遇到了很多问题,对于某些不需要调用WriteFile/Read-File等函数的数据操作来说该技术就出现了局限性,同时稳定性和兼容性方面存在更大问题。
在APIHook这一技术阶段,透明加密完全从应用层入手,其优势在于实现简单、理论成熟;但在实际应用中与其他软件的兼容性存在巨大问题,同时由于兼容性进一步影响了自身的稳定性,因此这一技术很快的便被内核层驱动技术所取代,而这一次是透明加密技术的本质变革。
1.2 过滤驱动加密技术
过滤驱动技术[6],是通过在文件系统驱动上附加一种特殊的过滤行为来实现文件的加解密。作为存储管理子系统的一个组件,为用户提供在持久性介质上存储和读取功能。Windows NT系统通过I/O管理器对用户的读写操作以I/O Request Package (IRP)[7]形式发送给文件系统驱动。当驱动程序存在时,在文件系统驱动接受IRP前拦截此IRP,根据需求处理这些IRP,从而为文件系统提供新的功能。
基于Windows NT内核操作系统的文件过滤驱动模型如图1所示:
图1 文件系统驱动
正如图1所示,我们在I/O管理器与文件系统驱动之间加入过滤驱动,当向磁盘写数据时,IRP_MJ_WRITE_IRP[7][8]在被发送到volume设备之前,被过滤驱动拦截,并根据加密策略对相应的文件进行加密。当从磁盘设备读取文件数据时,IRP_MJ_ READ_IRP将会被过滤驱动拦截,将加密数据解密之后,发送回给应用程序。
2.1 文件保护系统的系统结构
该系统主要由四部分组成,分别是:客户端软件,应用服务器,数据库服务器,用户管理系统。其系统结构如图2所示。
图2 系统结构图
2.2 系统各模块功能
(1)客户端
客户端软件是安装到企业内每个员工的办公计算机上的。它包含两个部分,一个是应用层程序,一个是底层过滤驱动。应用程序主要负责与服务端的通信和驱动层的通信,包括申请和接收解密密钥,接收加密策略,并将相应内容提供给过滤驱动。而驱动程序是整个系统最核心的部分,负责执行最终的加密策略。
(2)应用服务器
主要包含三大功能:①对用户身份的合法性认证;②接受客户端的加解密请求;③判定解密请求的合法性;④操作日志分析,判定操作的危险程度形成审计系统,提供事后可追踪调查功能。
(3)数据库服务器
存储密钥信息,日志信息,节点信息等相关数据信息。
(4)用户管理系统
提供管理员便捷的节点管理、信息查询、日志审计功能以及数据保护策略配置。
下面几节就几个关键的技术点作下论述。
3.1 文件加密方式的设计
文件数据的加密保护是整个文件保护系统的核心所在,而加密方式的选取很大程度上会影响到系统的效率、安全性以及可靠性。针对第一节中介绍的两类技术:HOOK透明加密技术和驱动层透明加密技术,对文件加密方式进行设计。
HOOK透明加密技术,是将HOOK技术与加密技术结合实现透明加密的。通过Windows HOOK技术,可以监控应用程序对文件的打开和保存等操作。在写保存文件时,先将内存中明文加密再写入磁盘中;在打开文件时,将磁盘中的密文解密后再读入内存。
但是,HOOK透明加密技术与应用程序的工作方式密切相关,技术难度稍低,但却存在以下弊端:
1)通过监控应用程序的启动而启动,一旦应用程序改名,则无法挂钩;
2)对于不同应用程序以及不同的版本,HOOK透明加密都需要针对其不同的实现进行开发,可扩展性低;
3)不同应用程序读写文件调用函数的方式多样性,HOOK技术处理时会出现遗漏,从而直接导致数据泄密;
4)HOOK技术一般速度较慢,对于大文件加密,容易造成死机现象;
5)不少应用程序为了限制黑客反入侵,设置了反钩子技术,HOOK技术也会失效。
而驱动透明加密技术是工作在windowsWPI函数的下层,即内核层,与应用程序完全独立。当应用程序对文件进行操作时,系统过滤驱动会监控到应用程序的操作请求,根据需要来改变对文件的操作方式。当应用程序对文件进行读操作时,系统自动对文件进行解密,读入内存;当进行写操作时,自动对文件进行加密,然后写入磁盘。
相比于HOOK透明加密技术,基于过滤驱动的透明加密技术明显存在以下优势:
1)与应用程序完全无关,系统开发可扩展性强,而且系统可靠性强;
2)工作在内核层,运行速度更快,加解密码更稳定。
鉴于以上考虑,选择过滤驱动透明加密技术实现系统核心加密功能,能够确保系统的执行效率、安全性和可靠性,同时还能确保系统的可扩展性。
3.2 加密算法和密钥管理
加解密算法的选取在一定程序上影响透明加密的速度、效率以及安全性。考虑到数据粒度的保护,一数据一密钥是安全性很高的方案,这就避免了因为某些密钥丢失而导致全部数据安全性丧失。由于计算机中的数据量相当大,采用对称加密算法,并且每次密钥随机生成。如此大量的密钥在维护和更新上仍然有些复杂,因此采取将密钥整合进数据中的方法,让密钥与数据捆绑在一起,这样就可以降低服务器的负载。同时,引入公钥加密算法,使对称密钥经过公钥的加密后,再与数据进行捆绑,而每次解密通过申请服务器解密出对称密钥,进而完成文件解密。具体流程如图3所示。
对比之下,不直接采用公钥加密数据是由于公钥加密算法速度上存在瓶颈,仅适合做小量的运算。以RSA加密算法与AES加密算法为例,据不精确测算,由于RSA的运算均为大数运算,RSA速度比同安全级别的AES加密算法速度慢1000倍左右。因此,通过双算法结合的方式既实现了安全性,又保证了高效率。
图3 文件加解密流程图
3.3 文档数据结构
通过上一小节的描述,可以了解到数据通过AES算法加密,而AES密钥通过RSA公钥加密,因此在存储的数据结构中就至少要包含加密的数据段及加密的AES密钥这两部分。在透明加解密技术中,还要考虑到数据加密与解密的识别问题,因此还要添加一个标识位。文档的数据结构如图4。
图4 数据结构
客户端是该透明加密系统的核心部分,对于用户的合法性认证,更本质上应该是对客户端的合法性认证。客户端必须由管理员唯一分发给每个员工。如果一些不法分子以某种非法手段获取该客户端,取得与服务器的交互能力,那么企业内其他终端的机密文件一旦被该终端获取,必定以全明文形式正常打开。而且,系统对于这些操作也将判断为正常的读取操作。对于用户的合法性认证,更本质上是对客户端的。因此,对于客户端合法性进行认证是非常关键和重要的。本文设计中,将该认证过程直接放在了客户端的安装过程中。只对于合法的客户端予以安装,而非法的客户端禁止安装。
在本设计中,我们通过使客户端与用户终端唯一绑定,来实现客户端的合法性认证。每个客户端对应一个唯一的串码,记为CID,作为它的标识。同时客户端软件是由管理员唯一分发给企业员工的。用户终端以它的硬盘ID作为唯一标识,记为PID。在安装客户端软件时,会去检测该CID是否有对应的PID存在,如果有,则表示该客户端已经存在于某个用户终端,判定该用户为非法用户,从而终止此次安装过程;如果没有,则表明该客户端是首次安装,并将对应的PID记入到系统中。
正如第一章中所述,透明加密技术中最大的难题一直是缓存[8]的同步问题。文献[1]中提出的单缓存技术和文献[2]的改进方案—双缓存技术,这都给操作系统的易用性造成了很大程度的损伤。而本文所设计的内核驱动采用了一种更为通用和开放的哲学来实现缓存的同步,即:保证缓存中的数据时刻处于非加密状态,而硬盘中的数据时刻处于加密状态,高效利用系统缓存功能的同时,也能很好地避免通过缓存泄密的事件的发生。
5.1 授权进程与非授权进程的识别
通过白名单的实现方式,可以配置授权进程及相应操作文件类型的保护策略。该保护策略是通过管理系统进行配置生成,并下发给客户端进程,最终再发送给驱动程序。驱动程序根据保护策略,即可判断授权进程和非授权进程,从而实现不同的操作。如图5所示为保护策略的配置格式,其中SystemPrograms为系统默认支持的进程,SupportPrograms为可选支持的授权进程,Other-Programs为可自定义的授权进程,而未进行配置的进程都属于非授权进程。对于授权进程,用户使用这些进程所创建和修改的文件需加密保护,并且这些进程可以正常读取加密文件。而对于非授权进程创建的文件不做加密处理,读取的加密文件也不进行解密处理。
图5 保护策略配置
5.2 读请求中缓存同步的设计
缓存泄密的事件也主要是通过非授权进程直接读取缓存数据而引起的。
在第一节中和第三节中都有所描述,对于读请求,过滤驱动会在数据到达应该程序之前拦截此请求,然后对数据进行相应的处理,再返回给该程序。对于授权进程发起读操作时,如果目标数据并非加密格式,即直接从缓存读取,则可以直接返回;如果目标数据呈现加密格式特征,即不存在缓存数据,则在返回应用程序之前,过滤驱动程序需对其进行解密处理后返回。对于非授权进程发起读操作时,如果目标数据是加密格式,则不进行任何处理,直接密文返回;如果目标数据呈现非加密格式特征,即存在缓存数据,那么在返回给应用程序之前,过滤驱动程序对即将返回的数据再次进行加密,然后返回给非授权的进程。伪代码分析如下:
考虑这种情况,对于winword.exe和QQ.exe两个进程,其中winword.exe是授权进程而QQ.exe是非授权进程。当某一危险行为企图通过winword.exe打开一个涉密的word文档后,再通过QQ.exe发送出去。由于winword.exe打开此文档后,已存在的明文缓存,如果QQ进程获取到数据前不进行任何处理的话,信息也就泄露了。而当前设计方案中,针对非授权进程在获取到不可访问的明文数据前,会被再次加密,从而有效地避免了此次泄密事件的发生。
因此,本文提出的缓存处理方式,一方面避免了传统单缓存技术中因不断地暴力清除缓存而导致系统的缓冲功能丧失、性能降低,另一方面也避免了双缓冲技术中系统额外内存的开销等问题,同时,也很好地规避了缓存泄密的威胁性。
无论文件发生被读取或者写入等任何操作,客户端进程都会对此次操作的相关信息进行记录,并上传给服务器程序,以形成日志审计系统。日志信息主要包括:操作时间、用户ID、IP地址、操作进程、操作事件、操作的文件以及事件的安全级别(包含ERROR,WARNING,INFO三个等级)。其中事件的安全级别是通过服务器端简易的算法判定得到的,该算法主要根据操作的文件、时间、进程以及操作事件进行设计的,目前不属于本文的讨论范围。
系统经过初步的判断定位出潜在危险和高危的操作事件,再结合人工分析,进一步确定潜在的危险行为和高危行为,能够控制相关风险事件发生。另一方面,详细的日志系统也有助于事后追踪,即对于已发生的危险事件,通过此审计系统,能够根据操作时间、泄露的文件等准确地定位出此事件的起因源头所在。
在确保数据的安全和系统的易用性下,本文提出了一个基于驱动层透明加密的新模型。一方面,结合应用审计技术与过滤驱动透明加解密技术,在给数据提供保护的同时,也对存在的危险事件提供可追踪能力。另一方面,系统针对双缓存技术所存在的缺陷和不足,本文提出了一种新的缓存管理方式,在充分发挥缓存技术的价值的同时,也解决了缓存泄密的问题。但是,对于事件安全级别的判断算法还有待完善,以便能够对所有的文件操作事件的安全级别进行更加准确的划分,有效而精准地定位危险所在。这也是我们下一步要继续完成的工作。
[1] ZHANG Xiaosong,LIU Fei,CHEN Ting.Research and Application of the Transparent Data Encryption in IntranetData Leakage Prevention[C]//International Conference on Computational Intelligence and Security.Beijing:IEEE,2009:376-379.
[2] LIYadong,HU Donghui,MIAO Chenglin.A Traceable File Protection System with Transparent Encryption Technology [C]//International Conference on Internet Technology and Applications.Wuhan:IEEE,2011:1-4.
[3] 张汉宁,房鼎益,陈晓江等.基于透明加解密的数字内容安全防护系统[J].西北大学学报,2010,40(03):437-441.
[4] 王全民,金华锋,王淞等.基于双缓存机制的文件透明加解密方法与实现[J].计算机安全,2010,5(11):511-515.
[5] Russinovich M.E.,Solomon D.A.MicrosoftWindows Internals [M],4th ed.Microsoft Press,2005:245-259.
[6] Walter ONEY.Programming the Microsoft Windows Driver Model[M],2nd ed.Microsoft Press,2003:120-155.
[7] 张凡,史彩成.Windows驱动开发技术详解[M].北京:电子工业出版社,2008:26-120.
[8] 谭文,杨潇,邵坚磊.Windows内核安全编程[M].北京:电子工业出版社,2009:20-47.
File Protection System based on App lication Audit and Transparent Encryption Technology
HEHui,CHENG Gong-liang,LIJian-hua
(School of Electronic Information and Electrical Engineering,Shanghai Jiaotong University,Shanghai200240,China)
In light of data leakage issue,many proposed and studied schemes can protect such data in a certain extent,and however,also bringmuch serious influence to the system.Aiming at this problem,a new model based on driver layer transparent encryption system is proposed.On the one hand,it combines application audit technology and transparent encryption technology,and provides data with twofold protection,and on the other,in considering the deficiencies of double-cachemechanism,a novel scheme of cache-management to achieve cache synchronization is presented.This design can avoid the leakage caused by cache while improving the system performance and usability.Meanwhile,a newmethod for file keymanagementand user validity authentication is also suggested so as tomake such things easier and safer.
data leakage;transparent encryption;application audit;cachemanagement;keymanagement;validity authentication
TP393
A
1009-8054(2015)05-0102-05
何 慧(1990—),女,硕士研究生,主要研究方向为密码学与信息安全;
2014-10-11
国家自然科学基金项目(No 61271220)
陈恭亮(1962—),男,教授,博士生导师,主要研究方向为网络安全与未来物联网安全;
李建华(1965—),男,教授,博士生导师,主要研究方向为信息安全。■