基于文件过滤驱动的文本数字水印研究与实现

时间:2018-08-02 编辑整理:谢海睿 笪清安 王文杉 来源:早发表网

摘要:电子文档易于编辑,存储和传输,在提高办公效率的同时也具有数据安全隐患。为了对文件实施加解密保护,防止加密文件被泄露,提出了一种基于文件过滤驱动和数字水印的文件保护方案。首先研究了Minifilter技术的在内核层的加解密原理并使用这项技术开发出微过滤驱动程序。通过对文件I/O请求进行拦截,添加保护功能,对文件数据实施加密保护。接着,结合高级加密标准(AES)算法和海明码编码技术,使用Minifilter技术对无格式文本中的数据进行水印信息的嵌入。最后,实现了基于文件过滤驱动的文本数字水印系统,通过测试表明这个系统可以加强文件数据的安全性,为文本数据提供了更全面的保护,提出的文本水印算法在保证足够水印容量的前提下具有良好的不可见性和鲁棒性。

关键词:文本数字水印无格式文本微过滤驱动文件保护

1  引言

越来越多的企业单位和党政机关选择将一些涉密或隐私的文件以电子文档的形式存储在计算机上,但是,涉密文件泄露、知识产权纠纷、网络病毒、非法入侵等问题屡见不鲜,如何对电子文档进行有效的保护已经成为了一个迫在眉睫的问题。数据泄密不仅带来经济上的损失,而且还会产生负面的社会影响。事实证明通过法律和道德约束解决信息安全问题是远远不够,必须在技术上采取措施。目前对于文件信息保护的主流方式以加密防暑为主,但加密无法阻止攻击者对于重要文件的破化、修改甚至造成版权纠纷问题。数字水印技术是近些年新兴的文件保护手段,它将可以证明作者身份的版权信息嵌入到载体数据上并不会影响其使用。在必要的时候提取水印信息,来维护合法人的权益。但是该技术主要用于泄密追踪,无法预防泄密。如何对文件信息进行更加全面的保护是科学领域值得研究和探索的问题。

2  关键技术介绍

2.1  文件过滤驱动技术

文件过滤驱动技术工作在内核层,因此安全性和工作效率都有大大提升,且不需要使用者参与加解密操作,不会给使用者增加多余的负担。常用的做法是将透明加解密算法与权限控制技术结合在一起,如EFS是出现比较早的文件过滤驱动加解密系统,安全性可以得到保证,可是它只能支持NTFS格式的文件系统。后来出现了传统的过滤驱动开发模型Sfilter,虽然与EFS相比有了很大的改进,但是它的开发过程过多的依赖于内核模式的数据结构,耦合性太高,稳定性较差。直到微软公司推出了新一代过滤驱动开发模型Minifilter,它是在传统的过滤驱动模型的基础上进行改进,对内核结构进行封装,提高开发效率,具有更好的稳定性。本系统就是使用Minifilter来开发过滤驱动程序,配合水印技术一起对文件系统进行更全面的保护。

2.2  文本数字水印技术

文本数字水印作为一种新兴的文本信息保护技术,在学术、医学等很多领域都有重大的研究和实用价值。当前比较常见的文本水印算法都是用来进行版权保护的鲁棒水印。李雪红设计了检验编码策略,对文本行进行分割划段,实现了具有稳健性和较高有效载荷的文本水印。研究人员在文献中通过实验表明了基于字符间距的文本水印策略能够有效的保证机密文档传输的安全性,但是限制条件是每个字符左右移动的位移总和为0,防止某个字符串移到下一行,让攻击者发现破绽。后来,杨方兴等人通过Huffman编码技术提高了水印的容量,又巧妙的借助自然语言技术标注文档内容中的语义角色,作为鲁棒水印的嵌入位置,达到了很好的不可见性。但这个方法的鲁棒性不是很好,增加或删除某些字符攻击有可能会对水印信息造成破坏。另外,还有一些用来验证文本内容真实性与完整性的脆弱水印。王静等人使用同义词替换的方法嵌入水印,并结合Hopfield神经网络实现水印的认证与恢复。周新民等人选择汉字结构的二进制模式作为嵌入位置,大大提高了水印的安全性。

