APP下载

具有hook机制的过滤驱动加解密模型

2017-01-10薛子育毛典辉李海生

高技术通讯 2016年7期
关键词:加解密明文应用层

蔡 强 薛子育 毛典辉 李海生 曹 健

(北京工商大学,计算机与信息工程学院,食品安全大数据技术北京市重点实验室 北京 100048)



具有hook机制的过滤驱动加解密模型

蔡 强②薛子育 毛典辉 李海生 曹 健

(北京工商大学,计算机与信息工程学院,食品安全大数据技术北京市重点实验室 北京 100048)

研究了文件保护的加解密技术。针对文件采用过滤驱动模型进行加解密导致

文件系统,信息安全,透明加密,过滤驱动,hook,加解密

本文可利用hook获取文件操作,在文件加解密前后检查文件标识,保证文件具有相同文件标识,即使利用时间差从内存将文件导出,也可以保证导出的文件与加密文件是同一文件。hook机制可以在应用层获取复制、另存为等文件操作,增强模型的安全性。

具有hook机制的过滤驱动透明文件加解密模型有两个处理过程:

(1)写入前加密过程:调用hook机制对现有文件标识进行记录,然后在派遣例程中对请求包携带数据进行加密并写入磁盘,hook机制对文件标识进行统一更改。

(2)读出前解密过程:调用hook机制对现有文件标识进行记录,在派遣例程中对请求包携带数据解密,hook机制对文件标识进行统一更改。

本文所提出的方法主要由验证模块、进程控制模块、安全保证模块、应用层hook机制构成,执行流程示意图见图1。

图1 模型流程图

其中,验证模型是利用USB Key硬件设备作为加解密启动条件,安全保证模块通过文件系统驱动进行安全性检测。

2 模型实现

过滤驱动是一种中间层驱动,它位于其他的驱动程序层次之间,可监视、拦截、修改系统发往下层驱动的I/O请求包(I/O Request Packet, IRP)流。本文模型将在此基础上,在应用层增加hook机制,通过判断文件状态,对加解密前后文件权限进行统一化。本文利用过滤驱动模型,加入hook机制,选取适当捕获位置,构建一种全新的加解密模型。

2.1 过滤驱动原始模型

在Windows新技术内核模式中,采用分层结构的驱动设计方式。该内核模式的分层方式为文件系统、中间层和设备三级驱动结构[6],文件过滤驱动原理如图2所示。

在入口函数完成对驱动对象初始化设置、卸载设置、对驱动程序功能的派遣函数设置等操作之后,操作系统会为每个设备创建设备对象,并完成相对应的过滤工作[7]。

图2 文件过滤驱动原理图

在驱动对象初始化完毕之后,本模型的过滤驱动主要通过以下三个内容实现:制定访问策略、组织非法文件操作、可信进程验证。其中,可信进程验证是为了防止软件攻击,在文件层次上使用MD5算法进行校验的方法,该方法可以有效保护可信进程,标识恶意进程。

控制策略主要包括保护的文件夹和对应的访问进程。由于内核模式的命名空间和用户态不同,所以应用层的文件夹路径需要转化为内核模式的命名规范。

本文模型需要将过滤驱动从用户态传送策略到内核层,使用端口通信机制。首先创建通信端口,连接过滤驱动创建的通信端口,向过滤驱动发送消息,策略库可以更替和删除。文件操作中,过滤管理器

将会调用过滤驱动中的回调函数,返回正确位置。所有的文件操作,I/O管理都会创建对应的操作,并将操作发送给过滤文件驱动。模型的过滤驱动通过捕获该消息,查询策略集合予以阻止或者放行。模型首先得到文件的操作路径和对应的操作进程,然后查询对应的进程访问策略库,若查询成功,则允许进程访问,查询失败,则返回阻止操作[8]。

2.2 hook机制引入

由于文件复制操作在内核模式的结果不能获取目标文件与源文件的关系,为保证源文件和目标文件具有相同权限,需要应用层予以辅助支持。

在认证通过之后,应用层hook机制对加解密文件标识统一性进行判断,对用户行为进行监控。在增强文件安全性的同时,保证复制以后的文件与源文件的权限一致,确保文件的统一性[9]。

