WINDOWS网络数据过滤方法,软件工程硕士论文.docx
《WINDOWS网络数据过滤方法,软件工程硕士论文.docx》由会员分享,可在线阅读,更多相关《WINDOWS网络数据过滤方法,软件工程硕士论文.docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、WINDOWS网络数据过滤方法,软件工程硕士论文本篇论文目录导航:【题目】【第一章】【第二章】【3.1】【3.2 - 3.4】 WINDOWS网络数据过滤方式方法【4.1 - 4.3】【4.4 - 4.6】【第五章】【总结/以下为参考文献】 3.2 WINDOWS 网络数据过滤方式方法 拦截 Windows 下的网络数据包需要在两个层面进行操作:用户态USER-MODE形式和内核态KERNEL-MODE形式。在用户态形式下,实现数据包过滤简单方便但功能和起到的作用较小;在内核态形式下,实现数据包过滤功能强大但是实现较为复杂20. 3.2.1 用户形式下数据过滤方式方法 在用户形式下,数据过滤方
2、式方法有替换 Winsock2 DLL、Winsock2 SPIService Providerinterface服务提供者和 Windows 包过滤接口。 1重载 Winsock2 动态链接库 重载 Winsock2 DLL 的主要方式方法是重载 WS2_32.DLL 中的有关网络收发函数,添加网络封包接收/发送前后的自定义功能,实现数据包的拦截和监听。从图 3.1 观察,Winsock2 应用程序套接字通过 Winsock2 动态链接库进入内核,重载 Winsock2 DLL 的有关的函数就能够实现拦截数据包的目的。重载 Winsock2 DLL 是 Winsock 功能的扩展重要方式。但
3、是,这种网络数据包过滤技术过滤数据包不彻底,而且系统 Winsock2 动态链接库包含的私有函数没有文档资料,导致开发应用程序强健性有负面影响。 2Winsock2 分层传输服务提供者SPI Winsock2 SPIService Provider Interface,服务提供接口分为传输提供者和名字空间提供者。在应用程序访问网络的经过中,都要通过 WS2_32.DLL 和传输服务提供者的严格数据交换。详细的交换经过如下:WS2_32.DLL 根据套接字参数信息选择服务提供者,并有该服务提供者管理应用程序的实现经过。在 SPI 协议链的顶端增加分层协议服务提供者,SPI 协议链将分层服务提供者
4、和基础服务提供者组织起来,数据包就能够被拦截下来,SPI 是数据包在应用层最好拦截点。SPI 中的分层协议及协议链构造组成如此图 3.8 所示。Winsock2 传输服务提供者能够分为如下两种: a基础服务提供者,执行网络传输协议的详细细节,在网络上收发数据核心网络协议功能,有传输数据、流量监控、错误过失控制等。 b分层服务提供者,负责执行高级的自定义通信功能,依靠基础服务提供进行数据交换。 Ws2_32.dll 和一个基础服务提供者之间为一个或多个分层服务提供者执行不同的通信功能。Winsock2 SPI 工作在应用层上,CPU 占用率较低,执行效率高,编程和调试较为方便容易,并且封包未做切
5、片处理,对内容过滤实现起来愈加容易。但是,应用程序通过 TDI 过滤驱动不经过 SPI 调用 TCP/IP 传送数据包,这样对于一个病毒和攻击将无法检测到,过滤的数据包是不安全的。防火墙过滤程序仅仅采用这种过滤技术是不能保证主机安全的。并且,最好的编写 SPI 的计算机应用程序一定要用标准的安装方式来进行29,否则,假如同时安装了几个使用 SPI 的先进技术的计算机软件,有使用非标准安装方式的计算机软件,会造成有的被绕过或者不能正常网络通信。 3Windows 包过滤接口 Windows 包过滤接口允许用户形式下的应用程序或者服务指定一组 过滤描绘叙述子 ,TCP/IP 组件使用它们过滤数据包
6、。但是,包过滤的规则的设置和执行会面临有很多限制,对于个人防火墙来讲是远远不够的。 用户形式下的数据过滤是在 Winsock 层实现的,但是对于通过 SOCKET 通信协议传送的数据包却无法拦截和过滤,这样诸多垃圾邮件、恶意软件、木马等都能够避开防火墙的检测和过滤来攻击主机系统。总之,仅仅使用用户形式下的过滤方式方法设计功能强大的防火墙系统是不现实,需要与内核形式下过滤方式方法相结合使用。 3.2.2 内核形式下数据过滤方式方法 在内核形式下,数据过滤方式方法有 TDITransPort Data Interface过滤驱动程序、NDIS 中间层驱动程序NDIS Intermediate Dr
7、iver,IM以及 NDIS 挂钩过滤驱动程序17. 1TDI 过滤驱动程序 TDI 过滤驱动程序主要针对网络层和传输层实现数据包的过滤,固然 TDI 过滤驱动形式在微软新发布的系统使用的较少,逐步被一些新开发的驱动形式 WFP 所取代,但是为了应用程序的兼容性仍然一部分开发程序使用这种过滤驱动形式,另外,TDI 过滤驱动还具有监控网络流量,对整个系统网络流量进行分析和管理的功能,尤其在防火墙系统的驱动过滤程序仍使用该过滤技术,如 360 安全卫士流量防火墙。 首先,将 DriverEntry 里替换掉所有的派遣函数为自个的函数,接着将开创建立的设备挂载到DeviceTcp 和DeviceUd
8、p 等 TDI 标准设备的设备栈上,这样就完成了一个 TDI Filter 的初始化。所有 TCP/UDP 协议的通讯程序进入到内核需要调用 afd.sys 驱动,afd.sys 驱动管理套接字都是 TDI 客户端,例如通过 SOCKET 建立 TCP 连接时,afd.sys 会打开 TDI 的 TCP 设备,至少开创建立地址和连接两个对象,地址对象用来绑定本地地址,连接对象跟踪远程连接,负责远程连接对象数据的接收或者发送。Afd.sys 将开创建立的两个对象关联起来,连接对象使用地址对象与远程跟踪的数据通讯。TCP 协议中,客户端机器工作情况如上面描绘叙述,服务端工作情况与客户端基本一致,只
9、是稍稍有些差异不同。应用程序调用函数 socket,函数 bind、函数 listen后,afd.sys 驱动需要先开创建立地址对象,在开创建立完地址对象之后才开创建立连接对象,连接对象与地址对象关联起来后,客户端发出连接请求,TDI_EVENT_CONNECT 事件会做出响应,连接成功之后就能够与客户端发送或接收数据。对于 UDP 通讯,是无连接的通信,开创建立一个地址对象,使用地址对象进行通信。 2NDIS 中间层驱动程序 网络驱动程序接口规范Network Driver Interface Specification,NDIS为网络驱动开发的标准接口,通过传输协议与网卡驱动之间通信,位于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文化交流
限制150内