基于NDIS过滤驱动防火墙设计和实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于NDIS过滤驱动防火墙设计和实现

基于NDIS过滤驱动防火墙设计和实现   摘 要:Windows作为时下最流行的个人操作系统,研究Windows环境下的防火墙有一定的现实意义。主机防火墙的数据包过滤算法是线性查找,其性能会随着过滤规则的增加而变得越来越差,为了提高防火墙的运行速度,对非法数据包的拦截能力,提出一种基于HASH双链表的过滤算法,并且通过分析、比较Windows环境下网络数据包的拦截技术,开发了一款基于NDIS6.0过滤驱防火墙软件,经过测试,它对非法数据包具有强大的拦截能力。   关键词:NDIS过滤驱动;防火墙;包过滤;HASH双链表;Duilib   中图分类号: TP391.9 文献标识码:A   1 引言(Introduction)   防火墙在网络安全防护中具有重要作用,从应用的角度来看,防火墙可以分为企业级防火墙和个人防火墙[1]。前者主要是部署在内外部网络的边界,对内外部网络实施隔离,从而保护内部网络的安全,而后者则通过软件的方式来实现,防火墙包过滤按顺序执行从第一条规则开始,直到找到一个匹配的规则。如果没有找到匹配的规则,则数据包被默认规则处理,叫做规则库的线性搜索算法。因此,过滤过程的计算复杂度大大取决于每个过滤规则的长度(规则数量字段),以及找到一个匹配的深度过滤规则的安全政策(过滤规则的数量)[2]。为了提高防火墙的运行速度,将防火墙的过滤规则组织成HASH双链表,实验表明在防火墙规则足够多时候,HASH双链表极大的提高了运行速度。   本文深入研究基于NDIS过滤驱动的数据包拦截方法和Windows内核态驱动程序与用户态应用程序间的通信机制,设计并实现了一种基于Windows内核态的个人防火墙系统。   2 系统的设计目标(System design object)   本防火墙对所有的网络报文进行监控,从而对非法报文进行拦截,隔断非法入侵。为了保护系统安全目的,本防火墙主要完成以下功能。   (1)驱动程序   可以根据需要设置过滤规则,规则设置是防火墙的核心功能之一,基于五元组[3]的数据包过滤规则可以管理应用联网进程的黑白名单、端口过滤、IP过滤、异常端口连接等。用户可以通过设置规则来自由的对数据进行过滤。降低计算机被入侵的风险对所有的网络数据包拆包分析,根据过滤规则匹配,从而决定包过滤或放行。对网络报文的统计,实时统计所有数据包,对错误的数据报文记录日志。日志文件是用于记录防火墙操作事件的记录文件或文件集合,为网络维护者判断故障提供依据。   (2)主程序   防火墙的过滤规则的管理需要一个友好的界面供用户操作,比如添加删除规则和启动关闭防火墙等。   (3)规则管理   规则设置是个人防火墙的核心功能之一,通过规则设置可以管理应用联网进程的黑白名单、端口过滤、域名过滤、IP过滤、异常端口连接等。用户可以通过设置规则来自由的对数据进行过滤。降低计算机被入侵的风险。基于五元组的数据包过滤。   3 关键技术(Key technology)   3.1 驱动程序的设计   NDIS5.0和之前的版本已经被官方抑制,换句话说就是Windows Vista和之后的系统不在支持NDIS5.0,NDIS6.0支持Windows Vista和之后的系统。NDIS6.0内核网络驱动程序可分为微端口驱动程序、协议驱动程序、过滤驱动程序、中间驱动程序。其中过滤驱动程序是NDIS6.0新引入的驱动程序模型。过滤驱动程序提供微端口驱动程序过滤服务,它可以实现数据过滤应用程序安全或其他目的,监控和收集网络数据统计信息的应用程序。过滤驱动可以监视和修改协议驱动程序和微端口的驱动程序之间的交互,过滤驱动程序更容易实现,处理开销低于NDIS中间驱动程序。本防火墙驱动程序部分就是在该框架的基础上实现的。   在NDIS 6.0和以后的版本,NET_BUFFER是网络数据的基本单元。每个NET_BUFFER结构有一个MDL链表,一个MDL链表组成一个完整的数据包。多个NET_BUFFER结构可以被附加到一个NET_BUFFER_LIST结构,NET_BUFFER结构组织是一个以null结尾单链表。下面给出微软对这三个数据结构的定义:   typedef struct _NET_BUFFER {   NET_BUFFER_HEADER NetBufferHeader;   USHORT ChecksumBias;   USHORT Reserved;   NDIS_HANDLE NdisPoolHandle;   ...   } NET_BUFFER,*PNET_BUFFER;   typedef union _NET_BUFFER_HEADER {   NET_BUFFER_DATA NetB

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档