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

2017-01-17 19:41:58王亚伟
软件工程 2016年11期

摘 要:Windows作为时下最流行的个人操作系统,研究Windows环境下的防火墙有一定的现实意义。主机防火墙的数据包过滤算法是线性查找,其性能会随着过滤规则的增加而变得越来越差,为了提高防火墙的运行速度,对非法数据包的拦截能力,提出一种基于HASH双链表的过滤算法,并且通过分析、比较Windows环境下网络数据包的拦截技术,开发了一款基于NDIS6.0过滤驱防火墙软件,经过测试,它对非法数据包具有强大的拦截能力。

关键词:NDIS过滤驱动;防火墙;包过滤;HASH双链表;Duilib

中图分类号: TP391.9 文献标识码:A

1 引言(Introduction)

防火墙在网络安全防护中具有重要作用,从应用的角度来看,防火墙可以分为企业级防火墙和个人防火墙[1]。前者主要是部署在内外部网络的边界,对内外部网络实施隔离,从而保护内部网络的安全,而后者则通过软件的方式来实现,防火墙包过滤按顺序执行从第一条规则开始,直到找到一个匹配的规则。如果没有找到匹配的规则,则数据包被默认规则处理,叫做规则库的线性搜索算法。因此,过滤过程的计算复杂度大大取决于每个过滤规则的长度(规则数量字段),以及找到一个匹配的深度过滤规则的安全政策(过滤规则的数量)[2]。为了提高防火墙的运行速度,将防火墙的过滤规则组织成HASH双链表,实验表明在防火墙规则足够多时候,HASH双链表极大的提高了运行速度。

本文深入研究基于NDIS过滤驱动的数据包拦截方法和Windows内核态驱动程序与用户态应用程序间的通信机制,设计并实现了一种基于Windows内核态的个人防火墙系统。……

登录APP查看全文