目前的文本水印算法不能同时在水印容量、安全性、隐蔽性等方面同时具备良好的性能,发展相对落后。可以说文本数字水印的发展与文件信息应用地位并不相符,文本数字水印对于重要文件数据的保护有着非常重大的研究价值。

3  基于文件过滤驱动的文本水印的设计

本文给出了基于文件过滤驱动的文本数字水印系统的总体框架图,主要分为Minifilter文件加解密子系统和文本水印子系统。在内核层利用Minifilter技术根据访问控制策略对文件数据进行加解密,并根据应用层传递下来的水印信息在无格式文本中实现水印的嵌入。Minifilter嵌入水印和加解密数据的时候需要与内核保持通信,水印信息控制和文件的访问控制策略都是由应用层通过通信接口下发至内核层的。而用户对文件的I/O操作由应用层直接下发至内核层的I/O管理器,I/O管理器将文件请求包装成IRP请求下发至过滤管理器,过滤管理器调用文件过滤驱动程序并根据访问控制策略和水印控制信息对文件进行加解密和嵌入水印的操作。最终系统将文件数据以密文的形式写在磁盘上,将水印信息写在文件头部,如图1所示。

 

3.1  Minifilter文件加解密子系统的设计

根据Windows系统分层特点,Minifilter微过滤驱动总体上主要也分两部分:应用层和内核层模块。应用层模块主要是为使用者提供一个可视化的应用管理界面,使用者可以设置访问控制策略,并根据需要添加和解除监控策略,通过初始化按钮完成与内核层的通信。内核层主要负责拦截文件I/O请求,在内核层完成对数据的加解密保护,整个过程对应用层完全透明。本系统只含有一个微过滤驱动,使用回调函数来完成对不同文件请求的处理工作。图2给出了微过滤驱动的内核层结构设计。

 

下面对主要模块的功能进行介绍:

1)初始化模块:主要负责完成系统的初始化PRE_2_POST_CONTEXT上下文结构、预定义进程访问控制策略、分配并填充初始化标识PFILE_FLAG、向FilterManager注册并启动过滤驱动、初始化通信端口等工作,为后续操作做准备。

2)回调函数设置:这是Minifilter加解密子系统的核心部分,负责对特定类型文件请求的处理工作,这里面包括文件加解密以及缓冲区设置等系统核心内容。通过这些回调函数的实现,系统才会对用户的文件请求做响应,完成对文件的保护工作。

3)通信模块设置:这是内核与用户唯一的通信接口。通信模块规定了内核接收用户消息的类型以及处理方式,通过通信模块设置,才能够保证应用层与内核模块之间的正常工作。

本微过滤驱动系统进程可分为两种:机密进程和普通进程。机密进程是微过滤驱动认可的进程,在读取机密文档时会自动解密,并采用AES加密算法对文件进行加密。普通进程就是微过滤驱动不认可的进程,所以当他们去读取机密文件的时候得到的内容是不经过解密的以乱码的形式呈现的垃圾数据。特别地,那些System系统进程不能设置为机密进程,否则会影响系统的正常启动。

本系统采用的是进程-文件后缀名的访问控制策略,在在驱动程序中规定好机密进程名和对应的文件后缀名列表。当有文件请求到达,需要加载微过滤器的时候此列表就会被载入内存中。进程名字包含在EPROCESS结构中,而文件后缀名的信息就存储在CALLBACK_DATA回调数据包中。这样就可以很容易的从中获取到文件后缀名的信息,再将得到的进程名和文件后缀名与访问控制列表中的数据进行比对,判断是否是符合要求的I/O操作,符合的话就进行加解密操作,不符合直接下发到下层文件系统中。

