(计算机应用技术专业论文)基于文件过滤驱动的加解密方法的研究.pdf_第1页
(计算机应用技术专业论文)基于文件过滤驱动的加解密方法的研究.pdf_第2页
(计算机应用技术专业论文)基于文件过滤驱动的加解密方法的研究.pdf_第3页
(计算机应用技术专业论文)基于文件过滤驱动的加解密方法的研究.pdf_第4页
(计算机应用技术专业论文)基于文件过滤驱动的加解密方法的研究.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)基于文件过滤驱动的加解密方法的研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 2 l 世纪是一个信息的时代,信息已经成为一种重要的战略资源。信 息的存储量越来越大,保护好重要的信息不被外泄,是事关国家与社会 安全的重要课题。传统的信息保护通过手动加解密使用和保存需要保护 的信息。使用加密文件时,需要用户手动将文件解密,然后才能使用该 加密文件。由于用户的疏忽或者其他原因,可能将解密后的重要文件放 在磁盘上,这将存在安全的隐患。 文件系统过滤驱动为文件加解密、系统防护、进程控制和访问控制 的实现提供了一个接口。它为保障信息安全提供一种新的思路,是目前 的一个研究热点。 本文主要探讨w i n d o w s 系统中的文件系统过滤驱动在透明文件加解 密系统中的应用原理及其实现方式。首先,介绍了本课题的相关背景和 应用现状,探讨了文件过滤驱动在信息安全领域的发展前景。随后,研 究了w i n d o w s 内核几个重要的组件及它们之间的交互作用,并分析和比 较了两种不同的实现文件系统过滤驱动的框架在信息保护中的优缺点, 探讨和总结使用不同框架在透明文件加解密系统中的实现的解决方案。 最后,基于前面的分析和总结,实现了一个基于文件过滤驱动的透明加 解密系统。该系统对指定目录的文件自动进行加密和解密,整个加解密 过程不需要用户的参与。通过测试表明,该系统在可操作性,安全性以 及性能方面的结果令人满意。 关键字:过滤驱动,加密,信息安全,内核 a b s t r a c t a b s t r a c t 21 c e n t u r yi s a ni n f o r m a t i o na g e ,i n f o r m a t i o n a l r e a d yb e c o m ea n i m p o r t a n ts t r a t e g yr e s o u r c e s t h ea m o u n to fi n f o r m a t i o ng r o w sl a r g e ra n d l a r g e r , p r o t e c t i n gi n f o r m a t i o nf r o ml e a k i n go u ti sas i g n i f i c a n ti s s u er e l a t e dt o s e c u r i t yo fc o u n t r i e sa n ds o c i e t y t r a d i t i o n a l l y , t h ei n f o r m a t i o nw h i c hn e e d s p r o t e c ti se n c r y p t e da n dd e c r y p t e db ys o f t w a r em a n u a l l yo p e r a t i o nf o rs a v i n g a n du s i n g w h e nu s i n gt h ee n c r y p t e df i l e s ,t h eu s e rn e e d sd e c r y p tt h ef i l e s m a n u a l l y , a n dt h e nh eo rs h ec a nu s et h e m h o w e v e r , a sar e s u l to ft h eu s e r ,s n e g l i g e n c eo rt h eo t h e rr e a s o n ,t h ed e c r y p t e df i l e sm a yl e a v ei nad i s k t h i si s ag r e a th i d d e nr i s ko f s e c u r i t y f i l e s y s t e mf i l t e rd r i v e rs u p p l i e sa ni n t e r f a c e f o re n c r y p t i o na n d d e c r y p t i o no ff i l e s ,p r o t e c t i o no fs y s t e m ,p r o c e s sc o n t r o la n da c c e s sc o n t r 0 1 i t p r o v i d e san e wt r a i no ft h o u g h tf o ri n f o r m a t i o ns e c u r i t ma n di ti sah o t s p o to f r e s e a r c ha tp r e s e n t , 一一 l m s p 印e ri sm a m l yq u e s t i n ga n dd i s c u s s i n gt h ep r i n c i p l eo fa p p l i c a t i o n a n di m p l e m e n t a t i o no ff i l es y s t e mf i l t e rd r i v e ri nt h e s y s t e mo ft r a n s p a r e n t e n c r y p t i o na n dd e c r y p t i o no ff i l e so nw i n d o w s f i r s t ,t h er e l a t e db a c k g r o u n d o ft h i si s s u ea n di t sc u r r e n ta p p l i c a t i o ni si n t r o d u c e d t h ep r o s p e c to ff i l e s y s t e mf i l t e rd r i v e ri nt h ef i e l do fi n f o r m a t i o ns e c u r i t yi si n v e s t e d t h e ns o m e i m p o r t a n tc o m p o n e n t so fw i n d o w sk e r n e la n dt h ei n t e r a c t i v ea f f e c tb e t w e e n t h e ma r es t u d i e d ,a n dt w od i f f e r e n tf r a m e w o r ko ff i l e s y s t e mf i l t e rd r i v e ri s c o m p a r e da n da n a l y z e db yt h ep r o sa n dc o n si ni n f o r m a t i o ns e c u r i t y d i f f e r e n tr e s o l u t i o ni nt h et w of r a m e w o r k st o i m p l e m e n tt h es y s t e mo f t 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 ni sd i s c u s s e da n ds u m m a r i z e d f i n a l l y , a t 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 ns y s t e mi si m p l e m e n t e db a s e do nt h e t e c h n o l o g yo ff i l es y s t e mf i l t e rd r i v e r t h i ss y s t e me n c r y p t st h ef i l e si nt h e s p e c i f i e dd i r e c t o r yt r a n s p a r e n t l y , a n dt h eu s e rh a sn o tt ot a k ep a r ti n t h e s y s t e mi ss a t i s f i e di na s p e c to fo p e r a b i l i t y , s e c u r i t ya n dp e r f o r m a n c eb y i i i 武汉工程大学硕士学位论文 e x p e r i m e n t s k e y w o r d :f i l t e rd r i v e r , e n c r y p t i o n ,i n f o r m a t i o ns e c u r i t y , k e r n e l i v 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外, 本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对 本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 学位论文作者签名乳建 叩年矿月午日 学位论文版权使用授权书 本学位论文作者完全了解我校有关保留、使用学位论文的规定, 即:我校有权保留并向国家有关部门或机构送交论文的复印件和电子 版,允许论文被查阅。本人授权武汉工程大学研究生处可以将本学位 论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩 印或扫描等复制手段保存和汇编本学位论文。 保密0 ,在年解密后适用本授权书。 本论文属于 不保密 ( 请在以上方框内打“ ) 学位论文作者签名:南速 d 年6 月矸目 指导教师签名:佰揶 1 年占月1 日 第l 章绪论 第1 章绪论 1 1 课题背景和意义 课题背景 在信息科学领域,信息安全越来越受到人们的重视,已经成为该学 科领域中最重要的研究课题。信息安全的保护对象是保护文件数据的安 全。目前,在w i n d o w s 平台下,解决文件数据安全问题的主要技术手段有 两种:一是在应用层使用h o o k ( 钩子) 技术,针对需要拦截的文件操 作函数( a p i ) 和由此操作引起的w i n d o w s 消息的拦截,在拦截过程中, 通过一些适当的加解密处理来达到保护文件数据安全的目的,但是这种 方式开发有着效率低、稳定性和一致性差等特点,不适合大型系统的开 发;一种是通过开发文件过滤驱动程序来保护文件数据的安全。文件过 滤驱动属于一种内核态的程序,它增加新的功能,但不需要改变下层的 驱动程序或用户程序,有着效率高、可靠性强、可扩充等特点,成为现 阶段信息安全技术的研究热剧1 1 。 通常的加密系统加解密程序运行在操作系统的用户态。这种方式存 在一定的不便:每次访问文件,用户必须手动进行加解密操作。用户的 错误操作有时会破坏数据或者导致机密数据的泄露另外当用户正常使 用文件时,文件必须以明文形式存储在磁盘上。解决上述问题的有效方 法是在操作系统的内核态对数据进行透明加解密处理。文件系统拥有以 文件或目录的粒度访问文件的能力,所以加密文件系统能够对加密范围 进行灵活的控制。但是加密文件系统在设计与实现较为复杂。通过在文 件系统驱动层与应用层之间添加过滤驱动层,截获传输的数据并进行相 应的加解密处理。处在操作系统内核态的过滤驱动层可以方便地控制加 解密文件的粒度,同时减少用户加解密操作的参与【2 1 。 课题意义 在系统内核层植入过滤驱动进行的信息保护来对付各种信息窃取行 武汉_ r :程入学硕士学位论文 为将是非常有效的。对信息安全方面需求较高的部门单位中,使用过滤 驱动保护信息可以可靠,方便的保护数据。相比应用层的信息保护措施, 内核中的保护相对更安全,更可靠。 1 2 研究现状 目前,保护信息安全的主要有两种手段。一种是对重要数据进行访 问控制。但是在这种方式下,一旦被黑客窃取足够用户权限之后,信息 的安全就没有任何保障了。另一种是对机密数据进行加密。在这种方式 的保护下,即使黑客通过各种途径得到了机密文件,也只能看到密文, 得不到任何有价值的信息。因此,加密技术成为保护信息安全的主要手 段。但是,现在的加密工具是通过用户手动输入密码进行文件加密,解 密时输入密码解密。在文件正常使用的过程中,加密的文件必须解密以 明文方式存在存储设备上。用户可能一时疏忽,在使用之后还将解密文 件留在了存储设备上。存在着一个很大的安全隐患。 1 3 研究内容 主要研究的内容是文件系统过滤驱动在系统中的实现加解密功能的 方法。用户可以指定一个文件夹,当用户将文件放进指定的文件夹,加 密该文件。读文件时,解密。加解密过程不需用户操作。 研究的具体内容涉及如下几个方面: 1 )加密数据的读取与写入及加解密处理的实现; 数据的加解密时机应选择恰当,避免与操作系统处理冲突。 2 )对加密文件夹本身操作的实现。 通过应用程序选定加密文件夹,将路径传给过滤驱动,由过滤驱动完 成相应的操作。 3 )应用程序与过滤驱动之间的通信。 第l 章绪论 需要设置和取消加密文件夹,通过应用程序与过滤驱动之间的通信达 到目的。 1 4 论文章节安排 全文共分5 章,各章内容安排如下: 第l 章是绪论部分,主要介绍了研究背景和意义、研究现状和研究 内容以及章节安排。 第2 章是相关技术介绍部分,主要介绍了w i n d o w s 内核组件的相关 知识,分析了w i n d o w s 几个重要组件的作用。介绍了文件系统过滤驱动 在信息安全领域中的作用。分析了文件系统以及文件系统过滤驱动的原 理,分别探讨了两种框架的文件系统过滤驱动的设计。 第3 章详细讲述基于文件系统过滤驱动实现的一个透明加解密系统 的设计,详细讲述了其中的关键技术。 第4 章分析了该透明加解密系统的性能与安全性,以及系统的不足 之处。 第5 章对全文进行总结,并提出对以后研究工作的期望。 3 第2 章文件系统过滤驱动及其框架 第2 章文件系统过滤驱动及其框架 2 1w i n d o w s 内核组件 操作系统管理着处理器状态、协调多个c p u 之间的合作、保证c p u 缓存的一致性、管理本地总线、管理物理内存、提供虚拟内存的支持、 与外部设备交互、提供一个简洁友好的用户管理系统。但是,首先操作 系统必须稳定和高效。 w i n d o w s 操作系统使用一系列简单的原理和方法实现一个稳定、高效 的平台。它的许多设计原则与理念来自u n i x 系统。w i n d o w s 内核组件 主要有以下几部分组成:硬件抽象层、w i n d o w s 内核以及w i n d o w s 执行 体【4 】o 硬件抽象层 w i n d o w s 系统可以在不同的体系结构的机器上运行。硬件抽象层提 供了一种机制将操作系统与底层硬件隔离开。w i n d o w s 的其它组件将不 同机器当作一台理想的机器。所有的硬件差异都被硬件抽象层屏蔽了。 硬件抽象层导出了一些功能用于访问系统时问、输入输出总线、d m a 与 中断控制器和设备寄存器【6 】【7 】。 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 执行体是在它的 基础之上建立起来的。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 内核提供的服务,所以可移植性非常好【8 1 。它提供了丰富的 系统服务给不同的子系统,使子系统可以使用操作系统提供的服务。 5 武汉工程人学硕士学位论文 主要的w i n d o w s 执行体组件包括:对象管理器、虚拟内存管理器、进 程管理器、i 0 管理器和缓存管理器 5 1 。 1 )对象管理器 所有的w i n d o w s 执行体组件导出的数据类型都是通过对象管理器创 建和管理的。对象管理器管理对象,这些对象的数据结构是不透明的, 它们被执行体的其他组件实现和操作。每一个对象都有一套操作方法, 包括创建一个对象的实例和销毁一个对象的实例。对象管理器提供了以 下的接口: 动态的为系统增加新的数据类型 为对象指定安全与保护级别 添加和销毁对象实例 允许其他模块定义对象类型和操作方法 提供一个一致的方式使用对象实例的引用计数 提供了一个全局的命名体系 对象管理器维护一个全局的名字空问。所有的系统中的对象都可以在 这个名字空间中访问到。这个名字空间使用常用的文件命名惯例。它的 全局根目录命名为“”,这个根目录在系统初始化的时候被对象管理器创 建。执行体的其它组件可以创建目录或者子目录,任何对象的实例可以 放在这些创建的目录下。当对象被创建,对象的名字就从对象管理器的 根目录开始解析,对象管理器负责解析对象的名字。 对象管理器维护对象类型的信息,包括分配对象实例的内存池信息、 对象的访问、对象的操作指针还有一些同步结构。每个对象实例有一个 标准的对象头和一个对象特定的对象体。对象头包括对象的名字、安全 描述符、对象的访问模式、对象的引用计数还有其它相关属性。 2 )虚拟内存管理器 虚拟内存管理器管理本地机器所有的物理内存。它为应用程序和系 统的其它组件提供虚拟内存服务。几乎所有的内核模式和用户模式的模 第2 章文件系统过滤驱动及其框架 块都会使用虚拟内存管理器提供的服务。大多数模块依赖虚拟内存管理 器提供的内存管理服务。但是,文件系统比较特殊,它提供分页文件给 虚拟内存管理器。 现代的计算机操作系统都会提供物理内存管理的支持。当多个应用 程序同时运行在一台机器上的时候,操作系统需要提供一种功能使应用 程序之间相互独立。操作系统还需要一种将系统的代码和用户的代码隔 离开。这些都由虚拟内存管理器来负责。虚拟内存管理器为系统的其它 组件提供以下功能与服务: 1 ) 它提供了一个可分页的虚内存系统。每一个运行在系统中的进程 都有一个私有的虚地址空间。这些虚地址空间被从物理内存中分配的物 理页支撑着。 2 ) 管理一个进程的虚地址空间与真实的物理页相隔离。虚拟内存管 理器支持虚地址空间的分配、提交、操作和销毁。 3 ) 虚内存是虚拟内存管理器与本地文件系统协作的结果。为了提供 一个在逻辑上大的内存,内存中的内容被暂时置换到磁盘上的文件中。 那些被磁盘上的文件支撑的内存被称为提交的内存。提交内存的内容要 么在页文件中,要么在映像文件中。 4 ) 虚拟内存管理器支撑内存映射文件:这些文件的大小任意,而且 可以被部分映射。 5 ) 支持了进程的限额。 6 ) 它决定了分配物理内存给进程的工作集管理策略。所有的物理内 存的分配与销毁都由虚拟内存管理器执行,而不管内存是由用户态程序 和内核态程序分配的。 7 ) 支持写时拷贝的策略。 每一个运行在w i n d o w s 上的进程都有4 g b 的虚拟地址空间。虚拟内 存管理器采用一系列的方法使每一个进程都认为自己有一个4 g b 的大内 存。虚拟内存管理器负责将虚拟地址转换成物理地址。进程拥有一些资 7 武汉工程大学硕士学位论文 源,如堆、共享内存等,这些都需要存放在物理内存中,虽然它们不一 定一直在物理内存中,但是当需要使用的时候,它们就会加载到物理内 存中。还有一些物理内存需要分配给操作系统使用。虚拟内存管理器为 操作系统组件分配了虚拟地址空间,它将4 g b 的虚拟地址空间划分为两 部分,2 g b 分配为用户地址空间,剩余的2 g b 为内核地址空问【9 】。用户 地址空间是每个进程私有的空间,而内核地址空间是所有进程共享的。 在驱动程序中响应用户的请求时,需要特别注意线程的上下文。当 分派例程运行在用户线程的上下文中时,驱动程序的分派例程就可以使 用用户地址空间中的内存。但是,中问层驱动和低层的驱动的分派例程 会运行在任意的线程上下文中,这种情况下,用户空间的地址就不一定 有效,因为分派例程不一定在发出请求的用户线程上下文中运行。在驱 动程序中分配的内存是在内核地址空间中的。因为内核的地址空间对所 有的进程都一样,所以在任何线程上下文中访问这个地址都是有效的。 虚拟内存管理器使用基于页调度的策略来管理实际的物理内存。一 个页的大小一般是4 k b ,它为其它的系统组件提供虚拟地址的支持。虚 拟内存管理器支持的虚拟地址有以下特性: 虚拟地址独立于物理内存。 - 一个虚拟地址要么被物理内存支撑着,要么被一个磁盘上的映像 文件支撑着,不管是哪种情况,虚拟内存管理器会协助处理器将虚拟地 址透明的转换成实际的物理地址。 如果一个页包含一个经过转换后的物理地址,而这个物理地址被 存储着磁盘中的文件支撑着,这时虚拟内存管理器发出i o 操作,通过向 文件系统发出请求,将需要的数据从磁盘加载到物理内存中。 为了提高系统的吞吐量,虚拟内存管理器决定分页策略来控制磁 盘与内存中的数据交换的次数。 经过虚拟内存管理器的转换,虚拟地址最终引用一个物理内存中的 位置0 0 。虚拟内存管理器是决定系统性能的一个核心的组件。虽然,硬 蔓! 童茎笪墨丝塾堡墅垫垄茎笙銎 件的价格越来越低,但是内存的价格还不是那么便宜。还有,用户的对 系统性能的追求是无限的,但是一个设计实现很差的虚拟内存管理器会 大大降低系统的性能。 虚拟地址的转换过程比较复杂。需要两个系统部件的协作共同完成。 一个是由处理器提供的内存管理单元( m m u ) 【1 1 】,一个是由操作系统实 现的虚拟内存管理器。转化可能是将虚拟地址转换为物理地址,也可能 是将物理地址转化为虚拟地址。当一个物理页被置换到磁盘上的文件的 时候,与之相应的虚拟地址必须被系统做标记,表明这个虚拟地址所指 向的内容不在物理内存中。当使用这个虚拟地址的时候,就需要将物理 地址转换成虚拟地址。 虚拟地址转换为物理地址一般是在m m u 中进行的。虚拟内存管理 器负责维护一张被m m u 使用的映射表或者页表。当程序发生切换的时 候,虚拟内存管理器就会为将要运行的进程建立一张合适的页表,这个 页表中包含了虚拟地址到物理地址转换的一些信息。当这个进程运行的 时候访问虚拟地址,m m u 将会将虚拟地址转换为相应的物理地址【1 2 】。当 需要访问的内容存在这个物理地址中,进程就可以访问这个存储空间了。 如果要访问的内容不在内存中,就会引发页处理异常,这时虚拟内存管 理器就将相应的内容加载到系统内存中。然后,进程就可以访问了。 3 )进程管理器 进程管理器负责创建和删除进程和线程。它使用w i n d o w s 内核提供 的服务完成像暂停、运行进程的任务。 4 )i 0 管理器 i o 管理器定义和管理一个框架使所有的内核驱动可以在它的框架 中运行,这些驱动包括文件系统、网络驱动、磁盘驱动、中间层驱动以 及过滤驱动。 任何一个操作系统都有一种处理外部设备数据流的输入输出模型。 w i n d o w s 的输入输出模型的一个特点就是支持异步的输入输出。除了这 9 武汉工程大学硕士学位论文 个之外,它还有以下特点: i o 管理器为所有的驱动,包括最底层的驱动、中间层驱动和文件 系统驱动提供一个一致的接口。所有的i 0 请求都是通过输入输出请求包 ( i g p ) 的形式发送的。 i 0 操作是分层的。i 0 管理器为用户模式的受保护的子系统导出 了系统服务,这些子系统使用这些导出的服务代表用户执行i 0 请求。i o 管理器截获这些请求,创建一个或多个i r p 包,通过分层的驱动发送到 物理设备中。 i 0 管理器定义了一套标准的方法,有些是驱动必须支持的,有些 是可选择的。所有的驱动都遵守一个相对一致的实现模型。 像w i n d o w s 操作系统本身一样,所有的驱动都是基于对象的。驱 动、设备还有系统硬件都是对象。i o 管理器和其它的系统组件为驱动导 出一些可以操作这些对象的例程。 除了使用i r p 传递i 0 请求,i o 管理器还可以发送i r p 与即插即用 管理器( p 1 1 p ) 和电源管理器协作完成相应的请求。 w i n d o w sn ti o 管理器定义和管理整个i 0 子系统。它定义和支持 一种外围设备连接到系统的框架。连接到w i n d o w s 系统的外围设备的数 量与类型是没有限制的,因为新的外围设备不断涌现。所以,i o 子系统 需要良好的设计和扩展性来容纳各种各样新出现的外围设备。 i o 管理器提供了一套给其它子系统执行i o 请求的系统服务。当一 个进程发出读请求。这个读请求直接传给控制子系统,也就是w i n 3 2 子 系统。w i n 3 2 子系统不直接将这个请求传给文件系统驱动,而是调用i o 管理器提供的一个系统服务n t r e a d f i l e 。这个系统调用负责将请求发送到 合适的驱动程序并将结果传回给w i n 3 2 子系统。在用户请求进程中为读 请求提供的内存在内核驱动中不一定可用。i o 管理器自动执行了一些操 作,使内核驱动可以使用一个存储空间完成读请求。 i o 管理器提供了一个i 0 模型,所有的驱动都需要符合这个模型。 第2 章文件系统过滤驱动及其框架 这个模型由对象和一系列操作对象的方法组成。内核驱动不需要关心i 0 请求的请求者,它们用相同的方式处理所有的i 0 请求。这样所有的用户 子系统都有一个一致性的接口,内核态的驱动就不需要知道i o 请求来自 哪个子系统。更进一步的说,内核态的驱动可以调用其它内核驱动提供 的服务,因为内核态的驱动不关心请求来自内核态还是用户态。最后, 这个i o 模型允许分层的内核态驱动,它们都被i o 管理器支持。在分层 体系结构中的每一个内核模式的驱动程序都可以使用它下层驱动提供的 服务。而下层的驱动不用关心请求来自用户进程或者在它上面的驱动程 序。 i o 管理器为连接到系统的设备提供可安装的文件系统的实现支持。 第三方开发的文件系统可以很容易的安装到系统中。同时i o 管理器提供 了与设备独立的系统服务。这些服务可以被其它的系统组件和内核驱动 使用。例如,一个内核驱动在它的分派例程中要调用其它内核驱动提供 的服务,它只需要调用i o 管理器提供的i o c a l l d r i v e r 服务即可。同样, 如果内核驱动想要分配内存描述列表结构,就可以调用i o a l l o c a t e m d l 服 务例程。同时i o 管理器还与缓存管理器协作提供了虚拟文件数据块缓存 功能。它与虚拟内存管理器和文件系统协作提供了内存映射文件的支持。 为了实现上述的目标,i o 子系统采用包驱动方式实现。所有的i o 请求都是基于i r p 包的。一般地,i r p 包被i 0 管理器创建,它代表用户 的请求,并被发送到请求的内核态驱动。其实,所有的内核态驱动都可 以创建i r p 包,并发送到目的驱动。只要使用i 0 管理器提供的 i o a l l o c a t e l r p 与i o c a l l d r i v e r 服务就可以了。使用i r p 包是请求i 0 子系 统提供服务唯一的方法。通过严格遵守包驱动模型,i 0 管理器实现在i o 子系统和分层驱动之间的一致性。每一个被发送到内核驱动的i r p 包都 代表一个没有处理的i o 请求。一个i r p 包会在被完成以前一直处于没 有处理的状态。驱动程序通过调用i 0 管理器提供的i o c o m p l e t e r e q u e s t 方法完成一个i r p 请求。调用i o c o m p l e t e r e q u e s t 之后,i o 管理器将会 武汉工程大学硕士学位论文 出发任何注册的完成例程进行后操作处理。 i o 管理器遵守着对象管理器定义和实现的对象模型。内核驱动、外 围设备、控制卡、中断、文件实例都在内存中以对象的方式存在。这些 对象都有一套方法可以操作它们。例如,控制卡在系统在以控制对象方 式表示,文件实例用文件对象这种数据结构来表示。控制对象只能被在 对象上定义的相关方法访问。文件对象也是一样的。i o 管理器使用对象 模型,所以可以使用安全子系统提供的服务控制对象的访问。i o 管理器 支持对象命名的结构。例如,文件对象有一个名字指示它们代表的磁盘 上的文件。 在分层的驱动体系结构中,在体系中的每一个驱动程序接收一个i r p 包,经过处理,交给体系中的下一个驱动。在体系结构中越靠下的驱动 越接近底层硬件。但是只有最底层的那个驱动才直接和硬件设备打交道。 分层的驱动模型给所有开发者提供了一个开发系统新的功能的机遇。依 靠这种模型的特性,过滤驱动和中间层驱动都可以插入到驱动的层次体 系结构之中。通过这种方式为系统增加新的功能。这样的在层次结构中 的每一个驱动与它上层和下层的驱动进行交互,方便了开发和调试,还 增加了系统的健壮性。同时,i o 管理器支持异步i o ,使得一个线程的i o 请求没有完成的情况下执行其它的操作,提高了系统的整体性能。 可抢占和可中断是i o 子系统的两个重要特性。每一个运行在内核中 的线程都运行在一定的系统中断请求级别( i r q l ) 上。每一个i r q l 都 有一个中断向量,w i n d o w s 系统中定义有3 2 种不同的i r q l 。每一个线 程都可以被一个比自己的i r q l 级别高的线程中断。i r q l 的级别从 p a s s i v el e v e l 到h i g hl e v e l 。p a s s i v el e v e l 是用户线程和系 统工作线程运行的级别,h i g hl e v e l 级别可能是硬件运行的级别。大 多数底层设备驱动例程运行在d i s p a t c hl e v e l 级别。因为所有的代码 在i o 子系统中都是可中断的,所以驱动的开发一定得使用合适的同步和 保护机制防止数据结构在不同的i r q l 级别中访问时被破坏。例如,有一 第2 章文件系统过滤驱动及其框架 个内核态的驱动运行在p a s s i v el e v e l 级别的工作者线程中访问一个 数据结构,此时这个驱动需要在d i s p a t c hl e v e l 访问这个数据结构, 这时候驱动就需要使用自旋锁来保护数据,达到互斥访问数据的目的。 运行在内核中的线程也是可抢占的。w i n d o w s 操作系统为每一个运行在 系统中的线程分配了一个线程优先级。大多数用户线程和系统工作者线 程运行在一个比较低的优先级中,确保优先级比较高的线程得到运行机 2 k z io 5 )缓存管理器 w i n d o w s 执行体包含了一个非常优雅的缓存模块,这个模块为向二 级存储器中存储的文件提供缓存功能。这就是缓存管理器,它使用虚拟 内存管理器提供的服务实现缓存机制。所有本地的文件系统都使用了缓 存管理器提供的服务。 虽然存储技术的进步使得二级存储器设备的存储速度变得越来越 快,价格变得越来越便宜,但是二级存储器的数据访问速度还是远远低 于内存的访问速度。为了提高性能,可以将需要读取的数据预先加载到 物理内存中,将这些数据一直保存在内存中,直到不再需要这些数据才 将这些数据写回磁盘【1 3 】【1 4 】。 在w i n d o w s 操作系统中,缓存管理器提供的文件数据缓存功能就是 这样的。缓存管理器与文件系统和虚拟内存管理器协作共同完成这个任 务。当访问文件数据的时候,不知不觉中就使用了缓存管理器提供的服 务。用户的访问数据的速度得到了很大的提高。 缓存管理器是w i n d o w s 执行体的一个重要的组件,它与虚拟内存管 理器的关系非常密切。缓存管理器为二级存储设备上的数据文件提供了 一个系统范围的缓冲区。同时,它采用了文件数据预读策略。缓存管理 器会基于应用程序采用的不同的访问数据的方式为每一个文件调整预读 策略。因为所有带缓冲区的文件i o 请求都要经过缓存管理器,所以缓存 管理器能识别数据的访问模式。例如,一个应用程序请求一个文件的前 武汉工程大学硕士学位论文 面的1 0 k 字节的数据,缓存管理器会将文件的下面的6 4 k 字节的数据读 入内存。随后,如果应用程序需要这些数据,就可以直接从系统缓存中 取得,避免了从二级存储器中读取数据的开销。对于顺序访问的文件, 预先读策略可以大大提高系统的性能,因为大部分需要的数据已经在系 统缓存中了。为了进一步提高系统性能,缓存管理器还应用了延迟写策 略。在真正写入数据到磁盘之前,通过将修改的数据保存在内存中一段 时间,缓存管理器提高了应用程序的写操作的反应速度。缓存管理器将多 次的连续的写操作定向到系统缓存中,然后在一个适当的时候,将修改 过的数据一次写入磁盘中。这比每次向磁盘中写入一小批数据的效率要 高很多。对于反复写同样的一块数据到磁盘上的应用程序,延迟写策略 每次仅仅将要写的数据写入缓存中,大大提高了系统的吞吐率。 理解缓存管理器的作用,需要详细分析一下预先读和延迟写的过程。 读数据的过程如图2 1 : 第2 章文件系统过滤驱动及其框架 图2 1 缓存霄理器预先读过程 1 ) 用户应用程序发起缓存方式的读请求,这个请求传递到i o 管理 器中。 2 ) i o 管理器为这个请求创建一个i r p ,并将这个i r p 传到文件系 统驱动。 3 ) 文件系统驱动收到读请求,并发现这个请求是一个带缓存访问的 文件请求。如果这个文件相关的缓存没有初始化,文件系统负责调用缓 存管理器的服务初始化缓存。如果缓存初始化了,缓存管理器就请求虚 拟内存管理器为这个文件创建文件映射对象。 4 ) 文件系统驱动使用c c c o p y r e a d 调用,将读请求传给缓存管理器。 缓存管理器负责将数据传递到用户指定的存储空间。 5 ) 缓存管理器检测它的数据结构确定这个被请求的文件是否有一个 1 5 武汉工程大学硕士学位论文 文件映射视图包含了该请求的字节范围。如果没有,缓存管理器创建一 个。 6 ) 缓存管理器将数据从映射视图拷贝到用户缓冲区。 7 ) 如果文件的映射视图所包含的数据不在物理内存中,就会引起页 故障,并将控制传递到了虚拟内存管理器。 8 ) 为了解决页故障,虚拟内存管理器为请求的数据分配物理内存并 通过i o 管理器发送非缓存的i o 请求给文件系统。注意,虽然图中没有 显示非缓存i o 请求是通过i o 管理器发送的,但是确实是这样的。 9 ) 文件系统接到这个请求后,创建相关的i o 请求,并发送给下层 的驱动。 1 0 ) 在文件系统下面的设备驱动程序从二级存储设备中获得数据, 并将数据返回给文件系统。 l1 ) 文件系统完成了从虚拟内存管理器发出的i o 请求。 1 2 ) 引起页故障的那指令重新开始执行。 1 3 ) 缓存管理器完成从文件映射视图到用户数据存储区的复制。 1 4 ) 当缓存管理器将数据复制完毕后,将控制交给文件系统。同时 这些数据也被保存在缓存管理器预留的虚拟地址空间中。 1 5 ) 文件系统完成i o 管理器发送给它的原始的i o 请求。 1 6 ) i o 管理器完成用户的读请求【6 1 。 延迟写的过程如图2 2 : 第2 章文件系统过滤驱动及其框架 用户使用缓存方式执行写文件 操作 ()( 1 3 ) 月 士i 老 匿一,“。? 。“o 7 。ji 0 管理器:j 。”ji ? - 嗣 k 将请求 畦”。囊。黟? 坼; 懦琏|占 文什j磊 虚拟内存管理 统驱j办 r - ( 8 ) 一( 7 ) 器 。j 争7: a 鼢;虢;蠹岛:;壤j r o 、v ( :! )( 1 2 ) 万:。二一 页谥备 冬i 生页故 窑型空堑篁龚竖 解决 释放不需要的物ii 文件系理页并重新映射i 统完成 这些虚拟地址到j,童j 写请求 新的已释放的页ii 谚贝映射数据i 面 j l 到j 】户缓存i 陵一:。盘基i r f 。2 r ( 1 1 ) 翳:;,7 t ? ,1 ,”。j 。? 珞 j ! 文竹系统驱动 ,j ( 4 ) , 缓存管理器t :、,强 , 、7 譬化初始化缓存jl 一4 ”嚣“”j :,j 。 ,j 锯。2 童_ 袋墨蛾i 浚| :j 一:、二? j :i 、 图2 2 缓存管理器延迟写过程 1 ) 用户应用程序执行写操作,这个请求传递到i o 管理器。 2 ) i o 管理器通过创建一个i l 冲包将这个请求传给合适的文件系统。 3 ) 文件系统发现这是一个缓存访问方式的写操作。如果这个文件的 缓存没有被初始化,文件系统调用缓存管理器的服务初始化缓存,否则, 文件系统为这个文件创建文件映射对象。 4 ) 文件系统通过调用c c c o p y w r i t e 将写请求传递给缓存管理器。 5 ) 缓存管理器检查这个文件的映射视图是否包含有请求的字节,如 果没有,缓存管理器创建一个映射视图。 6 ) 缓存管理器将用户需要写的数据复制到与这个文件相关的映射视 图的一段虚拟地址空间中。 1 7 武汉工程大学硕士学位论文 7 ) 如果这段虚拟地址空间没有被物理页支撑,就会引起页故障,虚 拟内存管理器就负责这个故障。 8 ) 虚拟内存管理器分配物理页用来容纳需要写入的数据。 9 ) 缓存管理器完成从用户缓冲区复制数据到这个文件的映射视图的 虚拟地址空间中。 1 0 ) 缓存管理器将控制交给文件系统。 1 1 ) 缓存管理器完成请求。 1 2 ) 文件系统完成i o 管理器发送的原始的i r p 请求。 1 3 ) i o 管理器完成原始的用户写请求【6 】。 2 2 文件系统过滤驱动的应用领域 2 2 1 文件加解密 指定文件、目录,甚至整个逻辑盘的加解密功能可以由文件系统过 滤驱动程序来实现。在文件写入磁盘的过程中,截获对该文件的 i r pm jw r i t e ,在其分发例程中对i r p 携带的数据进行加密处理后写入 磁盘;文件被从磁盘读取的过程中,截获所有对该文件的i r pm jr e a d , 在其分发例程中对i r p 携带的数据进行解密处理后向上层返回。加密后的 文件,以密文形式存储在磁盘中,保证了存储数据的安全性。 2 2 2 系统防护 应用程序在打开一个己存在文件或创建一个新文件时,文件过滤驱 动i r pm jc r e a t e 判断被打开文件是否存在和病毒特征代码库相匹配 的特征,如果存在,说明该文件感染了病毒失败掉该i r p ,拒绝打开文件; 否则,使i r p 继续向下传递,完成文件正常的打开操作。 第2 章文件系统过滤驱动及其框架 2 2 3 进程控制 为了有效的防止恶意进程破坏,需要规定只允许某些经过安全验证 的特定进程对受保护的文件进行访问,其他不在规则范围内的进程不允 许访问。可以通过p s g e t c u r r e n t p r o c e s s l d 、p s g e t c u r r e n t t h r e a d l d 等a p i 函 数得到发起i o 请求的进程及线程的相关信息,如:获得发起进程名称, 与安全访问规则( 进程白名单) 中的可信进程相比较,若该进程位于规则 中,说明信任其行为是安全的,允许访问受保护文件;否则,拒绝访问【2 5 1 。 2 2 4 访问审计 对受保护的文件或是对系统安全有影响的系统配置文件、注册表文 件以及一些容易受病毒感染的d l l 和e x e 文件进行访问操作的事后收集工 作。文件系统过滤驱动程序针对所关心的文件及访问操作,在相应的i r p 分发例程中收集访问信息,以日志的格式呈现给用户。有了足够多的访 问记录,管理员或审计员就可以采取各种分析方法【2 4 1 ,如病毒特征关键 字匹配、访问行为统计等来识别出可疑的行为动作,从而采取适当的措 施来确保以后访问的安全性。 2 3 文件系统驱动 文件系统驱动是存储管理子系统的一个重要组成部分,它向用户提 供在磁盘或光盘等非易失性媒介信息的存储、转发,同时和存管理器、 高速缓冲管理器紧密结合【l5 1 ,不但保证了应用程序可以准确地提取数据 文件的内容,而且提高了访问效率。文件系统方便用户创建、修改和删 除文件,用户之间共享文件和传输信息更加简单,提供了一定的安全保 障。 文件系统的种类有很多,包括本地文件系统、网络文件系统和分布 式文件系统。本地文件系统直接管理本地计算机上存储的数据和文件。 1 9 武汉工程大学硕十学位论文 如图2 3 : 酾笋裹磊鼍 如“。一一么 y 臣亟圆隧:妻竺茎竺至竺竺翌:笤 匦堕壶虱 用户态 内核态 图2 3 本地文件系统读写 用户进程对磁盘上文件的创建、打开、读、写等操作由w i n3 2 子系 统调用相应的服务来代表该进程发出请求。i o 管理器接收到上层传来的 i o 请求,通过构造i r p 请求包来描述这个请求,然后向下传递给文件系 统驱动,文件系统驱动处理之后交给中间层驱动或者磁盘设备驱动做后 续处理,磁盘设备驱动将请求转换成对存储设备的读写,并将请求传递 给存储设备【1 6 】【1 7 】。存储设备处理完毕后把结果向上依次返回,最后经过 i o 管理器,由w i n3 2 子系统把结果返回给发出请求的应用进程,整个 对文件的操作请求执行完毕。 图2 3 中,磁盘驱动从逻辑卷上读取或者写入数据。这个逻辑卷只是 一种存储的抽象【1 8 】。从文件系统的角度看,逻辑卷是一系列线性的、大 小固定的、可以随机访问的块。实际上,逻辑卷可能是一个物理磁盘中 的一部分或者是整个物理磁盘。一种被称为逻辑卷管理器的软件模块允 许文件系统将物理上不连续的磁盘存储空间当作一个连续的存储空间来 管理。在本地文件系统的管理下,每一个逻辑卷都有一个正确的文件系 统的格式。文件系统格式包括文件系统的元数据,这些数据是特定于某 种文件系统的【1 9 】。在w i n d o w s 系统中,格式化一个卷其实就是创建相应 的文件系统所需要的元数据。在用户可以访问逻辑卷的数据之前,逻辑 卷必须

温馨提示

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

评论

0/150

提交评论