(计算机软件与理论专业论文)局域网数据保密系统的研究与实现.pdf_第1页
(计算机软件与理论专业论文)局域网数据保密系统的研究与实现.pdf_第2页
(计算机软件与理论专业论文)局域网数据保密系统的研究与实现.pdf_第3页
(计算机软件与理论专业论文)局域网数据保密系统的研究与实现.pdf_第4页
(计算机软件与理论专业论文)局域网数据保密系统的研究与实现.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机软件与理论专业论文)局域网数据保密系统的研究与实现.pdf.pdf 免费下载

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

文档简介

中文摘要 作为一种普适性的资源共享平台,局域网被广泛使用。局域网的普及,为合理利用资 源,提高办公效率提供了有利条件。但与此同时,局域网中的数掘安全问题也越束越突出, 尤其是网络内合法用户对敏感数据的无意泄漏和恶意窃取。 本文针对当前局域网存在的安全问题,设计并实现了一个局域网数据保密系统。该系 统为c s 模式的结构,分为网络访问控制、文件共享、文件动态加解密、数掘保密传输、 密钥分发和策略的处理等部分。文章具体描述了上述模块的设计思想和具体的实现方法, 总结了实现的关键技术、难点和创新点。文章最后对文件加解密性能进行了测试,结果表 明该系统在内核对文件动态加解密的操作不会影响到用户对文件的访问速度。 本人重点研究和分析了内核模式的网络驱动程序和文件过滤驱动程序。在对内核 h o o kp e 技术深入分析的基础上用n d i s h o o k 实现了对网络连接的监控和文件共享数 掘的加密传输。文章深入分析文件过滤驱动对卷设备的识别和对文件加密杯汜的处理,实 现了对文件的动念加解密。 本文在结束处给出了今后的研究方向和进一步的工作。 关键词:访问控制;s s l ;i r p :n d i s h o o k ;文件过滤驱动;动态加解密 第1 页 a b s t r a c t a so n ek i n do f g e n e r a lp l a t f o r mf o rs h a r i n gr e s o u r c e s ,t h el a n ( i o c a la r e an e t w o r k ) i s w i d e l yu s e dn o w a d a y s t h ep o p u l a r i z a t i o no fl a n h a sp r o v i d e dt h eg r e a ta d v a n t a g ef o rm a k i n g g o o du s i n go f r e s o u r c e sr e a s o n a b l ya n de n h a n c i n gt h ee f f i c i e n c yi no f f i c e b u t a tt h es a m et i m e , t h ep r o b l e mo f d a t as e c u r i t yi sa l s op r o m i n e n tm o r ea n dm o r ei nt h el a n ,e s p e c i a l l yf o rt h e v a l i d a t e du s e r so f l a nw h oh a v en oi n t e n t i o nt od i v u l g et h es e n s i t i v ed a t ao rs t e a lo np u r p o s e f i r s t l y ,t h i sp a p e r a i m sa tt h ec u r r e n ts e c u r i t y p r o b l e m so f l a n ,d e s i g n sa n dr e a l i z e sad a t a s e c u r i t ys y s t e mf o rl a n t h i ss y s t e mb a s e so nt h ec sp a t t e r ns t r u c t u r e i tc a nb ed i v i d e di n t o t h ef o l l o w i n gp a r t s :n e t w o r ka c c e s sc o n t r o l ,d o c u m e n ts h a r i n g , d o c u m e n td y n a m i ce n c r y p t i n g a n dd e c r y p t i n g ,d a t as e c u r i t yt r a n s m i s s i o n ,k e yd i s t r i b u t i o n ,s t r a t e g yp r o c e s s i n gp a r ta n ds oo n - t h ep a p e rs p e c i f i c a l l yd e s c r i b e st h ei d e aa n dr e a l i z a t i o nm e t h o df o rt h ea b o r em o d u l e s ,a n d s u m m a r i z e de s s e n t i a lt e c h n o l o g y ,d i f f i c u l t i e sa n dt h ei n n o v a t i o nd u r i n gt h er e a l i z a t i o n a tt h e l a s ta f t e rt h ee n c r y p t i n ga n dd e c r y p t i n gp e r f o r m a n c et e s tf o rt h i ss y s t e m ,i tc a nb ei n d i c a t e dt h a t t h es y s t e m se n c r y p t i o na n dd e c r y p t i o ni nt h ek e m e l m o d ec o u l dn o ta f f e c tu s e r s o p e r a t i o ni n t h eu s e r - m o d e t h ed e e p e rs t u d ya n dr e s e a r c ha b o u tt h en e t w o r kd r i v e rm o n i t o r i n gn e t w o r ka c t i v i t i e sa n d t h ef i l es y s t e mf i l t e rd r i v e rm o n i t o r i n gf i l eo p e r a t i o n sa r ed e v e l o p e dw i t he m p h a s i s a c c o r d i n gt o t h et h o r o u g ha n a l y s i sa b o u tt h et e c h n o l o g yo fh o o kp e ,n e t w o r kc o n n e c t i o nm o n i t o r i n ga n d e n c r y p t i o nt r a n s m i s s i o nf o rt h es h a r i n gd a t aa r er e a l i z e dw i t hn d i s h 0 0 k a n d t h e nt h ep a p e r s t u d i e dt h er e c o g n i t i o na b o u tv o l u m ee q u i p m e n ta n df i l ee n c r y p t i o nm a r kp r o c e s s i n gi nt h ef i l e s y s t e mf i l t e rd r i v e r , a n dr e a l i z e sf i l ed y n a m i ce n c r y p t i o na n dd e c r y p t i o nm o d u l e i nt h ee n dt h i sp a p e rp u t sf o r w a r ds o m ei m p r o v e m e n ta n dp r o s p e c t sa b o u tt h ef o l l o w i n g r e s e a r c hd i r e c t i o na n dt h ef u r t h e rw o r k k e yw o r d s :a c c e s sc o n t r o l ;s s l ;i r p ;n d i s - h o o k ;f i l es y s t e mf i l t e rd r i v e r ,f i l ed y n a m i c e n c r y p t i n ga n dd e c r y p t i n g 第页 堡:垦二型查兰堡主堂堕堡苎 图目录 图1 文件引用模型3 图2 文件控于环境思路6 图3 系统逻辑架构7 图4 系统软件结构8 图5 设备对象和驱动程序分层1 1 图6i r p 结构1 4 图7i r p 的处理过程模拟1 5 图8w i n d o w s2 0 0 0 网络驱动结构1 7 图9n d i s 驱动程序架构1 7 图1 0t d i 客户端和传输层1 9 图1 1n d i s h o o k 安装前后结构变化2 5 图1 2 防火墙整体架构2 7 图1 3p e 文件结构2 8 图1 4 输出函数表设计2 9 图1 5p e 文件的导出表结构的获取3 0 图1 6 发送数据封包流程图3 1 图1 7 数据封包解析处理流程3 2 图1 8 传输前的验证过程3 3 图1 9 共享数据的传输过程3 3 图2 0 上层应用程序与底层驱动交互流程3 4 图2 l 驱动程序的安装流程3 6 图2 2 防火墙驱动的加载流程3 7 图2 3w i n d o w s 文件系统操作结构图4 0 图2 4 加密文件系统模块的总体设计4 l 图2 5 文件过滤驱动对v o l u m e 的m o u n t 过程4 7 图2 6 文件动态加解密处理流程4 9 图2 7a e s c t r 加密机制5 2 图2 8 局域网数据保密系统的实现模型5 3 图2 9 系统对密钥处理流程5 4 图3 0 系统对密钥请求、应答数掘包的处理流程5 5 图3 1s s l 数据保密传输5 7 信息1 = 稃大学硕士学位论文 图3 2 不同算法写1 0 2 4 0 4 k b 数据速度测试一5 8 图3 3 不同算法读1 0 2 4 0 4 k b 数掘速度测试5 8 独创性声明 所提交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所 知,除了文中标注和致谢的相关内容外,论文中不包含其他个人或集体已经公丌的研究成 果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢 意。 学位论文题目:屋越圆数掘握蜜丕统的班究皇塞理 学位论文作者签名:生全左:日期:) 皿6 年6 月2 9r 学位论文版权使用授权书 本人完全了解信息工程大学有关保留、使用学位论文的规定。本人授权信息工程大学 可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允许论文被查阅和借 阅;可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 涉密学位论文在解密后适用本授权书。) 学位论文题目:屋域回数握埕蜜丕统的班究皇塞现 学位论文作者签名:益垒左i日期:加6 年占月6 日 作者指剥币签名:二泣丝l 眺沙6 年月日 信息t :稃大学硕士学位论文 1 1 研究背景 第一章引言 随着计算机在社会各领域的广泛应用,计算机数掘保密问题同益突出。用计算机处理 的信息,首先是通过各种编辑工具和数据库形成文件,存储在计算机的外存储器里主要是 硬盘和各种移动存储器。存在硬盘上的数据,很容易被无关人员调用。由于计算机联网越 来越普遍,网络内的用户违规操作或网络外的非法用户都有可能通过远程访问调用、篡改 或窃取计算机存储的信息m 。存有秘密信息的磁盘被盗或遗失,就会造成大量国家秘密外 泄。由此可见,对计算机存储媒体如不采用保密技术措施,其危害程度是难以估量的。 在对数据安全程度要求较高的单位,由于工作问协作的必要,必须要构建内部的信息 系统和安全网络环境,在该环境中内部授权成员通过授权可以对指定资源进行访问,这样 的环境是颇具诱惑力的攻击目标,但同样不排除内部成员的疏忽或安全策略的配置不当甚 至恶意窃取导致信息的泄漏。因此防止局域网内部人员的疏忽和内部出现恶意用户的攻击 与防止外部人员穿越系统保护边界进行攻击的行为同样重要,甚至更加重要。一个安全的 信息系统环境必须对于内部和外部的都具有充足的防范能力。 本课题针对上述问题,设计一个局域网数据保密系统解决局域网内受信任人员从事的 违规和攻击活动造成的信息泄漏的问题,能够保证数掘是控于局域网保密系统这个环境的 ( 即使信息被泄漏也是不可用的密文) ,来实现一个安全的局域网环境。 1 2 国内外研究状况 对于局域网环境的数据保护技术国内外研究的很多,技术上日趋成熟,且有很多相关 产品出现,但多侧重于对安全接入与控制技术的研究。对于合法用户对信息无意的泄露或 者恶意的窃取,市场上也有不少相关的产品。这些产品在对于恶意攻击者的越权访问和内 部合法用户对敏感数掘的泄露上存在着一些问题,主要问题在于: 1 ) 从操作系统的角度:当i j i 的w i n d o w s 操作系统对文件系统支持不够。在w i n d o w s 文件系统中,只有n t f s 。1 才能支持文件加密的功f 毙( e f s 。3 1 ) ,而且它也只能保护某个目录 下的文件。即使权限限制可以从某种程度上保证文件的安全性,但当授权用户把这些文件 移动到其它位置时,就会自动解密,造成信息的泄漏。 2 ) 从应用软件的角度:当前有些文件加密软件,能对任何类型、任何大小的文件进 行加密,但是当访问这些文件时,它们需要把文件先解密成明文,访问完毕后,再加密成 密文存储。如果在访问期间出现意外,如断电等,物理介质上就可能残留有文件的明文信 息,从而可能泄露出去。还有一些文件保护产品基于虚拟磁盘“1 技术。其在用户的空闲空 第1 页 信息丁= 程大学硕士学位论文 问创建一个文件作为一个虚拟磁盘,当数据存入虚拟磁盘时,文件加密,当数据读出时, 就进行解密,这起到了一定的保护作用。但是不能对存储其它位置的文件进行保护,存在 一定的局限性。 从加密策略上来讲操作系统和这些文件保护产品都是基于用户身份的。其i ;i 提就是假 设用户需要保护文件,只要是合法用户就可以访问这些文件。所保护的文件是由用户自己 指定的,不能集中控制,不能强制实施保护而许多实际应用需要的是合法用户在一定的 环境中可以访问文件,一旦离开当前环境,即使是合法用户也不能访问这些文件。 总的来说,目前市场上的这些产品无论从功能上还是技术上不能为安全需求程度较高 的用户单位提供全面的严格而有效的保护。因为他们大多是针对非法用户的恶意攻击和越 权访问进行防范,而对于内部合法用户自身所造成的信息泄漏不能有效解决。本课题除了 对非法用户的访问提供有效的防范外,也能防止合法用户出现违规操作造成的信息泄漏, 达到文件控于局域网环境的目标。 1 3 设计目标和研究内容 本课题的目标是:( 1 ) 实现对文件的动态保护,使敏感数据始终以密文的形式存储在物 理介质上,在授权用户访问时以明文的形式在内存中呈现;( 2 ) 实现集中强制控制的文件保 护策略,不让用户私自决定其是否受保护,即实施安全的强制访问控制,而非以前的自主 访问控制;( 3 ) 在局域网内允许文件共享的同时,实现对用户间共享数掘的加解密。 课题完成后将提供一个有力的安全网络计算环境保护系统,力求在安全性,可用性和 方便性以及工作稳定性等方面达到实用的要求。 为了达到上面的目标,本课题研究的主要内容包括: 1 ) 敏感文件的加密保存:主要研究对指定文件的动态加密存储,使得敏感文件以加 密的形式存储在物理介质中,而用户在授权访问时,以明文的形式提交给用户。 3 ) 密钥的分发管理:主要研究如何为局域网中的每个用户的每个敏感文件集中生成 随机的密钥及其管理,并当授权用户访问文件而需要密钥对文件解密时,如何提取密钥。 2 ) 控制策略:研究局域网中如何根掘策略来设定敏感文件。并且策略由服务器集中 强制控制。 4 ) 文件共享:主要研究当用户使用文件共享进行数据传输时,如何对接收方的身份 进行合法性验证并利用协商的密钥对数掘内容进行加解密处理。 5 ) 网络控制:主要研究如何禁止其它应用程序对外的连接或其它未安装本系统的站 点的访问,如何实现客户端与服务器之间的数据保密传输,以及已安装本系统的站点之间 的相互认证。 信息丁稃大学硕十学位论文 1 4 课题难点和主要成果 国内外关于过滤驱动的资料文献相对较少,很多技术都不成熟在一定程度上增加了本 课题的难度。文件过滤驱动和网络驱动是本系统的关键技术,也是实现过程中的难点。下 面对在在本题实现中的难点进行分析: 为了从根本上解决信息泄漏问题,本课题在内核态利用文件过滤驱动实现对敏感文件 的动态加解密,其中的难点有以下几点: 1 ) 文件打开计数。文件每被打开一个实例,内核就为该实例分配一个f i l e o b j e c t 结构来记录其状态。同一个文件的不同f i l eo b j e c t 都引用内核中的同一个映射”,如 图l 所示。 图1 文件引用模型 所以本系统就用f s c o n t e x t 来识别同一个文件,为每个被访问的加密文件创建一个记 录,并设置该文件被引用的次数。打开文件时,计数递增,关闭该文件时,计数递减。同 时用记录该文件的密钥。由于内核本身可能创建该文件的实例,但创建操作不可见,而能 截获到关闭操作,所以在截获到内部文件对象的关闭操作时,不能减少其引用计数。 2 ) 访问控制。当用户在访问文件时,需要对文件的打开条件进行检测,如果条件不 满足,则要取消打开操作,现有的系统 提供了一个取消已创建的f i l eo b j e c t 的函数,但该函数不安全,有时甚至会引起 系统崩溃。本系统中,当用户打开文件时,首先判断当前打开条件,如果不具备条件,则 不创建实例,从而避免了该问题。同时,不能使用系统提供的z w c r e a t e f i l e 来打开该文件, 否则会引起系统的重入。 3 ) 文件的加解密。对文件的访问有三种方式:普通的i r p ”1 ( v or e q u e s tp a c k e t ) 、f a s t l o 与内存映射。但所有对文件的修改最后都要用i r p ”的方式写入,并且写入磁盘的操作可 以由该i r p 的标志位i r p _ n o c a c h e 、i r p _ p a g i n gi o 、i r p _ p a g i n q s y n c h r o n i z ei o 来识别。当需要从磁盘访问文件时,根据f s c o n t e x t 来查询被加密文件的密钥 记录,并用该密钥加解密。 4 ) 自己构造i r p 进行文件读写。在一个文件过滤驱动中,如果你打算读写文件,可 以试用z w r e a d f i l e 。但存在一些问题,z w 系列的n a t i v e a p i 嘲使用句柄,而旬柄是有线程 环境限制和中断级别限制。另外z w 系列函数来读写文件,最终还是要发出h p ,又会被自 信息r 程大学硕士学位论文 己的过滤驱动捕获到,结果带束判断上的困难,对资源也是浪费。本课题直接对卷设备发 i r p 。但是i r p 是非常复杂的数据结构,而且又被微软所构造的很多未公开的部件所处理。 这个问题的困难是细节太多,很多无文档可寻。 为了保证敏感数掘在局域网环境内安全流通,本课题对用户的网络访问进行控制,其 中实现的难点是内核h o o k p e 技术。根据替换p e 格式导出表中的相应函数来实现的。内 核模式并没有直接提供类似应用层的g e t m o d u l e h a n d l 0 、g e t p r o e a d d r e s s 0 等函数来获得 模块的地址,那么就需要自己来编写。这里用到了一个未公i 丌的函数与结构: z w q u e r y s y s t e m l n f o r m a t i o n 与s y s t e mm o d u l ei n f o r m a t i o n 来实现得到模块的 基地址。从w i n d o w s2 0 0 0 后内核数据的页属性都是只读的,不能更改。内核模式也没 有提供类似应用层的v i r t u a l p r o t e c t e x 0 等函数来修改页面属性。 另外,在本课题实现过程中对内核态驱动程序的调试和安装及控制驱动的加载也是难 点。 课题的主要成果有: 1 ) 分析了w i n d o w s2 0 0 0 内核模式驱动程序,重点分析了网络驱动程序和文件过滤驱 动程序。 2 ) 在内核层用网络驱动程序的n d i s 。h o o k 技术设计并实现防火墙,对网络访问进 行控制且对用户的文件共享操作进行验证、加密处理。 3 ) 在内核层采用文件过滤驱动技术设计并实现对敏感文件的动态加解密,使控制更 灵活,用户使用更方便。 4 ) 对几种文件的加解密算法进行强度分析和效率测试。 1 5 论文的组织结构 本文共分七章。 第一章,引占。介绍了课题背景、国际国内的研究状况和进展、本论文的研究内容和 实现目标、课题的难点和主要成果以及论文的总体结构安排。 第二章,系统概述。介绍本系统的实际需求、系统的逻辑架构和系统的总体设计。 第三章,内核模式驱动研究。介绍了w i n d o w s 2 0 0 0 驱动程序的架构、核心概念和重要 的数据结构及i o 请求包处理过程,并对网络驱动程序和文件过滤驱动程序做了详细介绍。 其中网络驱动程序是第四章防火墙模块实现的理论基础,文件过滤驱动程序则是第五章加 密文件系统模块的理论基础。 第四章,防火墙模块的设计与实现。基于内核网络驱动,利用n d i s h o o k 技术来构 筑防火墙。并针对系统的实现技术进行了分析和研究,给出了详细的实现机制的描述。 第矗章,加密文件系统模块的设计与实现。基于文件过滤驱动,对文件操作的i r p 进 行过滤来对敏感文件进行动念的加解密。对系统中各模块的功能以及系统的工作过程作出 信息t 稗大学硕七学付论文 了详细描述。 第六章,局域网数据保密系统的整体实现。在第四章的防火墙模块和第五章的加密文 件系统模块这两个核心技术模块基础上辅以其他技术构筑局域网数据保密系统。 最后,结束语。总结了本文所做工作和课题的创新点,指出今后的研究方向和需要进 一步完善的工作。 信息t 程大学硕士学位论文 2 1 系统需求分析 第二章系统概述 在一些对安全程度要求较高的单位,由于工作间协作的必要,必须要构建内部的网络 计算环境,在此安全环境的局域网中内部授权成员可以对指定资源进行相应的访问。但安 全问题也随之而来,主要表现在授权的合法用户将敏感数据从内部的泄露。信息从内部 泄漏的渠道主要有以下两种: 1 ) 设备如软盘、u 盘及移动硬盘等泄密。 2 ) 局域网的共享泄密。 本课题要解决的问题就是从根本上杜绝合法用户通过上述的两种渠道将敏感数掘从 局域网办公环境中将信息泄漏出去。解决的思路有两种:一种是对数据外出进行严格限制, 另一种是要保证即使数掘被流出,但脱离当前的安全环境也是不可用的。但是第一种思路 会对用户的r 常工作带来极大的不方便,违反了软件设计以人为本的设计理念,本案采用 第二种设计思路,来构筑局域网数据保密系统。在这个安全环境内合法用户可以正常使用 任何文件,但是如果其想通过上面的两种渠道将敏感数据信息泄漏出去是不可行的。敏感 文件控制于局域网环境内,当敏感文件出了局域网环境是不可被识别的,即实现文件控于 环境。系统设计思路如图2 所示。 2 2 系统的逻辑架构 图2 文件控于环境思路 针对合法授权用户通过移动设备将文件泄漏出局域网的问题,文件加密是一种很好的 解决方式,但要方便于用户正常的工作,加解密对用户是透明的且这个动作不能影响用户 对文件的访问速度。当用户正常使用敏感文件时候一切操作都是正常的,当用户将敏感文 3 信息丁手辛大学硕士学位论文 件写入磁盘或带出安全局域网环境时候,文件将被加密。 针对局域网的共享泄密的问题,对网络访问进行控制。由于加密文件系统只能保证在 用户机器上的文件不被泄漏,如果合法授权用户通过文件共享把敏感文件存储到另外的主 机上,由于这个操作是从内存中把文件内容写到远端非法主机,在另一台机器上敏感文件 将变成明文造成信息泄漏。本课题采用防火墙对用户使用文件共享进行文件传输这种行为 进行监控。保证在进行文件共享的时候发送和接收双方都是安全网络环境内的可信用户。 因为另一主机也在局域网数据保密系统这个局域网环境内,所以信息还是安全的。在数据 发送到网络之前进行加密。如果是可信用户在接收到数据就可正常解密,对共享文件的双 方没有什么影响。 两种方法的合理结合就可以构筑一个局域网数掘保密系统来达到防止合法用户将敏 感信息从内部网络环境中泄漏出去。系统的逻辑架构如图3 所示。 图3 系统逻辑架构 从图上可以看出,此系统被划分成三个逻辑层次,即数据服务层、用户层和驱动服务 层。每个层次还有完成这个层次功能的架构元素。 为了保证敏感文件的安全性,密钥由密钥服务器集中生成和管理。合法授权用户每次 信息1 = 程大学硕士学付论文 操作敏感文件时候向服务器提出申请。客户端和服务器端的传输用s s l 。1 束保障安全。在 文件动态加解密和防火墙的基础上利用s s l 通信机制和数据库技术,构建一个局域网数掘 保密系统。 2 3 系统的软件结构 将上节中的逻辑架构转化为软件结构如图4 所示。 r 币声一一一一一一吞声磊一一一一一一一一1i 一一一一一届孬磊面一一一一一一j f 姘菇享l 策略删i 有钔分发卜 二翔: i i u s e r臂留 用户认证 i k e r n e l 苴 莒秭妒 固 教扣;j 车 密钏生成 i = 稚驱动加密文僻系统 密钒分发 n r f sf a t 密钥存储 舫火趟 点嘞 i 谚j 意 泓 r, 图4 系统软件结构 系统为传统的c s 模式,由客户端和服务器端两大部分组成。客户端分为上层的控制 与底层驱动的服务,服务器端分为前台的管理程序和后台的数据库维护程序。整个系统中 核心实现部分是网络驱动防火墙和基于文件过滤驱动的动态加解密。这两个部分是实现局 域网数掘保密系统的核心、难点和关键。系统各组成模块简单介绍如下: 网络访问控制:即防火墙模块部分。通过防火墙控制本机的网络连接,对进出防火墙 的数掘包进行过滤控制。当用户需要通过文件共享在局域网环境内进行文件传输时候,先 对接收方进行身份合法性验证和密钥协商,且对传输的数掘进行加密。 敏感文件的加密保存:通过文件过滤驱动,在内核层文件系统栈上方截获所有的文件 操作。当是敏感文件时,向服务器端申请已分配的密钥或新分配的密钥。如果是对敏感文 件的创建操作,对服务器新分配的密钥建立一个新的唯一索引,并在内核数掘库中添加关 于此敏感文件的记录,下一次对此敏感文件进行操作通过查询出内核数据库中的该索引来 信息下程大学硕士学傍论文 向服务器申请已有的密钥。如果是对敏感文件的打开操作,则直接查询内核数掘库中该文 件的索引向服务器请求已经分配的密钥。敏感文件通过密钥为1 2 8 b i t 的a e s c t r 算法加 密后存储在物理介质上。 数掘保密传输:不同主机上的本系统相互之间互相通信时,使用s s l 保护链路上的数 据,包括密钥的申请与分发、文件共享的传输和控制策略的传递。 密钥的生成、分发与管理:密钥由服务器端集中地为每个敏感文件随机生成一个唯一 的密钥,并记录文件的相关信息。这些信息都由服务器上的数掘库维护。 策略分发与管理:定制的规则决定对那些文件进行动态加解密操作。策略可以由用户 本身定制,为了安全也可以由服务器强制颁发策略对用户对文件的操作进行控制。 局域网数据保密系统主要涉及到文件操作的控制,数据的动态加解密,网络中传输数 据的保密与网络访问控制,并把所有这些功能有机地结合成一个整体。其中的关键技术网 络访问控制和文件动态加解密技术均在内核态利用驱动实现。采用内核驱动实现此模块的 主要原因时驱动对用户更透明,对编程控制更彻底,更灵活。对这两个重要技术的模块将 在第四章中展丌防火墙介绍,在第五章中介绍文件过滤驱动怎样实现对文件的动态加解 密。 信息 :稃大学硕士学位论文 第三章内核模式驱动研究 本章研究w i n d o w s 系统驱动体系,及驱动中的核心概念和数掘结构,然后分析具体的 两种驱动程序架构:网络驱动程序和文件过滤驱动程序。 3 1w i n d o w s2 0 0 0 驱动程序简介 从用户的角度看,w i n d o w s 2 0 0 0 支持用户模式、内核模式两种驱动程序。用户模式驱 动程序是运行在用户模式的系统级代码。w i n d o w s 2 0 0 0 不支持直接访问硬件,虚拟驱动器 依赖运行在内核模式的真正的驱动器。内核模式驱动程序使用系统级代码编写,且运行在 内核模式下,因为内核模式允许直接访问硬件,这些驱动程序被用来直接控制硬件。内核 模式驱动程序可被进一步的分成两种,遗留模式的驱动程序和w i n d o w s 驱动模式的驱动程 序( w d m ) “。 遗留模式的驱动程序需要去侦测硬件和与i o 子系统连接。w i n d o w s 驱动模式的驱动 程序支持即插即用,电源管理,热拔插,自动配置。遗留模式的驱动程序和w i n d o w s 驱动 模式的驱动程序可被进一步的分成三种:高层,中间层,低层1 。高层驱动程序依靠中间 层和低层驱动程序去完成工作,中间层驱动程序则依靠低层驱动程序去完成工作。 本课题所研究的文件系统驱动程序”1 ( f s d ) 属于高层驱动程序。微软提供一个安装文 件系统工具包( i f s ) ,这个安装文件系统工具包需要和驱动程序丌发包及其它产品一起j 。能 完成开发。这个文件系统工具包给编程人员开发文件驱动程序提供了丰富的系统调用。本 课题的防火墙模块利用的是w i n 2 0 0 0 提供的特殊驱动器中的一种:网络驱动程序。 中间层驱动程序包括磁盘镜像驱动器,类驱动器( c l a s s ) ,迷你驱动器( m i n i ) ,过滤驱 动器( f i l t e r ) 等。这些驱动器位于低层驱动器和高层驱动器之间。类驱动器是对代码重用 的一次尝试,因为一种特定设备有多个驱动程序,它们之间大部分是相同的,这些相同的 部分被作为一个类驱动器和其它部分分开。例如:所有的i d e 驱动器共享大部分的代码, 这样就只用一次编写好这些公用的代码,把它作为一般的类驱动器加载。对于一个指定的 设备,只用编写以类驱动器为基础的迷你驱动程序就可以了。 过滤器驱动程序是一种可选择的特殊驱动程序,可以加载在其它驱动程序之上,用于 修改或增加原驱动程序的功能,而不必修改原驱动程序和使用该驱动的应用程序。过滤驱 动器可以截取程序对存在的驱动程序发出的请求。在请求到达驱动程序之前,过滤驱动器 可以更改请求的内容。 低层驱动器包括硬件和总线的控制器。例如:s c s i 适配器是一个低层驱动器,这砦 低层驱动器和h a l 于硬件结合紧密。在w d m 中低层驱动器包括物理驱动器的概念、行 为。这些物理驱动器与一个或者多个功能驱动器结合。 信息i :稃大学硕士学位论文 3 2w i n d o w s 驱动的架构和重要的数据结构 驱动程序是个分层的模型,在此模型中驱动程序的层或堆栈一起工作处理i o 请求。 w i n d o w s 2 0 0 0 的y o 子系统是基于对象的,在驱动研发中内核对象是十分重要的部分,如 驱动程序对象、设备对象。本节将从工程的角度讲述驱动的架构和这些核心概念及其数掘 结构。 3 2 1w in d o w s 驱动的架构 驱动程序的架构如图5 所示。 i i t p 图5 设备对象和驱动程序分层 图中左边是一个设备对象堆栈,设备对象是系统为帮助软件管理硬件而创建的数掘结 构。处于堆栈最底层的设备对象成为物理设备对象( p h y s i c a ld e v i c eo b j e c t ,p d o ) ,在设备 对象堆栈的中间某处有一个对象称为功能设备对象( f u n c t i o n a ld e v i c eo b j e c t ,f d o ) 。位于 f d o 上面的过滤器设备对象称为上层过滤器,位于f d o 下面的过滤器设备对象称为下层 过滤器。 总线驱动程序为实际的i o 总线服务,比如i e e e1 3 9 4 “。在w d m 的定义中,一个 总线是这样的设备,它用束连接其他的物理的、逻辑的、虚拟的设备。总线包括传统的总 线s c s i 和p c i ,也包括并口、串口、以及i 8 0 4 2 端口。微软已经为w i n d o w s 操作系统提 供了总线驱动程序。一个总线驱动程序负责以下的工作: 1 ) 枚举总线上的设备并为每个设备仓0 建一个p d o 。 2 ) 向操作系统报告总线上的动态事件。 3 ) 响应即插即用和电源管理的i o 请求。 4 ) 管理总线上的设备。 过滤驱动程序是一个可选项,当一个用户需要改变或新添一些功能到一个设备、一类 设备或一种总线时,就可以编写一个过滤驱动程序。在设备栈里,过滤驱动程序安装在一 信息1 二程大学硕士学位论文 个或几个设备驱动程序的上面或下面。过滤驱动程序拦截对具体设备、类设备、总线的请 求,做相应的处理,以改变设备的行为或添加新的功能。但过滤驱动程序只处理那些它所 关心的f o 请求,对于其他的请求可以交给其他的驱动程序来处理,这样可以非常灵活改 变设备的行为。 功能驱动程序是物理设备的主要驱动程序,它实现设备的具体功能,一般由设备的生 产商来编写。功能驱动程序的主要功能是: 1 ) 提供对设备的操作接口。 2 ) 操作对设备的读写。 3 ) 管理设备的电源策略。 在用户程序和硬件设备之间可以存在多个驱动程序,这些驱动程序上下链接形成驱动 程序堆栈( 实际数掘结构是由这些驱动程序创建的设备对象所构成的设备堆栈) ,共同为 此硬件设备服务。i o 管理器根掘请求向设备驱动程序创建并发送的i r p ,会沿设备对象栈 依次下传,直到某个驱动程序完成此i r p 请求的操作。物理设备堆栈在物理设备枚举过程 中形成。当系统启动后,p 1 1 p 管理器从系统根总线开始检测p 1 1 p 物理设备,为之创建物理 设备对象( p d o ) ,然后根据注册表加载它的驱动程序,创建其功能设备对象( f d o ) ;然 后这些设备的驱动程序再检测连接在它上面的p i l p 硬件,同样为各硬件创建p d o ,加载其 驱动程序,创建f d o 。重复直到枚举完毕。每个物理设备的p d o 和f d o ( 如果该设备具 有过滤程序,还将有f i d o ) 形成一个堆栈结构,称设备堆栈“”。 3 2 2 核心概念和数据结构 驱动程序对象 i o 管理器使用驱动程序对象来代表每个设备驱动程序,驱动程序对象描述了驱动程 序载入到物理内存的什么地方,驱动程序的大小和它的主要入口点。i o 管理器在它加载 驱动程序的时候创建一个驱动程序对象,如果这个驱动程序在初始化的时候失败,i o 管 理器将删除这个驱动程序的对象m 3 。在d d k ( d d v e r d e v e l o p m e n t k i t ) 的头文件w d m h 中声 明了驱动程序对象的数据结构,其声明为如下形式: t y p e d e f s t r u c t _ d r i v e r _ o b j e c t c s h o r tt y p e ; c s h o r ts i z e ; ) d r i v e r _ o b j e c t ,。p d r i v e r _ o b j e c t ; 在声明d r w e ro b j e c t 结构的同时还声明了一个p d r i v e ro b j e c t 指针类型,这 种结构声明方式在d d k 中大量使用。在d d k 中虽然公开了整个结构,但仅能直接访问或 修改结构中的某些域。在此只研究编程常用的部分域。 d e v i c e o b j e c t ( p d e v i c eo b j e c t ) 指向一个设备对象链表,每个设备对象代表一个设 信息丁稃大学硕士学位论文 备。i o 管理器把多个设备对象连接起来并维护这个域。 f a s t l o d i s p a t c h ( p f a s ti od i s p a t c h ) 指向一个函数指针表,这些函数是由文件系统和 网络驱动程序输出的。 d r i v e r u n l o a d ( p d r i v e r 被卸载的时候被调用。 m a j o r f u n c t i o n ( a r r a yo f p d r i v e r _ d i s p a t c h ) 是一个函数指针表,指向存在于驱动程 序中i r p 处理函数。它定义了i 0 请求如何进入驱动程序。这个域在驱动的入口函数 d r i v e r e n t r y 中被初始化。 设备对象 设备对象代表能够成为i o 操作目标的物理设备或逻辑设备。驱动程序可以调用 i o c r e a t e d e v i e e 函数创建设备对象,但设备对象的管理则由i o 管理器负责。同驱动程序对 象一样,微软也只允许访问这个数据结构中的某些域。这个数掘结构中对于工程实现有一 个非常重要的域d e v i c e e x t e n s i o n 指向一个由用户定义的数据结构,该结构可用于保存与设 备相关的信息。i o 管理器为该结构分配空间,但该结构的名字和内容完全由用户决定。 也许是巧合i o 管理器将一块没分页的缓冲池和设备对象创建一个关联,在内存中,设备 扩展( d e v i c e e x t e n s i o n ) 的位置紧接在设备对象后面。但依赖这种巧合,放弃使用指针访问 设备扩展却是个完全错误的想法。驱动程序的u n l o a d 例程删除设备对象,也删除了相关联 的设备e x t e n s i o n 。 中断请求级( i n t e r r u p tr e q u e s tl e v e l 1 r q l l w i n d o w s 为每个硬件中断和少数软件事件赋予了一个优先级,即中断请求级。驱动程 序只使用这其中的3 个中断级p a s s i v el e v e l 、d i s p a t c h 、 “。驱动程_ l e v e ld i r q l 序派遣例程在p a s s i v el e v e l 级调用。许多驱动程序回调例程在d i s p a t c hl e v e l 级 运行,驱动程序的硬件中断服务例程在设备中断请求( d i r q l ) 运行。驱动程序运行的中 断级是非常重要的,因为它确定了可以采取的操作类型。一个驱动程序必须知道,它可以 在任何时候被更高优先级的任务中断,这意味着它自己的中断服务例程可以在它自己的派 遣例程中间运行。 d d k 文档中明确指出支持例程的i r q l 限定。例如,k e w a i t f o r s i n g l e o b j e c t 例程有两 个限定: 1 ) 调用者必须运行在低于或等于d i s p a t c hl e v e l 级上。 2 ) 如果调用中指定了非0 的超时,那么调用者必须严格地运行在低于 d i s p a t c h _ l e v e l 的m q l 上。 分页和非分页内存 驱动程序可以分配能够换出的内存,成为分页内存。另外,它也可以分配永久驻留的 内存,成为非分页内存“”。如果试图在d i s p a t c hl e v e l 或者更高的中断级访问分页内 信息r 程大学硕士学位论文 存,就会引起缺页故障,内核会崩溃。如果在p a s s i v e _ l e v e l 中断级访问非驻留分页内 存,内核就会阻塞此访问线程,直到内存管理器把内存装回到内存中。w i n d o w s 2 0 0 0 提供 e x a l l o c a t e p o o l 和e x f r c c p o o l ,可以用它们从堆上分配和释放任

温馨提示

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

评论

0/150

提交评论