模型在应用层hook机制获得文件的复制或另存为操作,将复制的文件发送给驱动层,驱动层将这些信息缓存。当驱动例程判断为创建文件之后,将判断创建文件是否是复制的目标文件,是则将写入的文件权限与源文件权限设置为相同,否则写入新的权限。如图3所示。

图3 文件加解密系统框架图

安全保证模块实现了对文件加解密标识的判断,以此调用加解密模块。其中缓冲维护主要是针对缓存泄密问题设立的防线。由于进程对内容的访问无法被过滤驱动拦截到,因此解密后的文件可以在内存中获取到,需要在每次有新进程进行输入输出操作之前,对系统缓存进行刷新。实现过程如下:

获取上下文FsContext;

获取对象中成员ResourcePagingbResource;

if (资源未被占用)

{

加锁操作;

缓存刷新(CcFlushCacheMmFlushmageSectionCcPurgeCacheSection);

释放资源;

}

通过hook机制,可以捕捉到文件的操作。如图4所示,模型利用并行处理方式,在过滤驱动加解密的同时,完成文件一致性标记操作。hook机制将在捕获到打开和关闭文件命令的同时,记录文件标识,并在文件存储之前,对标识进行更改[10]。

图4 hook机制过滤驱动模型

3 实验与分析

本模型的实验环境如下:操作系统为Windows 7,计算机配置为CPU四核,主频为1.90GHz,内存为4GB。

模型需要设定文件路径。根据保护路径,模型利用单项散列函数计算密钥,同时写入USB Key,并对路径下的明文文件进行加密。应用层控制模块实时监视进程状态。加密后的文件以密文形式存储,模型开启USB Key身份认证机制,hook机制将对文件的统一性进行比较。图5为保护程序启动后检测到保护进程的示意图。

当用户关闭载体进程或保密文件,模型对保护路径下的文件进行遍历加密。保护文件以密文形式存储,随后对内存进行刷新,防止内存中发生明文泄露。加解密完成以后,模型会根据应用层hook机制的支持信息,对源文件与目标文件的权限一致性进行比较。

图5 保护程序启动后检测到保护进程示意图

3.1 引入hook机制实验分析

hook机制通过对事件的捕捉,获得对应文件操作,保证文件的统一性,通过触发内存刷新模块,增强文件的安全性。

3.1.1 实验结果

基于应用层hook机制的文件复制机制保证了复制的源文件和目标文件具有权限一致性。本文模型处理机制通过比较文件标识进行判断。具有不同标识属性的文件,即使有相同的文件名和相同的内容,仍然认为是两个不同的文件,从而保证文件的安全性。

本文在未加入应用层hook机制的前提下进行实验,文件标识实验结果如图6(a)所示,其中上图为加密前的文件标识,下图为加密后的文件标识,实验前后的文件标识有了改变。在加入应用层hook机制之后,加解密前后文件具有相同的标识,如图6(b)所示。

图6 文件标识对比图

不加入hook机制的模型保存临时文件的过程当中,需要对原文件的覆盖进行处理,文件保存前后文件标识发生了变化。此时,如果内存没有及时进行刷新,可以通过文件标识对解密文件进行拷贝,导致解密文件泄露,安全性不能得到保证。

加入应用层hook机制,文件在加解密前后具有相同的文件标识,被操作系统认为是同一个文件,这将保证文件的统一性。

本文在内存维护之前,通过内存还原的方式,对图6中的文件进行恢复。通过文件标识获取到图7中的两个解密文件,图7(a)是对图6(a)上图进行内存还原的结果,图7(b)是对图6(b)上图进行内存还原的结果。

图7(a)中,没有加入hook机制,在内存维护之前,文件以明文方式存储在内存当中,这将极大影响到文件的安全性;图7(b)中,由于受到hook机制的监测,还原结果和加密原文保持一致,同时为密文呈现,提高了文件的统一性和安全性。

图7 文件内容对比图

3.1.2 效率分析

