(计算机科学与技术专业论文)文档透明加密系统的设计与实现.pdf_第1页
(计算机科学与技术专业论文)文档透明加密系统的设计与实现.pdf_第2页
(计算机科学与技术专业论文)文档透明加密系统的设计与实现.pdf_第3页
(计算机科学与技术专业论文)文档透明加密系统的设计与实现.pdf_第4页
(计算机科学与技术专业论文)文档透明加密系统的设计与实现.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机科学与技术专业论文)文档透明加密系统的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

独创性( 或创新性) 声明瀛 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论 本人签名: ,本人承担一切相关责任。 日期:迎zq ,;。2 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在年解密后适用本授权书非保密论文注释: 期:迎z 翌。互! 笸 期:易叶印* “二_ 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 文档透明加密系统的设计与实现 摘要 随着信息技术的发展,数据泄漏所引起的种种安全问题也逐渐引 起人们的高度关注,特别是在企业信息安全领域,越来越多的企业都 引入了自己的信息泄露防护系统。其中国内比较知名的数据泄漏防护 产品方案提供商有北京亿赛通、思智泰克等,其客户群中不乏国内颇 具影响力的企业,如中国移动集团、解放军二炮部队、比亚迪等,且 都对所部署的数据泄漏防护系统给出了很高的评价。 本文所研究的文档透明加密系统是一个完整数据泄漏防护解决 方案的重要组成部分。在综合比较各种透明加密技术基础上,选择文 件系统过滤驱动技术实现。以驱动开发中常用的s f i l t e r 框架为基础, 在分析其对文件系统监控技术的基础上,设计并实现自己的文件过滤 方案,并利用成熟的数据加密算法对所操作的目标文件数据进行加解 密。该系统不仅可以对操作系统本身的卷设备提供透明加解密功能, 而且对于动态生成的卷设备同样提供透明加解密功能,具有很强的实 用性。 同时本文对于文件系统驱动开发人员也有一定的参考价值,希望 能起到一个抛砖引玉的作用。 关键词数据泄漏防护文件系统驱动过滤驱动透明加密 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 n 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 d e s i g na n da p p l i c a t i o no fd o c i 腿n t t ra n s p a r e n te n c r y p t i o ns y s t e m w i t ht h ed e v e l o p m e n to ft h ei n f o r m a t i o ns e c u r i t yt e c h n o l o g y , m o r e a n dm o r es e c u r i t yp r o b l e m sr e f e r r e dt od a t al o o s ea r ec o n c e r n e db y p e o p l ee s p e c i a l l yi nt h ef i e l do fe n t e r p r i s ei n f o r m a t i o ns e c u r i t y i n d o m e s t i ca r e a , t h e r ea r es e v e r a lr e p u t e dd l ps o l u t i o np r o v i d e r s ,s u c ha s e s a f e n e ta n ds a g e t e c h ,w h o s ep r o d u c t sa r eg i v e np e r f e c te v a l u a t i o nb y t h e i rc l i e n t sa m o n gw h i c h ,m a n yo ft h e mh a v eg r e a ti n f l u e n c ei nc h i n a , f o re x a m p l ec m c c ,p l as e c o n da r t i l l e r yc o r p sa n db y d 乃ef i l et r a n s p a r e n te n c r y p t i o ns y s t e mp r o p o s e di nt h i sp a p e ri sa n i m p o r t a n tp a r to f aw h o l ed a t al o o s ep r e v e n t i o ns o l u t i o n t h ef i l es y s t e m f i l t e rd r i v e rt e c h n o l o g yi su t i l i z e di nt h ed e s i g na f t e rc o m p r e h e n s i v e c o m p a r i s o n sa m o n gl o t so ft r a n s p a r e n te n c r y p t i o nt e c h n o l o g i e s o nt h e b a s eo fs f i l t e rf r a m e w o r kw h i c hi sc o m m o nu s e di nd r i v e rd e v e l o p m e n t a n df i l es y s t e ms u r v e i l l a n c e ,af i l ef i l t e rs o l u t i o ni sp r e s e n t e da n dm a n y m a t u r ed a t ae n c r y p t i o na l g o r i t h m sa r ee m p l o y e dt od ot h ee n c r y p t i o na n d d e c r y p t i o nt a s k so nt h eo b j e c tf i l ed a t a t h ed e s i g n e ds y s t e mn o to n l y p r o v i d e st r a n s p a r e n te n c r y p t i o na n dd e c r y p t i o nf u n c t i o no nt h ev o l u m e d e v i c e sw h i c ha r ei n h e r e n ti no s ,b u ta l s os u p p o r t se n c r y p t i o na n d d e c r y p t i o na b i l i t yo nt h ev o l u m ed e v i c e sw h i c ha r ec r e a t e dd y n a m i c a l l y s ot h i ss y s t e mh a sas t r o n gp r a c t i c a b i l i t y a n da l s o ,t h i sp a p e rc o u l dp r o v i d ei m p o r t a n tr e f e r e n c ev a l u e sf o r o t h e rf i l e s y s t e m d r i v e r d e v e l o p e r s p e r h a p s ,m e y c a n g e ts o m e i n s p i r a t i o nf r o mh e r e k e yw o r d sd a t al o o s ep r e v e n t i o nf i l es y s t e md r i v e r f i l t e rd r i v e r t r a n s p a r e n te n c r y p t i o n m 北京邮电大学硕士研究生论文 文档透明加密系统的设计与实现 i v 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 第一章 1 1 1 2 1 3 1 4 第二章 2 1 2 2 2 3 目录 j 者论l 研究背景l 国内外研究状况2 研究的目的及意义。3 论文组织结构。4 系统相关核心技术5 透明加密技术5 2 1 1 钩子透明加密技术5 2 1 2 驱动透明加密技术8 文件系统过滤驱动技术9 2 2 1 文件系统驱动9 2 2 2 文件系统过滤驱动1 0 驱动框架的选择1 2 2 3 1s f i l t a 12 2 3 2m i n i f i l t e t 11 i 第三章驱动开发相关技术的研究1 4 3 1w i n d o w s 操作系统的结构【2 1 1 4 3 2 驱动开发中的重要数据结构1 6 3 2 1 驱动对象( d r i v e ro b j e c t ) 。1 6 3 2 2 设备对象( d e v i c eo b j e c t ) 。17 3 2 3 设备扩展( d e v i c ee x t e n s i o n ) 1 7 3 2 4 输入输出请求包( 刀r p ) 。17 3 3 驱动模型介绍19 3 3 1n t 式驱动程序19 3 3 2w d m 式驱动程序2 0 3 3 3w d f 驱动模型2l 3 3 4 设备的层次结构。2 2 3 4 内核编程的特殊性。2 3 3 4 1 内核编程的调用源2 3 3 4 2 函数多线程的安全性2 3 3 4 3 代码中断级2 4 第四章需求分析与总体设计2 5 4 1 系统需求分析2 5 4 2 系统架构设计2 6 4 2 1 系统的软件结构2 6 4 2 2 系统的逻辑架构2 6 第五章系统详细设计与实现2 8 5 1 文件系统的监控2 8 5 1 1 设备绑定的准备工作2 8 5 1 2 设备的绑定2 8 v 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 5 1 3 文件系统的分发函数3 0 5 2 文件系统的过滤3 l 5 2 1 设备的读写方式。3 l 5 2 2 读写操作的过滤3 2 5 2 3 路径过滤3 4 5 3 驱动程序同步处理3 5 5 3 1 内核同步对象3 6 5 3 2 自旋锁。3 7 5 3 3 中断请求级3 8 5 3 4 互锁操作3 8 5 4 加密模块的设计与实现3 9 5 4 1 加密算法分析3 9 5 4 2 区分进程4 2 5 4 3 内存映射与文件缓冲4 4 5 4 4 文件加密标识。4 6 5 4 5 文件加密表4 8 5 4 6 文件加解密5 0 第六章总结与展望5 7 参考文献5 8 1 改谢! ;9 作者攻读学位期间发表的学术论文目录6 0 v i 北京邮电大学硕士研究生论文 文档透明加密系统的设计与实现 1 1 研究背景 第一章绪论 随着社会的发展和互联网时代的到来,信息的展现形式和存储方式已经发 生了巨大的变化,从开始单一的纸质文字记录,到现在存储于软盘、硬盘、u 盘、 光盘中的电子文档。信息的多样化在给人们带来方便的同时也带来了巨大的安全 隐患,即信息可以以多种方式,通过多种渠道传播到世界的任何一个地方。根据 v e r i z o n2 0 0 9 年业务数据泄漏调查报告显示,在2 0 0 8 年中已经明确的9 0 起数据 泄漏事故,涉及的数据量多大2 8 5 亿,这比2 0 0 4 年到2 0 0 7 年四年间发生的数 据泄漏事故总泄漏数据量2 3 亿还要高:据美国信息安全部门统计,一次信息泄 露的平均成本为1 4 0 0 万美元。巨大的信息丢失以及高额的成本无疑给我们敲响 了警钟:数据信息泄漏防护势在必行。 数据泄漏防护( d a t al e a k a g ep r e v e n t i o n ,简称d ip ) 是指同过一定的技术 或管理手段,防止用户的数据或信息资产以违反安全策略规定的形式被有意或无 意的流出。根据所部署的位置的不同,数据泄漏防御方案可以分成基于网络的数 据泄漏防御方案( n d l p ) 和基于主机的数据泄漏防御方案( h d l p ) 基于网络的数 据泄漏防御方案通常部署于内部网络和外部网络连接的出口处,对所有进出单位 内部网络的数据进行监控。基于主机的数据泄漏防御方案则部署在存放敏感数据 的主机上,当发现被保护主机上的数据被违规转移出主机时,i - i d l p 会采取拦截 或发出警报等行为。由于国外用户的网络环境和信息化水平程度较高,这使得基 于网络的n d l p 更符合国外用户的需求,所以国外d l p 厂商大部分数据泄漏防 护方案也都是基于网络类型的。但从目前中国国内的信息化水平来看,国内上市 公司比较适合采用基于主机的t t d l p 解决方案。 数据信息被窃取的主要途径有以下几种: ( 1 ) 由电磁波辐射泄漏泄密 该类泄密主要包括传导辐射、设备辐射等,主要是针对国家机要机构、 重要科研机构或其他保密级别非常高的企、事业单位或政府、军工、科研场 所等,但该类机构一般都有非常严密的硬保密措施,所以只需通过健全管理 制度和物理屏蔽手段就可以实现信息的有效保护。 ( 2 ) 网络化造成的泄密 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 该类泄密主要来自于网络拦截、黑客攻击、病毒木马等,网络化造成的 泄密是目前企业重点关注的问题。常用的防护手段为严格的管理制度加访问 控制技术,但特殊的环境下需要采用网络信息加密技术来实现对信息的保 护。访问控制技术能一定程度的控制信息的使用和传播范围,但是,当控制 的安全性和业务的高效性发生冲突时,信息明文存放的安全隐患就会暴露出 来,也更容易造成信息的泄密。 ( 3 ) 存储介质泄密 便携机器、移动存储介质的丢失、报废、维修、遭窃等,同样会给企业 和个人带来极大的损失,在监管力量无法到达的场合,泄密无法避免。 ( 4 ) 内部工作人员泄密 内部人员的主动泄密是目前各企业普遍关注的问题,主要包括违反规章 制度泄密、无意识泄密、故意泄密等。据调查显示,目前由内部人员行为所 导致的泄密事故占总泄密事故的7 0 以上。虽然通过规范管理制度、访问控 制约束再加上一定的审计手段威慑等防护措施,能在一定程度上降低内部泄 密风险,但是,信息化高度发展的今天,终端始终掌握在个人手中,这使得 此种防护手段的缺陷也随之显现出来,终端信息一旦脱离企业内部环境,泄 密的可能性依然存在。 ( 5 ) 传统防御手段的不足 对于核心信息的防护,传统方法一般为完善管理制度和加强人员教育, 同时配合适当的终端防御技术,如:防水墙、终端安全平台、审计平台、行 为管理等,但这始终无法防止内部员工的有意识、主动泄密,如重新安装操 作系统、从盘引导、破坏防御平台运行环境等带来的泄密隐患。 要想真正保证数据的安全,保证数据不被有意或无意泄漏,必须从源头做起, 防止一切信息泄露的可能性。而防止信息泄露的手段通常情况下便是对信息进行 加密,也只有对信息进行加密,才能有效的实现信息全生命周期保护。为了防止 员工有意或者无意的将信息带离公司,许多公司采取了不同的解决方案,例如, 禁止使用u 盘、禁止上网等。这虽然在一定程度上保证了信息的安全性,但也 同时或多或少的给工作带来了不便,于是利用文件透明加密技术来防止信息泄露 的软件就应运而生了。 1 2 国内外研究状况 透明加密技术是数据泄漏防护系统解决方案中常用的一种技术所谓透明是 指在不改变用户使用习惯、计算机文件格式和应用程序的情况下,采取。透明加 2 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 解密技术”,对指定类型的文件进行实时、强制、透明的加解密。即在正常使用 时,计算机内存中的文件是以受保护的明文形式存放,但硬盘上保存的数据却是 加密状态。如果没有合法的使用身份、访问权限、正确的安全通道,所有加密文 件都是以密文状态保存。所有通过非法途径获得的数据,都以密文形式表现。 从本质上来讲,文件透明加密是一个比较宽泛的概念,比如微软的n t f s 就 已经拥有了透明加密功能,该系统使用方便,用户不需要掌握加密体系框架就能 对数据进行加密。e f s 系统是通过文件系统驱动来实现的,和操作系统紧密结合, 成为操作系统的一部分。虽然其安全性得到操作系统保障,但是也有不足。关键 问题在于n t f s 的透明加密解密时对一切进程加密解密的,这种情况下,只要 有权限的用户登录到了w m d o w s 系统,他就可以自由的使用这些加密文件,并 且可以自由的将信息泄露出去。此外其只能对指定文件加密,不能对某一类文件 自动加密。加密算法固化,不符合我国信息安全领域的要求。另外一点不足的是 微软未公开该加密系统源代码,第三方开发者很难对系统自由改造升级1 6 j 。 1 3 研究的目的及意义 随着信息化的飞速发展,越来越多的信息以电子形式存储在个人和商用电脑 中,并且通过网络进行广泛地传递,在大量的信息存储和交换中,信息的安全问 题越来越引起人们的重视。如何在网络办公带来高效便捷的同时,又保护了涉密 信息,不使国家、集体、个人利益受到损害便成为信息安全领域的重要课题。 透明加密软件不但支持解密,而且还支持透明化功能,这正是它激动人心、 革命性的地方。透明化功能指的是,当用户使用加密文件时,可以不进行解密, 而让软件透明化地自动支持它。透明化功能是在后台自动执行的,但使用透明化 功能时也要进行密码的核对或加密硬件的连接。透明化功能的具体实现过程都是 在内存中进行的,而不是在磁盘上进行,这一点保证了文件的安全性。使用透明 化功能时,尽管加密文件没有被解密,但是操作系统和所有的应用程序都以文件 的原始内容为标准,这个过程对于操作系统和应用程序是透明的,所以叫做透明 化加密软件。 由于w i n d o w s 操作系统的良好的结构化设计,为透明加密系统的开发提供 了很好的支持。开发人员可以充分的利用这些结构化设计带来的接口,大幅提高 了开发效率,同时也提高了其与操作系统之间的无缝的连接,使得开发人员大可 不必为了改变系统行为而另行开发一些相关的模块。 透明加密软件是一种革命化的加密软件,它不同于传统的加密软件,而是直 接运行在操作系统内核中,动态地支持加密文件,将安全性和方便性完美地结合 3 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 在一起。 1 4 论文组织结构 全文由五章组成。在第二章简述并分析透明加密技术,文件过滤驱动技术以 及各种驱动开发框架,为具体的方案设计打下基础。然后在第三章分析相关驱动 开发的核心技术,包括驱动开发中的重要数据结构,驱动模型以及内核编程的特 殊性等。接着在第四章主要对系统的总体架构以及设计进行分析。第五章主要是 对系统进行详细的设计以及实现,包括加密算法的选用,文件系统的监控与过滤, 对于文件加密标识以及文件加密表的设计与实现等。 4 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 2 1 透明加密技术 第二章系统相关核心技术 透明加密技术是针对企业文件保密需求应运而生的一种文件加密技术。所谓 “透明一即对使用者来说是未知的,系统在不改变用户原有工作流程和文件使用 习惯的前提下,对需要保护的进程生成的所有文件( 无论该文件原来是明文还是 密文) 进行强制加密保护当使用者在打开或编辑特定类型的文件时,系统将对 未加密的文件进行加密,对已加密的文件自动解密。文件在硬盘上是密文;对使 用者的展示为明文。一旦离开使用环境,应用程序因为无法得到自动解密服务而 无法正常使用,从而起到保护文件内容的作用。透明加密具有以下特点: ( 1 ) 强制加密:安装加密系统后,所有指定类型的文件都是强制加密的; ( 2 ) 使用方便:不影响用户原有的操作习惯; ( 3 ) 内部无阻碍:对于企业局域网内部的用户来说不受任何影响,内部交流 不需要做任何额外处理; ( 4 ) 外部受阻:一旦文件脱离使用环境,将自动失效,从而有效的保护信息 安全; 透明加密技术是与操作系统紧密结合的一种技术,工作于操作系统的底层。 通过监控应用程序对文件的操作,在读写文件时进行相应的加解密操作,从而保 证存储介质上的文件始终处于加密状态。 透明加密技术主要是通过在程序读写文件时改变程序的读写方式来实现的, 而监控操作系统文件的读写可以在多个层面上进行,w i n d o w s 操作系统允许编程 者在用户级和内核级两个层面对文件的读写进行操作,用户级提供h o o ka p i 方式,内核级提供了虚拟驱动的方式。因此透明加密技术也分为a p ih o o k 广 度和v d m ( w i n d o w sd r i v e rm o d e l ) 内核设备驱动两种方式。 2 1 1 钩子透明加密技术 钩子透明加密技术主要是通过h o o k a p i 的方式来实现的。h o o k a p i 的基 本原理就是使调用程序对目标a p i 的调用转换为对用户自定义a p i 的调用,从 而实现用户的需求。用户自定义a p i 的最后可以调用原来的目标a p i 以使程序 返回到原来的执行路径中,也可以调用其他a p i 来改变程序的执行路径。 w i n d o w s 的挂钩可以分为对用户态某一个进程的挂钩和全局的系统核心的 5 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 挂钩【5 1 。 2 1 1 1 用户态挂钩技术 在w i n d o w s 操作系统中,大部分进程依赖于w i n 3 2 、p o s i x 和o s 2 三个子 系统。这些子系统包含一组完整说明的a p i 使得一个进程可以访问到o s 。w i n 3 2 应用程序使用k e r n e l 3 2 d l l 、u s e r 3 2 d l l 、g u i 3 2 d l l 、a d v a p i d l l 等d l l 把应用程 序的请求发送到操作系统核心。在使用这些d l l 的导出函数时,应用程序要在 运行时把这些d l l 加载到内存并把这些函数的内存地址复制到它的函数输入地 址表i a t ( i m p o r t a d d r e s st a b l e ) ,当应用程序调用这些a p i 函数时,进程的执行 跳到函数在i a t 中的地址。由于应用程序把d l l 加载到内存地址界于 0 x 0 0 0 1 0 0 0 0 和0 x 7 f f e 0 0 0 0 之间的私有地址空间,因此只要能够访问目标进程的 地址空间,就可以直接修改任意在i a t 表中的函数。 用户态的a p i 挂钩技术分为i a t 挂钩和内联函数挂钩( i n l i n ef u n c t i o n h o o k i n g ) 。 ( 1 ) i a t 挂钩 当应用程序使用另一个库中的函数时,它必须导入这个函数的地址。因此, 在应用程序的地址空间中,可以解析内存中该应用程序的p e 文件格式并使用钩 子函数的地址来替换i a t 中目标函数的地址。这样,当目标函数被调用时,钩子 函数就会被执行,而不是原来的函数。i a t 挂钩虽然是一种简单而且有效的技术, 使用也非常的广泛,但同时也具有如下缺点:第一,使用i a t 挂钩非常容易被检 测到;第二,如果应用程序使用了后期绑定技术,由于函数地址只能在调用时才 能确定,因此在i a t 中没有该函数的地址,不能使用l o a d l i b r a r y 和 g e t p r o c a d d r e s s 找到函数的地址,因此不能使用i a t 挂钩。 ( 2 ) 内联函数挂钩 内联函数挂钩则与d l l 的绑定时间无关,无论应用程序使用何种方式、何 时解析目标函数的地址,内联函数挂钩都可以覆盖目标函数的代码字节并挂钩。 内联函数挂钩可用于运行时补丁【7 】【8 】。内联函数挂钩的实现原理是首先把目标函 数的头几个字节保存起来,然后用立即跳转指令替换这几个字节,跳转指令指向 挂钩函数。挂钩函数使用保存的字节调用原来的函数,原来的函数返回到挂钩函 数。这样,挂钩函数可以改变原来函数的返回值。 2 1 1 2 核心态挂钩技术 用户态挂钩技术虽然很有用,但是比较容易被检测到并被阻止。防泄密软件 6 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 最好使用核心态的挂钩技术,而且核心态的挂钩是全局的。常用的核心态挂钩技 术有以下三种: ( 1 ) 挂钩系统服务描述表 w i n d o w s 系统本身运行在核心模式,对其它的子系统提供本地系统支持服 务。本地系统支持服务的地址在一个叫做s y s t e ms e r v i c ed i s p a t c ht a b l e ( s s d t ) 的结构中列出,另外一个表s y s t e ms e r v i c ep a r a m e t e rt a b l c ( s s p t ) 列出每个服务 的参数字节长度。k e s e r v i c e d e s c r i p t o r t a b l e 是系统导出的表。它有一个指向s s d t 中由n t o s k r n l o x e 实现的系统核心服务的指针。它也有指向s s p t 的一个指针。 挂钩程序需要实现为一个驱动程序,然后通过核心内存中的s s d t 函数指向实现 挂钩。但是w m d o w sx p 以后的系统的s s d t 不容许被修改,因此需要通过m d l 映射后再修改 ( 2 ) 挂钩中断描述表( i n t e r r u p td e s c r i p t o rt a b l e , i d t ) 中断描述表指定了一个中断发生时要执行的处理过程。通过挂钩i d t 改变 中断处理过程时不会返回到原来的中断处理过程,所以它不能用于处理原中断处 理过程的结果过滤等操作。其主要是通过修改i d t 中指向中断处理函数的地址 来实现的。 ( 3 ) 挂钩i r p 函数表 当一个驱动程序加载后,它会初始化一个函数指针表,该表中包含了处理不同类 型的i r 的函数地址,包括读、写和查询等l r p 的处理。在实现挂钩的时候, 首先需要先在内存中找到驱动对象。w m d o w s 提供了一个核心态的函数 i o o e t d e v i c e o b j e c t p o i n t e r 来获得任意设备对象,只需要提供一个设备名称,它就 可以返回文件对象和设备对象,其中设备对象指向一个拥有目标函数表的驱动对 象。 钩子透明加密技术就是将钩子技术以及加密技术组合而实现的。通过 w i n d o w s 的挂钩技术,监控应用程序对文件的打开和保存。当打开文件时,先将 密文解密后再让应用程序读入内存,保证应用程序读到的是明文;而在保存时, 先将内存中的明文加密后再写入到存储介质中,从而保证中存储介质中的数据为 密文。其实现过程如下图所示: 7 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 图2 1 钩子透明加密技术 钩子透明加密技术与应用程序密切相关,技术开发比较容易且对于网络的操 作能力不受限制,其主要是通过h o o k 应用程序以及相应的目标文件类型来实 现的。但也正是因为其对应用程序的工作方式是紧密相关的,一旦出现新的应用 程序或者应用程序的升级就可能导致文件的加密失败,需要进行二次开发。而对 于应用层的挂钩技术来讲,一般速度比较慢,从而导致对于大文件的加密容易出 现死机现象;由于钩子技术本身所存在的技术缺陷,使其更容易被反h o o k 所破 解,并且效率低、稳定性和一致性比较差,不适合于大型系统的开发。 2 1 2 驱动透明加密技术 驱动透明加密技术基于w i n d o w s 的文件系统驱动技术,工作在操作系统的 内核层。其实现方式主要是当应用程序对目标文件进行操作时,文件系统驱动会 监控到应用程序的操作请求,并改变其操作方式,从而达到透明加密的效果。 驱动加密技术与应用程序无关,它工作于w i n d o w s a p i 函数的下层。当a p l 函数对指定类型文件进行读操作时,系统自动将文件解密;当进入写操作时,自 动将明文进行加密。由于驱动透明加密系统工作在操作系统的内核层,运行速度 更快,加解密操作更稳定。其实现过程如下图所示: 8 北京邮电大学硕士研究生论文 文档透明加密系统的设计与实现 内 应用程序 之乒 i i 层囤,读写帼 1 么 ll 弋夕 豸 存存储介后 一 图2 2 驱动透明加密技术 驱动透明加密系统主要是通过驱动技术来实现的,接收操作系统的i r p 并进 行相应的处理,对于网络操作能力、与其它驱动程序的兼容以及应用程序的黑白 名单等都需要进行专门的处理,所以开发难度较大,但其可以在不改变下层驱动 或用户程序的前提下增加新的功能,并且具有效率高、可靠性强、可扩充等特点, 使其成为现阶段数据泄漏防护技术研究的重点。 2 2 文件系统过滤驱动技术 2 2 1 文件系统驱动 文件系统驱动是存储管理子系统的重要组成部分,它主要向用户提供磁盘、 u 盘等非易失性存储介质的信息存储、转发,同时和存管理器、高速缓冲管理器 紧密结合,不但保证了应用程序可以准确地提取数据文件的内容,而且提高了访 问效率【l l 】。 文件系统驱动( f i l e s y s t e m d r i v e r ,f s d ) 与内存管理器和缓存管理器一起向用 户提供访问非易失性存储器的能力,位于w i n d o w s 整个驱动体系的最上层。操 作系统启动时文件系统的加载过程是:操作系统首先加载文件系统驱动程序及其 过滤驱动程序( 如果有) ;然后i 0 管理器创建全局文件系统队列,并对所有的文件 系统及其过滤器程序进行初始化。创建的全局文件系统队列分成四段,分别对应 c d r o m 、d i s k 、t a p e 、n e t w o r k 类型。调用d r i v e r e n t r y 设置派遣例程和创建设 9 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 备对象,还通过i o r e g i s t e r f i l e s y s t e m 函数对文件系统程序进行注册。当注册完毕, 其设备对象就按类型被添加到文件系统队列中的相应段里。当所有类型的驱动程 序初始化完毕后,f o 管理器执行驱动程序的r e l n i t i a l i z a t i o n 例程【9 1 0 】。文件系 统驱动与用户应用程序之间的关系如下: 图2 3 文件系统驱动与用户应用程序之阀的关系 2 2 2 文件系统过滤驱动 基于文件系统过滤驱动的文件加密方式是在操作系统内核中,位于文件系统 驱动程序之上的数据加密技术,通过开发文件系统过滤驱动实现对文件系统功能 的扩展,属于操作系统内核程序,与文件系统紧密结合,具有e f s 的所有优点, 而且也有相当的灵活性;同时,开发难度较大。 文件系统过滤驱动是一个可选的、附加在文件系统之上,为文件系统本身增 加或者修改功能的特殊驱动程序它是w i n d o w s 核心态的组件,作为w i n d o w s 执行体的一部份运行。文件系统过滤驱动能够过滤一个或者多个文件系统或者文 件系统的卷的i 0 操作根据驱动本身的特性,过滤可能指日志、观察、修改或 者阻止。 l o 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 图2 4 文件系统与过滤驱动程序 文件系统过滤驱动是针对文件系统而言,它既可以位于文件系统驱动之上, 也可以被插在文件系统驱动和存储设备驱动之间。f o 管理器在发送文件操作请 求到目标设备对象之前,会检查是否有附加的设备对象挂载在目标设备之上,若 有,则把该i r p 先发送给附加设备,经附加设备所属驱动程序的处理后,再发送 给目标设备完成操作请求。这样通过文件系统过滤驱动程序构造附加设备对象挂 载在文件系统的存储设备之上,在过滤驱动程序中对发送到目标设备的操作请求 进行预期处理,达到控制文件访问、保护文件安全性等目的。 北京邮电大学硕士研究生论文 文档透明加密系统的设计与实现 2 3 驱动框架的选择 图2 5 文件系统过滤驱动原理图 w i n d o w s 文件过滤系统驱动开发的应用广泛,可用于硬盘还原、病毒防护、 文件的安全保护以及文件加密等诸多领域。当前的w i n d o w s 文件过滤驱动开发 主要基于s f i l t e r 以及微软新近推出的m i n i f i l t e r 两个框架,每个框架都有各自的 优缺点,在实际的开发中应结合系统的实际需求选择相应的开发框架,以便更快、 更好的实现所需功能。 2 3 1s f i t e r s f i l t e r 框架是传统型文件过滤驱动开发的典型代表,过滤功能强大。其主要 1 2 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 实现技术是基于文件驱动的开发,功能是监控硬盘内容的变化。开发者可以根据 自己的需求编写详细的驱动程序用于文件系统的过滤操作,但这也是一项复杂而 庞大的工程,开发者需要自己处理驱动内部的数据结构、请求,以及驱动程序开 发中的同步等问题。也正是因为所有的工作都需要程序员亲自来完成,所以开发 者可以很好的了解到自己所开发的驱动程序的内部处理过程,对于w i n d o w $ 驱 动开发的学习和了解w i n d o w $ 底层驱动的处理也是一个很大的帮助。但是编写 程序相对来说比较复杂,需要注意的问题也比较多,需要程序员足够的细心和耐 心来处理开发中所遇到的各种问题。 2 3 2 _ in i f ii t e r 在s f i l t e r 框架基础上开发的过滤驱动程序被称为是传统型的文件过滤驱动, 在以传统型的文件过滤驱动开发的时候由于每台机器上的操作系统以及文件系 统的不同而需要对绑定文件系统的设备以及文件系统设备的变化情况进行分别 处理。但实际上文件系统过滤的开发者并不关心w i n d o w s 文件系统驱动的内部 实现,只需要得到文件系统操作通知即可。为此,微软的w m d o w s 内核开发者 开发了一个新的驱动:过滤管理器,其本身是一个传统型的文件过滤驱动,但是 该驱动提供了接口,接收一些注册过的内核模块。用户在此基础上开发要比自己 从头开发简单的多,并且这些已经开发好的接口,无论操作系统如何变化,都可 以保持较好的兼容性。 在使用m i n i f i l t e r 框架开发时,开发者可以专心于功能上的实现,基本的i r p 的处理工作都交由f i l t e r m a n a g e r 来处理,不仅可以加快开发的效率,还提升了 不同软件之间的兼容性。但是如果只使用m i n i f i l t e r 推荐的接口编程,那么开发 者根本看不到设备对象、请求等数据结构,一切都通过重新封装的结构和接口来 访问,在一定程度上减少了代码的依赖性,因为直接使用数据结构内的域往往是 依赖性的源头。如果要兼容这些代码,这些数据结构就得一直保留着这些域才行。 但适得其反的是,如果只通过接口来访问所需要的信息,一些编程中做必须的域 就无法访问,因而一些功能也就无法实现。 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 第三章驱动开发相关技术的研究 3 1w i n d o w s 操作系统的结构【2 1 w i n d o w s 系统从总体上分为内核模式( k e r n e lm o d e ) 和用户模式( u s e r m o d e ) ,内核模式的接口对用户模式的应用程序提供服务,在内核模式下,各个 模块各司其职,并且有良好的机制保证各个模块之间的正确通信。谈到操作系统 的内核模式和用户模式一般会和c p u 的特权层联系起来。c p u 一般会有多个特 权层,例如,i n t e l 的3 8 6c p u 有四个特权层,分别是r i n 9 0 ,r i n g l ,r i n 9 2 ,r i n 9 3 。 其中r i n 9 0 的特权最高,可以执行任意代码,而r i n 9 3 的特权最低,只能执行有 限的代码。w i n d o w s 内核模式运行在c p u 的r i n 9 0 层,用户模式运行在r i n 9 3 层。r i n 9 0 和r i n 9 3 是c p u 上的概念,而用户模式和内核模式是操作系统上的概 念,其对应关系如下图所示: 图3 - 1c p u 特权层和操作系统用户模式、内核模式的关系 w i n d o w s 核心代码运行在内核模式下,而非核心代码运行在用户模式下。运 行在内核模式下的w i n d o w s 的核心组件是安全的,且不会受到恶意攻击,所以 这些核心组件可以进行所有权限的操作;而运行在用户模式下的应用程序是不安 全的,且容易受到恶意攻击,所以用户模式下的应用程序的权限是受到限制的。 如果应用程序要进行敏感操作,需向内核模式下的组件提出请求。在w i n d o w $ 中,用户模式和内核模式的切换是通过软件中断来实现的。 w i n d o w s 操作系统的总体设计是基于分层设计思路的,每层由若干个组件组 成。操作系统作为一个整体,它的运行依赖于上层组件向下层组件的调用。每层 的组件有固定的接口,靠近底层的组件有更高的操作权限,靠近上层的组件将任 务转化为对底层组件的调用。w i n d o w s 操作系统将内核设计的尽可能小,并采用 。客户端服务器一的结构,操作系统各个组件或者模块是通过消息进行通信的。 w i n d o w s 操作系统的简化结构如下图: 1 4 北京邮电大学硕士研究生论文文档透明加密系统的设计与实现 应用程序应用程序 上上 w i n 3 2 子系统其他子系统 上 用户模式 n a t i v ea p i l 内核模式系统服务函数 上 执行体组件 i o 管理器对象管理器进程管理器 驱动 程序 虚拟内存管理器配置管理器其他组件 1 l 内核 上 硬件抽象层 上 具体硬件 图3 - 2w i m o w s 结构简图 在用户模式下,应用程序调用各自子系统的a p i 接口,其中的子系统包括 w i n 3 2 子系统、o s 2 子系统、p o s i x 子系统等。其中w i n 3 2 子系统是最主要的 子系统,其他子系统都是通过w i n 3 2 子系统的接口来实现的。w i n 3 2 子系统将 a p i 函数转化为n a t i v e a p i 函数。n a t i v e a p i 是从用户模式进入内核模式的大门, 它通过软中断的方式进入到内核模式,并将这种调用转化为系统服务函数的调 用。软中断会将n a t i v e a p i 中的参数和系统服务号的参数一同传进内核模式,根 据这个系统服务号为索引,可以从系统服务描述符表( s y s t e ms e r v i c ed e s c r i p t o r t a b l e ) 中查出对应系统服务函数的函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论