论文部分内容阅读
目前市场上大多数的防火墙产品虽然功能强大,但有一个致命缺点:防外不防内。因为它们基于下述假设:内部网是安全的,所有威胁来自网外。所以难以实现对企业内部局域网主机之间的安全通信,也不能很好的解决每一个拨号上网用户所在主机的安全问题。而大多数个人上网之时,并没有真正处于得到防护的安全网络中。个人上网用户多使用Windows操作系统,而Windows操作系统,特别是Win9x系统,本身的安全性就不高。各种Windows漏洞不断被公布,对主机的攻击也越来越多。因此,为了保护主机的安全通信,研制有效的个人防火墙很有必要。 本文主要叙述了基于Windows 2000操作系统、DDK for Windows 2000工具开发包及Visual C++6.0平台下的个人防火墙系统的设计及具体实现。本人通过参考目前市场上多种个人防火墙的设计方案,并且分析比较各个方案的优缺点,结合目前个人防火墙技术的发展趋势,提出了一种基于内核模式和用户模式的双重过滤设计方案,并加以实现。在内核模式下利用TDI虚拟驱动接口挂接技术实现对通过传输层的原始数据封包进行截获,并且通过访问控管规则完成对数据封包的过滤。在应用模式下采用Winsock 2 SPI技术开发DLL程序实现对基于Socket网络连接通信的服务截获和过滤,从而克服了单方面从用户模式或核心模式截获数据包的缺点,极大提高了防火墙系统的截包及数据过滤能力。 本人在程序设计实现过程中采用模块化、结构化的软件设计思想,提高了系统的可移植性及灵活性。总体上说,该系统可以划分为以下三个模块:核心层的过滤驱动程序、用户模式下的封包截获程序及系统用户界面程序。过滤驱动模块采用虚拟驱动过滤技术和IRP分层技术;封包截获模块采用Winsock 2 SPI技术、Winsock 2 API技术及注册表技术;系统用户界面模块主要采用Visual C++ 6.0 MFC类库和Winsock API技术。这三个模块之间通过内存共享技术来完成对控管规则、封包数据、网上邻居名字列表等数据的读写操作,从而很方便的根据控管规则实现对网络封包的认证操作,提高了系统的过滤效率。 最后对该系统进行了功能和抗攻击性能测试,结果表明:本防火墙系统具有良好的性能,能够适应保护个人主机的需求。又鉴于目前防火墙的发展趋势,因此本系统具有广泛的实用价值和商业价值,具有良好的推广前景。