Windows驱动_WFP之一WFP是什么

来源:互联网 发布:linux 网页中文乱码 编辑:程序博客网 时间:2024/04/30 06:39

 现在的网络安全问题,越来越受到重视,微软在VISTA以后,使用了WFP平台来代替之前XP和03中的基于包过滤的技术,比如Transport Driver Interface(TDI)过滤,Network Driver Interface Specification(NDIS)过滤,Winsock layered Service Providers(LSP).WFP是一组API和系统服务,它给网络过滤的应用提供了一种平台。WFP的这些API
可以在操作系统网络堆栈的不同层次进行包的处理,在数据到达目的地之前,进行过滤或者修改。
       
              我们所知道的Windows Firewall with Advanced Security(WFAS)也是使用WFP,也是使用的WFP的抽象出来的WFAS API。这些API既包含用户模式的API也包含内核模式的API.


              Filter Engine


             可以在系统的任何层次对进行网络传输的任何数据进行过滤。


            “Callout”过滤驱动在分类的时候被回调调用。


             在调用的时候,可以强制返回许可或者阻塞。


             在不同的政策间提供仲裁。


             比如,提供优先级裁决,比如应用程序被配置去保证网络数据传输安全,但是本地的防火墙被配置阻止应用程序运行。


             Base Filtering Engine


            接受过滤驱动和一些对平台的设定。


            报告系统的当前状态,包含统计信息。


            平台接受控制的一些强制安全模式,比如本地管理员可以增加过滤,其他用户只能浏览。


            激活系统中的另外一些部件的控制设定。比如,IPsec 谈判政策需要IKE/AutiIP模块,过滤器到过滤引擎。


            Shims


            驻留在网络堆栈和过滤引擎之间的内核部件。垫片使过滤决定对过滤引擎分类。


            应用层强制垫片。
 
            传输层模块垫片。
 
            网络层模块垫片。

            互联网控制消息协议(ICMP)错误垫片。

            放弃垫片。

            流垫片。


            Callouts


            驱动用于过滤暴露的一组函数,主要是:


             执行IPsec 处理


             调整过滤行为的全状态


             执行一些隐身模式的过滤(静默丢掉包不被请求)。


             控制TCP chimney offload


            和Teredo 服务进行联系。


            Application Programming Interface


            一组用于开发应用程序的API.


            WFP Features功能


       提供基于包过滤的基础,ISV可以预装指定的过滤模块。


       IPV4和IPV6都支持。


       允许数据过滤,修改,插入。


       允许在一个应用,一个用户,一个连接,一个网络接口,一个端口上使能包的过滤。


       提供启动时安全,直到BFE启动。


       使能有状态连接的过滤。


       能够处理IPsec预前或延后数据加密


       允许结合IPSec和防火墙过滤。


       提供一种管理体系,能够发现什么,特定的过滤器应该被激活。这个可以防止不同的供应商的不同的过滤器出现冲突。


       能够处理很多包的重组和状态追踪。


       包含一些通用的用户通知,通知一些过滤器的一些改变情况。


       执行一些枚举函数,报告系统的状态。


       使用一些网络事件记录IPsec错误和包丢失。


       支持网络诊断框架(NDF)帮助类。


       支持Winsock APIde secure socket extensions,允许通过配置WFP,网络应用去包含它们的传输。


       在ALE层,通过只处理连接中的第一个包,最大限度减少网络效率的影响。


       整合硬件的offload,当内核模式的callout模块可以使用硬件来执行一些特定的包检查任务。


       再来看一张,总体的WFP的结构示意图。


       


转自:http://blog.csdn.net/z18_28_19/article/details/12586523

0 0
原创粉丝点击