如果拦截到的IRP请求符合进程访问控制策略,代表此I/O请求操作的目标文件满足可以被加解密的。但操作的目标文件是不是加密文件则要通过文件加密标识来判断,它由加密标识、加密算法标识、密钥表示、文件有效长度和水印字段构成。这里将其设置为固定大小4KB,其中有512B是用来存储水印信息的,文件加密标识放在文件头部。

当处理文件写操作时,判断是否存在文件加密标识,不存在的话就添加文件加密标识,然后和加密数据一起存储在磁盘上。当授权进程处理文件读操作时,会首先获取头部4KB大小的标识信息,判断其正确性,如果是正确的就修改起始偏移地址,新的起始地址为原来的起始地址加上4KB大小,并做解密处理。修改偏移地址很重要,否则就是造成文件信息读取错误甚至是系统崩溃蓝屏。如果不是正确的加密标识,那么就不做任何处理。

对于数据的加密处理使用的是AES加密算法,AES在性能和效率方面都要比传统的DES加密标准好很多,现在已经得到了非常广泛的应用。

AES采用循环的加密方式,将有效水印信息按128位做分组,与128位的密钥按位进行异或运算,每一轮加密的密钥都会通过g函数扩展,所以各不相同。本文在Minifilter数据加解密和对水印信息加密处理部分都是用的AES算法对数据进行处理,大大增强了数据安全性。

3.2  文本数字水印子系统的设计

3.2.1  水印信息的生成

对水印信息的处理首先使用128位密钥的AES算法先对有效水印信息进行加密,然后选择海明码对水印信息进行编码,将输入的数据按特定规则分组,每个分组中都会插入一个检测位,这样就会有多个检测位通过差错检测就可以找到具体是哪个位出现错误,再根据纠正原理进行纠错,将出现错误位的0变成1,将1变成0,不仅具有校验功能同时还可以对出现差错的编码位进行纠错并将编码后水印信息长度添加至头部。

海明码进行纠错的主要基础就是它是一个多重校验码,信息码中的信息可以同时被多个校验码校验,最后通过多重校验的相互关系找到最终是哪位出现了问题。对出现问题位置的字节做取反操作。但是海明码只能校验并纠正一位数据,为了弥补这个不足本文采用了多次嵌入水印的方式,在文本中最多会嵌入N/n(N表示文本字数,n表示水印信息数)次水印信息,如果发现海明码无法校验并纠错,就会进行下一轮水印信息提取,以保证提取水印信息的正确性。

对数据经过AES加密和海明码编码之后,就要为水印信息添加开始标识和结束标识了。在两头分别加上开始标识0000000000和结束标识1111111111,方便系统根据开始和结束标识提取整个水印信息,为了防止和开始和结束标识相同,需要进行转义编码例如重复出现0000000000字段,那么需要将此字段转义为1000010000,同理对于结束标识反转第0位和第5位。因此,待嵌入的水印信息是由开始标识、数据长度、编码数据和结束标识构成。其中编码数据为AES加密过的水印信息和海明码纠错码组合而成。

3.2.2  水印信息的嵌入

由于TXT类型的文本没有如控制字符大小、字符颜色等冗余信息,因此水印的嵌入策略是使用Minifilter文件过滤驱动拦截文件I/O请求,然后在文件头分配额外的空间写入数字水印信息,并将整个文件数据与水印结合写入磁盘,实现水印的嵌入功能,通过将数字水印隐藏在文本文件的头部并返回给应用层一个原始文件的视图来达到水印嵌入目的。由于文件过滤驱动能够设置返回给用户层的读取范围与偏移值,因此用户只能看到文件过滤驱动设置的范围,也就是文件原来的有效数据区,而水印信息是通过Minifilter过滤驱动写在磁盘中的,并没有在返回给用户的视图中体现出来,这样的嵌入方式在可以保证水印信息在隐蔽性和鲁棒性方面具有绝对的优势。