应用层hook机制与驱动模块层次不同,对驱动模块效率没有影响。本模型在进程检测的同时启动应用层hook机制,程序将两个模块进行并行处理,保证模型效率。本文选取4M、8M、16M、32M文件进行测试,实验方法为:测试直接方式、过滤驱动方式和加入应用层hook机制的微过滤驱动方式加密过程所需时间,采用多次测试取平均的方式,测量次数为100次,结果如表1所示。

表1 模型效率对比表(加密算法采用ECB模式)

其中,过滤驱动方式的效率明显优于直接方式,并且随着文件的增大,直接加解密方式在模型整体执行过程中占比不断增大,而过滤驱动方式的效率

会明显优于直接方式。在本文模型当中,应用层hook机制的加入并没有对效率产生影响。

3.2 具有hook机制的过滤驱动加解密模型实验分析

本模型根据用户选择的加密级别和文件大小,选择出合适的加密模式进行加解密处理。本文模型采用文件对应密钥的方式,利用混合加密方法——对称加密方法处理需要加密的文件数据,非对称的加密方法处理密钥,在保证文件加密的速度的同时,保证了密钥的安全性。

目前有很多加密模式用于处理不同块,本文选取以下三种代表性较强的算法进行选择和比较:电码本(Electronic Codebook,ECB)模式;密码分组链接模式(Cipher Block Chaining, CBC)和计数(Counter,CTR)模式。其中,CBC模式安全性较高但是效率较低。过程如下式所示:

Ci=Ek(Pi⊕Ci-1)C0

(1)

其中C表示密文块,P表示明文块,Ek是加密算法。ECB模式效率较高但安全性较低,过程如下式所示:

C=Ek(m1m2m3…mn) =Ek(m1), Ek(m2), Ek(m3)…Ek(mn)

(2)

其中,Ek(m1)是第一个明文组,C是密文组。ECB模式如图8(a)所示。

CTR模式利用与明文分组长度相同的计数器,利用不同的计数器值加密不同的明文分组。该模式的加密公式如下式所示:

Cj=Pj⊕Ek(Tj)

(3)

其中,Cj是密文,Pj是明文,Ek(Tj)是被分割的第j条文段用的加密算法。CTR如图8(b)所示。

本文实验方法为:利用搭载不同加密算法的模型处理文件,本文将相同模型试验两次,分别按照加入hook机制和不加入hook机制计算密文在内存刷新之前完全破解率和效率分析。

本文采用多次测试取平均的方式,测量次数为100次,表2是文件大小和完全破解率之间的关系图,表3是不同加解密模式下的hook机制模型和原模型效率比较。

图8 加密模式图

文件大小完全破解率2M4M8M16M32M原模型9%7%6%2%3%hook机制5%5%3%1%0%

表3 不同加解密模式下的性能测试结果

结合表1和表3获得以下结论:透明加解密驱动本身带来影响是比较小的,加密算法会导致一定的延迟。本模型将根据用户要求和文件大小选择合适的模式,保证模型的透明性和安全性。

本文在hook机制的过滤驱动模型上搭载了三种加密算法进行测试,并根据算法效率、文件大小等因素,方框位置是本文建议选择的算法,如图9所示。

图9 加密算法选择模型影响因素图

本文的解密过程是:首先由文件系统驱动对文件数据进行读取,过滤驱动从文件尾部获得加密标识,进行相对应的解密操作,实现过程如下:

if (进程存在)

{

对部分加密文件做解密操作;

进程挂起;

if (捕获IRP-MJ-READ操作)

{

唤醒挂起进程继续解密;

} else

Rollback;

}

4 结 论

文件加密保护是操作系统用户级信息安全领域的重要研究内容,本研究设计并实现了一套新的文件透明加密保护模型,该模型可以在不改变用户原有文件操作习惯下,完成对文件的保护。

本文通过在过滤驱动模型上引入了应用层hook机制,实现文件加解密之后的标识检测,解决过滤驱动模型加解密处理后文件的统一性问题,通过避免内存还原等方式,提升透明加解密模型的安全性。

模型利用USB Key进行用户身份检查,根据加解密标识调用过滤驱动模块对文件进行加解密。本文结合ECB模式、CBC模式、CTR模式在模型下的适应性进行比较,可根据用户选择和文件大小获得合适的加密方法。

