




已阅读5页,还剩58页未读, 继续免费阅读
(计算机科学与技术专业论文)防火墙穿透通信技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 i n t e r n e t 技术已经渗透到社会的各个领域,为了防范恶意的网络攻击行为, 越来越多的联网主机采用个人防火墙,这使得v o i p 、p 2 p 和网络视频会议等通信 受到一些限制,迫切需要一种特殊的通信技术来穿透防火墙进行通信。 基于这种背景,本文对防火墙穿透通信相关技术进行了研究,从应用层和驱 动层分别实现了防火墙穿透通信,主要研究工作有以下几个方面: ( 1 ) 研究了防火墙及其穿透通信技术。首先介绍了防火墙的定义和作用, 然后指出目前防火墙系统所存在的一些缺陷,为防火墙穿透通信技术的研究提供 了思路,并给出了从应用层和驱动层实现防火墙穿透通信的几种方法。 ( 2 ) 研究了基于n d i s 的防火墙穿透通信技术。设计并实现了传输驱动接口、 中间层驱动和n d i s h o o k 防火墙穿透通信模块,经过测试,能穿透目前主流的防 火墙。 ( 3 ) 研究了基于h t t p 隧道的防火墙穿透通信技术。设计并实现了h t t p 隧 道防火墙穿透通信模块,经过测试,能穿透目前主流的防火墙。 ( 4 ) 研究了共享套接字的防火墙穿透通信技术。设计并实现了共享d n s 套 接字防火墙穿透通信模块,经过测试,能穿透目前主流的防火墙。 ( 5 ) 最后对研究和开发过程进行了总结和展望。 关键词:防火墙穿透,n d i s 通信,h t t p 隧道通信,共享d n s 套接字通信 t h ei n t e m e tt e c h n o l o g ya l r e a d ys e e p e di n t os o c i e t y se a c hd o m a i n , i n o r d e rt o g u a r da g a i n s tm a l i c i o u sn e t w o r ka t t a c kb e h a v i o r , m o r ea n dm o r ec o m p u t e r su s e i n d i v i d u a lf i r e w a l l t h i sc a u s e dv o i p , p 2 pa n dn e t w o r kv e d i oc o n f e r e n c ec a l l tw o r k v e r yw e l l s oi tn e e d so n ek i n do ff t r e w a l lp e n e t x a t i n gt e c h n o l o g i e s b a s e do nt h eb a c k g r o u n d ,t h ep a p e rs t u d i e st h er e l a t e dt e c h n o l o g yo ff i r e w a l l p e n e t r a t i n gc o m m u n i c a t i o n ,a n di m p l e m e n t sa p p l i c a t i o nl e v e la n dd r i v e rl e v e lf i r e w a l l p e n e t r a t i n gc o m m u n i c a t i o nt e c h m o l o g y t h em a i n l yr e s e a r c hw o r ki sa sf o l l o w s : ( 1 ) r e a s e a r c ht h ef i r e w a l la n df i r e w a l lp e n e t r a t i n gc o m m u n i c a t i o nt e c h n o l o g y f i r s t ,i ti n t r o d u c e sd e f i n i t i o na n df u n c t i o n ;t h e ni tp o i n t so u tt h ew e a k n e s so ft h e f i r e w a l l ,w h i c hp r o v i d e st h ec o n s i d e r a t i o no ft h ef u r t h e rs t u d yf o rf i r e w a l lp e n e t r a t i n g c o m m u n i c a t i o nt e c h n o l o g y a l s o ,i tg i v e ss o m ef i r e w a l lp e n e t r a t i n gt e c h n o g i e so f a p p l i c a t i o na n dd r i v e rl e v e l ( 2 ) r e a s e a r c ht h ef i r e w a l lp e n e t r a t i n gt e c h n o l o g yb a s e do nn d i s d e s i g na n d i m p l e m e n tt r a n s p o r td r i v e ri n t e r f a c e ,i n t e r m e d i a t ed r i v e ra n dn d i s h o o kf i r e w a l l p e n e t r a t i n gc o m m u n i c a t i o nm o d u l e s t h r o u g ht h et e s t , t h e yw o r kw e l la n dc a n p e n e t r a t ea l lp o p u l a rf i r e w a l l s ( 3 ) r e a s e a r c ht h ef i r e w a l l p e n e t r a t i n gt e c h n o l o g yb a s e do nh 1 t r p t u n n e l d e s i g n a n d i m p l e m e n t t h ef i r e w a l l p e n e t r a t i n gc o m m u n i c a t i o n m o d u l eo f h t l l p - t u n n e l t h t o u i g l lt h et e s t ,i tw o r k sw e l la n dc a np e n e t r a t ea l lp o p u l a rf i t e w a l l s ( 4 ) r e a s e a r c ht h ef i r e w a l lp e n e t r a t i n gt e c h n o l o g yb a s e do ns h a r i n gs o c k e t d e s i g na n di m p l e m e n tt h ef i r e w a l lp e n e t r a t i n gc o m m u n i c a t i o nm o d u l eo fs h a r i n g d n s s o c k e t t h r o u g ht h et e s t ,i tw o r k s w e l la n dc a l lp e n e t r a t ea l lp o p u l a rf i r e w a l l s ( 5 ) f i n a l l yc o n c l u s i o ni sm a d ea n dt h ef u t u r ew o r ki sp r e d i c t e d k e yw o r d s :f u r e w a l l p e n e t r a t i n g ,n d i sc o m m u n i c a t i o n ,肌甲一t u n n e l c o m m u n i c a t i o n ,s h a r i n gd n s s o c k e tc o m m u n i c a t i o n n 西北工业大学 学位论文知识产权声明书 率人完全了解学校有装保护知识产权的规定,即:研究生在校攻读学位期间论 定工作的知识产权单位属予西北工业大学。学校霄权保留并匍国家有关部门或机构 递交论文的复印件和电子版。本人允许论文被查阅和借阅。学校可以将本学位论文 瀚一垒黼部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手 教保存和漉编零学位论文。同时本人保证,毕业后结台学位论文研究课题再撰写的 文象一律注明作者单位为题北工业大学。 缨寮诊它待解密后适用本声明。 学位论文作者签名:监 矽7 年岁月z7 同 指导教师签名: 砷7 年j 月z7 西北工业大学 学位论文原创性声明 秉承学校严谨的学风和优良的科学道德,本人郑重声明:所呈交的学位论文, 娃率人在导师的指导下进行研究工作所取得的成果。尽我所知,除文中已经注明引 脚的内容和致谢的地方外,本论文不包食任何其他个入或集体己经公开发表或撰写 避的姘巍成果,不包含本人或他人已申请学位或其它用途使用过豹成果。对本文的 职究做出重要贡献的个人和集体,均已在文中以明确方式标明。 本人学位论文与资料若有不实,愿意承担一切相关 学位论文作者签名: 如勺年j 月力日 西北_ 【= 业人学硕士毕业论文 第1 章绪论 1 1 研究背景 第1 章绪论 当今世界信息技术迅猛发展,人类社会也正步入信息化时代。社会经济的发 展对信息资源、信息技术和信息产业的依赖程度越来越大。在这个信息化时代中, 信息已成为人类宝贵的资源,而作为传递信息载体的i n t e m e t 也因此得到了迅猛 的发展。 i n t e m e t 技术已经渗透到社会的各个领域,为了防范恶意的网络攻击行为, 越来越多的联网主机采用个人防火墙,使得v o l p 、p 2 p 和网络视频会议等通信受 到一定限制,迫切需要一种特殊的通信技术来穿透防火墙进行通信。 1 2 研究现状 由于v o l p 通信、p 2 p 通信和网络视频会议等对防火墙穿透技术的迫切需要, 各种各样的防火墙穿透方法层出不穷,目前的防火墙穿透方法主要集中于应用 层,通过隧道技术“1 和利用防火墙之间可信关系0 1 来穿透防火墙,还有就是广泛 为木马通信利用的反向连接技术。1 。这些防火墙穿透方法的共有特点就是对数据 包的处理层次比较高,应用局限于某个特殊的防火墙或者某个可信的端口。 随着防火墙技术的飞速发展,防火墙技术已经从传统的基于s o c k e t 通信的 应用层和s p i ( s e r v i e sp r o v i d ei n t e r f a c e ) 包过滤防火墙“1 转向了基于n d i s “1 ( n e t w o r kd r i v e ri n t e r f a c es p e c i f i c a t i o n ) 的驱动层包过滤防火墙”1 。如果能 够在防火墙过滤数据包的层次之下实现数据通信,那么就能穿透各种主流的防火 墙。以n t 技术为核心的w i n d o w s2 0 0 0 x p 操作系统均实现了n d i s 的管理库,n d i s 是微软公司和3 c o m 公司共同制定并且合作开发的网络驱动接口规范,利用n d i s 就可以实现内核级发送和接收数据包,以及向上向下传递数据包。可以实现数据 链路层、网络层和传输层的数据通信,进而实现防火墙穿透通信。 基于n d i s 的防火墙穿透通信技术是一种新型的防火墙穿透方法,它利用n d i s 管理库直接在驱动层构造和接收数据包,数据包的发送和接收都处于防火墙检测 数掘包的层次以下,数据通信完全不受防火墙影响。本文将重点研究并实现基于 n d i s 的防火墙穿透技术,并成功解决了驱动程序自动化安装问题。 西北工业大学硕士毕业论文第1 章绪论 1 3 研究内容 本文的防火墙穿透通信技术研究将以由内向外的通信作为研究对象,主要考 虑从有防火墙防护的主机向外通信时穿透主机防火墙的问题,对于网络防火墙, 主要采用与防火墙之间的信任关系。 目前,应用层防火墙穿透通信技术主要有4 种:反向连接、h t t p 端口复用 技术、随道技术( h t t p t u n n e l ) 和共享套接字句柄技术“1 。本文主要研究并实 现了基于h t t p 隧道和共享套接字的防火墙穿透通信技术。 本文重点研究了基于驱动层的防火墙穿透通信技术,利用t d i 、i m d 和n d i s h o o k 技术来发送和接收数据包,从防火墙过滤数据包的层次之下完成数据通信, 能够有效地穿透各种主流的防火墙。 1 4 结构安排 第1 章,论述了本文的研究背景以及防火墙穿透通信技术的研究现状,指出 了研究防火墙穿透通信技术的意义并论述了本文研究的主要内容。 第2 章,论述系统通信模型与防火墙穿透通信技术,包括防火墙的定义和作 用,讨论目前防火墙存在的一些弱点,为防火墙穿透通信技术研究提供了基础。 并且还简要介绍了本文中使用的应用层和驱动层的防火墙穿透通信的技术。 第3 章,基于n d i s 的防火墙穿透通信技术设计与实现,利用n d i s 管理库 从驱动层实现了防火墙穿透通信。首先介绍了n d i s 层次模型和基本概念,然后 分别从t d i ,i m d 和n d i sh o o k 三个不同层次实现防火墙穿透通信,并对驱动 的安装文件以及自动安装作了简要的说明,最后对穿透效果进行测试和比较。 第4 章,基于h t t p 隧道的防火墙穿透技术设计与实现,论述了h t t p 隧道 的原理、设计和实现,并对防火墙穿透效果进行测试与分析。 第5 章,共享d n s 套接字防火墙穿透技术设计与实现,论述了共享套接字 的原理、设计和实现,并对防火墙穿透效果进行测试与分析 第6 章,总结目前所做的工作,并展望了防火墙穿透通信技术发展和后续研 究工作。 2 西北工业大学硕十毕业论文第2 章系统通信结构及其防火墙穿透通信技术 第2 章系统通信模型与防火墙穿透通信技术 2 1 系统通信模型 本文把从内向外的防火墙穿透通信系统称为i t o o s ( i n s i d et oo u t s i d e s y s t e m ) ,例如v o i p 、p 2 p 和网络视频会议等的通信都可以称为 t o o s ,在以后 的章节中将统一使用这个名字。i t o o s 的通信结构见图2 - 1 。 图2 - 1i t o o s 的通信结构图 在图2 - 1 中,主机a 需要从内向外穿透个人防火墙和网络防火墙与i n t e r n e t 另一端的主机b 通信,像这样从内向外穿透个人防火墙的问题就是本文的研究重 点。 2 2 防火墙技术 2 2 1 防火墙定义 防火墙9 1 是指设置在不同网络( 如可信任的企业内部网和不可信的公共网) 或网络安全域之间的一系列部件的组合。它是不同的网络或网络安全域之间信息 的唯一出入口,能根据企业的安全策略来控制( 允许、拒绝、监测) 出入网络的 信息流,且本身具有较强的抗攻击能力。它是提供信息安全服务,实现网络和信 息安全的基础设施。 在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监 控了内部网和i n t e r a c t 之| 丑j 的任何活动,保证了内部网络的安全。主机防火墙和 网络防火墙的逻辑结构分别如图2 2 和2 - 3 所示所示。 3 西北工业大学硕士毕业论文第2 章系统通信结构及其防火墙穿透通信技术 2 2 2 防火墙作用 图2 - 3 网络防火墙逻辑位置 防火墙作为个网络或者个人p c 的门户,它所起的作用主要体现在以下几 个方面: 1 防火墙是网络安全的屏障 一个防火墙( 作为阻塞点、控制点) 能极大地提高一个内部网络的安全性, 并通过过滤不安全的服务来降低风险。由于只有经过精心选择的应用协议才能通 过防火墙,所以网络环境变得更安全。如防火墙可以禁止诸如众所周知的不安全 的n f s 协议进出受保护网络,这样外部的攻击者就不可能利用这些脆弱的协议 来攻击内部网络。防火墙同时可以保护网络免受基于路由的攻击,如i p 选项中 的源路由攻击和i c m p 重定向中的重定向路径。防火墙可以拒绝所有以上类型的 攻击报文并通知防火墙管理员。 2 防火墙可以强化网络安全策略 通过以防火墙为中心的安全方案配置,能将所有安全软件( 如口令、加密、 身份认证、审计等) 配置在防火墙上。与将网络安全问题分散到各个主机上相比, 防火墙的集中安全管理更经济。例如在网络访问时,一次一密口令系统和其它的 身份认证系统完全可以不必分散在各个主机上,而集中在防火墙身上。 4 西北_ t 业人学硕士毕业论文第2 章系统通信结构及其防火墙穿透通信技术 3 对网络存取和访问进行监控审计 如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并保留日 志记录,同时也能提供网络使用情况的统计数据。当发现可疑动作时,防火墙能 进行适当的报警,并提供网络是否受到监测和攻击的详细信息。另外,收集一个 网络的使用和误用信息也是非常重要的。首先可以弄清防火墙是否能够抵挡攻击 者的探测和攻击,并且还可弄清防火墙的控制是否严密。而网络使用统计信息对 网络需求分析和威胁分析等也是非常重要的。 4 防止内部信息的外泄 通过利用防火墙对内部网络的划分,可实现对内部网重点网段的隔离,从而 限制了局部重点或敏感网络安全问题对全局网络造成的影响。再者,隐私是内部 网络非常关心的问题,一个内部网络中不引人注意的细节可能包含了有关安全的 线索而引起外部攻击者的兴趣,甚至因此而暴露了内部网络的某些安全漏洞。使 用防火墙就可以隐蔽那些透漏内部细节,如f i n g e r 、d n s 等服务。f i n g e r 显示 了主机的所有用户的注册名、最后登录时间和使用的s h e l l 类型等。但是f i n g e r 显示的信息非常容易被攻击者所获悉。攻击者可以知道一个系统使用的频繁程 度,这个系统是否有用户正在上网,这个系统是否在被攻击时引起注意等等。防 火墙可以同样阻塞有关内部网络中的d n s 信息,这样一台主机的域名和i p 地址 就不会被外界所了解了。 2 2 3 防火墙弱点 尽管伴随着i n t e m e t 技术的发展,防火墙技术已经得到了长足的进步,但是 它所存在的局限性也是很明显的。 1 不能防御已经授权的访问以及来自网络内部系统间的攻击 防火墙的安全控制对外可屏蔽内部网的拓扑结构,封锁外部网上的用户连接 内部网上的重要站点或某些端口,对内可屏蔽外部危险站点,但是它很难解决受 保护网络内部人员引发的安全问题。据权威部门统计结果表明,网络上的安全攻 击事件有7 0 以上来自内部攻击。防火墙可以禁止系统用户经过网络连接发送 专有的信息,但内部的一个合法用户可以将敏感数据拷到磁盘或p c m c i a 卡上, 放在公文包中带出去。内部用户还可以偷窃数据,破坏硬件和软件,并且巧妙地 修改程序而不通过防火墙。防火墙也不能防范这样的攻击:伪装成超级用户或诈 称新雇员,从而劝说没有防范心理的用户公开口令或授予其临时的网络访问权 限。 2 不能防御合法用户和合法应用程序的攻击 在大多数防火墙的“应用程序规则”里,一般默认让i e 浏览器 西北工业大学硕七毕业论文第2 章系统通信结构及其防火墙穿透通信技术 ( i e x p l o r e e x e ) 、o u t l o o ke x p r e s s ( m s i m n e x e ) 、l s a s s e x e 、s p o o l s v e x e 、 m s t a s k e x e 、w i n l o g o n e x e 、s e r v i c e s e x e 、s v c h o s t e x e 等程序通过,而防火 墙一般认为只要是与规则里的路径及文件名相同就允许通过,但它却完全没考虑 到文件是否被替换。 3 不能防御不经过防火墙的攻击和威胁 通过防火墙进行信息传输时,一旦遭遇攻击,防火墙能够有效地防止。由于 防火墙处于被保护网络和外部的交界,网络内部的攻击并不通过防火墙,因而防 火墙对这种攻击无能为力。例如,在一个被保护的网络上,使用一个不受限制的 拨号上网,内部网络上的用户就可以直接通过s l i p 或p p p 连接进入i n t e r n e t 。 有的用户可能会对附加的认证服务器感到厌烦,因而向i s p 购买直接的s l i p 或 p p p 连接,从而绕过防火墙安全系统,这就为从后门攻击创造了极大的可能。另 外,如果站点允许对防火墙后面的内部系统进行拨号访问,那么防火墙绝对没有 办法阻止入侵者进行拨号入侵。 4 不能过滤可信数据包和防火墙过滤层次之下的数据包 利用防火墙和数据包端口之间可信关系可以把数据包伪装成可信数据包,这 样的数据包防火墙被认为是合法的,因此不会被防火墙过滤掉。利用底层构造数 据包直接进行数据通信,在防火墙过滤数据包的层次之下完成数据通信,这样防 火墙也无法对数据包进行过滤。 正由于存在上面的这些弱点和缺陷,我们才有可能实现防火墙穿透通信。 2 3 应用层防火墙穿透技术 2 3 1 反向连接技术 常见的通信系统是c s 结构,客户端主动发起连接,服务端监听端口接受客 户端的连接,这种连接方法叫做主动连接,这类通信的一般工作模式如图2 - 4 所 示。 l 兰! 鲨卜一连接一墨坌塑| 图2 - 4 主动连接的一般工作原理 可见,此类通信的最大弱点在于通信必须从外向内进行连接。一般的防火墙 都限制外部对内部的连接,因此这样的通信很容易被阻止。而反向连接的工作原 理就不一样了,图2 5 是反向连接的一般工作原理。i t o o s 的服务端通过访问第 三方代理服务器获取客户端的i p 地址,主动发起对指定i p 的连接请求。由于连 6 西j 匕工业人学硕士毕业论文第2 章系统通信结构及其防火墙穿透通信技术 接是从防火墙内部网络到外部网络的连接请求,防火墙一般不进行过于严格的检 查,因此可以非常容易得通过防火墙。 l 第三方w c b n 务器l l 一;= = = = 2 2 2 2 2 2 2 l 、 、 访问、 、 、 二堕 连接_ _ 二玉麴 图2 - 5 反向连接 2 3 。2 盯t p 隧道技术 h t t p 隧道技术就是把所有要传送的数据全部封装到h t t p 协议里进行传送。 由于i n t e r n e t 的迅猛发展,我们已经离不开h t t p 协议了,浏览器访问w e b 资源 都要通过h t t p 协议,我们所得到的w e b 信息都是封装在h t t p 协议里进行传输的。 h t t p 隧道技术就是将应用程序要传输的数据信息封装在h t t p 协议里进行传输, 把应用程序要传输的信息都伪装成h t t p 包,然后把请求的目的端口设置成8 0 , 这样防火墙检测时就认为是安全的数据包,从而利用h t t p 协议在应用程序和远 程主机之间建立起一条安全传输隧道。 2 3 3h t t p 端口复用技术 端口复用技术9 1 或称端口劫持技术就是通过修改s o c k e t 的属性 s o _ r e u s e a d d r 来实现端口重绑定的。首先s e t s o c k o p t ( s ,s o l _ s o c k e t , s o _ r e u s e a d d r ,( c h a r乖) & v a l ,s i z e o f ( v a l ) ) ,然后 b i n d ( s ,( s o c k a d d r * ) & s a d d r ,s i z e o f ( s a d d r ) ) 。这里的s a d d r s i n _ a d d r s _ a d d r = i p :s a d d r s i np o r t = h t o n s ( 8 0 ) :8 0 端口是要劫持的端口。这样原8 0 端口的数据就都可 以被a c c e p t ,r e c e i v e 了。需要注意的是,如果接收到的数据是自己发送的数据 包,可以进行一些特殊处理,否则进行转发。 2 3 4 共享d n s 套接字技术 我们知道只要一台计算机连上了互联网络,那么有一种数据传输是肯定不会 被拦截的,那就是d n s 域名解析服务( 以下简称d n s 服务) ,d n s 服务共享n e t w o r k s e r v i c e 组的s v c h o s t e x e 进程空间。d n s 服务所使用的套接字是利用u d p 进行 传输的,我们可以获得d n s 服务所使用的套接字句柄,然后利用这个套接字句柄 来发送和接收自己的数据并且保持原来的数据传输不变。 7 西j 匕工业人学硕士毕业论文第2 章系统通信结构及其防火墙穿透通信技术 接是从防火墙内部网络到外部网络的连接请求,防火墙一般不进行过于严格的检 查,因此可以非常容易得通过防火墙。 r一一一 l 第三方w e b n 务器l 。一一 、_ 、 访问 、_ 二堕 二卜_ 连一 誊 图2 - 5 反向连接 2 3 。2 盯t p 隧道技术 h t t p 隧道技术就是把所有要传送的数据全部封装到h t t p 协议里进行传送。 由于i n t e r n e t 的迅猛发展,我们已经离不开h t t p 协议了,浏览器访问w e b 资源 都要通过h t t p 协议,我们所得到的w e b 信息都是封装在h t t p 协议里进行传输的。 h t t p 隧道技术就是将应用程序要传输的数据信息封装在h t t p 协议里进行传输, 把应用程序要传输的信息都伪装成h t t p 包,然后把请求的目的端口设置成8 0 , 这样防火墙检测时就认为是安全的数据包,从而利用h t t p 协议在应用程序和远 程主机之间建立起一条安全传输隧道。 2 3 3h t t p 端口复用技术 端口复用技术9 1 或称端口劫持技术就是通过修改s o c k e t 的属性 s o _ r e u s e a d d r 来实现端口重绑定的。首先s e t s o c k o p t ( s ,s o l _ s o c k e t , s o _ r e u s e a d d r ,( c h a r乖) & v a l ,s i z e o f ( v a l ) ) ,然后 b i n d ( s ,( s o c k a d d r * ) & s a d d r ,s i z e o f ( s a d d r ) ) 。这里的s a d d r s i n _ a d d r s _ a d d r = i p :s a d d r s i np o r t = h t o n s ( 8 0 ) :8 0 端口是要劫持的端口。这样原8 0 端口的数据就都可 以被a c c e p t ,r e c e i v e 了。需要注意的是,如果接收到的数据是自己发送的数据 包,可以进行一些特殊处理,否则进行转发。 2 3 4 共享d n s 套接字技术 我们知道只要一台计算机连上了互联网络,那么有一种数据传输是肯定不会 被拦截的,那就是d n s 域名解析服务( 以下简称d n s 服务) ,d n s 服务共享n e t w o r k s e r v i c e 组的s v c h o s t e x e 进程空间。d n s 服务所使用的套接字是利用u d p 进行 传输的,我们可以获得d n s 服务所使用的套接字句柄,然后利用这个套接字句柄 来发送和接收自己的数据并且保持原来的数据传输不变。 7 西北工业大学硕十毕业论文第2 章系统通信结构及其防火墙穿透通信技术 2 4 驱动层防火墙穿透技术 2 4 1t d i 传输驱动 当应用程序要发送或接收网络数据包的时候,都是通过与协议驱动所提供的 接口来进行的。协议驱动提供了一套系统预定义的标准接口来和应用程序之间进 行交互。在w i n d o w s2 0 0 0 n t 下,i p ,t c p ,u d p 是在一个叫做t c p s y s 的驱动程 序里实现的,这个驱动程序创建了如下设备:d e v i c e r a w i p ,d e v i c e u d p , d e v i c e t c p ,d e v i c e i p ,d e v i c e m u l t i c a s t 。应用程序所有的网络数据操作 都是通过这几个设备进行的。 在n t 传输驱动程序“”之上,按照t d i 接口规范向应用程序提供服务;在其 下,利用n d i s 接口库与n i c 驱动程序交互。所有的传输驱动程序要遵循统一的 t d i 接口规范,以简化驱动程序的编写,因为它只需要对这个唯一的接口进行编 码。然而,由于驱动程序只通过t d i 接口进行输出,所以它们只能被t d i 接口 应用程序来调用。t d i 是一个相对较新的网络接口,而是大多数的应用程序都使 用现存的一些标准接口,如n e t b i o s 和t c p i p ,所以n t 使用了仿真模块来支 持现存的网络接口。每一个仿真模块都向上层提供现存的网络接口,并将上层调 用匹配成一个或多个t d i 调用传给t d i 驱动程序。 t d i 传输驱动对应t c p i p 协议的传输层,见图2 - 6 。它可以穿透基于传输层 检测的防火墙。微软的p a c k e t s y s 驱动就是一个很好的t d i 编程例子,在它的基 础上加以修改,设置网卡的模式,通过把网卡设置成混杂模式,然后应用程序直 接打开网卡进行数据的发送和接收操作。通过这样的修改,就可以穿透基于底层 检测的防火墙了。 图2 - 5 t d i 传输驱动位置 8 西北二。业大学硕十毕业论文第2 章系统通信结构及其防火墙穿透通信技术 2 4 2 中间层驱动 中间层驱动“介于协议层驱动和小端口驱动之间,它能够截获所有的网络数 掘包。n d i s 中间层驱动的应用很广泛,不仅仅是个人防火墙,还可以用来实现 v p n ,n a t ,p p po v e re t h e r n e t 以及v l a n 。中间层驱动的概念是在w i n d o wn ts p 4 之后才有的,因此对于w i n d o w s 9 x 来说无法直接利用中间层驱动的功能。w i n d o w s d d k 提供了两个著名的中间层驱动例子:p a s s t h r u 以及m u x 。开发人员可以在 p a s s t h r u 的基础上进行开发,m u x 则实现了v l a n 功能。目前个人防火墙的产品 还很少用到这种技术,主要的原因是中间层驱动的安装过于复杂,尤其是在 w i n d o w sn t 下。w i n d o w s2 0 0 0 x p 下可以通过程序实现自动安装,但是如果驱动 没有经过数字签名的话,系统会提示用户是否继续安装。中间层驱动功能强大, 是今后个人防火墙技术发展的趋势,特别是在防火墙上实现一些附加功能。 中间层插入网卡和协议层之间,对上面的协议层表现为一个虚拟的微端口网 卡结构,而对下面的网卡则表现为一个协议层的结构。所以,无论是网卡接收并 上传的数据报,还是上层要下传至网卡发送的数据报,无一例外地要经过中间层。 中间层驱动对应于t c p i p 协议的网际层,由于中间层的位置比较特殊,所 有的网络通信都要经过中间层,利用中间层来实现防火墙穿透技术可以穿透大部 分防火墙。我们通过在中间层直接进行数据包的发送和接收来穿透防火墙,中间 层处理的是以太网数据帧。 2 4 3n d i s - h o o k 技术 2 4 3 1p eh o o k 技术 在w i n d o w s2 0 0 0 x p 下,可执行文件( 包括d l l 以及s y s ) 都是遵从p e ( p o r t a b l ee x e c u t a b l e ) 格式的。所有向其他操作系统组件提供接口的驱动程序都 有一个导出函数表,因此只要修改n d i s s y s 的导出函数表就可以实现对关键 n d i sa p i 的挂接。由于协议驱动程序在系统启动时会调用n d i s r e g i s t e r p r o t o c o l 向系统进行协议注册,因此这种方法关键在于修改n d i s s y s 所提供的 n d i s r e g i s t e r p r o t o c o l n d i s d e r e g i s t e r p r o t o c o l n d i s o p e n a d a p t e r n d i s c l o s e a d a p t e r n d i s s e n d 函数的起始地址。使用这种方法还要注意驱动程序的加载次序,显然 h o o kd r i v e r 必须在n d i s s y s 被加载之后,而在协议驱动程序t c p i p s y s 被加 载之前,因此我们把注册表的启动选项设置成0 。另外,w i n d o w s 2 0 0 0 x p 还提 供了系统文件保护机制,因此在修改n d i s s y s 时还需要通过修改注册表来屏蔽 系统文件保护机制。 p eh o o k 技术“1 实现比较简单,而且安装也不复杂,通过写注册表就可以 9 西北工业大学硕十毕业论文第2 章系统通信结构及其防火墙穿透通信技术 完成,对于使用n d i sh o o k 技术的防火墙来说,它不能穿透防火墙。 2 4 3 2p fh 0 0 k 技术 在w i i l d o w s 内核中,所有已注册的协议是通过一个单向的协议链表来维护 的。这个单向链表保存了所有已注册协议的n d i sp r o t o c o lb l o c k 结构的 地址,在这个结构中保存了协议驱动所指定的相应的派发函数的地址,如 r e c e i v eh a n d l e r 等。并且每个协议驱动还对应一个n d i so p e nb l o c k 的单向链表来维护其所绑定的网卡信息。当协议驱动调用n d i s r e g i s t e r p r o t o c o l 之后,n d i s 总是会把新注册的协议放在协议链表的表头并返回这张表,所以只 要我们注册一个新的协议,通过新协议注册返回的链表头就可以轻而易举的遍历 系统中所有协议表。但是,如果要成功地挂接派发函数,还需要对协议所对应的 n d i so p e nb l 0 c k 结构里的派发函数进行挂接,因为n d i s 并不是直接调用 协议驱动在n d i sp r o t o c o lc h a r a c t e s t i c s 所注册的派发函数地址, 而是调用n d i so p e nb l o c k 里的派发函数。值得注意的是,在 w 讪d o w s 9 x m e n t 的d d k 中,n d i sp r o t o c o lb l o c k 的定义是很明确的, 而在w i n d o w s2 0 0 0 x p 的d d k 中,并没有该结构的详细定义,也就是说该结构 在w i n d o w s 2 0 0 呶p 下是不公开的,因此我们需要利用各种调试工具来发掘该结 构的详细定义。也正是因为如此,这种方法对平台的依赖性比较大,需要在程序 中判断不同的操作系统版本而使用不同的结构定义。 1 0 西北 业人学硕十毕业论文第3 章基于n d i s 的防火墙穿透通信模块设计与实现 第3 章基于n d i s 的防火墙穿透通信模块设计与实现 3 1 防火墙穿透模型 3 1 1n d i s 层次结构模型 网络驱动程序接口规范( n d i s ) 是用于实现传输驱动程序和网卡驱动程序之 间相互通信的网络驱动规范。n d i s 为传输层提供标准的网络接口,所有的传输 层驱动程序都需要调用n d i s 接口来访问网络。w i n d o w s 所有的网络通信最终必 须通过n d i s 完成。n d i s 为网络驱动程序创建了一个完整的开发环境,使得网络 驱动程序可以从操作系统复杂通信中分离出来,从而极大地方便了网络驱动程序 的编写。另外,利用n d i s 的封装性,可以专注于一层驱动的设计,减少了设计 的复杂性,同时易于扩展驱动程序栈。 n d i s 现在已经发展成为一个完整的网络标准家族,为网络驱动开发提供了一 套标准的接口,目前最新的版本是n d i s5 1 ,而本文使用的是n d i s5 0 。 n d i s 提供三个层次的接口:网络接口卡驱动程序( m i n i p o r tn e t w o r k i n t e r f a e ec a r dd r i v e r s ) ,中间层驱动程序( i n t e r m e d i a t ed r i v e r ,简称m d ) 和协议驱动程序( p r o t o c o ld r i v e r ) ,层次结构模型见图3 - 1 。 n d i s 网络接口卡驱动程序可以通过n d i s 接口来完成对网卡的操作,实现网 卡驱动,同时开放m i n i p o r t 接口供上层驱动程序使用。协议驱动程序开放 p r o t o c o l 接口供底层程序调用,实现p r o t o c o l 接口与m i n i p o r t 接口的对接, 可以用协议驱动程序来完成协议驱动。中间驱动程序处于小型端口驱动程序和协 议驱动程序之间,同时具有两种驱动程序接口。 1 网络接口卡驱动程序 网络接口卡驱动程序( m i n i p o r tn e t w o r ki n t e r f a c ec a r dd r i v e r s ) ”管理 网络接口卡,n i c 驱动程序在它的下端直接控制网络接口卡硬件,在它的上端提 供一个较高层的驱动能够使用的接口,这个接口一般完成以下任务:初始化网卡, 停止网卡,发送和接收数据包,设置网卡的操作参数等等。 2 中间层驱动程序 中间层驱动程序( i n t e r m e d i a t ed r i v e r ) ”在协议驱动程序和微端口驱动程 序之间。在高层的传输层驱动程序看来,中问层驱动程序像一个微端口驱动程序, 而在底层的微端口驱动程序看来,像一个协议驱动程序。使用中间层驱动程序的 最主要的原因是在一个已经存在的传输层驱动程序和一个使用新的、传输层驱动 殴北工业大学硕士毕业论文第3 章基于n d i s 的防火墙穿透通信模块设计与实现 程序并不认识的媒体格式的微端口驱动程序之间相互转换格式,即充当翻译的角 色。 3 协议驱动程序 一个协议驱动程序( p r o t o c o ld r i v e r ) 踟实现一个t d i 接口或其他应用程序 可以识别的接口来为它的用户提供服务。这些驱动程序分配数据包,将用户发来 的数据拷贝到数据包中,然后通过n d i s 将数据包发送到低层的驱动程序,这个 低层驱动程序可能是中间层驱动程序,也可能是微端口驱动程序。当然,它在自 己的下端也提供一个协议层接口,用来与低层驱动程序交互,其中最主要的功能 就是接收由低层传来的数据包,这些通信基本上都是由n d i s 完成的。 应用程序( d e v i c e l o c o n t r 0 1 ) t i n d i s 协议驱动( t d l ) j l 弓 荔 n d i s 中间层驱动( i m d ) n d i s 接 h o o k 口 n 。i s 微端口驱动1 0 l 物理网卡 图3 - 1n o l s 层次结构模型 3 1 2 防火墙穿透层次模型 基于驱动层的防火墙穿透技术主要针对主机防火墙,而且尽量在防火墙检测 数据包的层次之下实现驱动层通信。防火墙一般在应用层和传输层检测数据包, 当然也有一些防火墙是利用n d i s 技术实现,对于这种防火墙的穿透是比较困难 的,必须更低层次上进行通信才能穿透。图3 - 2 给出了防火墙与驱动层( n d i s ) 层次关系。 1 2 两北t 业大学硕十毕业论文第3 章基于n d i s 的防火墙穿透通信模块设计与实现 图3 - 2 防火墙与n d i s 的层次关系 3 1 3 防火墙穿透通信结构 本文的目标是实现从内部向外部网络的穿透,主要是穿透主机防火墙,因此 在代理主机和客户端主机上并不需要穿透防火墙。代理主机和客户端主机仍使用 s o c k e t 套接字通信,而在有防火墙的服务端主机上使用n d i s 通信规范,而不使 用s o c k e t 套接字,但是数据格式仍然使用t c p i p 的数据格式,只是直接对数据 帧进行处理。图3 3 给出了i t o o s 的通信结构。 图3 - 3 基丁n d | s 的i t o o s 通信结构 1 3 西北工业大学硕士毕业论文第3 章基丁:n d i s 的防火墙穿透通信模块设计与实现 3 2 数据包分析与构造 3 2 1 数据包头定义 3 2 i 1 以太网帧头结构 e t h e m e tp a c k e th e a d e r t y p e d e f s t r u e t _ e t h e r n e t _ h e a d e r u c h a r e t h _ d e s t 6 ;d e s t i n a t i o na d d r e s s u c h a r e t h _ s r c 6 ;s o u r c ea d d r e s s u n i o n ( s h o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电镀工时间节点把控考核试卷及答案
- 钽电解电容器赋能、被膜工节能降耗执行考核试卷及答案
- 粮食作物栽培工岗位合规化技术规程
- 公司平地机操作工岗位设备技术规程
- 2025个人之间的房屋租赁合同
- 2025铝材购销合同书
- 2026届山西省吕梁地区文水县数学七年级第一学期期末综合测试模拟试题含解析
- 2025年是否可以随时解除委托合同
- 2025物流企业船舶委托经营合同
- 2025石油购销合同正式样式
- 2025贵州盐业(集团)遵义有限责任公司招聘15人笔试备考试题及答案解析
- EMS供应商对比方案报告
- 神奇的加密术教学设计-2025-2026学年初中数学北师大版2024八年级上册-北师大版2024
- 价格波动对利润影响分析-洞察及研究
- 广西检测协会试题(钢结构检测综合)判断题(1-375)
- 茶评员职业技能竞赛考试题库-下(多选、判断题部分)
- 2025年重庆文化旅游集团有限公司招聘笔试参考题库含答案解析
- 北京中医药大学宣讲
- 2025春江苏开放大学大学英语(B)(1)060051过程性考核作业3参考答案
- DB37-T 5310-2025《城镇排水管渠养护维修服务规范》
- 三年级下册32《每天自省五分钟》心理健康教学设计
评论
0/150
提交评论