3.2.3  水印信息的提取与读取

利用Minifilter技术来提取水印信息分两个部分来叙述:一是内核端,二是客户端。首先打开一个含水印的txt文件,内核就会在预读操作中判断是否满足进程-文件后缀名的访问策略,满足代表可以进行提取与解密,进而执行提取水印过程,经过通信接口传入到文件驱动层之后,将存储在磁盘上的文件头部信息读取到内存中的文件标识中,分离文件与头部数据。最后通过在watermark数组中读取长度为Length的数据信息即是水印信息。这个过程完成之后,通过内核与应用层的通信接口,将提取的加密的水印信息传入用户层。然后用户层进行解码与纠错过程之后就能够解密水印信息了,并将水印信息显示出来。

4  系统实验

本系统是采用微过滤驱动和文本数字水印技术两方面结合的方式对文件数据进行更全面的保护。采用Inter(RcoreTMi52450MCPU@2.50GHZ的CPUVisualStudio2010和Debug View.exe调试工具作为测试环境。

4.1  微过滤系统实验

应用层和内核层之间的通信连接建立起来之后,内核层就可以根据应用层传递下来的访问控制策略进行加解密控制。例如把WPS对应的进程wpsexe设置成授权进程,那么同一个testbdoc文件通过wpsexewordpadexe进程方式打开数据呈现方式如图3和图4所示。

 

停止Minifilter服务的时候,再次使用WPS打开testbdoc文档的时候,即使是授权进程仍然会以密文的形式呈现。这就保证没有部署微过滤驱动的系统中是无法打开加密文件的,即便文件被泄露到了文件保护系统之外也是无法读取加密文件具体内容,从而起到了很好的保护作用,如图5所示。

通过以上数据分析可以得出在Minifilter部分实现对文本数据的保护在功能和性能上满足了预期要求。可以根据访问控制策略对文件实行加解密保护,非授权进程无法读取受保护的文件,没有安装过滤驱动的电脑无法正常打开加密文件,并且使用者基本不会觉察到整个加解密过程的存在。

 

4.2  Minifilter技术嵌入水印实验

4.2.1  不可见性分析

TXT文本水印信息是通过使用Minifilter文件过滤驱动将加密和编码后的水印信息写入文件开头,然后和文件信息一起写入文件系统中。读取文件信息的时候在内核驱动中会进行判断操作,如果是正常读取文件信息则从去掉水印信息的部分开始读取,返回给用户层一个原始文件的视图,用户看到的只是正常的不含水印数据的文件信息,因此具有良好的隐蔽性。图6和图7分别为水印嵌入前与嵌入后文本对照图。

 

4.2.2  鲁棒性和安全性分析

由于文件过滤驱动能够设置返回给用户层的读取范围和偏移值,因此用户只能看到文件原来的有效数据区,而水印信息仍然是保存在磁盘中没有在返回给用户的视图中体现出来。因此攻击者对文件信息进行增、删、改、查、改变格式都不能破坏水印信息,有效的保护了版权信息,同时水印信息也是经过加密和编码处理的,具备良好的安全性。

5  结束语

对现有的文件保护技术的优缺点进行分析,提出了文件过滤驱动和文本数字水印技术相结合的方式对文件进行更全面地保护,并针对目前文本数字水印技术不能同时在隐蔽性、鲁棒性、安全性和水印容量方面拥有良好的性能的研究现状提出了一种新的解决方案。但是使用Minifilter技术嵌入水印数据是先保存在文件加密标识中,可嵌入的水印容量比较小。如何在无格式文本中实现更大的水印容量是我们继续研究的重点。


职称
论文

期刊
发表

加急
见刊

写作
咨询

课题
专答

编辑
顾问

关注
我们

返回
顶部