模型通过hook机制的引入,有效提升了系统的安全性和统一性,对内存内明文文件的导出获得有效的处理。加密算法可根据文件大小和用户选择进行调整,提升了模型的效率和透明性,具有较好的用户体验。但是hook机制对文件操作的捕捉难以把握,如果时机恰当,在文件标识转换之前,还是可以将明文进行换出。下一步我们将研究一套加解密同时更改文件标识的方法,保证文件一直处于同一标识当中,进一步对模型做提升。

[ 1] Li Y, Shi L. Design and Implementation of Encryption Filter Driver for USB Storage Devices.FourthInternationalSymposiumon, 2011, (12): 54-56

[ 2] 周道明, 钱鲁锋, 王路路. 透明加密技术研究. 信息网络安全, 2011, 12: 54-56

[ 3] 陈忠贵. 微过滤驱动模型下的加解密文件系统研究:[硕士学位论文]. 南昌:南昌航空大学信息工程学院, 2011. 11-13

[ 4] 陶珉. 基于文件过滤驱动的透明加密系统的设计与实现:[硕士学位论文]. 成都:电子科技大学通信与信息工程学院, 2012

[ 5] Katz I, Ideses I, Porat R, et al. Reversion of system objects affected by a malware. US patent: 20150058988. 2015

[ 6] Mashevsky Y V, Namestnikov Y V, Denishchenko N V, et al. Method and system for detection of previously unknown malware. US patent: 8572740, 2013

[ 7] Zhang X Y, Wang S P, Yun X C. Bidirectional active learning: a two-way exploration into unlabeled and labeled dataset.IEEETransactionsonNeuralNetworksandLearningSystems(TNNLS), 2015, 26(12):3034-3044

[ 8] 赵杰,陈靖,袁峰等. 基于动态加解密的内网信息管理系统设计与实现. 信息网络安全, 2012, 11: 74-77

[ 9] Zhang X Y, Wang S P, Zhu X B, et al. Update vs. upgrade: modeling with indeterminate multi-class active learning.Neurocomputing, 2015,162: 163-170

[10] Mcdougal M D, Ford B T, Smelser W P, et al. Detecting addition of a file to a computer system and initiating remote analysis of the file for malware. US patent: 8627404, 2014

A filter driver encryption and decryption model with hook mechanism

Cai Qiang, Xue Ziyu, Mao Dianhui, Li Haisheng, Cao Jian

(Beijing Key Laboratory of Big Data Technology for Food Safety, School of Computer and Information Engineering, Beijing Technology and Business University, Beijing 100048)

The encryption and decryption for file protection were studied. To solve the problems of un-unified file identification and increasement of memory’s file leakage risk in information security caused by the file’s use of a filter driver model to perform encryption and decryption, a new encryption and decryption model combining the hook mechanism and the filtering driver model was designed. The model uses the filter driver model to encrypt the file, and at the same time, the hook mechanism is introduced to capture the file operation behavior in memory to make the file has the same identity around the encryption and decryption. Thus under the circum stances of keeping the original operating habits of the file, a reduction on the risk of the file’s recovery is achieved. The theoretical analysis and experiments demonstrate that the model proposed in the study can be used to fast encrypt and decrypt different files under three encryption modes, and its disintegration rate can be decreased over 3 per cent compared with the filter driver model.

file system, information security, transparent encryption, filter driver, hook, encryption and decryption

①国家自然科学基金(QNJJ2014-23),北京市自然科学基金(4162019)和北京市教委科研计划(SQKM201610011010)资助项目。

②男,1969年生,博士,教授;研究方向:计算机图形学,计算几何,科学可视化,智能信息处理;联系人,E-mail: caiq@th.btbu.edu.cn

2016-02-28)

0 引 言

1 模型思想

加密方式相比其他加密方式,具有速度快、捕获时机准确等优点。但是该处理方法文件标识不统一,可在内存刷新之前对明文进行恢复,明文具有泄露的风险。

10.3772/j.issn.1002-0470.2016.07.009

