基于Windows系统透明加解密解技术的设计与实现 联系客服

发布时间 : 星期一 文章基于Windows系统透明加解密解技术的设计与实现更新完毕开始阅读7b491663011ca300a6c39083

基于Windows系统透明加解密解技术的设计与实现

宋雪莲

(核工业二九○研究所,广东 韶关 512029)

摘要:随着信息时代的到来,信息安全问题越来越引起人们的重视。除了要抵御来自外界的攻击和破坏,还要防止来自内部的有意或无意的信息泄漏。为解决日益突出的信息安全问题,本文在分析Windows平台下几种文件透明加密技术的基础上,设计并实现了一种基于文件过滤驱动技术文件透明加密系统。本系统应用USBkey进行身份验证、密钥存储、算法调用等提高了使用的安全性。应用过滤驱动的方式捕获应用程序在内核层与应用层之间的通信,识别需要的数据,从而有效防止了信息泄漏的发生。

关键词:信息安全 透明加解密 过滤驱动 1 引言

随着计算机的普及和企事业单位信息化应用的深入,电子文档成为企业信息交换的重要载体。但是由于其容易被复制、修改和传播等特点,可能会面临着巨大的安全风险。据数据显示,截至2009年,遭受以窃取数据文件为目的的攻击行为以每年20%的速度递增,而由于内部人员行为所导致的泄密事故占总泄密事故的70%以上[1]。因此很多公司在办公室电脑上封闭USB口来防止员工将重要文件拷贝出去,还有的禁止办公电脑接入互联网。这些做法在一定程度上降低了内部泄密风险,但也给日常化办公带来了很大的不便,大大降低了工作效率。如何在网络办公带来高效便捷的同时,又保护了数据信息的安全[2],在此种情况下一种全新的电子文档安全技术应运而生,即透明加解密技术。它将安全性和方便性完美的结合在一起。

2 透明加密相关技术

透明加密技术是与操作系统紧密结合的一种技术,工作于操作系统底层。通过监控应用程序对文件的操作,在读写文件时进行相应的加解密操作,从而达到有效保护文件的目的。用户级提供了HOOK API的方式,而内核级提供了虚拟

1

驱动的方式。因此透明加密技术也分为用户级的HOOK技术与内核级的WDM(Windows Driver Model)内核设备驱动两种方式。

2.1 HOOK透明加密技术

HOOK透明加密技术也即俗称的“钩子”,主要通过HOOK API的方式来实现[3]。HOOK API的基本原理就是修改一些API的入口地址,使所有对这些API的调用都先跳转到事先定义的函数中去,因此,通过HOOK一些常用的文件访问函数就可以事先捕获文件的读写操作从而完成加解密操作。

2.2驱动透明加密技术

驱动加密技术是基于Windows文件系统(过滤)驱动(IFS)技术,工作在操作系统的内核层。其实现方式主要是当应用程序对目标文件进行操作时,文件系统驱动会监控到应用程序的操作请求,并改变其操作方式,从而达到透明加密的效果。

2.3两种技术比较

使用以上两技术才能捕获文件的读写操作完成透明加解密的任务,但由于工作的层面不同,他们最终的实际应用效果也不尽相同。钩子透明技术开发容易,操作能力不受限制,但效率低下,容易被反HOOK破解,不适合大型系统开发。驱动透明加密开发难度比较大[4]。但效率高、可靠性强且加密策略相对灵活。

3.透明加密系统设计与实现

系统的开发目的是为了保护用户的文件数据安全。系统开发主要依托现有的透明加密技术,同时结合其他技术手段,根据用户需求来实现这一目的。在系统的开发过程中主要考虑数据的安全性和系统的易用性。

3.1系统框架设计

本系统由三部分组成:USBKey、过滤驱动以及联系两者以上应用程序。其中应用程序以及USBKey配套的管理程序位于Windows的用户层,文件过滤驱动在内核层工作,而USBKey设备本身及计算机的磁盘设备位于系统最下面的硬件层。因此,整个系统的架构图如下图1所示:

2

图1 系统框架图

Fig.1 the frame chart of the system

3.1.1 USBKey

USBKey是一个集身份认证、密钥安全存储、对称密钥与非对称密钥等安全功能于一体的安全硬件设备。透明加解密整个过程是由USBKey完成的,而USBKey内部提供的各种加解密算法用户可以直接调用,用户可以根据自身的需要选择不同的加密算法,而修改过程对驱动层不需要改动,只是在应用层进行少量修改即可。这样,在使用的安全性和系统的应用范围方面也有了很大的提高。

1)身份认证

操作系统在启动后,如果想要启动本系统提供的服务,首先要经过USBKey的验证来登录系统。输入与该USBKey相适应的PIN码(个人识别密码),登录成功后,才能以合法的用户身份访问那些受保护的信息。对于身份认证的流程设计如下图2所示:

图2 USB-key身份认证流程图

Fig.2 the flow chart of the authentication

2)密钥存储

3

在加解密文件的过程中,系统会使用USBKey内部产生的密钥。 3)加密算法调用

上层应用程序获取到过滤驱动捕获的数据内容后直接调用USBKey进行对数据的加解密工作,在充分应用了USBKey的功能的同时,大大提高了系统整体的加解密效率。

3.1.2过滤驱动系统

文件系统过滤驱动是一种内核模式驱动,它依靠拦截发往已存在的内核模式驱动的请求来提供新的功能[5]。所谓的过滤,即在不影响上层和下层的软件或下层的驱动程序的情况下,在Windows系统内核中加入新的层,从而不需要修改上层的软件或下层的驱动程序,就可添加新功能。文件驱动的目标就是捕获Windows系统对文件的各种操作行为,如文件的创建、打开、改名、读写等。过虑驱动是整个系统实现的主体部分,文件系统过滤驱动叠加在文件系统驱动之上。当应用程序对文件进行保存时,数据首先被驱动截获,将要保存的内容进行加密操作后向下传递到底层文件系统驱动,这样最终写入磁盘的就是密文[6]。同样,当应用程序读取文件时,在数据向上传递到应用程序之前过滤驱动截取到数据并对其进行解密操作,然后向上层传递,这样来确保用户所见的是明文。

3.1.3应用程序

上层应用程序是整个系统的组织者。该模块主要包括三个方面的设计:提供用户操作界面,实现应用程序与USBKey之间的交互以及应用程序与过滤驱动的交互。用户通过上层应用程序提供的用户界面来操作本系统。应用程序提供的主要操作包括:

1)登录/注销。用户可在登录后操作受保护的文件,操作完毕后注销退出系统。

2)设定规则。在安装完成后,会提示设定需要保护文件的类型,以及受保护文件所处路径。

3)查看日志。用户可以查看系统运行产生的操作日志信息。 4)修改PIN码。用户可根据需要修改个人PIN码。

5)导出密文。用户可根据需要将受保护的文件以密文形式导出。

4