現在的網絡安全問題,越來越受到重視,微軟在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