不统一与内存明文泄露风险增加等安全问题,设计了一种hook机制和过滤驱动方法相结合的加解密模型。该模型采用过滤驱动方法对文件进行加解密,同时引入hook机制对内存中文件操作行为进行捕获,使得加解密前后的文件具有相同标识,在保证用户原有文件操作习惯的同时,实现了文件内存明文恢复风险的降低。理论分析和试验结果表明,该模型在三种加密模式下,可以针对不同文件进行快速加解密,同时较过滤驱动加解密模型,其恢复风险下降3%以上。

文件保护是操作系统保证用户级信息安全的重要机制。文件保护在实现方法上可分为以下四类:用户层文件加密方式、系统调用层文件加密方式、硬件加密方式和文件系统过滤驱动加密方式。用户层文件加密方式过程繁琐,安全级别低,用户操作量较大,研究价值较低;系统调用层文件加密方式满足透明加密过程,该方法时刻捕获文件的打开和关闭操作,可靠性较差,运行效率较低。相比以上两种早期的文件加解密方法,硬件加密方式速度较快、稳定性较好,但是成本较高、灵活性较差。在硬件加密方式中,密钥一经制定就无法修改,局限了该方法的发展。随着存储设备的进步、文件体积的增大、用户体验要求的增强,对加密算法的安全性、稳定性、透明性的要求也在不断提升。文件系统过滤驱动加密方式因其较强的透明性和安全性,逐渐成为了研究热点。该方式透明性较强,主要在操作系统内核层进行文件处理,具有较高的安全性、稳定性和平台兼容性,适用性广泛。国内外的研究人员提出了一些解决方案,很多文件保护系统也逐渐成熟起来。一些文件保护系统,如美国的Symantec公司研发的PGP加密产品系列、迈克菲公司研制的防数据丢失(DLP)产品、易安信公司研制的Source One for File Systems系列产品以及RSA公司研制的数据保护管理(DPM)产品等[1],都应用了文件透明加密,通过过滤驱动加密方式获得了较好的用户体验。这类系统虽然功能齐全,但是庞大繁杂,面向大型企业,由于其固有的整体性和高昂的成本导致其对中小企业以及个人用户的信息安全问题贡献不大。与国外的主要文件透明加密系统相比,国内的文件透明加密产品发展时间较短,附加功能较少,但发展势头较为强劲[2]。亿赛通科技发展有限责任公司开发的SmartSec系统、虹安信息技术有限公司开发的DLP平台发展较快。目前文件透明加解密系统都存在着不够独立、功能较为冗杂、用户体验易受到文件大小影响等问题。加解密模型是加解密产品当中的核心模块,DLP、DPM等国外主流研究模型具有一定的加密时间,保密文件有一部分时间以明文形式存于内存当中,文件具有安全性风险。陈忠贵[3]、陶珉[4]等国内学者研究的加解密模型在算法效率、密码安全性等方面贡献很大,但在算法本身安全性方面提升较小。加解密模型[5]在加密模型的功能实现上较为全面,但是同样没有关注到文件本身的安全性问题,导致模型的加解密结果不甚理想。以上透明加解密模型,都在过滤驱动模型的基础上做出了很多提升。在负载、算法、效率等问题上提升较多,但是对需要保护的文件本身并没有过多限制。这将导致加解密前后文件标识有所变化,内存明文可能发生泄露等问题。基于此问题,本文设计并实现了一种具有hook机制的过滤驱动的文件透明加解密模型。该模型首先通过USB Key进行密钥存储以及身份认证保证用户的合法性。通过hook机制实时获取文件操作,在加解密前后记录文件标识、对比文件标识、统一文件标识,避免文件标识不同造成的内存内明文泄露等问题。

猜你喜欢

加解密明文应用层
奇怪的处罚
PDF中隐私数据的保护方法
基于分级保护的OA系统应用层访问控制研究
电子取证中常见数据加解密理论与方法研究
奇怪的处罚
新一代双向互动电力线通信技术的应用层协议研究
四部委明文反对垃圾焚烧低价竞争
物联网技术在信息机房制冷系统中的应用
网络数据传输的加解密系统研究
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair