




文档简介
大连理工大学 硕士学位论文 透明加密文件系统模型的研究与实现 姓名:毛锐 申请学位级别:硕士 专业:计算机应用技术 指导教师:江荣安 20081217 大连理t 大学硕士学位论文 摘要 随着计算机和通信技术的发展,企业信息安全问题受到越来越多的关注。企业除了 要抵御来自外界的攻击和破坏,同时还要防止来自内部的有意或无意的泄密。仅依靠完 善管理制度很难从根本上杜绝泄密事件的发生,因此必须从技术上为企业内部重要数据 提供安全保障。 传统加密软件虽然可以解决数据安全问题,但却无法平衡数据安全与工作效率之间 的矛盾。对于传统加密软件,用户每次都需要手动加解密文件,不仅操作繁琐、容易有 人为的疏漏,而且文件本身也存在一定时间的“风险期“ ,即文件在使用过程中未加密 时以明文形式在硬盘中存储的阶段,这个阶段极有可能被早已潜伏在电脑中的木马或其 它形式的病毒将其窃走,故就安全性和使用体验而言都不尽如人意。 基于以上分析并结合实际课题需要,本文采用文件过滤驱动技术,设计并实现了一 个透明加密文件系统模型,能有效保障企业内部电子文件的安全性。该模型具有无需改 变用户使用习惯,加解密操作均在底层实现,整个过程对用户完全透明的特点,既保证 了数据的安全性,又兼顾了工作效率。模型主要分成三大模块:内核层透明加密模块、 应用层控制模块及密钥管理模块。论文对各大模块的设计进行了详细描述,讨论了在实 现过程中可能遇到的各种问题并给出了相应的解决方案。同时对微软加密文件系统 ( e n c r y p t i o nf i l es y s t e m ,e f s ) 的优点和不足进行了分析,在借鉴其先进加密机制的同时, 对其不足进行了改进。 最后,在实验室搭建了测试环境。经测试表明在安装有本系统的网络内部,文件可 以自由流通,用户操作不受任何影响,而当文件一旦离开了本网络环境,便不再可用。 其根本原因就在于通过这种方式,能使文件始终以密文的形式存储,从而有效防止了泄 密事件的发生。 关键字:信息安全;文件系统;过滤驱动;透明加密 r e s e a r c ha n di m p l e m e n t a t i o no f t r a n s p a r e n te n c r y p t i o n f i l es y s t e mm o d e l a b s tr a c t w i t ht h ed e v e l o p m e n to fc o m p u t e rs c i e n c ea n dt e l e c o m m u n i c a t i o nt e c h n o l o g y , p e o p l e p a ym o r ea t t e n t i o nt ot h ee n t e r p r i s e si n f o r m a t i o ns e c u r i t y t h ee n t e r p r i s eo f t e nr e s i s t st h e a t t a c k sn o to l n yf r o mt h eo u t s i d e s ,b u ta l s of r o mt h ee n t e r p r i s ei n s i d e i t sd i f f i c u l tt op r e v e n t i n f o r m a t i o nf r o ml e a k i n go n l yd e p e n do nc o n s u m m a t i n g m a n a g e m e n tm e c h a n i s m t h e r e f o r e , w em u s tp r o t e c tt h ei m p o r t a n ti n f o r m a t i o ni n s i d et e c h n i c a l l y a l t h o u g ht r a d i t i o n a le n c r y p t i o ns o f t w a r ec a l ls o l v et h ep r o b l e mo fd a t as e c u r i t y , i tc a n ,t b a l a n c ea n dr e s o l v et h ec o n f l i c t sb e t w e e nt h ee f f i c i e n c ya n dd a t as e c u r i t y f o rt h et r a d i t i o n a l e n c r y p t i o ns o f t w a r e ,e n c r y p t i o na n dd e c r y p t i o nn e e dm a n u a l l yo p e r a t i o nb yu s e r s i ti sn o t o n l yc u m b e r s o m ea n de a s yf o r t h eo m i s s i o n ,b u ta l s of o rt h ed o c u m e n ti t s e l ft h e r ei sac e r t a i n p e r i o do fr i s k ,t h a ti s ,i nt h ec o u r s eo ft h eu s et h ed o c u m e n t se x i s ta sc l e a rt e x t sa n da r es t o r e d o nh a r dd i s k d u r i n gt h es t a g et r o j a nh o r s eh i d d e ni nt h ec o m p u t e ro ro t h e rf o r m so ft h e v i n l s h a st h ec h a n c et os t e a lt h e ma w a y ;i tj sn o ts a t i s f a c t o r yb o t ho n s a f e t ya n do p e r a t i o n b a s e do nt h ea b o v ea n a l y s i sa n dt h ep r a c t i c a lr e q u i r e m e n t so ft h ep r o j e c t ,t h i sa r t i c l e d e s i g n sat r a n s p a r e n te n c r y p t i o nf i l es y s t e mb a s e do nf i l t e rd r i v e r , d o c u m e n t sw o u l db e e n c r y p t e dt r a n s p a r e n t l yi nt h ec o u r s eo ff i l eo p e r a t i o n s ,i ti sn on e e dt oc h a n g et h eh a b i t so f u s e r s m e a n w h i l et h es y s t e mi n t r o d u c e st h ec o n t r o lm o d u l ea n dt h ek e ym a n a g e m e n tm o d u l e o nt h ea p p l i c a t i o nl a y e r , w h i c hm a k et h es y s t e mm o r ef l e x i b l e a d d i t i o n a l l y ,b yr e f e r r i n gt o t h ee n c r y p t i o nm e c h a n i s mo fm i c r o s o f te n c r y p t i o nf i l e s y s t e m ( e f s ) ,w eb u i l dam o r e p r a c t i c a la n ds a f et r a n s p a r e n te n c r y p t i o nf i l es y s t e m t l l i ss y s t e mn o to n l yo v e r c o m e st h e s h o r t c o m i n g so ft r a d i t i o n a le n c r y p t i o ns o f t w a r e ,b u ta l s oe f f e c t i v e l ys o l v e st h ep r o b l e mo ft h e c o n f i d e n t i a ld a t ap r o t e c t i o n f i n a l l y , w es e tu pat e s te n v i r o n m e n ti nt h el a b o r a t o r y ,t h et e s ts h o w st h a tu s e r sw h o h a v ei n s t a l l e dt h es y s t e mc a nu s ed o c u m e n t sf r e e l ya n da r en o ta f f e c t e di n t h ei n t e r n a l n e t w o r k o n c et h ef i l e sa r es e p a r a t e df r o mt h en e t w o r ke n v i r o n m e n t ,t h e ya r en ol o n g e r a v a i l a b l e 。i h em o s ti m p o r t a n tr e a s o nf o rt h a ti st h ef i l e sa r ea l w a y ss t o r e di ne n c r y p t e df o r m i nt h i sw a yi tc a ne f f e c t i v e l yp r e v e n tt h el e a ko ft h ei n c i d e n t k e yw o r d s :i n f o r m a t i o ns e c u r i t y ;f i l es y s t e m :f i l t e rd r i v e r :t r a n s p a r e n t e n c r y p t i o n i i i 大连理工大学学位论文独创性声明 作者郑重声明:所呈交的学位论文,是本人在导师的指导下进行研究 工作所取得的成果。尽我所知,除文中已经注明引用内容和致谢的地方外, 本论文不包含其他个人或集体已经发表的研究成果,也不包含其他已申请 学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的贡献 均已在论文中做了明确的说明并表示了谢意。 若有不实之处,本人愿意承担相关法律责任。 学位论文题目:透明拉窒塞住丕统搓型鲍班窒皇塞趣 作者签名:丞= 盏鏖:日期:主2 塑年三月三查日作者签名:么= 丑丝:日期兰竺丝年兰月三鱼日 透明加密文件系统模型的研究与实现 大连理工大学学位论文版权使用授权书 本人完全了解学校有关学位论文知识产权的规定,在校攻读学位期间 论文工作的知识产权属于大连理工大学,允许论文被查阅和借阅。学校有 权保留论文并向国家有关部门或机构送交论文的复印件和电子版,可以将 本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印、或扫描等复制手段保存和汇编本学位论文。 学位论文题 作者签名: 导师签名: 大连理t 大学硕士研究生学位论文 1绪论 1 1研究背景 由于网络和计算机系统固有的特性,它在提高数据与设备共享性的同时,带来了信 息、数据被非法窃取、复制、使用等弊端,对涉及国家机密及企业内部敏感数据的安全 管理形成极大的挑战。为防止数据外泄,企业往往不惜花巨资购进防火墙、入侵检测、 防病毒、漏洞扫描等网络安全产品,以为可以高枕无忧了。其实,这种想法是错误而且 极其危险洲。 美国联邦调查j 吾j ( f e d e r a lb u r e a uo fi n v e s t i g a t i o n ,f b i ) 和电脑安全协会( c o m p u t e r s e c u r i t yi n s t i t u t e ,c s l ) 对4 8 4 家公司进行了网络安全专项调查,调查结果显示:超过8 5 的安全威胁来自公司内部。在损失金额上,由于内部人员泄密导致了6 0 5 6 5 万美元的损 失,是黑客造成损失的1 6 倍,是病毒造成损失的1 2 倍1 2 1 。 于是,对文件本身进行加密的产品就得到越来越多的重视,但是传统中的文件加密 技术基本上都是以静态加解密为理论根据的。这种加解密技术过多的依赖应用程序和个 人的操作,虽然技术本身可以比较好的实现对文件的加解密,但是无法化解信息安全和 工作效率之间的矛盾,也不能完全防止企业内部人员主动泄密隐患的发生【3 1 。随着信息 技术的发展,协同工作的要求愈来愈强烈,信息共享变得日益频繁,这时传统意义上的 加解密技术就无法满足这一时代要求。另外,传统中的加解密技术基本上都需要手工操 作,非智能化的,这种手工操作费时费精力,员工在专心工作的同时还要考虑着文件是 否被加密的问题,降低了工作效率,有时还会因为一时的疏忽大意酿成无法挽回的严重 后果。 1 2 国内外研究状况 透明加密技术是近年来针对企业文件保密需求应运而生的一种文件加密技术。所谓 透明,是指对使用者来说是未知的。当使用者在打开或编辑指定文件时,系统将自动对 未加密的文件进行加密,对已加密的文件自动解密。文件在硬盘上是密文,在内存中是 明文。一旦离开使用环境,由于应用程序无法得到自动解密的服务而无法打开,从而起 到保护文件内容的效果1 4 , 5 1 。 透明加密技术可以充分控制文件的随意拷贝所导致的机密文件泄露的问题,同时由 于它的特殊性,不会使用户的操作习惯有任何改变,充分体现了软件设计以人为本的原 则。它既是提高系统安全性,提高工作效率的有效手段,又是文件加密软件的一个必然 发展方向。 透明加密文件系统模型的研究与实现 w i n d o w s2 0 0 0 以后,微软推出e f s ,支持文件系统加密。该系统使用方便,用户 不需要掌握加密体系框架就能对数据进行加密。e f s 系统是通过文件系统驱动来实现 的,和操作系统紧密结合,成为操作系统的一部分。虽然其安全性得到操作系统保障, 但是也有不足。例如它只能对n t f s 格式文件加密,只能对指定文件加密,不能对某一 类文件自动加密。加密算法固化,不符合我国信息安全领域的要求。另外一点不足的是 微软未公开该加密系统源代码,第三方开发者很难对系统自由改造升级【6 】。 1 3 研究目的及意义 随着网络技术的飞速发展,信息共享给人们带来极大方便的同时也带来了不少安全 隐患。长期以来,网络安全对基于网络应用的外部防范技术关注较多,但对计算机主机 系统安全关注的较少。本文的研究目的就在于增强计算机主机系统安全。 任何加密方法都可以抽象成钩子理论 7 0 9 1 ,即在数据从用户态请求到磁盘存储这条 通路的某个地方,安装自己的处理过程。当写请求到来时进行数据加密,当读请求到来 时进行数据解密。 过滤驱动加密技术是在操作系统内核中、文件系统之上的数据加密技术,是利用开 发过滤驱动来实现文件系统功能扩展的技术。它属于操作系统内核程序和文件系统紧密 结合,为用户提供n 解密服务。 透明加密软件不但支持解密,而且还支持透明化功能,这正是它激动人心、革命性 的地方。透明化功能指的是,当用户使用加密文件时,可以不进行解密,而让软件透明 化地自动支持它。透明化功能是在后台自动执行的,但使用透明化功能时也要进行密码 的核对或加密硬件的连接。透明化功能的具体实现过程都是在内存中进行的,而不是在 磁盘上进行,这一点保证了文件的安全性。使用透明化功能时,尽管加密文件没有被解 密,但是操作系统和所有的应用程序都以文件的原始内容为标准,这个过程对于操作系 统和应用程序是透明的,所以叫做透明化加密软件。 由于w i n d o w s 操作系统的良好的结构化设计,为透明加密系统的开发提供了很好 的支持。开发人员可以充分的利用这些结构化设计带来的接口,大幅提高了开发效率, 同时也提高了其与操作系统之间的无缝的连接,使得开发人员大可不必为了改变系统的 行为而另行开发一些相关的模块。透明加密技术是与w i n d o w s 紧密结合的一种技术, 它工作于w i n d o w s 的底层。透明加密是基于w i n d o w s 的文件系统过滤驱动技术,工作 在w i n d o w s 的内核层。在安装计算机硬件时,经常要安装其驱动,如打印机、u 盘的 驱动等。文件系统驱动就是把文件作为一种设备来处理的一种虚拟驱动。当应用程序对 某种后缀文件进行操作时,文件驱动会监控到程序的操作,并改变其操作方式,从而达 一2 一 大连理t 大学硕十研究生学位论文 到透明加密的效果。 ( 1 ) 透明加密系统的特点: 强制加密:安装系统后,所有指定类型文件都是强制加密的,用户不会察觉到 任何变化。 使用方便:不影响原有操作习惯,不需要限制端口,不需要用户改变任何习惯。 对外受阻:一旦文件离开使用环境,文件将自动失效,从而保护知识产权。 ( 2 ) 利用过滤驱动技术实现文件加密的优点: 不需要对复杂的文件系统做出改动。 属于内核模式开发,得到内核模式安全保护,不容易被攻击。安全性有保证。 便于系统扩展,利用操作系统提供的良好接口,很容易在原基础上二次开发。 便于和其它第三方软件共同使用,互不影响,比如利用过滤驱动开发的杀毒软 件就通常位于加密软件之上,即先杀毒再加密。 对合法用户来说,可以提供透明文件a n 解密服务。 总之,透明加密软件是一种革命化的加密软件,它不同于传统的加密软件,而是直 接运行在操作系统内核中,动态地支持加密文件,将安全性和方便性完美地结合在一起。 开发文件系统过滤驱动的核心意义在于不需要对底层文件系统驱动做出任何改动 就可以完成对文件系统功能的扩展。文件系统是负责数据管理和操作的系统组件,包括 在磁盘上存储数据和文件命名。文件系统一旦设计好了就不会做出重大改变。所以,对 如此复杂成熟的文件系统做出改动( 增强其功能) ,实现a n 解功能是相当繁琐而且不容易 实现的。利用过滤驱动实现文件加解密有安全保障,因为过滤驱动属于操作系统内核程 序,内核机制提供了强有力的安全保证。 1 4 课题难点及主要工作 本课题采用过滤驱动技术实现,但可供参考的文献、技术资料和实例较少,所以使 得开发的难度较大。过滤驱动运行在系统底层,与操作系统紧密集成,为操作系统提供 增值的附加功能,故开发过滤驱动程序需对w i n d o w s 操作系统的底层运行原理非常清 楚,尤其是文件系统的运行原理,这无疑对开发者的技术提出了较高要求。另外,由于 驱动程序属于系统底层程序,故其开发调试的方法与应用程序的开发和调试有着很大的 差别。特别是驱动程序的测试尤其繁琐,它不能像应用程序一样直接在开发工具中调试, 而只能是将编译生成的驱动程序加载到真实的操作系统中,然后才能进行调试,调试信 息须借助特定的工具方能查看。在调试的过程中,如果程序有一点细微的b u g 将直接导 致系统蓝屏,而不像应用程序存在异常捕获,系统蓝屏重启后如何分析程序的错误原因 透明加密文件系统模型的研究与实现 也是不容易的,因此其调试难度也是比较大的。 本文所做的主要工作: ( 1 ) 对微软提供的驱动开发相关资料以及多本英文原版书籍进行了深入研究i l 叭引, 熟练的掌握了w i n d o w s 过滤驱动技术,深刻的理解了w i n d o w s 内部运行机理,同时完 成了对开发过滤驱动程序的技术分析。系统实现主要采用w i n d o w s2 0 0 3i f sd d k ,使 用到的工具包括v i s u a lc + + 6 0 ,d r i v e rm o n i t o r ,w i n d b g ,v m w a r e 等。 ( 2 ) 对现有的各种透明加密技术进行了研究,对其各自的优缺点进行了分析和比较, 最终采用文件系统过滤驱动技术作为实现方案。 ( 3 ) 设计并实现了一个功能较为完善的透明加密文件系统。系统运行在操作系统底 层,透明的为用户提供加密、解密功能,保证了在硬盘上的数据始终以密文形式存储, 而用户操作不受任何影响,从而防止了数据有意或无意泄密,提高了系统的安全性。 一4 一 大连理工大学硕十研究生学位论文 2 系统相关的核心技术 2 1 系统实现的技术选型 当前对数据加密的研究工作主要集中在4 个层面:硬件层,设备驱动层,系统调用 层及应用层【1 6 。 硬件层:属于硬件加密方式。c p u 无须参与数据加解密处理过程,只需要把加密 数据发送给硬件加密引擎,就可以完成加解密工作。各种内置加密引擎的路由器、加密 卡就属于硬件层的数据加密。硬件加密具有加密速度快,难于破解等优点,同时具有成 本高,不灵活( 绕过操作系统,不能和用户层进行通讯从而进行有选择的加解密) 等缺点。 设备驱动层:属于软件加密方式。加密软件处于操作系统内核,位于设备功能驱动 程序之上或之下。由于加密模块处于系统内核,得到系统内核保护,不容易被攻击,安 全性得到保证。加密灵活,可进行文件透明加密。但存在加密效率不如硬件层高,开发 难度大等缺点。w i n d o w s2 0 0 0 全部版本及w m d o w sx pp r o f e s s i o n a l 版,w i n d o w s2 0 0 3 s e r v e r 版的e f s 就是利用这种技术实现的数据加密。 系统调用层:h o o ka p i 是这种方式的典型应用。h o o ka p i 通过挂钩系统提供的 a p i 函数,达到修改系统行为的目的。其可以简单的分为内核态的h o o k 和用户态的 h o o k ,在后面的章节中有详细描述。 应用层:基于应用层的加密技术,其加密软件实现起来比较容易,但是由于它是用 户空间的程序,各种用户进程和系统进程都可以访问它的中间处理数据,如在加解密中 间过程产生的临时文件,或在系统缓存中留下的明文文件。因此它很容易被其它进程拦 截或实施注入攻击等,其安全性得不到操作系统内核机制保护,而只能依靠单纯的密码 学机制来保证。 2 2h o o ka pi 技术 h o o ka p i 是一种实用的w i n d o w s 系统编程技术,应用领域十分广泛。屏幕取词、 内码转换、屏幕翻译、中文平台、网络防火墙、串口红外通信或i n t e r n e t 通信的监视等, 都涉及到了此项技术。简言之,h o o ka p i 就是钩住a p i ,即让a p i 函数的调用先绕一 个弯路,在它执行实际功能之前,可以先做一些“预处理,当然也可以在其执行完成 后做一些“善后处理”,通过这种方式可以监视或定制某个w i n d o w sa p i 的调用,以实 现一些特殊的功能。 在很多情况下,用户想监视或改变某个应用程序的一些特定的行为,但是那个应用 程序却没有提供相应的接口,而又几乎不可能得到其源代码,其通常的做法是采用 透明加密文件系统模型的研究与实现 h 0 0 ka p i 的方式。因为大多数w i n d o w s 应用程序的行为很大程度上依赖于w i n 3 2a p i , 所以可以采用h o o kw i n 3 2a p i 的方式来试图监视和改变应用程序的行为。w i n d o w s 下 应用程序有自己的地址空间,它们只能调用自己地址空问的函数,所以在挂钩a p i 之前, 必须将一个可以代替a p i 执行的函数的执行代码注入到目标进程,然后再想办法将目标 进程对该a p i 的调用改为对注入到目标进程中自定义函数的调用。一般称这个自定义函 数为代理函数。在代理函数中,可以去调用原来的a p i ,也可以做其它事情。可见,注 入代码到目标迸程是实现拦截a p i 很重要的一步。比较简单的方法是把要注入的代码写 到动态链接库( d y n a m i cl i n kl i b r a r y ,d l l ) 中,然后让目标进程加载这个d l l 。这就是 所谓的d l l 注入技术。一旦程序代码进入了另一个进程的地址空间,就可以毫无限制 地做任何事情。 在这个要被注入到目标进程的d l l 中写一个与感兴趣的a p i 函数的签名完全相同 的函数( 代理函数) ,当d l l 执行初始化代码的时候,把目标进程对这个a p i 的调用全部 改为对代理函数的调用,即可实现拦截a p i 函数。微软对h o o ka p i 虽没有提供直接的 接口函数,但有两种方法可以完成该功能。这两种方法分别被称为:改引入表式和陷阱 式。改引入表即改可执行文件的输入表( i m p o r ta d d r e s st a b l e ,i a t ) ,因为在该表中记录 了所有调用a p i 的函数地址,则只需将这些地址改为自己函数的地址即可;陷阱式h o o k a p i 这种方法是直接跳转,改变a p i 函数的头几个字节,使程序跳转到自己的函数,然 后恢复a p i 开头的几个字节,在调用a p i 完成功能后再改回来又能继续h o o k 了。表2 1 列出了两种方式各自的优缺点。 表2 1 两种a p ih o o k 方式的比较 t a b 2 1 c o m p a r i s o nb e t w e e nt w ow a y so fa p ih o o k 从理论上讲,采用h o o k a p i 技术是可以实现文件的透明加解密的,但是由于其工 作在应用层,没有受到系统的保护,容易遭到攻击,其实际实施的效果上看,性能并不 稳定,而且因为很多应用程序在编写的过程中,调用函数的方式多种多样,若采用该方 式,h o o k 常常会有遗漏的情况,那么对于数据保密这种应用,该类现象的发生就非常 糟糕了,它将直接导致数据泄密。经实践表明,该方式不宜作为实现透明加密的解决方 案。接下来将详细介绍本文用到的透明加密技术:文件系统过滤驱动技术。 人连理工大学硕十研究生学位论文 2 3 文件系统过滤驱动技术 文件系统过滤驱动与文件系统驱动息息相关,首先来了解一下什么是文件系统驱 动,接下来再说明什么是文件系统过滤驱动。 2 3 1 文件系统驱动 文件系统驱动( f i l es y s t e md r i v e r ,f s d ) 与内存管理器和缓存管理器一起向用户提供 访问非易失性存储器的能力,位于w i n d o w s 整个驱动体系的最上层。操作系统启动时 文件系统的加载过程是:操作系统首先加载文件系统驱动程序及其过滤驱动程序( 如果 有) ;然后的管理器创建全局文件系统队列,并对所有的文件系统及其过滤器程序进行 初始化。创建的全局文件系统队列分成四段,分别对应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 设置派遣例程和创建设备对象,还通过i o r e g i s t e r f i l e s y s t e m 函 数对文件系统程序进行注册。当注册完毕,其设备对象就按类型被添加到文件系统队列 中的相应段里。当所有类型的驱动程序初始化完毕后,i o 管理器执行驱动程序的 r e l n i t i a l i z a t i o n 例程1 1 7 , 1 8 j 。 文件系统驱动程序是w i n d o w s 系统中最复杂的驱动种类之一。文件系统驱动程序 与其它设备驱动程序相比有以下特点: ( 1 ) 文件系统驱动程序保证调用环境是正在请求服务的线程环境。 文件系统驱动程序处在驱动体系的最顶层,它的调用环境是发送此请求的用户线程 环境,这保证文件系统能够使用n e i t h e ri o 内存地址寻址方式。然而过滤驱动程序可 以位于文件系统驱动之上,因此编写文件系统过滤程序时不能改变调用环境,否则会导 致文件系统驱动程序寻址失败,产生非法页面错误。为了避免这种灾难,可以改变数据 缓冲区寻址方式,例如把n e i t h e ri o 改为d i r e c ti o 。通过内存描述表( m e m o r yd s c r i p t o r l i s t ,m d l ) 存放该用户程序的数据缓冲区的锁定的物理内存页地址信息。 ( 劲文件系统驱动程序为文件读写操作实现f a s ti o 操作。 i r p 是对f o 操作默认的机制。i r p 被用于同步或者异步的i o ,高速缓存或者非高 速缓存i o ,i r p 也被用于分页i o 。内存管理器依靠发送合适的i r p 来处理缺页中断, 为了追求更好的性能,文件系统增加了f a s ti o 例程,实现高速访问缓存数据的功能。 但只有在所需文件数据被缓存的情况下f a s ti o 才会有效,当用户想访问某个文件时, i o 管理器首先调用f a s ti o 例程,f a s ti o 例程会返回一个布尔变量,告知是否能够进 行f a s ti 0 处理。如果返回f a l s e ,i 0 管理器则重新借助标准i r p 的方式完成任务。 ( 3 ) 文件系统堆栈与物理设备堆栈不同。 文件系统堆栈有两类,分别由控制设备对象( c o n t r o ld e v i c eo b j e c t ,c d o ) 或卷设备 透明加密文什系统模型的研究与实现 对象( v o l u m ed e v i c eo b j e c t ,v d o ) 与其过滤器设备对象构成。与设备驱动程序不同的是, 作为堆栈最低层的c d o 或v d o 是都是由该驱动程序自己创建的。c d o 代表一个纯粹 的文件系统程序,在注册之后就存入全局文件系统队列;v d o 代表一个被c d o 安装的 卷。纯粹的文件系统程序与物理存储设备没有联系,访问物理设备要先创建与此物理设 备连接的卷设备对象。卷安装过程大致如下:先通过i o 管理器创建卷参数数据块 ( v o l u m ep a r a m e t e rb l o c k ,v p 劭,存放目标物理设备堆栈顶层设备对象的地址信息;然 后c d o 文件系统创建v d o ,形成新的文件系统的v d o 堆栈,并通过设置v d o 的卷 控制块( v o l u m ec o n t r o lb l o c k ,v c b ) 数据结构使其与v p b 连接。 ( 4 ) 文件系统驱动程序与内存管理器和缓存管理器子系统联系非常紧密。 2 3 2 文件过滤驱动 文件过滤驱动程序是一种可选择的特殊驱动程序,可以加载在文件系统驱动程序之 上,用于修改或增加文件驱动程序的功能,而不必修改文件驱动程序和使用该驱动的应 用程序【1 引。本课题采用的文件过滤驱动就是在i o 请求包( i or e q u e s tp a c k a g e s ,i r p ) 至i 达文件系统驱动之前,提前抓取到有关文件操作的1 r p 进行处理,达到对文件透明动态 加密解密的功能,其原理如图2 1 所示。 在文件过滤驱动中,有两个非常重要的概念:控制设备对象和卷设备对象。一个文 件过滤驱动程序只对应一个控制设备对象,在文件系统中可能有多个卷( v o l u m e ) ,也可 能一个都没有。文件系统过滤驱动是针对每个v o l u m e 来生成一个设备对象,而不是针 对每个文件。实际上对文件的读写的i r p 请求,都发到v o l u m e 设备对象上去了,并不 会生成一个“文件设备对象“ 。 开发过滤驱动目的是为了在操作系统提供的功能之上添加增值功能。过滤驱动是一 种内核模式驱动,它通过拦截发往功能实体驱动的i o 请求来提供新的功能。设计和开 发文件系统过滤驱动的根本原因是提供操作系统不能提供的附加功能。过滤驱动用于在 不改变底层设备驱动或者用户程序的情况下增加设备新功能。过滤驱动允许不用重写底 层驱动代码而改变这个已存在驱动的特性。当想开发一个软件,可以扩充、修改或者完 全支持当前已经存在的模块,就可以使用过滤驱动【加1 。w i n d o w s 的设计使得第三方软件 开发商可以通过对过滤驱动的开发提供附加功能。 过滤驱动目前的用途主要体现在如下几个方面: ( 1 ) 即时数据存储加密、解密:对指定文件、文件夹或者整个逻辑卷进行保护。拦 截所有用户的写请求,并将数据加密存储;拦截所有用户的读请求,在返回用户前为授 权用户解密数据。 大连理上大学硕士研究生学位论文 ( 2 ) 实时病毒检测:病毒检测模块完成任务是实时的,它将会检测所有可能被拷贝 到逻辑卷中的病毒,如果发现病毒,它将阻止病毒数据传播。 ( 3 ) 数据分层存储管理( h i e r a r c h i c a ls t o r a g em a n a g e m e n t ,h s m ) :自动将不经常用的 数据转移到速度较慢,价钱便宜的二级存储器中;当有程序访问该数据时,再自动将该 数据恢复到普通存储器中。h s m 驱动会在把请求发给f s d 之前将数据返回到逻辑文件 系统。 图2 1 过滤驱动原理图 f i g 2 1 f i l t e rd r i v e rs c h e m a t i cd i a g r a m 2 4 密码学基础 ( 1 ) 加密技术概述 一个密码系统的安全性只在于密钥的保密性,而不在于算法的保密性。对纯数据的 加密的确是这样。对于不愿意让别人看到这些数据( 数据的明文) 的人,用可靠的加密算 一9 一 透明加密文件系统模型的研究与实现 法,只要破解者不知道被加密数据的密钥,就不可解读这些数据。 但是软件的加密不同于数据的加密,它只能是“隐藏”。不管愿意不愿意让合法用 户或c r a c k e r 看见这些数据( 软件的明文) ,软件最终总要在机器上运行,对机器而言它 就必须是明文。既然机器可以“看见“ 这些明文,那么c r a c k e r 通过一些技术,也可以 看到这些明文。 于是从理论上讲,任何软件加密技术都可以破解。只是破解的难度不同而已。有的 要让最高明的c r a c k e r 忙上几个月,有的可能不费吹灰之力就被破解了。所以,反盗版 的任务( 技术上的反盗版,而非行政上的反盗版) 就是增加c r a c k e r 的破解难度。让他们 花费在破解软件上的成本,比他破解这个软件的获利还要高,这样c r a c k e r 的破解变得 毫无意义。 ( 2 ) 密码学简介 发送者和接收者 假设发送者想发送消息给接收者,且想安全地发送信息:她想确信偷听者不能阅读 发送的消息。 消息和加密 消息被称为明文。用某种方法伪装消息以隐藏它的内容的过程称为加密,加密后的 消息称为密文,而把密文转变为明文的过程称为解密。明文用心消息) 或p ( 明文) 表示, 它可能是比特流、文本文件、位图、数字化的语音流或数字化的视频图像。至于涉及到 计算机,p 是简单的二进制数据。明文可被传送或存储,无论在哪种情况,肘指待加密 的消息。密文用c 表示,它也是二进制数据,有时和m 一样大,有时稍大( 通过压缩和 加密的结合,c 有可能比p 小些,然而单单加密通常达不到这一点) 。加密函数e 作用 于m 得到密文c ,用数学表示为:e ( 加= c 。 相反地,解密函数d 作用于c 产生m ,即d ( c ) 谢。先加密后再解密消息,原始的 明文将恢复出来,下面的等式必须成立:d ( e ( 加) = m 。 鉴别、完整性和抗抵赖 除了提供机密性外,密码学通常有其它的作用: 鉴别:消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人。 完整性检验:消息的接收者应该能够验证在传送过程中消息有没有被修改;入侵者 不可能用假消息代替合法消息。 抗抵赖:发送者事后不可能虚假地否认他发送的消息。 算法和密钥 密码算法是用于加密和解密的数学函数。( 通常情况下,有两个相关的函数:一个 犬连理= 大学硕士研究生学位论文 用作加密,另一个用作解密) 如果算法的保密性是基于保持算法的秘密,这种算法称为 受限制的算法。受限制的算法具有历史意义,但按现在的标准,它们的保密性已远远不 够。大的或经常变换的用户组织不能使用它们,因为每有一个用户离开这个组织,其它 的用户就必须改换另外不同的算法。如果有人无意暴露了这个秘密,所有人都必须改变 他们的算法。 更糟的是,受限制的密码算法不可能进行质量控制或标准化。每个用户组织必须有 他们自己的唯一算法。这样的组织不可能采用流行的硬件或软件产品。但窃听者却可以 买到这些流行产品并学习算法,于是用户不得不自己编写算法并予以实现,如果这个组 织中没有好的密码学家,那么他们就无法知道他们是否拥有安全的算法。 尽管有这些主要缺陷,受限制的算法对低密级的应用来说还是很流行的,用户或者 没有认识到或者不在乎他们系统中内在的问题。现代密码学用密钥解决了这个问题,密 钥用k 表示。k 可以是很多数值里的任意值。密钥k 的可能值的范围叫做密钥空间。加 密和解密运算都使用这个密钥( 即运算都依赖于密钥,并用k 作为下标表示) ,这样,加 解密函数现在变成: 啪= c ;d k ( c ) = m 这些函数具有下面的特性: d r ( e 整( 加) 划 有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥k 1 与相应的解密密 钥k 2 不同,在这种情况下: e r a ( m ) = c ;d k 2 ( c ) 圳;d k 2 ( e r a ) 划 所有这些算法的安全性都基于密钥的安全性,而不是基于算法的细节的安全性。这就意 味着算法可以公开,也可以被分析,可以大量生产使用算法的产品,即使窃取者知道所 用算法也没有关系;如果窃取者不知道所使用的具体密钥,就不可能阅读具体的消息。 透明加密文件系统模型的研究与实现 3内核模式驱动技术研究 3 1驱动程序的相关基础知识 3 1 1内核模式和用户模式 w i n d o w s 从总体上分为内核模式( k e m a lm o d e ) 和用户模式( u s e rm o d e ) 。谈到操作系 统的内核模式和用户模式,一般都会和c p u 的特权层联系起来。c p u 一般会有多个特 权层,例如i n t e l 的3 8 6 就有4 个特权层,分别是第o 环( r i n go ) ,第一环( r i n g1 ) ,第二 环( r i n g2 ) ,第- - - - 环( r i n g3 ) 。其中,r i n g0 的特权最高,也就是可以执行任意代码,而 r i n g3 特权最低,只能执行有限的代码,其它c p u 也有类似的特权级别。 w i n d o w s 将内核模式运行在c p u 的r i n go 层,而将用户模式运行在c p u 的r i n g3 层,r i n g0 层和r i n g3 层是c p u 上的概念,用户模式和内核模式是操作系统上的概念。 w i n d o w s 的核心代码运行在内核模式下,而非核心代码运行在用户模式下。运行在 内核模式下的w i n d o w s 的核心组件是安全的,且不会受到恶意攻击,所以这些核心组 件可以进行所有权限的操作。而运行在用户模式的应用程序,是不安全且容易受到攻击 的,所以用户模式下的应用程序的权限是受到限制的。如果应用程序想进行一些敏感操 作,如直接访问内存、物理端口,应用程序需要向内核模式下的组件提出请求。 驱动程序运行在内核模式下,拥有操作系统的最高权限。因此,编写驱动程序时需 要格外小心。在用户模式下的各种保护措施,在内核模式下都没有。例如,在应用程序 中对空指针操作时,操作系统会弹出警告对话框,提示这是非法操作并终止进程。然而 在驱动程序中对空指针进行操作时,操作系统不会检测这个操作是否合法,该操作将直 接导致操作系统的崩溃。 3 1 2w i n d o w s 的核心组件 图3 1 是w i n d o w s 操作系统的总体架构图,其中系统进程、服务进程及用户进程是 非常熟悉的,w i n d o w s 图形处理模块在系统设计中基本不涉及,故不做讨论,感兴趣的 读者可以参考相关文献和书籍。为了便于理解后面即将讨论的问题,本文将对执行体和 内核两个重要部件进行概要的介绍。 w i n d o w s 执行体部分是操作系统的最大组成部分。它使用内核和h a l 提供的服务, 因此它是高度独立于各种结构体系和硬件平台的。它向各种子系统提供了丰富的系统服 务集,并允许它们访问操作系统提供的服务。w i n d o w s 执行部分的主要组件包括对象管 理器,进程管理器,虚拟内存管理器,i o 管理器,缓存管 里器( c a c h em a n a g e r ) 以及配 j 、连理i 凡学硕l 研究土学f 0 论文 置管理器,由十这些内容在系统的设计实现r 】随处可见,故碰一进行说明 用户模式 内核模式 系统进程服务进程用户进程环境于系统 子系统d l l s 执行体 内核 驱动程芹 v 、, q n d o w s 图形处理 横块 硬件抽象层( h a l ) 吲:l 1 w l n d o w s 撵作系统架构罔 f i g31 t h ea r c h i t e c t u r e o f w i n d o w s o p e r a t i o ns y s t e m r 1 ) 对象管理器 对象管理器负责管理对象,个对象就是被定义成个不透明的数掘结构,内核 模式组件柬实现和管理。每个对象可能有系列为它定义的方法,包括创建个对象实 例,删除实例,等待对象信号忐及向对苏发信号等。 埘蒙管理器维护一个伞局命名字间。可以通过这个命名窄问访问系统上的所有命名 对象。对象命名窄间效仿普通文件命名协议。因此,系统仞始化时对象管珲器也建立一 个全局根目录“、”,执行体组件可以仵根目录下建立了目录,之后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中信银行大庆市龙凤区2025秋招半结构化面试15问及话术
- 2025年重庆工业职业技术学院考核招聘30名事业单位工作人员笔试模拟试题及参考答案详解1套
- 广发银行南京市江宁区2025秋招无领导小组面试案例库
- 平安银行无锡市锡山区2025秋招结构化面试15问及话术
- 广发银行洛阳市涧西区2025秋招笔试综合模拟题库及答案
- 广发银行沈阳市大东区2025秋招笔试创新题型专练及答案
- 光大银行上海市浦东新区2025秋招笔试EPI能力测试题专练及答案
- 浦发银行西安市未央区2025秋招半结构化面试题库及参考答案
- 招商银行武汉市青山区2025秋招信息科技岗笔试题及答案
- 招商银行潍坊市诸城市2025秋招笔试创新题型专练及答案
- 2024年急性胰腺炎急诊诊治专家共识解读课件
- (必会)中级《审计理论与实务》近年考试真题题库(300题)
- 食品安全与日常饮食智慧树知到期末考试答案章节答案2024年中国农业大学
- 烘焙与甜点制作
- T-CRHA 028-2023 成人住院患者静脉血栓栓塞症风险评估技术
- 线路光缆施工方案
- 弹塑性力学讲稿课件
- 心怀国防梦争做好少年中小学生国防教育日主题班会课件
- 《运动的快慢》速度、平均速度与瞬时速度课件
- 地基事故案例分析
- 2023淘宝村研究报告
评论
0/150
提交评论