两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

多層防火墻結(jié)構(gòu)的制作方法

文檔序號:6407211閱讀:204來源:國知局
專利名稱:多層防火墻結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)安全性。更具體地說,本發(fā)明涉及在一個或多個網(wǎng)絡(luò)設(shè)備中所執(zhí)行的防火墻結(jié)構(gòu)。
背景技術(shù)
網(wǎng)絡(luò)協(xié)議的設(shè)計(jì)用于促進(jìn)通過公開的數(shù)據(jù)交換而在各個網(wǎng)絡(luò)設(shè)備之間進(jìn)行通信。這種公開的數(shù)據(jù)交換大大增強(qiáng)了網(wǎng)絡(luò)設(shè)備完成任務(wù)的用途,同時(shí),它也引起一些問題,這是因?yàn)榫W(wǎng)絡(luò)協(xié)議不是為網(wǎng)絡(luò)安全性而設(shè)計(jì),因此一般不提供網(wǎng)絡(luò)安全性。被耦合到公用網(wǎng)和專用網(wǎng)(例如,局域網(wǎng)(LANs)、廣域網(wǎng)(WANs)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng))的計(jì)算機(jī)容易受到直接或間接地與該網(wǎng)絡(luò)耦合的其他網(wǎng)絡(luò)設(shè)備的惡意攻擊。這類惡意的攻擊包括盜竊數(shù)據(jù)、“服務(wù)拒絕”(DOS)攻擊、計(jì)算機(jī)病毒擴(kuò)散和類似的攻擊。當(dāng)將計(jì)算機(jī)耦合到網(wǎng)絡(luò)時(shí),會出現(xiàn)其他有關(guān)的問題(例如,控制兒童對不合需要的或不適當(dāng)?shù)膚eb站點(diǎn)的訪問)。
防火墻一般是用來保護(hù)用戶個人、網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)避免遭遇惡意攻擊的一種工具,同時(shí),也增加了通過實(shí)施策略來控制網(wǎng)絡(luò)上的數(shù)據(jù)交換的能力。通過檢查網(wǎng)絡(luò)信息包,并通過根據(jù)該檢查來確定是應(yīng)該允許還是相反地阻斷這些信息包進(jìn)一步穿過網(wǎng)絡(luò),防火墻可執(zhí)行策略。
經(jīng)由防火墻而加以執(zhí)行的這項(xiàng)策略由一個或多個過濾器來定義。每個過濾器包括過濾器參數(shù)和關(guān)聯(lián)的動作。這些過濾器參數(shù)被用來識別受制于該防火墻策略的網(wǎng)絡(luò)信息包,并包括諸如硬件地址(例如,“媒體訪問控制”(MAC)地址)、網(wǎng)絡(luò)地址(例如,“網(wǎng)際協(xié)議”(IP)地址)、協(xié)議類型(例如,“傳輸控制協(xié)議”(TCP))、端口號和類似物等信息。該動作定義應(yīng)該如何處置具有與這些過濾器參數(shù)相匹配的參數(shù)的信息包。一個特殊的例子是該過濾器包括“統(tǒng)一資源定位器”(URL)地址(例如,“http//www.foo.com”),作為它的參數(shù)。該過濾器進(jìn)一步使阻斷動作(即,丟棄該信息包)與那個URL地址相關(guān)聯(lián)。只要防火墻檢查信息包并且通過那個檢查而將URL地址“http//www.foo.com”識別為被嵌入該信息包中,服務(wù)器就丟棄該信息包,從而防止它穿過網(wǎng)絡(luò)。
通過包括分層網(wǎng)絡(luò)結(jié)構(gòu)的網(wǎng)絡(luò)堆棧來發(fā)送和接收信息包,網(wǎng)絡(luò)設(shè)備可以交換數(shù)據(jù)。存在不同的網(wǎng)絡(luò)結(jié)構(gòu)模型,但大多數(shù)至少包括應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和鏈路層。網(wǎng)絡(luò)信息包序貫地穿過每個層,并且,當(dāng)每個層被穿過時(shí),信息包經(jīng)歷處理。關(guān)于出站信息包,應(yīng)用層根據(jù)應(yīng)用協(xié)議(例如,其中的一些是“超文本傳輸協(xié)議”(HTTP)、“文件傳輸協(xié)議”(FTP)和“簡單郵件傳輸協(xié)議”(SMTP))來處理數(shù)據(jù)。其他的層(例如,網(wǎng)絡(luò)層和傳輸層)通過將該數(shù)據(jù)嵌入TCP頭部和IP頭部中,來對其進(jìn)行分組(packetize)。這些層通過(例如)分析頭部、為數(shù)據(jù)解除分組(unpacketize)等,來為入站信息包執(zhí)行互換處理。由這些層執(zhí)行的分層“堆棧”結(jié)構(gòu)和處理功能會產(chǎn)生動態(tài)信息包結(jié)構(gòu),由此,當(dāng)信息包穿過網(wǎng)絡(luò)協(xié)議堆棧時(shí),包括這些信息包參數(shù)的信息包內(nèi)容會發(fā)生變化。
防火墻檢查位于分層網(wǎng)絡(luò)堆棧內(nèi)的檢查點(diǎn)處的信息包。一方面,該檢查點(diǎn)在應(yīng)用層處。例如,防火墻被用作“分層服務(wù)供應(yīng)者”(LSP)。應(yīng)用層處的信息包包括基礎(chǔ)數(shù)據(jù),該基礎(chǔ)數(shù)據(jù)將被傳送到另一個網(wǎng)絡(luò)設(shè)備或者已從另一個網(wǎng)絡(luò)設(shè)備那里被加以接收。通過檢查該應(yīng)用層處的該信息包,可允許防火墻識別應(yīng)用層參數(shù)(例如,URL地址)并將這些應(yīng)用層參數(shù)與這些過濾器參數(shù)進(jìn)行比較。但是,其他的信息包參數(shù)(例如,IP地址、端口號、MAC地址和類似物)不可用,這是因?yàn)樗鼈円催€沒有被加入出站信息包,要么已從入站信息包被分析掉。
另一方面,在網(wǎng)絡(luò)堆棧(作為被置于鏈路層與網(wǎng)絡(luò)層之間的中間驅(qū)動器)的較低層次處執(zhí)行防火墻檢查點(diǎn)。網(wǎng)絡(luò)堆棧的這些較低層次處的信息包包括最大數(shù)量的參數(shù)(例如,接口號、MAC地址、IP地址、協(xié)議類型、端口和有效載荷數(shù)據(jù))。雖然這些信息包包括這類參數(shù),但是,這并不表示認(rèn)為可以容易地識別這些參數(shù)。在該防火墻接收該信息包之后,該防火墻需要分析并解釋該有關(guān)的信息包參數(shù),用于和這些過濾器參數(shù)進(jìn)行比較。這樣,網(wǎng)絡(luò)堆棧中的這些層以及該防火墻兩者都執(zhí)行多余的信息包分析和解釋功能。
發(fā)明概述本發(fā)明針對一種防火墻結(jié)構(gòu),該防火墻結(jié)構(gòu)允許將防火墻過濾器應(yīng)用于網(wǎng)絡(luò)堆棧內(nèi)的所有層處的網(wǎng)絡(luò)信息包。該結(jié)構(gòu)包括能夠處理來自網(wǎng)絡(luò)信息包的層參數(shù)的設(shè)置層處理器。這些層參數(shù)是與該層處理器關(guān)聯(lián)的參數(shù);這些層參數(shù)包括該層處理器從該網(wǎng)絡(luò)信息包中分析的、加入該網(wǎng)絡(luò)信息包的或從該網(wǎng)絡(luò)信息包中導(dǎo)出的參數(shù)。這些層處理器進(jìn)一步能夠發(fā)出包括這些層參數(shù)的分類請求。
該結(jié)構(gòu)也包括第一個防火墻引擎,該防火墻引擎包括層接口、一組被安裝的過濾器和查找部件。該層接口接收作為該分類請求的一部分而被加以發(fā)送的這些層參數(shù)。這第一個防火墻引擎查找部件使用這些層參數(shù)來從這個被安裝的過濾器組中識別一個或多個匹配過濾器。每個匹配過濾器包括一個動作,該動作指示該層處理器是否允許該信息包進(jìn)一步穿過網(wǎng)絡(luò),或者是否阻斷信息包。這第一個防火墻引擎經(jīng)由該層接口而至少將一個動作返回到該層處理器。
在本發(fā)明的實(shí)施例中,層處理器保持信息包上下文。層處理器從前一層處理器那里接收信息包上下文,并將信息包上下文發(fā)送到第一個防火墻引擎。第一個防火墻引擎中的該查找部件結(jié)合這些層參數(shù)來使用信息包上下文,以識別這一個或多個匹配過濾器。該層處理器也通過增加這些層參數(shù)、然后將修改過的信息包上下文發(fā)送到下一層處理器,來修改信息包上下文。
在本發(fā)明的另一個實(shí)施例中,一個或多個呼出(callout)被包括在內(nèi),作為該防火墻結(jié)構(gòu)的一部分。這一個或多個呼出模塊中的每個呼出模塊提供(允許和阻斷以外的)增加的功能性,例如信息包記錄功能、“網(wǎng)際協(xié)議安全性”(IPSec)驗(yàn)證和雙親控制的執(zhí)行。當(dāng)呼出模塊被識別為這些匹配過濾器之一中的那個動作時(shí),在該信息包上執(zhí)行該呼出模塊。
在本發(fā)明的另一個實(shí)施例中,提供了第二個防火墻引擎。第二個防火墻引擎經(jīng)由管理API而將新的過濾器加入這個被安裝的過濾器組。第二個防火墻引擎也包括第一個防火墻引擎的實(shí)例,它被稱作“過濾器模塊”,該過濾器模塊在第二個防火墻引擎內(nèi)復(fù)制第一個防火墻引擎的各項(xiàng)服務(wù)。
通過以下參照附圖而對說明性實(shí)施例的詳細(xì)描述,本發(fā)明的額外的特點(diǎn)和優(yōu)點(diǎn)將會變得一目了然。
附圖簡述所附如權(quán)利要求書詳細(xì)地陳述了本發(fā)明的這些特點(diǎn),但通過以下結(jié)合附圖的詳細(xì)說明,可以最佳程度地理解本發(fā)明及其目的和優(yōu)點(diǎn)。在這些附圖中

圖1是框圖,大體說明了其上駐留本發(fā)明的示范計(jì)算機(jī)系統(tǒng);圖2是框圖,大體說明了使用本發(fā)明的示范網(wǎng)絡(luò)環(huán)境;圖3是框圖,大體說明了本發(fā)明的防火墻結(jié)構(gòu);圖4是框圖,說明了用于本發(fā)明的示范過濾器;圖5是框圖,說明了用于本發(fā)明的示范信息包上下文的數(shù)據(jù)結(jié)構(gòu);圖6是框圖,說明了用于本發(fā)明的示范應(yīng)用編程接口組;圖7是框圖,說明了用于本發(fā)明的示范應(yīng)用編程接口;圖8是框圖,說明了根據(jù)本發(fā)明的、由網(wǎng)絡(luò)層來執(zhí)行的功能;以及,圖9是框圖,說明了用于本發(fā)明的示范呼出組。
發(fā)明的詳細(xì)說明揭示了一種防火墻結(jié)構(gòu),該防火墻結(jié)構(gòu)允許多層處理(在這里被稱作“層”)處的過濾。該結(jié)構(gòu)包括用戶模式處理和在操作系統(tǒng)中執(zhí)行的核心模式處理。作為選擇,在操作系統(tǒng)以外的一個或多個程序模塊中或在單一操作系統(tǒng)模式以內(nèi)執(zhí)行該防火墻結(jié)構(gòu)。
該核心模式處理包括多個層,這多個層包括協(xié)議堆棧、核心防火墻引擎以及一個或多個呼出。協(xié)議堆棧包括應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和鏈路層。按需要增加或從該結(jié)構(gòu)中刪除額外的層。這些層每個都構(gòu)成請求層,請求層能夠從前一個層或處理那里接收網(wǎng)絡(luò)信息包和對應(yīng)的信息包上下文數(shù)據(jù)。然后,請求層經(jīng)由層API,將分類請求發(fā)給核心防火墻引擎。分類請求包括由請求層接收的信息包、該信息包上下文和與請求層關(guān)聯(lián)的一組層參數(shù)。核心防火墻引擎處理該請求,并返回動作。舉例來講,該動作指示該請求層如何處置該信息包(例如,允許或阻斷)。如果該動作是允許,則該請求層根據(jù)層協(xié)議來處理該信息包,將該信息包上下文修改成包括這些層參數(shù),并將信息包和信息包上下文傳遞到下一個層。如果該動作是阻斷,則請求層丟棄信息包,并且不將信息包傳遞到這下一個層。作為阻斷動作的結(jié)果,請求層可能會執(zhí)行額外的功能(例如,在丟棄TCP信息包的情況下,拆毀TCP連接)。
核心防火墻引擎包括層API、一組被安裝的過濾器和呼出API。這個被安裝的過濾器組中的每個過濾器包括一組過濾器條件和一個關(guān)聯(lián)的動作。核心防火墻引擎通過識別一個或多個匹配過濾器,來處理從該請求層那里被發(fā)送的分類請求。這些匹配過濾器具有跟這些層參數(shù)和信息包上下文相匹配的過濾器條件。一旦識別這些匹配過濾器,就按過濾器優(yōu)先級的順序來應(yīng)用它們。如果正在被應(yīng)用的過濾器的這個動作是允許或阻斷,則將這個動作返回到請求層。如果該動作是呼出,則將該請求層所發(fā)出的該分類請求連同匹配過濾器標(biāo)識一起傳遞到這些呼出模塊中的一個呼出模塊。該呼出模塊執(zhí)行其被編程的功能,并將動作返回到核心防火墻引擎。
核心防火墻引擎按優(yōu)先級順序?qū)⑵ヅ溥^濾器應(yīng)用于信息包,直到至少指定終止動作為止。一旦指定該終止動作,就將它返回到請求層,并且不應(yīng)用額外的匹配過濾器。如果沒有為信息包識別匹配過濾器,則向該請求層通知不曾發(fā)現(xiàn)匹配過濾器;然后,請求層決定如何處置信息包。通常,在沒有識別匹配過濾器的情況下,請求層處置信息包,好象返回允許動作一樣。
示范用戶模式處理包括用戶模式防火墻引擎以及一個或多個策略供應(yīng)器。這些策略供應(yīng)器從任何合適的來源(例如,易失或非易失存儲器)獲得策略,或者通過圖形用戶界面或類似的工具而被用戶輸入。該策略是用于呈現(xiàn)新的過濾器的信息源,包括過濾器條件和關(guān)聯(lián)動作的集合。
該用戶模式也包括該用戶防火墻引擎內(nèi)的核心防火墻引擎的實(shí)例,從而允許創(chuàng)建用戶模式層。然后,用戶模式層使用核心防火墻引擎的用戶模式實(shí)例來安裝過濾器,并且識別與一組參數(shù)相匹配的過濾器,這組參數(shù)允許在該用戶模式以內(nèi)應(yīng)用過濾。
在本發(fā)明的實(shí)施例中,從防火墻引擎到一組呼出模塊的呼出接口實(shí)質(zhì)上允許這些防火墻性能的無限擴(kuò)展。舉例來講,HTTP上下文呼出通過識別可接受的和不能接受的URL地址,來提供雙親控制特點(diǎn)。IPSec呼出驗(yàn)證應(yīng)該使用IPSec的信息包已經(jīng)適當(dāng)?shù)亟?jīng)歷IPSec處理。記錄呼出記入符合所建立的標(biāo)準(zhǔn)的信息包,從而促進(jìn)以后對信息包的檢查。侵入檢測呼出根據(jù)已知的算法來識別可疑的信息包。
參考這些附圖(其中,相似的參考數(shù)字提及相似的元件),本發(fā)明被展示為在合適的計(jì)算環(huán)境中加以執(zhí)行。雖然未作要求,但是,將在正由個人計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令(例如,程序模塊)的一般上下文中描述本發(fā)明。通常,程序模塊包括執(zhí)行特殊任務(wù)或?qū)嵤┨厥獾某橄髷?shù)據(jù)類型的例行程序、程序、對象、部件、數(shù)據(jù)結(jié)構(gòu)等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地記憶存儲設(shè)備和遠(yuǎn)程記憶存儲設(shè)備中。
圖1展示了可以在其上執(zhí)行本發(fā)明的合適的計(jì)算系統(tǒng)環(huán)境100的例子。計(jì)算系統(tǒng)環(huán)境100只是合適的計(jì)算環(huán)境的一個例子,它并不意在對本發(fā)明的使用或功能性的范圍提出任何限制。也不應(yīng)該將計(jì)算環(huán)境100解釋為具有涉及示范操作環(huán)境100中所展示的任何一個部件或部件組合的任何依賴性或要求。
本發(fā)明可用于眾多其他的通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置。可能適用于本發(fā)明的眾所周知的計(jì)算系統(tǒng)、環(huán)境和/或配置的例子包括(但不局限于)個人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境,以及類似物。
可以在正由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令(例如,程序模塊)的一般上下文中描述本發(fā)明。通常,程序模塊包括執(zhí)行特殊任務(wù)或?qū)嵤┨厥獾某橄髷?shù)據(jù)類型的例行程序、程序、對象、部件、數(shù)據(jù)結(jié)構(gòu)等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括記憶存儲設(shè)備的本地計(jì)算機(jī)存儲介質(zhì)和遠(yuǎn)程計(jì)算機(jī)存儲介質(zhì)中。
參照圖1,用于執(zhí)行本發(fā)明的示范系統(tǒng)包括采取計(jì)算機(jī)110的形式的通用計(jì)算設(shè)備。計(jì)算機(jī)110的部件可以包括(但不局限于)處理單元120、系統(tǒng)存儲器130和系統(tǒng)總線121,系統(tǒng)總線121將包括系統(tǒng)存儲器的各種系統(tǒng)部件耦合到處理單元120。系統(tǒng)總線121可以是幾種類型的總線結(jié)構(gòu)(包括存儲總線或存儲控制器、外圍總線和使用各種總線構(gòu)造中的任何總線構(gòu)造的局域總線)中的任何總線結(jié)構(gòu)。舉例來講(不作限制),這類結(jié)構(gòu)包括“工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)”(ISA)總線、“微通道結(jié)構(gòu)”(MCA)總線、“增強(qiáng)的ISA”(EISA)總線、“視頻電子標(biāo)準(zhǔn)協(xié)會”(VESA)局域總線和也被稱作“中層樓(Mezzanine)總線”的“外圍部件互連”(PCI)總線。
計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)110存取的任何可用介質(zhì),它包括易失和非易失介質(zhì)、可移動和不可移動的介質(zhì)。舉例來講(不作限制),計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括易失和非易失的可移動和不可移動的介質(zhì),這些介質(zhì)用關(guān)于信息(例如,計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù))存儲的任何方法或技術(shù)來加以執(zhí)行。計(jì)算機(jī)存儲介質(zhì)包括(但不局限于)RAM、ROM、EEPROM、快閃存儲器或其他存儲技術(shù)、CD-ROM、數(shù)字通用光盤(DVD)或其他光盤存儲器、盒式磁帶、磁帶、磁盤存儲器或其他磁性存儲設(shè)備、或可以被用來存儲所需信息并可以由計(jì)算機(jī)110來進(jìn)行存取的其他任何介質(zhì)。通信介質(zhì)通常具體表現(xiàn)為在調(diào)制數(shù)據(jù)信號(例如,載波或其他傳送機(jī)制)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù),它包括任何信息傳遞介質(zhì)。術(shù)語“調(diào)制數(shù)據(jù)信號”意味著一種信號,該信號的一個或多個特征按這樣的方式來加以設(shè)置或更改,以便為該信號中的信息編碼。舉例來講(不作限制),通信介質(zhì)包括有線介質(zhì)(例如,有線網(wǎng)絡(luò)或直線連接)和無線介質(zhì)(例如,聲音、RF、紅外線和其他無線介質(zhì))。以上任何內(nèi)容的組合也應(yīng)該被包括在計(jì)算機(jī)可讀介質(zhì)的范圍以內(nèi)。
系統(tǒng)存儲器130包括采取易失和/或非易失存儲器(例如,只讀存儲器(ROM)131和隨機(jī)存取存儲器(RAM)132)的形式的計(jì)算機(jī)存儲介質(zhì)。基本輸入/輸出系統(tǒng)133(BIOS)通常被存儲在ROM 131中,該基本輸入/輸出系統(tǒng)包含有助于在計(jì)算機(jī)110內(nèi)的各個元件之間傳送信息(例如,在啟動期間)的這些基本例行程序。RAM 132通常包含可立即由處理單元120存取并且/或者目前正由處理單元120進(jìn)行操作的數(shù)據(jù)和/或程序模塊。舉例來講(不作限制),圖1展示了操作系統(tǒng)134、應(yīng)用程序135、其他程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110也可以包括其他可移動/不可移動的易失/非易失計(jì)算機(jī)存儲介質(zhì)。只舉例來講,圖1展示了從不可移動的非易失磁性介質(zhì)讀取或?qū)ζ鋵懭氲挠脖P驅(qū)動器141、從可移動的非易失磁盤152讀取或?qū)ζ鋵懭氲拇疟P驅(qū)動器151,以及從可移動的非易失光盤156(例如,CD ROM或其他光學(xué)介質(zhì))讀取或?qū)ζ鋵懭氲墓獗P驅(qū)動器155??梢员挥糜谠撌痉恫僮鳝h(huán)境中的其他可移動/不可移動的易失/非易失計(jì)算機(jī)存儲介質(zhì)包括(但不局限于)卡型盒式磁帶機(jī)、快閃存儲卡、數(shù)字通用光盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM和類似的存儲介質(zhì)。硬盤驅(qū)動器141通常通過不可移動的存儲接口(例如,接口140)而被連接到系統(tǒng)總線121,磁盤驅(qū)動器151和光盤驅(qū)動器155通常由可移動的存儲接口(例如,接口150)連接到系統(tǒng)總線121。
以上所討論的和圖1中所展示的這些驅(qū)動器及其關(guān)聯(lián)的計(jì)算機(jī)存儲介質(zhì)為計(jì)算機(jī)110提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的存儲。在圖1中,例如,硬盤驅(qū)動器141被展示為存儲操作系統(tǒng)144、應(yīng)用程序145、其他程序模塊146和程序數(shù)據(jù)147。注意,這些部件可以等同于或不同于操作系統(tǒng)134、應(yīng)用程序135、其他程序模塊136和程序數(shù)據(jù)137。這里為操作系統(tǒng)144、應(yīng)用程序145、其他程序模塊146和程序數(shù)據(jù)147提供不同的號碼,以展示它們至少是不同的副本。用戶可以通過輸入設(shè)備(例如,鍵盤162)和定點(diǎn)設(shè)備161(通常被稱作“鼠標(biāo)”、“跟蹤球”或“觸墊”),來將命令和信息輸入計(jì)算機(jī)110。其他輸入設(shè)備(未示出)可以包括話筒、操縱桿、游戲墊、圓盤式衛(wèi)星電視天線、掃描儀或類似的輸入設(shè)備。這些和其他的輸入設(shè)備經(jīng)常通過被耦合到該系統(tǒng)總線的用戶輸入接口160而被連接到處理單元120,但也可以由其他接口和總線結(jié)構(gòu)(例如,并行端口、游戲端口或通用串行總線(USB))來加以連接。監(jiān)視器191或其他類型的顯示設(shè)備也經(jīng)由接口(例如,視頻接口190)而被連接到系統(tǒng)總線121。除該監(jiān)視器以外,計(jì)算機(jī)也可以包括其他外圍輸出設(shè)備(例如,揚(yáng)聲器197和打印機(jī)196),這些外圍輸出設(shè)備可以通過輸出外圍接口195來加以連接。
計(jì)算機(jī)110可以在使用與一臺或多臺遠(yuǎn)程計(jì)算機(jī)(例如,遠(yuǎn)程計(jì)算機(jī)180)的邏輯連接的聯(lián)網(wǎng)環(huán)境中進(jìn)行操作。遠(yuǎn)程計(jì)算機(jī)180可以是另一臺個人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其他共同的網(wǎng)絡(luò)節(jié)點(diǎn),它通常包括以上相對于計(jì)算機(jī)110而描述的許多或所有這些元件,盡管圖1中只展示了記憶存儲設(shè)備181。圖1中所描繪的這些邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可以包括其他網(wǎng)絡(luò)。這類聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中很普遍。
當(dāng)被用于LAN聯(lián)網(wǎng)環(huán)境中時(shí),計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170而被連接到LAN 171。當(dāng)被用于WAN聯(lián)網(wǎng)環(huán)境中時(shí),計(jì)算機(jī)110通常包括調(diào)制解調(diào)器172或用于在WAN 173(例如,因特網(wǎng))上建立通信的其他裝置。調(diào)制解調(diào)器172(可能是內(nèi)置的,也可能是外置的)可以經(jīng)由用戶輸入接口160或其他合適的機(jī)制而被連接到系統(tǒng)總線121。在聯(lián)網(wǎng)環(huán)境中,相對于個人計(jì)算機(jī)110或其各個部分而描繪的程序模塊可以被存儲在該遠(yuǎn)程記憶存儲設(shè)備中。舉例來講(不作限制),圖1將遠(yuǎn)程應(yīng)用程序185展示為駐留在存儲設(shè)備181上。將會理解所示的這些網(wǎng)絡(luò)連接起示范的作用,可以使用在各臺計(jì)算機(jī)之間建立通信鏈路的其他裝置。
在下文中,除非另有指示,將參照動作和一臺或多臺計(jì)算機(jī)所執(zhí)行的操作的符號表示來描述本發(fā)明。照此,將會理解這類動作和操作(有時(shí)被稱作“是計(jì)算機(jī)執(zhí)行的”)包括用結(jié)構(gòu)化形式來表現(xiàn)數(shù)據(jù)的電信號的計(jì)算機(jī)的處理單元所執(zhí)行的操作。這項(xiàng)操作變換該數(shù)據(jù)或?qū)⑵浔4嬖谟?jì)算機(jī)的存儲系統(tǒng)中的各個位置,這樣,可按精通該技術(shù)領(lǐng)域的人所熟悉的方式來重新配置或改變計(jì)算機(jī)的這個操作。那里保存有數(shù)據(jù)的這些數(shù)據(jù)結(jié)構(gòu)是存儲器的物理位置,存儲器具有由該數(shù)據(jù)的格式定義的特定屬性。但是,盡管前述上下文中描述本發(fā)明,但這并不意在起限制的作用,如精通該技術(shù)領(lǐng)域的人將會理解的,也可以在硬件中執(zhí)行下文中所描述的這各種動作和操作。
現(xiàn)在,將參照圖2來描述其中使用本發(fā)明的防火墻結(jié)構(gòu)的一種網(wǎng)絡(luò)環(huán)境。該網(wǎng)絡(luò)本質(zhì)上起示范的作用,因?yàn)榭稍诒获詈系饺魏尉W(wǎng)絡(luò)配置的任何網(wǎng)絡(luò)設(shè)備中執(zhí)行本發(fā)明的防火墻結(jié)構(gòu)。該網(wǎng)絡(luò)環(huán)境包括專用網(wǎng)200和公用網(wǎng)202。專用網(wǎng)200和公用網(wǎng)202屬于任何合適的類型(例如,局域網(wǎng)(LANs)、廣域網(wǎng)(WANs)、內(nèi)聯(lián)網(wǎng)、因特網(wǎng)或其任何組合)。
該網(wǎng)絡(luò)環(huán)境包括多個網(wǎng)絡(luò)設(shè)備204、206、208、210和212。網(wǎng)絡(luò)設(shè)備204、206被耦合到專用網(wǎng)200。網(wǎng)絡(luò)設(shè)備210、212被耦合到公用網(wǎng)202。網(wǎng)絡(luò)設(shè)備208被耦合到專用網(wǎng)200和公用網(wǎng)202,并在這兩個網(wǎng)絡(luò)之間提供接口。這些網(wǎng)絡(luò)設(shè)備被耦合到使用任何合適的技術(shù)(例如,以太網(wǎng)、1394或802.11(b))的公用網(wǎng)和專用網(wǎng)。這些網(wǎng)絡(luò)設(shè)備被進(jìn)一步加以執(zhí)行,作為任何合適的計(jì)算設(shè)備(例如,個人計(jì)算機(jī)、服務(wù)器、手持設(shè)備、打印機(jī)、交換器、路由器、橋接器、轉(zhuǎn)發(fā)器或類似的設(shè)備)。
網(wǎng)絡(luò)設(shè)備208包括防火墻214以及一個或多個過濾器216。防火墻214是根據(jù)本發(fā)明的結(jié)構(gòu)來加以執(zhí)行的一個程序模塊或一組程序模塊,這些程序模塊檢查在被耦合到專用網(wǎng)200的網(wǎng)絡(luò)設(shè)備204、206、208與被耦合到公用網(wǎng)202的網(wǎng)絡(luò)設(shè)備210、212之間被交換的網(wǎng)絡(luò)信息包。在本發(fā)明的實(shí)施例中,防火墻214也檢查從專用網(wǎng)200內(nèi)的網(wǎng)絡(luò)設(shè)備那里被發(fā)送的以本地為目的地的網(wǎng)絡(luò)信息包以及去往那些網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)信息包。
防火墻214在網(wǎng)絡(luò)設(shè)備208中被加以執(zhí)行,以保護(hù)并控制在專用網(wǎng)200與公用網(wǎng)202之間被交換的網(wǎng)絡(luò)信息流通量,這被稱作“邊緣防火墻”。作為選擇,防火墻214在如網(wǎng)絡(luò)設(shè)備210中所展示的單一網(wǎng)絡(luò)設(shè)備中被加以執(zhí)行,并保護(hù)該單一網(wǎng)絡(luò)設(shè)備,這被稱作“主機(jī)防火墻”。該防火墻也能夠按同步方式、作為主機(jī)和/或邊緣防火墻的中央管理集來加以執(zhí)行,這被稱作“分布式防火墻”。較佳地選擇執(zhí)行防火墻214的這個或這些網(wǎng)絡(luò)設(shè)備的布置,以便防火墻214檢查它應(yīng)該保護(hù)的、以這些網(wǎng)絡(luò)設(shè)備為目的地的所有網(wǎng)絡(luò)信息流通量。
過濾器216作為防火墻214的一部分來加以執(zhí)行。作為選擇,過濾器216作為防火墻214可以使用的單獨(dú)的數(shù)據(jù)結(jié)構(gòu)的一部分來加以執(zhí)行。防火墻214和過濾器216執(zhí)行一種防火墻策略,該防火墻策略被設(shè)計(jì)成保護(hù)網(wǎng)絡(luò)設(shè)備204、206、208避免遭遇來源于被耦合到該公用網(wǎng)的網(wǎng)絡(luò)設(shè)備210、212的惡意攻擊。防火墻214也提供增加的功能性(例如,促進(jìn)雙親控制、侵入檢測、記錄網(wǎng)絡(luò)信息包和其他基于增加的過濾器的功能性)。
每個過濾器216包括一組過濾器條件以及一個或多個關(guān)聯(lián)的動作。這些過濾器條件包括參數(shù)和信息,這些參數(shù)和信息可以從網(wǎng)絡(luò)信息包(例如,接口號、硬件地址、網(wǎng)絡(luò)地址、協(xié)議類型、端口號和有效載荷數(shù)據(jù))中被加以分析或從網(wǎng)絡(luò)信息包中獲得。這一個或多個關(guān)聯(lián)的動作定義執(zhí)行該防火墻的該網(wǎng)絡(luò)設(shè)備應(yīng)該如何處置與這些過濾器條件相匹配的信息包。典型的動作包括允許(即,允許該信息包繼續(xù)網(wǎng)絡(luò)遍歷)和阻斷(即,通過丟棄信息包,來排除進(jìn)一步的網(wǎng)絡(luò)遍歷)。
防火墻214檢查當(dāng)在網(wǎng)絡(luò)設(shè)備208處被接收時(shí)穿過網(wǎng)絡(luò)的網(wǎng)絡(luò)信息包;并且,通過將這些信息包參數(shù)與這些過濾器條件進(jìn)行比較,防火墻214識別一個或多個匹配過濾器。當(dāng)這些過濾器條件與這些信息包參數(shù)相匹配時(shí),產(chǎn)生匹配過濾器。和過濾器條件一樣,這些信息包參數(shù)包括從信息包中被加以分析或獲得的信息。當(dāng)防火墻識別匹配過濾器時(shí),執(zhí)行與這些過濾器條件關(guān)聯(lián)的一個或多個動作。
圖3表現(xiàn)了本發(fā)明的防火墻結(jié)構(gòu)的實(shí)施例的總體視圖。該結(jié)構(gòu)提供了一種能力——在網(wǎng)絡(luò)堆棧的所有層處,使信息包經(jīng)歷過濾器。防火墻提供了中央管理性能,這些中央管理性能允許增加和刪除過濾器,并用于識別和解決的過濾器沖突。防火墻結(jié)構(gòu)是可擴(kuò)展的,這體現(xiàn)在過濾器層可按需要來被增加和刪除,并可以擴(kuò)大,以包括允許和阻斷動作以外的專用功能性。雖然具體參照防火墻和防火墻過濾器來描述本發(fā)明,但是,也使用本發(fā)明來促進(jìn)和管理其他的過濾器和策略。作為特殊的例子,本發(fā)明適合用來促進(jìn)和管理被用于“服務(wù)質(zhì)量”(QOS)、“網(wǎng)際協(xié)議安全性”(IPSec)套組以及其他的加密協(xié)議、鑒定協(xié)議和密鑰管理協(xié)議的過濾器。
防火墻結(jié)構(gòu)包括用戶模式處理250和核心模式處理252。用戶模式處理250和核心模式處理252作為網(wǎng)絡(luò)設(shè)備中的操作系統(tǒng)的一部分來加以執(zhí)行。精通該技術(shù)領(lǐng)域的人將會理解操作系統(tǒng)的用戶模式處理250和核心模式處理252包括額外的部件,為簡單起見,沒有示出這些額外的部件。作為選擇,在操作系統(tǒng)以外作為一個或多個程序模塊或應(yīng)用程序或在單一操作系統(tǒng)處理以內(nèi)整體或部分地執(zhí)行防火墻結(jié)構(gòu)。
核心模式處理252包括網(wǎng)絡(luò)堆棧254、在這里被稱作“核心防火墻引擎256”的第一個防火墻引擎,以及任選的呼出258??偟膩碚f,核心模式處理252通過為網(wǎng)絡(luò)信息包識別匹配過濾器、根據(jù)已知的協(xié)議來處理信息包并對如匹配過濾器所指定的信息包執(zhí)行其他動作,來實(shí)施被建立的防火墻策略。
網(wǎng)絡(luò)堆棧254包括多個層處理,它們在這里被稱作“層”,包括數(shù)據(jù)流層268、傳輸層270、網(wǎng)絡(luò)層272和鏈路層274。本發(fā)明的防火墻結(jié)構(gòu)是可擴(kuò)展的,并且,可按需要來動態(tài)地增加和刪除額外的層。增加的層的例子包括文件存取層276,該文件存取層根據(jù)“服務(wù)器主塊”(SMB)協(xié)議來加以執(zhí)行。這些層可以與其他程序模塊(例如,“超文本傳輸協(xié)議”(HTTP)分析程序模塊278)協(xié)同運(yùn)作。
網(wǎng)絡(luò)堆棧254中的這些層處理入站網(wǎng)絡(luò)信息包和出站網(wǎng)絡(luò)信息包。出站網(wǎng)絡(luò)信息包是正從執(zhí)行防火墻結(jié)構(gòu)的網(wǎng)絡(luò)設(shè)備那里被傳送到網(wǎng)絡(luò)上的信息包。入站信息包是在執(zhí)行防火墻結(jié)構(gòu)的網(wǎng)絡(luò)設(shè)備處被接收到的信息包。如圖3中所示的相互箭頭所指出的,入站信息包從下到上地穿過網(wǎng)絡(luò)堆棧254,出站信息包從上到下地穿過網(wǎng)絡(luò)堆棧254。
網(wǎng)絡(luò)信息包序貫地穿過這些網(wǎng)絡(luò)層,并由這些網(wǎng)絡(luò)層序貫地加以處理。根據(jù)已知的技術(shù),網(wǎng)絡(luò)堆棧254中的每個層能夠從前一個層或處理那里接收信息包,能夠根據(jù)規(guī)范或協(xié)議來處理該信息包,并能夠?qū)⑦@個處理過的信息包發(fā)送到下一個層或處理。根據(jù)本發(fā)明,網(wǎng)絡(luò)堆棧254中的每個層也保持信息包上下文,將該信息包上下文傳遞到下一個層,將分類請求發(fā)給核心防火墻引擎256,并根據(jù)防火墻策略來對該信息包采取行動。
信息包上下文是從一個層到另一個層地跟隨信息包的數(shù)據(jù)結(jié)構(gòu)。每個層通過將該層被設(shè)計(jì)成要加以處理的一組參數(shù)(例如,該層被設(shè)計(jì)成從入站信息包中加以分析的、加入出站信息包的或從信息包的內(nèi)容中導(dǎo)出的信息)加入該上下文數(shù)據(jù)結(jié)構(gòu),來保持該上下文。參照圖5來描述被用于信息包上下文的示范數(shù)據(jù)結(jié)構(gòu)。
由網(wǎng)絡(luò)堆棧254的各個層執(zhí)行的這些操作中的一項(xiàng)操作是通過發(fā)出分類請求,來調(diào)用核心防火墻引擎。該分類請求是網(wǎng)絡(luò)堆棧254中的層所執(zhí)行的調(diào)用,請求識別與信息包相匹配的任何過濾器,并將任何關(guān)聯(lián)的動作(例如,允許或阻斷)返回到該層。發(fā)出該分類請求的這個層在這里被稱作“請求層”。每個層也對由核心防火墻引擎256返回的信息包采取行動。
核心防火墻引擎256包括層API 280、一組被安裝的過濾器282和呼出API284。核心防火墻引擎256執(zhí)行各種功能,包括(1)保持定義防火墻策略的被安裝的過濾器組282;(2)從網(wǎng)絡(luò)堆棧254中的這些層接收分類請求;(3)根據(jù)該分類請求,來識別一個或多個匹配過濾器;以及(4)根據(jù)這些匹配過濾器,來向該請求層指示要對信息包采取的任何動作。
這個被安裝的過濾器組中的每個過濾器包括一組過濾器條件以及一個或多個關(guān)聯(lián)的動作。如參照圖2的描述,這些過濾器條件識別經(jīng)歷這個關(guān)聯(lián)的過濾器動作的這些網(wǎng)絡(luò)信息包。被安裝的過濾器組282中所規(guī)定的這些動作包括允許和阻斷。經(jīng)由任選的呼出258來增加額外的功能性。參照圖4來描述這些過濾器的示范形式。
層API 280在網(wǎng)絡(luò)堆棧254中的各個層與核心防火墻引擎256之間提供接口。通過層API 280,請求層將分類請求發(fā)給核心防火墻引擎256。分類請求包括如請求層所接收的信息包、如請求層所接收的信息包上下文,以及層參數(shù)。這些層參數(shù)是由請求層處理(例如,增加或分析)的信息包參數(shù)。作為特殊的例子,源網(wǎng)際協(xié)議(IP)地址和目的網(wǎng)際協(xié)議(IP)地址是當(dāng)執(zhí)行該IP協(xié)議時(shí)由網(wǎng)絡(luò)層272發(fā)送的層參數(shù)。層參數(shù)也可以包括被加入信息包或從信息包中被加以分析的這些信息包參數(shù)以外的信息。作為特殊的例子,這些層參數(shù)包括局部地址類型。該局部地址類型由IP層來確定,并作為該分類請求的一部分來加以發(fā)送。局部地址類型包括單播、廣播、多播、任意點(diǎn)傳送(anycast)和類似的類型。參照圖6來描述層API 280的特殊實(shí)施。
隨意地,可使用呼出258來執(zhí)行允許和阻斷過濾器動作以外的增加的功能性。當(dāng)核心防火墻引擎256為該信息包識別匹配過濾器(包括作為關(guān)聯(lián)的動作的對這些呼出模塊之一的呼出)時(shí),執(zhí)行呼出。核心防火墻引擎將如請求層所發(fā)出的分類請求(即完全信息包、層參數(shù)和信息包上下文)連同匹配過濾器的標(biāo)識一起經(jīng)由呼出API 284發(fā)送到呼出模塊。在本發(fā)明的實(shí)施例中,防火墻結(jié)構(gòu)包括呼出基本組258。和層一樣,按需要將額外的呼出加入可擴(kuò)展的防火墻結(jié)構(gòu)。參照圖6來描述呼出API 284的特殊實(shí)施。
用戶模式處理250包括被稱作“用戶防火墻引擎260”的第二個防火墻引擎,以及被識別為“PP1”、“PP2”和“PP3”的一個或多個策略供應(yīng)器262。策略供應(yīng)器262是將防火墻策略(即被安裝的過濾器282)加入防火墻結(jié)構(gòu)的處理。可以使用任何處理來完成這項(xiàng)任務(wù)。一個例子是傳統(tǒng)(1egacy)IPSec策略服務(wù)(LIPS)。傳統(tǒng)IPSec策略服務(wù)增加對應(yīng)該使用IPSec協(xié)議(例如,“封裝安全協(xié)議”(ESP)和“鑒定頭部協(xié)議”(AH))的網(wǎng)絡(luò)信息流通量進(jìn)行定義的過濾器。作為特殊的例子,傳統(tǒng)IPSec策略增加防火墻策略,該防火墻策略指出必須根據(jù)ESP協(xié)議,來為所有未經(jīng)請求的明文的入站信息包加密。該策略進(jìn)一步規(guī)定應(yīng)該阻斷任何未經(jīng)請求的入站信息包(即未加密的信息包)。策略供應(yīng)器262從任何合適的來源(例如,易失或非易失存儲器中的數(shù)據(jù),或允許網(wǎng)絡(luò)管理員或系統(tǒng)用戶直接輸入策略的“圖形用戶界面”(GUI))獲得該策略。用戶防火墻引擎260將該策略轉(zhuǎn)換成新的過濾器,即,按照過濾器條件來定義該策略,并將這個新的過濾器加入被安裝的過濾器組282。
用戶防火墻引擎260也執(zhí)行過濾器判優(yōu)和沖突解決功能。當(dāng)策略供應(yīng)器262為用戶模式防火墻引擎260提供新策略時(shí),用戶防火墻引擎確定起因于這項(xiàng)新策略的這個新的過濾器是否與被安裝的過濾器282中的任何過濾器有沖突。標(biāo)題為《用于管理基于網(wǎng)絡(luò)過濾器的策略的方法》的美國專利申請(代理人標(biāo)簽號221037)中描述了一種適合在本發(fā)明的構(gòu)架中使用的、用于識別和解決沖突的方法的例子。
該結(jié)構(gòu)進(jìn)一步包括過濾器引擎API 266,過濾器引擎API 266構(gòu)成用戶模式防火墻引擎260與核心防火墻引擎256之間的接口。過濾器引擎API266提供用于用戶防火墻引擎260的機(jī)制,以將新的過濾器加入被安裝的過濾器組282或從被安裝的過濾器組282中除去現(xiàn)存的過濾器,并用于檢查被安裝的過濾器282,以便可以檢測和解決過濾器沖突??捎刹呗怨?yīng)器262獲得的管理API 290也提供一種機(jī)制,以增加過濾器并從該結(jié)構(gòu)中除去過濾器。
用戶模式防火墻引擎260也包括過濾器模塊294。過濾器模塊294是用戶模式250中的核心防火墻引擎256的實(shí)例。用戶模式防火墻引擎260中的過濾器模塊294的這個實(shí)例允許用戶防火墻引擎260為在這里被稱作“用戶模式層282”的一個或多個用戶模式層處理復(fù)制核心防火墻引擎256的各項(xiàng)服務(wù)。用與創(chuàng)建核心模式層相同的方法來增加用戶模式層282。由于過濾器模塊294是核心防火墻引擎256的用戶模式實(shí)例,因此,將會理解這里為核心防火墻引擎256而描述的任何功能性也可應(yīng)用于過濾器模塊294。
密碼模塊API 288在用戶策略引擎260與密碼模塊296之間提供接口。使用密碼模塊API 288來用信號通知該密碼模塊需要建立SA。
該防火墻結(jié)構(gòu)包括引導(dǎo)時(shí)間策略286和故障保險(xiǎn)策略264。執(zhí)行引導(dǎo)時(shí)間策略286和故障保險(xiǎn)策略264,以提供被安裝的過濾器基本組282,同時(shí),該系統(tǒng)處于過渡狀態(tài),例如當(dāng)該網(wǎng)絡(luò)設(shè)備被初始化(例如,被開啟、重置或被重新啟動)時(shí)。在此過渡狀態(tài)期間,存在潛伏期,在此潛伏期間,不建立用戶模式250,并且,不可能經(jīng)由策略供應(yīng)器262和用戶防火墻引擎260來安裝過濾器。結(jié)果,該網(wǎng)絡(luò)設(shè)備容易受到來自(例如)未經(jīng)請求的入站信息包的惡意攻擊。引導(dǎo)時(shí)間策略286駐留在核心模式252中,并在建立用戶模式250時(shí)間之前被載入核心防火墻引擎256。引導(dǎo)時(shí)間策略296提供可配置的被安裝的基本過濾器282,以提供任何合適的過濾器條件和關(guān)聯(lián)的動作,用于在此過渡狀態(tài)期間保護(hù)系統(tǒng)。引導(dǎo)時(shí)間策略286的例子是阻斷所有入站網(wǎng)絡(luò)信息包和出站網(wǎng)絡(luò)信息包。
一旦建立用戶模式250,該過渡狀態(tài)就繼續(xù)保持,同時(shí),策略供應(yīng)器262正在識別策略并嘗試將被安裝的過濾器282加入核心防火墻引擎256。當(dāng)建立用戶模式250時(shí),用戶防火墻引擎260在策略供應(yīng)器262接受任何策略之前,首先將故障保險(xiǎn)策略264載入核心防火墻引擎256。然后,禁止引導(dǎo)時(shí)間策略286。和引導(dǎo)時(shí)間策略286一樣,故障保險(xiǎn)策略264是基礎(chǔ)過濾器,它被設(shè)計(jì)成當(dāng)這些策略供應(yīng)器和用戶防火墻引擎仍然處于安裝過濾器的過程中時(shí),用于在過渡狀態(tài)期間保護(hù)該系統(tǒng)避免遭遇攻擊。一旦策略供應(yīng)器262將其各自的過濾器成功地安裝到網(wǎng)絡(luò)設(shè)備中,就禁止故障保險(xiǎn)策略264。
參考圖4,現(xiàn)在將描述被安裝的過濾器組282。被安裝的過濾器組282中的每個過濾器310具有多個字段,這些字段包括過濾器Id 312、加權(quán)314、一個或多個動作316、策略上下文328和一組過濾器條件318。過濾器Id 312為過濾器提供唯一標(biāo)識。例如,過濾器Id 312被用作供核心防火墻引擎256將匹配過濾器信息返回到用戶防火墻引擎260和呼出258的一種工具。在本發(fā)明的實(shí)施例中,過濾器被分配給網(wǎng)絡(luò)堆棧254中的各個層中的一個層。過濾器Id312被核心防火墻引擎256用來跟蹤將哪個過濾器分配給哪個層。
加權(quán)字段314包括識別過濾器310的優(yōu)先級的值。加權(quán)字段314中的這個值越大,該過濾器的優(yōu)先級就越高。過濾器優(yōu)先級確定核心防火墻引擎256將匹配過濾器應(yīng)用于該信息包的順序。
在本發(fā)明的實(shí)施例中,首先應(yīng)用具有最高優(yōu)先級(即最大的加權(quán)值)的那個過濾器,然后應(yīng)用優(yōu)先級位于其次的過濾器,等等,直到遇到具有終止動作的匹配過濾器為止。以下更加詳細(xì)地描述了終止動作。一旦應(yīng)用具有終止動作的匹配過濾器,核心防火墻引擎256就停止應(yīng)用匹配過濾器。這樣,在應(yīng)用該終止動作之后,不對信息包采取由較低優(yōu)先級匹配過濾器規(guī)定的動作316。作為選擇,防火墻引擎256識別單一匹配過濾器,并返回來自該單一匹配過濾器的一組動作。
過濾器條件集318確定信息包是否與過濾器310相匹配。每個過濾器條件318包括類型320、數(shù)據(jù)322和層Id字段Id 324。類型320定義對應(yīng)的數(shù)據(jù)322中所包括的變量的長度和數(shù)目。該結(jié)構(gòu)規(guī)定預(yù)定義的已知變量類型(例如,“字節(jié)”、“短”、“長”、“8個字節(jié)”、“字符串”、“網(wǎng)際協(xié)議版本4(IPv4)地址”、“網(wǎng)際協(xié)議版本6(IPv6)地址”、“IPv4地址加上掩碼”、“IPv6地址加上掩碼”和“地址范圍”)。
數(shù)據(jù)字段322包括與類型相匹配的數(shù)據(jù)。例如,如果類型是“IPv4地址”,則關(guān)于數(shù)據(jù)字段322的可接受的值是如有點(diǎn)的十進(jìn)制記數(shù)法中所表達(dá)的00.00.00.00~255.255.255.255的范圍內(nèi)的32位數(shù)字。在一些實(shí)例中,類型320規(guī)定數(shù)據(jù)字段322中的多個值?!暗刂贩秶?、“IPv4地址加上掩碼”和“IPv6地址加上掩碼”這些類型允許采用兩個IP地址值,從而定義IP地址的始、末范圍。為了最大的靈活性,該結(jié)構(gòu)也允許采用用戶定義的類型。作為選擇,將額外的類型手動加入該系統(tǒng)結(jié)構(gòu)。
使用層Id字段Id 324來分別識別起源層和來自該起源層的參數(shù)。該起源層和來自該起源層的這個參數(shù)定義信息包參數(shù),即當(dāng)識別匹配過濾器時(shí)與數(shù)據(jù)322進(jìn)行比較的層參數(shù)和信息包上下文。起源層識別網(wǎng)絡(luò)堆棧中的一個層。來自起源層的參數(shù)識別與該起源層關(guān)聯(lián)的特殊參數(shù)。過濾器條件326展示了特殊的例子。類型是IPv4,從而指出數(shù)據(jù)322是32位IP地址。層Id是“IP”,表示32位數(shù)字是IP(即網(wǎng)絡(luò))層參數(shù)。字段Id是“Src IP Addr”,它在該例中代表源IP地址。數(shù)據(jù)字段322中所提供的IP地址是“123.3.2.1”,指出具有那個源IP地址的任何信息包都符合該過濾器條件,從而與該過濾器相匹配。過濾器310可以包括多個過濾器條件318,在這種情況下,只有當(dāng)符合所有的過濾器條件時(shí),信息包才與過濾器310相匹配。
過濾器310中的動作316是允許、阻斷或呼出。如果過濾器310中的動作324是允許或阻斷,并且該信息包與過濾器310相匹配,那么,該允許或阻斷動作被核心防火墻引擎256返回到請求層。如果動作316是呼出,則核心防火墻引擎256將其自己的分類請求發(fā)給指定的呼出模塊258,分類請求包括該完全信息包、層參數(shù)、上下文和匹配過濾器的標(biāo)識。呼出模塊258對該信息包執(zhí)行其被編程的功能(例如,侵入檢測)。該呼出可以將動作(允許或阻斷)返回到該核心防火墻引擎,這又將該動作轉(zhuǎn)達(dá)給該請求層。該呼出也能夠保持信息包上下文,該信息包上下文同樣經(jīng)由核心防火墻引擎256而被返回到請求層。該動作也可能是值(例如空值,從而指出不存在防火墻策略)。
動作被指定為終止或非終止。如果該動作是終止,那么,一旦為信息包識別那個動作,該動作就被返回到該請求層,并且沒有額外的過濾器被應(yīng)用于該信息包。如果該動作是非終止,則額外的過濾器查找繼續(xù)進(jìn)行,直到識別關(guān)于該信息包的終止動作為止。默認(rèn)的情況是,“允許”和“阻斷”被指定為終止動作。
使用策略上下文328來存儲除防火墻策略以外的策略(例如,安全性策略或QOS策略)。該策略上下文是任何合適的數(shù)據(jù)結(jié)構(gòu)。例如,該策略上下文是由加入過該策略上下文的處理來解釋的64位數(shù)字。該策略上下文和/或動作可能是空值。
圖5展示了被用于信息包上下文的數(shù)據(jù)結(jié)構(gòu)330的例子,信息包上下文由網(wǎng)絡(luò)堆棧254和呼出模塊258中的各個層來保持,并被傳遞到這些層。當(dāng)這個入站或出站網(wǎng)絡(luò)信息包穿過這些層并包括被標(biāo)注為336-340的一個或多個項(xiàng)目時(shí),信息包上下文330跟隨網(wǎng)絡(luò)信息包。每個項(xiàng)目包括層Id字段Id 332和對應(yīng)的值334。
層Id字段Id 332的含義等同于作為過濾器310中的過濾器條件318的一部分而加以提供的層Id字段Id 324的含義(圖4)。也就是說,層Id字段Id322為值字段334中的數(shù)據(jù)識別起源層和來自起源層的層參數(shù)。值字段334包括特殊的層參數(shù)。
作為特殊的例子,項(xiàng)目336包括層Id字段Id 332“NDISSrc.MAC Addr.”?!癗DIS”表示鏈路層274的“網(wǎng)絡(luò)驅(qū)動器接口規(guī)范”實(shí)施(圖1)?!癝rc MAC addr.”表示源MAC地址。這樣,層字段Id 332指出值字段334中的數(shù)據(jù)是曾由NDIS(鏈路)層處理的源MAC地址。值字段334包括這個實(shí)際的源MAC地址,在該例中,該源MAC地址是如十六進(jìn)制記數(shù)法中所表達(dá)的“00.08.74.4F.22.E5”。
作為第二個例子,項(xiàng)目338具有“NDISIF No”的層Id字段Id 332。這再次將該層識別為NDIS,但在此情況下,將該參數(shù)識別為把接口號表示為該特殊NDIS參數(shù)的“IF No”。值字段334包括這個實(shí)際的接口號,該接口號在此情況下是2。
作為第三個例子,項(xiàng)目340具有“IPDst IP Addr”的層Id字段Id 332?!癐P”表示使用IP協(xié)議的網(wǎng)絡(luò)層,并且,“Dst IP Addr”將目的IP地址表示為IP層參數(shù)。值字段334包括“123.3.2.1”的這個實(shí)際的目的IP地址。
已描述了本發(fā)明的基礎(chǔ)防火墻結(jié)構(gòu),現(xiàn)在來注意使用這里所描述的該基礎(chǔ)防火墻結(jié)構(gòu)來加以執(zhí)行的系統(tǒng)和示范方法的這些功能接口。這些功能接口作為多個應(yīng)用編程接口(APIs)來加以執(zhí)行。這些APIs包括如圖6和圖7所示的層API 280、呼出API 284、過濾器引擎API 266和密碼模塊API 288。
層API 280促進(jìn)網(wǎng)絡(luò)堆棧254內(nèi)的各個層中的每個層與核心防火墻引擎256之間的數(shù)據(jù)交換。如所示,層API 280包括“分類”方法402、“增加層”方法404和“刪除層”方法406。層API 280也可以在過濾器模塊294內(nèi)執(zhí)行,以促進(jìn)這些用戶模式層與過濾器模塊294之間的通信。
請求層使用“分類”方法402,將層參數(shù)、如請求層所接收的信息包以及信息包上下文發(fā)送到核心防火墻引擎256。核心防火墻引擎256將(1)來自請求層的這些層參數(shù)和(2)信息包上下文項(xiàng)目跟被分配給請求層的每個過濾器310中的過濾器條件318進(jìn)行比較,以識別匹配過濾器。以下是該“分類”方法的示范實(shí)施。將會理解以下這些方法被描述成接收或返回?cái)?shù)據(jù)值。根據(jù)已知的編程技術(shù),這些方法可以使用指向數(shù)據(jù)值的指針,而不是實(shí)際的數(shù)據(jù)值。
<pre listing-type="program-listing"><![CDATA[NTSTATUSWFPClassify(IN ULONGLayerId,IN WFP_INCOMING_VALUES* pInFixedValues,IN WFP_INCOMING_CONTEXI_VALUE* pInContext,PVOID pPacket,OUT WFP_ACTION_TYPE*pActionType,OUT UINT64* pOutContext);]]></pre>其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
LayerId識別發(fā)出分類請求的網(wǎng)絡(luò)層,即請求層。參考圖3,該“層”Id將該層識別為數(shù)據(jù)流層268、傳輸層270、網(wǎng)絡(luò)層272或鏈路層274。如果被加入該系統(tǒng),則其他層有效。例如,如果加入SMB層276,則SMB層具有其自己的唯一標(biāo)識。本發(fā)明的防火墻結(jié)構(gòu)進(jìn)一步允許在網(wǎng)絡(luò)堆棧254中的層處的多項(xiàng)協(xié)議實(shí)施。例如,該堆棧具有兩個傳輸層270——第一傳輸層使用TCP協(xié)議,第二傳輸層使用UDP協(xié)議。也可以加入用戶模式層282,從而形成有效層。
pInFixedValues包括由請求層處理的這些層參數(shù)的子集。將該pInFixedValues連同這些信息包上下文項(xiàng)目與這些過濾器條件進(jìn)行比較,以確定信息包是否與過濾器相匹配。以下的表格A中識別用于每個層的pInFixedValues中所包括的默認(rèn)層參數(shù)的例子。將會理解以下這些值只是起示范的作用,因?yàn)樵摻Y(jié)構(gòu)的優(yōu)點(diǎn)是它允許這些層使用那個層可以獲得的任何值。
表格A

pInContext包括如請求層所接收的上下文數(shù)據(jù)結(jié)構(gòu)330(圖5)。核心防火墻引擎256使用信息包上下文并結(jié)合這些層參數(shù)來識別匹配信息包。
pPacket包括如請求層所接收的整個信息包。pPacket沒有被核心防火墻引擎256用來識別匹配過濾器。如前所述,核心防火墻引擎256使用pInFixedValues和pInContext來識別匹配過濾器。pPacket被包括在“分類”方法中,以便核心防火墻引擎256可以將它發(fā)送到被識別為匹配過濾器中的動作316的一個或多個呼出模塊258。
pActionType包括被返回到請求層的動作316。所返回的動作316是如在匹配過濾器中所識別的允許或阻斷、或由匹配過濾器執(zhí)行的呼出模塊。
pOutContext包括策略上下文數(shù)據(jù)。如前所述,使用該策略上下文來推動跟IPSec、QOS和任何其他基于非防火墻過濾器的策略有關(guān)聯(lián)的網(wǎng)絡(luò)策略。
“增加層”404和“刪除層”406方法被分別用來增加層和從該防火墻結(jié)構(gòu)中除去層。以下是“增加層”404方法的示范形式。
NTSTATUSAddExtensionLayer(OUT PULONG pLayerId);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
pLayerId是被返回到正在添加的那個層(即執(zhí)行“增加層”方法的那個層)的唯一層標(biāo)識值。
以下是“刪除層”406方法的示范形式。
NTSTATUSRemoveExtensionLayer(ULONG LayerId);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
LayerId識別正在被除去的那個層,即執(zhí)行“刪除層”方法的那個層。
呼出API 284促進(jìn)核心防火墻引擎256與呼出258之間的數(shù)據(jù)交換?!昂舫觥盇PI 284包括“分類”方法410、“通知”方法412、“登記呼出”方法414和“撤消登記呼出”方法416?!昂舫觥盇PI 284的“分類”方法410類似于“層”API 280的“分類”方法402,除“它還包括匹配過濾器數(shù)據(jù)”這一點(diǎn)以外。以下是被用來執(zhí)行呼出的“分類”法410的示范形式。
typedef NTSTATUS(*WFP_CALLOUT_CLASSIFY_FN)(IN const WFP_INCOMING_VALUES* fixedValues,IN WFP_INCOMING_CONTEXT_VALUE* wfpContext,IN VOID* packet,IN WFP_FILTER* matchedFilter,OUT WFP_ACTION_TYPE* action,OUT UINT64*outContext);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
fixedValues包括從請求層那里被發(fā)送的這些層參數(shù)。fixedValues是pInFixedValues數(shù)據(jù)中的請求層所提供的相同的數(shù)據(jù),pInFixedValues數(shù)據(jù)作為層API 280中的“分類”方法402的一部分來加以發(fā)送。
wfpContext包括上下文數(shù)據(jù)結(jié)構(gòu)330(圖5)。該數(shù)據(jù)等同于如pInContext中的請求層所發(fā)送的數(shù)據(jù),pInContext作為層API 280中的“分類”方法402的一部分來加以發(fā)送。
packet包括如請求層所接收的整個信息包。該數(shù)據(jù)等同于如pPackett中的請求層所發(fā)送的數(shù)據(jù),pPacket作為層API 280中的“分類”方法402的一部分來加以發(fā)送。
matchedFilter識別請求呼出的過濾器。通常,該匹配過濾器由啟動呼出API 284的“分類”方法410的匹配過濾器310的過濾器Id 312來加以識別。
pActionType包括從呼出258被返回到核心防火墻引擎256的那個動作。如果pActionType是允許或阻斷,則將它返回到請求層,作為由“層”API 280返回的pActionType。該呼出也可以返回繼續(xù)動作,該繼續(xù)動作指示核心防火墻引擎256繼續(xù)將匹配過濾器應(yīng)用于信息包。
pOutContext包括策略上下文數(shù)據(jù)(例如,安全性或QOS策略數(shù)據(jù))。
當(dāng)過濾器310被加入被安裝的過濾器組282(將呼出模塊258識別為其動作316之一)或被刪除時(shí),使用“通知”方法412來通知呼出。該通知為該呼出提供了一種機(jī)會——采取任何所要求的動作(例如,當(dāng)核心防火墻引擎256執(zhí)行該動作時(shí),分配或解除分配將由呼出258使用的緩沖器)。以下是“通知”方法的示范形式。
typedef NTSTATUS(*WFP_CALLOUT_NOTIFY_FN)(IN WFP_NOTIFY_ENUM notify,IN WFP_FILTER* filter);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
notify包括一個數(shù)值,該數(shù)值指出是正在增加還是正在刪除過濾器。例如,1的值指出正在增加過濾器,2的值指出正在刪除過濾器。
filter識別正在被唯一值增加或刪除的過濾器。通過提供作為過濾器310的一部分而被包括在內(nèi)的過濾器Id 312,可以實(shí)現(xiàn)這一點(diǎn)。
分別使用呼出“登記”方法414和呼出“解除登記”416方法來增加和除去呼出模塊。登記方法414的示范形式如下所述NTSTATUS WfpRegisterCallout(IN const GUID*calloutld,IN const WFP_CALLOUT* callout,IN const SECURITY_DESCRIPTOR* sd);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
callout Id提供關(guān)于登記呼出模塊的唯一標(biāo)識。
callout提供任何呼出特定信息(例如,驅(qū)動器服務(wù)名稱、設(shè)備名稱,以及指向這些呼出分類和通知函數(shù)的指針)。
sd提供關(guān)于呼出的安全描述符。該安全描述符提供存取控制清單(ACL),該存取控制清單規(guī)定哪些處理可以修改和刪除呼出。
呼出解除登記方法416的示范形式如下所述NTSTATUS WfpDeregisterCallout(IN const GUID* calloutld);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
callout Id是將要被除去的呼出的唯一Id。
過濾器引擎API 266促進(jìn)用戶模式防火墻引擎260與核心模式防火墻引擎256之間的數(shù)據(jù)交換。如所示,管理API 266包括“增加過濾器”方法418、“刪除過濾器”方法420和“列舉層”方法422。也提供了過濾器引擎API 266的這些方法,作為管理API 290的一部分。
分別使用“增加過濾器”418和“刪除過濾器”418方法,來將新的過濾器加入被安裝的過濾器組282,并從被安裝的過濾器組282中刪除現(xiàn)存的過濾器。以下是“增加過濾器”法418的示范形式。
NTSTATUSAddFilterToLayer(ULONG Layerld,WFP_FILTER*pFilter);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
LayerId識別為其分配過濾器的那個層。
pFilter是正在被加入被安裝的過濾器組282的過濾器310。
以下是“刪除過濾器”法420的示范形式。
NTSTATUSDeleteFilterFromLayer(ULONG LayerId,ULONG FilterId);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
LayerId識別為其分配過濾器的那個層。
pFilter是正從這個被安裝的過濾器組中被刪除的過濾器。
“列舉層”方法422為用戶防火墻引擎260提供一種機(jī)制,以識別與一套標(biāo)準(zhǔn)相匹配的所有過濾器。這樣,可允許過濾器引擎API識別發(fā)生沖突的過濾器,用于過濾器判優(yōu)和沖突解決。以下是“列舉層”方法422的示范形式。
LayerStartEnum(PWFP_ENUM_TEMPLATE pEnumTemplate,OUT PULONG pMatchCount,OUT PWFP_ENUM_HANDLE pEnumHandle)其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
pEnumTemplate包括定義應(yīng)該被返回的這些過濾器的一種數(shù)據(jù)結(jié)構(gòu)。例如,它包括這些過濾器條件必須與要被返回的過濾器匹配的參數(shù)。
pMatchCount包括基于這個規(guī)定的pEnumTemplate的過濾器匹配數(shù)目。
pEnumHanlde包括對這些匹配的過濾器項(xiàng)目的引用。
密碼模塊API 288在密碼模塊與用戶防火墻引擎260之間提供接口。密碼模塊API 288包括“IPSec SA獲取”方法430、“期滿通知”方法432、“IPSecSA獲取完成”方法434、“密碼模塊登記”方法436、“密碼模塊解除登記”方法438、“IPSec入站獲得SPI”方法440、“增加入站SA”方法444、“增加出站SA”方法446、“入站SA期滿”448方法和“密碼模塊啟動”方法350。密碼模塊API 288也可以包括先前為層API而描述的各種方法(例如,“分類”方法402、“增加層”方法404和“刪除層”方法406)。
使用密碼模塊API來促進(jìn)已知安全協(xié)議(例如,由IPSec定義,由啟動計(jì)算機(jī)和響應(yīng)計(jì)算機(jī)使用)的運(yùn)用。IPSec包括諸如AH和ESP等協(xié)議。ESP協(xié)議是鑒定和加密協(xié)議,該協(xié)議使用密碼機(jī)制來提供完整性、來源鑒定和數(shù)據(jù)機(jī)密性。AH協(xié)議是鑒定協(xié)議,該協(xié)議使用信息包頭部中的散列簽名來證實(shí)信息包數(shù)據(jù)的完整性和發(fā)送者的可靠性。
IKE協(xié)議提供一種關(guān)于啟動計(jì)算機(jī)和響應(yīng)計(jì)算機(jī)的方法,以商議用于AH協(xié)議和ESP協(xié)議的安全設(shè)置。所商議的這些安全設(shè)置構(gòu)成被稱作“安全關(guān)聯(lián)”(SA)的數(shù)據(jù)結(jié)構(gòu)。SA定義被ESP或AH用來保護(hù)IP信息包的內(nèi)容的參數(shù)(例如,鑒定算法、加密算法、密鑰和密鑰的使用期限)。由于ESP和AH需要被建立的SA,因此,在啟動和響應(yīng)計(jì)算機(jī)使用ESP或AH協(xié)議之前,執(zhí)行IKE商議。由被稱作“安全參數(shù)索引”(SPI)的值來識別給定的SA。
啟動計(jì)算機(jī)和響應(yīng)計(jì)算機(jī)中的每種計(jì)算機(jī)包括IPSec驅(qū)動器,該IPSec驅(qū)動器根據(jù)IPSec策略來確定在該啟動計(jì)算機(jī)與響應(yīng)計(jì)算機(jī)之間被發(fā)送的數(shù)據(jù)是要求加密還是要求鑒定。該IPSec策略是一組過濾器,它定義該網(wǎng)絡(luò)設(shè)備如何使用IPSec,并包括過濾器清單、鑒定方法和其他信息。在本發(fā)明的實(shí)施例中,由核心防火墻引擎或過濾器模塊294內(nèi)的被安裝的過濾器組中所包括的過濾器來定義IPSec策略。通過調(diào)用使用“分類”方法來識別匹配過濾器的密碼模塊層,來識別應(yīng)用于信息包的策略。
用戶防火墻引擎260(經(jīng)由客戶代理)調(diào)用“IPSec SA獲取”方法430,來將驅(qū)動器獲取或外部啟動請求傳遞到作為密碼模塊層來加以執(zhí)行的用戶模式層282。密碼模塊層返回這個調(diào)用,并異步地執(zhí)行商議。一旦密碼模塊層已完成商議,密碼模塊層就調(diào)用“IPSec SA獲取完成”方法343,以通知用戶策略引擎260商議完成。以下是“IPSec SA獲取”方法的示范形式。
typedefWIN32_ERR(*PROCESS_IPSEC_SA_ACQUIRE0)(IN FWP_IPSEC_ACQUIRE_CONTEXT0 ipsecContext,IN const FWP_IPSEC_SA_ACQUIRE0*acquire,IN FWP_IPSEC_SPI inboundSAspi);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
ipsecContext是將獲取與正在被加入的SA連接起來的句柄。
acquire包括用于根據(jù)已知協(xié)議(例如,IKE)來商議SA的必要信息。
inboundSAspi包括被用于入站SA的SPI。
調(diào)用“期滿通知”方法432,以便將期滿通知傳遞到增加過入站SA的那個密碼模塊層。以下是“期滿通知”方法的示范形式。
typedef VOID(*PROCESS_IPSEC_SA_EXPIRE0)(IN const FWP_IPSEC_SA_EXPIRE_NOTIFY0* expireNotify);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
expireNotify包含識別期滿SA的信息。例如,在出站SA的情況下,提供SPI。
密碼模塊層調(diào)用“IPSec SA獲取完成”434方法,以便在它已結(jié)束商議并增加所有這些SA之后,或在它已碰到錯誤之后,關(guān)閉用戶防火墻引擎的上下文。在執(zhí)行該方法之后,密碼模塊層沒有再使用這個ipsecContext用于其他任何API方法。以下是“IPSec SA獲取完成”方法的示范形式。
WIN32_ERRFwpIPSecSAAequireComplete0(IN FWPM_ENGINE_HANDLE engineHandle,IN FWP_IPSEC_ACQUIRE_CONTEXT0 ipsecContext,IN const FWP_IPSEC_NEGOTIATION_STATUS0*status);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
engineHandle提供用戶防火墻引擎260的句柄。
ipsecContext是由利用“IPSec獲取”方法的用戶防火墻引擎?zhèn)鬟f的上下文。
status提供SA商議的狀態(tài)和其他細(xì)節(jié)。如果經(jīng)由FwpKeyingModuleInitiate0在外部啟動獲取,則用戶防火墻引擎260返回該狀態(tài)。
由密碼模塊層來調(diào)用“密碼模塊登記”方法436,以便向用戶防火墻引擎260登記,并傳遞其功能指針。以下是“密碼模塊登記”方法的示范形式。
WIN32_ERRFwpKeyingModuleRegister0(IN FWPM_ENGINE_HANDLEengineHandle,IN const GUID* keyingModuleID,IN const FWP_KEYING_MODULE_INFO0*keymodInfo);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
engineHandle提供用戶防火墻引擎260的句柄。
keyingModuleID是關(guān)于密碼模塊層的唯一ID。
keymodInfo包括關(guān)于密碼模塊層的登記信息(例如,用于處理“IPSec SA獲取”和“IPSec SA期滿”函數(shù)的指針)。
由密碼模塊層來調(diào)用“密碼模塊解除登記”方法438,以便從用戶防火墻引擎260中解除登記密碼模塊。以下是“密碼模塊解除登記”方法的示范形式。
WIN32_ERRFwpKeyingModuleDeregister0(IN FWPM_ENGINE_HANDLE engineHandle,IN const GUID* keyingModuleID);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
engineHandle是用戶防火墻引擎260的句柄。
keyingModuleID是密碼模塊層的唯一ID。
由密碼模塊層來調(diào)用“IPSec入站獲得SPI”方法440,以獲得關(guān)于新的入站SA的SPI。當(dāng)密碼模塊層在響應(yīng)的網(wǎng)絡(luò)設(shè)備中執(zhí)行時(shí),通常使用“IPSec入站獲得SPI”方法440。以下是該“IPSec入站獲得SPI”方法的示范形式。
WIN32_ERRFwpIPSecSAInboundGetSpi0IN FWPM_ENGINE_HANDLE engineHandle,IN const FWP_IPSEC_TRAFFIC0*ipsecTrafficDescription,IN const FWP_IPSEC_UDP_ENCAP0* udpEncapInfo,OUT FWP_IPSEC_SPI* inboundSpi);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
engineHandle是用戶防火墻引擎260的句柄。
ipsecTrafficDescription是用于創(chuàng)建入站幼體(larval)SA的5元組說明。該5元組包括源IP地址與目的IP地址、源端口與目的端口,以及傳輸層協(xié)議類型。
udpEncapInfo是用于創(chuàng)建幼體SA的UDP封裝數(shù)據(jù)。UDP封裝是將根據(jù)安全協(xié)議而加以格式化的信息包嵌入未加密的UDP信息包的一種已知的方法。
inboudSpi是關(guān)于入站SA的SPI。
由密碼模塊層來調(diào)用“增加入站SA”方法444,以增加入站SA(即,更新幼體SA)。用戶防火墻引擎260使用SA中的SPI來將此調(diào)用映射到其內(nèi)部狀態(tài),并將SA ioctl(輸入輸出控制)down到IPSec驅(qū)動器中。以下是“增加入站SA”方法的示范形式。
WIN32_ERRFwpIPSecSAInboundAdd0(IN FWPM_ENGINE_HANDLEengineHandle,IN const FWP_IPSEC_SA_STRUCT0* inboundSA);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
engineHandle是用戶防火墻引擎260的句柄。
inboundSA包括入站SA。
由密碼模塊層來調(diào)用“增加出站SA”446方法,以增加出站SA。用戶防火墻引擎使用入站SPI參數(shù)來將此調(diào)用映射到其內(nèi)部狀態(tài),并將該SA ioctl(輸入輸出控制)到IPSec驅(qū)動器中。以下是“增加出站SA”方法的示范形式。
WIN32_ERRFwpIPSecSAOutboundAdd0(IN FWPM_ENGINE_HANDLE engineHandle,IN FWP_IPSEC_SPI inboundSpi,IN const FWP_IPSEC_SA_STRUCT0*outboundSA);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
engineHandle是用戶防火墻引擎260的句柄。
inboundSpi是關(guān)于入站SA的SPI,入站SA與出站SA配對。
outboundSA包括出站SA。
由密碼模塊層來調(diào)用“入站SA期滿”方法448,以截止先前增加的入站SA。以下是“入站SA期滿”方法448的示范形式。
WIN32_ERRFwpIPSecSAInboundExpire0(IN FWPM_ENGINE_HANDLE engineHandle,IN const FWP_IPSEC_SA_EXPIRE0* expire);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
engineHandle是用戶防火墻引擎260的該句柄。
expire包括關(guān)于要期滿的SA的數(shù)據(jù)。
由已知的外部應(yīng)用程序(比如RAS、Winsock API和類似物)來調(diào)用“密碼模塊啟動”方法450,以便在應(yīng)用程序開始發(fā)送其網(wǎng)絡(luò)信息流通量之前,啟動密碼模塊層并設(shè)置SA。用戶防火墻引擎260異步地掛起該RPC調(diào)用,從IPSec驅(qū)動器那里獲得SPI,并將該獲取傳遞到合適的密碼模塊。一旦密碼模塊層調(diào)用FwpIPSecSAAcquireComplete0,用戶防火墻引擎就完成具有商議狀態(tài)的異步RPC。以下是“密碼模塊啟動”法的示范形式。
WIN32_ERRFwpKeyingModuleInitiate0(IN FWPM_ENGINE_HANDLE engineHandle,IN const FWP_IPSEC_SA_ACQUIRE0*acquire,IN HANDLE waitEvent,OUT FWP_IPSEC_NEGOTIATION_STATUS0* negotiationStatus);其中,以下內(nèi)容表現(xiàn)了這些所列舉的參數(shù)的特征。
engineHandle是用戶防火墻引擎260的句柄。
acquire包括商議SA所必要的數(shù)據(jù)。
waitEvent是給當(dāng)商議狀態(tài)可用時(shí)被觸發(fā)的事件的句柄。如果客戶(即,進(jìn)行調(diào)用的外部應(yīng)用程序)沒有興趣等待該商議完成,則它可以將這個參數(shù)設(shè)置為NULL。在內(nèi)部,該客戶代理隨意地將這個事件傳遞到RPC,并且,一旦該異步RPC調(diào)用完成,就請求它設(shè)置這個事件。
negotiationStatus包括商議的結(jié)果。如果waitEvent是NULL,則negotiationStatus是NULL。否則,negotiationStatus保持有效,直到waitEvent被觸發(fā)為止。
圖8展示了根據(jù)本發(fā)明的、由網(wǎng)絡(luò)堆棧254中的這些層使用的各種方法。圖8中所展示的方法也可以由一個或多個用戶模式層282跟過濾器模塊294和用戶防火墻引擎260協(xié)力來加以使用。
每個層能夠執(zhí)行多項(xiàng)功能,包括處理網(wǎng)絡(luò)信息包;將分類請求發(fā)給核心防火墻引擎256;以及,管理信息包上下文。在本發(fā)明的實(shí)施例中,在網(wǎng)絡(luò)堆棧254中所安裝的薄墊片460、462、464、466內(nèi)的各個層中的每個層處執(zhí)行這些功能。作為選擇,該功能性被直接置入這些單獨(dú)的層,而不需要這些薄墊片。
網(wǎng)絡(luò)堆棧254包括數(shù)據(jù)流層268、傳輸層270、網(wǎng)絡(luò)層272和鏈路層274。出于展示本發(fā)明的目的,鏈路層274作為NDIS驅(qū)動器來加以執(zhí)行,網(wǎng)絡(luò)層272作為IP層來加以執(zhí)行,傳輸層270作為TCP層來加以執(zhí)行,數(shù)據(jù)流層268作為HTTP層來加以執(zhí)行。將會理解可以根據(jù)任何協(xié)議來執(zhí)行層。例如,傳輸層也配合“用戶數(shù)據(jù)報(bào)協(xié)議”(UDP)。應(yīng)用層支持“文件傳輸協(xié)議”(FTP)、“遠(yuǎn)程過程調(diào)用”(RPC)、“簡單郵件傳輸協(xié)議”(SMTP)、“服務(wù)器主塊”(SMB)等。如前所述,可以將額外的層加入該結(jié)構(gòu),并可以刪除層。例如,使用參照圖6來加以描述的該“增加層”方法和“刪除層”方法,來增加和刪除層。
被標(biāo)注為468(a)-(d)的網(wǎng)絡(luò)信息包在它穿過網(wǎng)絡(luò)堆棧254中的各個層并由這些層來處理時(shí),展示了網(wǎng)絡(luò)信息包。如果信息包468(a)-(d)是入站信息包,則它從下到上穿過網(wǎng)絡(luò)堆棧。如果信息包468(a)-(d)是出站信息包,則它從上到下穿過網(wǎng)絡(luò)堆棧。這類處理眾所周知,但出于展示本發(fā)明的目的,對其進(jìn)行簡要的描述。
假設(shè)在網(wǎng)絡(luò)設(shè)備(例如,web瀏覽器)中執(zhí)行的應(yīng)用程序啟動關(guān)于位于另一個網(wǎng)絡(luò)設(shè)備上的網(wǎng)頁的內(nèi)容的請求,則該應(yīng)用程序?qū)⒃撜埱蟀l(fā)給數(shù)據(jù)流層268。在該例中,數(shù)據(jù)流264根據(jù)HTTP協(xié)議來對該請求進(jìn)行格式化,并將該請求發(fā)送到信息包468(a)中的傳輸層。傳輸層270接收信息包468(a)。傳輸層270(執(zhí)行TCP協(xié)議)將該數(shù)據(jù)放置在一個或多個信息包中,并且,為每個信息包提供TCP頭部。該TCP頭部包括諸如源端口與目的端口、協(xié)議類型(即TCP、序號、標(biāo)志和檢驗(yàn)和)等信息。然后,傳輸層將被標(biāo)注為468(b)的信息包發(fā)送到該網(wǎng)絡(luò)層。
網(wǎng)絡(luò)層執(zhí)行IP協(xié)議,并將該數(shù)據(jù)裝入IP頭部,IP頭部包括源IP地址與目的IP地址、標(biāo)志、檢驗(yàn)和以及其他已知信息。IP頭部也指出是否將信息包分段。當(dāng)IP信息包的尺寸超過關(guān)于被用來傳送信息包的網(wǎng)絡(luò)技術(shù)的“最大傳輸單位”(MTU)尺寸時(shí),將信息包分段。例如,以太網(wǎng)技術(shù)規(guī)定該MTU是1500個字節(jié)。如果IP信息包長度超過MTU,則將它分成兩個或多個IP信息包——每個IP信息包具有其自己的IP頭部,與MTU相比,它們都具有相等的或較短的長度。
在本發(fā)明的實(shí)施例中,網(wǎng)絡(luò)層被分成第一層和第二層。這第一層(被稱作“片段層”)處理IP信息包片段。例如,在為出站IP信息包分段之前,以及在將入站IP信息包重新裝配成單一IP信息包之后,第二層(被稱作“完全裝配層”)處理完全的IP信息包。在網(wǎng)絡(luò)層處理和可能的分段之后,信息包468(c)被發(fā)送到鏈路層274。鏈路層274通過提供具有源MAC地址和目的MAC地址以及其他信息的MAC頭部,來進(jìn)一步對數(shù)據(jù)實(shí)行分組(packetizes)。然后,將該信息包發(fā)送到網(wǎng)絡(luò)接口卡(NIC),在那里,該信息包在物理上被傳送到網(wǎng)絡(luò)上。
用相反方式來處理入站信息包。信息包468(d)由NIC來接收,并被發(fā)送到鏈路層274。如果必要的話,則除去MAC頭部,并將信息包468(c)發(fā)送到網(wǎng)絡(luò)層,在那里,如果需要重新裝配這些IP信息包片段;并且,分析IP頭部。然后,網(wǎng)絡(luò)層將信息包468(b)發(fā)送到傳輸層,在那里,除去TCP頭部;并且,如果在多個TCP信息包中發(fā)送過數(shù)據(jù)流,則重新裝配數(shù)據(jù)流。最后,將數(shù)據(jù)流468(a)發(fā)送到數(shù)據(jù)流層268,在那里,該數(shù)據(jù)由應(yīng)用協(xié)議(在這種情況下是HTTP協(xié)議)來進(jìn)行解密。
對于每個出站信息包,網(wǎng)絡(luò)堆棧的各個層保持信息包上下文470(a)-(c)。對于每個入站信息包,網(wǎng)絡(luò)堆棧的各個層保持信息包上下文472(a)-(c)。當(dāng)每個信息包穿過這些網(wǎng)絡(luò)層時(shí),信息包上下文跟隨它。信息包上下文也被傳遞到呼出258,并可以由這些呼出來加以修改(圖1)。
當(dāng)在每個層處處理這些信息包時(shí),更新信息包上下文。每個層將其層參數(shù)加入信息包上下文,從而將該信息提供給隨后的各個層或處理。如所示,鏈路層274加入如上下文472(a)所展示的源MAC地址和目的MAC地址以及關(guān)于入站信息包的接口號。那個上下文由網(wǎng)絡(luò)層272來接收,網(wǎng)絡(luò)層272加入如上下文472(b)所展示的源IP地址和目的IP地址。傳輸層266接收該上下文,并加入如上下文472(a)所展示的這些端口號。
對于和出站信息包關(guān)聯(lián)的上下文470(a)-(c)而言,會發(fā)生類似的處理。數(shù)據(jù)流層268加入諸如來自如上下文470(a)所展示的信息包有效載荷的URL地址等信息,傳輸層270進(jìn)一步加入如上下文470(b)所展示的源端口號和目的端口號,網(wǎng)絡(luò)層加入如上下文470(c)所展示的源IP地址和目的IP地址。
將會理解每個層可以將可用的任何上下文信息加入那個層。通常,這包括該層被設(shè)計(jì)成要加以處理(即,增加信息包或分析信息包或從信息包中導(dǎo)出)的任何信息。
當(dāng)在每個層處接收信息包及其對應(yīng)的上下文時(shí),通過識別這些層參數(shù)并發(fā)送被標(biāo)注為474的分類請求,該層可用作請求層。分類請求474包括層參數(shù)476、從該先前層接收的信息包上下文478和完全信息包480。被用來發(fā)出分類請求的示范方法是參照層API 280來加以描述的“分類”方法402(圖7)。
響應(yīng)于每個分類請求,核心模式防火墻引擎256將層參數(shù)476和信息包上下文478跟被分配給請求層的這些過濾器的過濾器條件318(圖4)進(jìn)行比較。核心防火墻引擎256將被標(biāo)注為482的響應(yīng)(具有來自擁有最高加權(quán)314的匹配過濾器310的動作484)發(fā)送到請求層。核心防火墻引擎256也返回策略上下文482。如果核心防火墻引擎256沒有識別匹配過濾器,則該核心防火墻引擎通知該請求層不存在匹配過濾器。核心防火墻引擎256繼續(xù)識別匹配過濾器,直到匹配過濾器指定終止動作(即允許或阻斷)為止,或者直到檢驗(yàn)被分配給該請求層的所有過濾器(不管首先檢驗(yàn)?zāi)膫€過濾器)為止。作為選擇,核心防火墻引擎256識別所有匹配,并在單一響應(yīng)中將這些動作返回到該請求層。
如一般所展示的,層參數(shù)的識別作為由網(wǎng)絡(luò)堆棧254的各個層執(zhí)行的標(biāo)準(zhǔn)層處理的一部分。不要求額外的信息包分析,從而將對系統(tǒng)性能的影響減到最小。而且,由于這些層在保持信息包上下文的過程中進(jìn)行合作,因此,防火墻引擎256有可能將過濾器條件與通常無法使用那些信息包參數(shù)的各個層處的信息包參數(shù)進(jìn)行比較。例如,網(wǎng)絡(luò)層268從包括源MAC地址和目的MAC地址的鏈路層274那里接收關(guān)于入站信息包的上下文。由于網(wǎng)絡(luò)層272發(fā)出具有網(wǎng)絡(luò)層參數(shù)(例如,源IP地址和目的IP地址以及該信息包上下文)的分類請求,因此,即使這些MAC地址通常不可用,核心防火墻引擎256也可以在網(wǎng)絡(luò)層272處的IP地址和MAC地址上進(jìn)行過濾。
參考圖9,現(xiàn)在將描述與本發(fā)明的防火墻結(jié)構(gòu)一同包括在內(nèi)的示范的呼出模塊組258。呼出模塊258包括HTTP上下文呼出500、侵入檢測呼出502、IPSec呼出504和記錄呼出506。呼出API 284構(gòu)成核心防火墻引擎256與呼出258之間的接口。
HTTP上下文呼出500保持可接受的或(作為選擇)不能接受的URL地址的高速緩存508。HTTP上下文呼出508定期訪問與公用網(wǎng)連接的服務(wù)器510,公用網(wǎng)保持URL地址并將它們分類成“可接受的”或“不能接受的”。當(dāng)核心防火墻引擎256執(zhí)行HTTP上下文呼出時(shí),該呼出檢查信息包,對URL地址進(jìn)行解密(如果必要的話),并根據(jù)高速緩存508中的信息確定它是否是可接受的。然后,如果URL地址是可接受的,則HTTP呼出返回允許,作為動作316;如果URL地址對于核心模式防火墻引擎256而言是不能接受的,則返回阻斷;這又經(jīng)由層API 280將動作316返回到請求層。HTTP上下文呼出在執(zhí)行雙親控制功能的過程中可發(fā)揮作用。
侵入檢測呼出502使用可用的算法和技術(shù)來檢查信息包,以識別病毒或可疑信息包的征候。如果檢測到可疑信息包,則返回阻斷動作316??梢尚畔睦邮沁@樣一種信息包——其中,IP頭部和TCP頭部中的所有標(biāo)志被設(shè)置為值1。信息包是可疑的,這是因?yàn)樗肋h(yuǎn)不會有效,并且會指出攻擊簽名。作為選擇,侵入檢測呼出502修改信息包上下文,以便標(biāo)記信息包的可疑性質(zhì),從而推遲了關(guān)于是否阻斷這個信息包到網(wǎng)絡(luò)堆棧中的隨后各層的決定。
IPSec呼出504被設(shè)計(jì)成確定是否曾將適當(dāng)?shù)陌踩珔f(xié)議應(yīng)用于信息包。IPSec呼出504與IPSec處理進(jìn)行通信,并根據(jù)IPSec策略來確定信息包是否曾被期望經(jīng)歷IPSec處理。如果是,則IPSec呼出504根據(jù)信息包上下文來驗(yàn)證信息包實(shí)際上是否經(jīng)歷過IPSec處理。如果信息包曾被期望根據(jù)IPSec來加以處理,但卻不是如此(例如,信息包在明文中),則返回阻斷動作。如果信息包經(jīng)歷過IPSec處理,則IPSec呼出驗(yàn)證應(yīng)用過適當(dāng)?shù)摹鞍踩P(guān)聯(lián)”(SA)。如果沒有應(yīng)用過該適當(dāng)?shù)腟A,則呼出返回阻斷動作316,否則,返回允許動作316。作為選擇,IPSec呼出修改信息包上下文,從而推遲了關(guān)于是阻斷還是允許對隨后的層的許可的決定。
使用記錄呼出506來保存關(guān)于信息包(例如,供以后使用的完全信息包)的信息。例如,這類以后的使用可能是例如關(guān)于某個網(wǎng)絡(luò)信息流通量(該網(wǎng)絡(luò)信息流通量出乎意料地沒有穿過網(wǎng)絡(luò),因?yàn)樗艿阶钄?或用于跟蹤該系統(tǒng)上的惡意攻擊的診斷程序。
這里所引用的所有這些參考資料被包括于此,用作整體參考。
鑒于可以應(yīng)用本發(fā)明的這些原理的這許多可能的實(shí)施例,應(yīng)該認(rèn)識到這里根據(jù)這些附圖而描述的實(shí)施例意在只起說明的作用,而不應(yīng)該被視作限制本發(fā)明的范圍。例如,精通該技術(shù)領(lǐng)域的人將會認(rèn)識到可以在硬件中執(zhí)行軟件中所示的該說明性實(shí)施例的這些元件,反之亦然;或者,在不脫離本發(fā)明的精神的前提下,可以在配置和細(xì)節(jié)方面修改說明性實(shí)施例。所以,如這里所描述的本發(fā)明計(jì)劃預(yù)期將所有這類實(shí)施例納入以下的如權(quán)利要求書及其相等物的范圍以內(nèi)。
權(quán)利要求
1.一種在計(jì)算機(jī)系統(tǒng)內(nèi)加以執(zhí)行的防火墻構(gòu)架,用于提供信息包的多層過濾,其特征在于,所述防火墻構(gòu)架包括一組層處理器,每個層處理器能夠處理和該層處理器關(guān)聯(lián)的該信息包的層參數(shù),并且,每個層處理器進(jìn)一步能夠發(fā)出包括這些層參數(shù)的分類請求;以及,第一個防火墻引擎,它包括層接口,用于從請求層處理器接收第一層參數(shù),并用于將動作返回到該請求層,該請求層處理器是該層處理器組中的一個層處理器;一組被安裝的過濾器;以及,查找部件,用于從該被安裝的過濾器組中識別至少一個匹配過濾器,并從該匹配過濾器中識別將由該層接口返回的動作。
2.如權(quán)利要求1所述的防火墻構(gòu)架,其特征在于,所述請求層從前一層處理器那里接收包括第二層參數(shù)的信息包上下文,并且,該分類請求包括該信息包上下文;其中,該查找部件進(jìn)一步使用該信息包上下文,用于識別這至少一個匹配過濾器。
3.如權(quán)利要求2所述的防火墻構(gòu)架,其特征在于,所述防火墻引擎進(jìn)一步包括呼出(callout)接口,用于將這些第一層參數(shù)、該信息包上下文和該信息包發(fā)送到呼出,其中,該呼出分析該信息包,并將該動作返回到該防火墻引擎。
4.如權(quán)利要求2所述的防火墻構(gòu)架,其特征在于,所述請求層將該信息包上下文傳遞到下一層。
5.如權(quán)利要求1所述的防火墻構(gòu)架,其特征在于,所述防火墻構(gòu)架進(jìn)一步包括策略供應(yīng)器,用于建立新的過濾器;以及,第二個防火墻引擎,用于將這個新的過濾器加入這個被安裝的過濾器組。
6.如權(quán)利要求1所述的防火墻構(gòu)架,其特征在于,所述被安裝的過濾器中的每個過濾器包括過濾器條件,包括類型-數(shù)據(jù)對,該類型定義該數(shù)據(jù)的尺寸,該數(shù)據(jù)包括過濾器參數(shù);以及,該動作。
7.如權(quán)利要求6所述的防火墻構(gòu)架,其特征在于,所述過濾器參數(shù)包括一范圍的值。
8.如權(quán)利要求6所述的防火墻構(gòu)架,其特征在于,所述過濾器包括定義該過濾器的優(yōu)先級的加權(quán)因子。
9.如權(quán)利要求1所述的防火墻構(gòu)架,其特征在于,所述層處理器組進(jìn)一步包括鏈路層,它具有層參數(shù),這些層參數(shù)包括接口號以及源MAC地址和目的MAC地址;網(wǎng)絡(luò)層,它具有層參數(shù),這些層參數(shù)包括源和目的IP地址;傳輸層,它具有層參數(shù),這些層參數(shù)包括源端口和目的端口;以及,應(yīng)用層,它具有層參數(shù),這些層參數(shù)包括數(shù)據(jù)流。
10.如權(quán)利要求9所述的防火墻構(gòu)架,其特征在于,所述網(wǎng)絡(luò)層被進(jìn)一步分成片段層和完全裝配層,該片段層處理IP信息包片段,該完全裝配層處理完整的IP信息包,該片段層和該完全裝配層中的每種層發(fā)出該分類請求。
11.如權(quán)利要求1所述的防火墻構(gòu)架,其特征在于,所述第一個防火墻引擎按操作系統(tǒng)核心模式來執(zhí)行。
12.如權(quán)利要求1所述的防火墻構(gòu)架,其特征在于,所述第一個防火墻引擎按操作系統(tǒng)用戶模式來執(zhí)行。
13.一種用于在操作系統(tǒng)中的第一層處理與防火墻處理之間進(jìn)行通信的方法,其特征在于,所述方法包括以下各個步驟通過這第一層處理,來發(fā)出具有多個參數(shù)的分類調(diào)用,這些參數(shù)包括協(xié)議信息包、至少一個層參數(shù)和來自第二層處理的信息包上下文;通過該防火墻處理,來接收該分類調(diào)用;以及,通過該防火墻處理,來發(fā)出從與至少一個層參數(shù)相匹配的過濾器中被加以識別的動作。
14.如權(quán)利要求13所述的方法,其特征在于,所述第一層處理是新的處理,進(jìn)一步包括通過這第一層處理,來發(fā)出增加層調(diào)用。
15.如權(quán)利要求13所述的方法,其特征在于,所述第一層處理是現(xiàn)存的處理,進(jìn)一步包括通過這第一層處理,來發(fā)出刪除層調(diào)用。
16.一種用于在操作系統(tǒng)中的防火墻處理與呼出處理之間進(jìn)行通信的方法,其特征在于,所述方法包括以下各個步驟通過該防火墻處理,來發(fā)出具有多個參數(shù)的分類調(diào)用,這些參數(shù)包括協(xié)議信息包、至少一個層參數(shù)、信息包上下文和匹配過濾器標(biāo)識;通過該呼出處理,來接收該分類調(diào)用;以及,通過該呼出處理,來發(fā)出從該分類調(diào)用中的多個參數(shù)中被加以識別的動作。
17.如權(quán)利要求16所述的方法,其特征在于,所述該呼出處理是保持可接受的資源位置的高速緩存的雙親控制模塊,進(jìn)一步包括檢查該信息包,以識別資源位置,并且將該資源位置與這些可接受的位置進(jìn)行比較。
18.如權(quán)利要求17所述的方法,其特征在于,所述該呼出處理所發(fā)出的這個動作是阻斷,并防止該協(xié)議信息包進(jìn)行網(wǎng)絡(luò)遍歷。
19.如權(quán)利要求17所述的方法,其特征在于,所述該呼出處理所發(fā)出的這個動作是允許,并允許該協(xié)議信息包進(jìn)一步穿過網(wǎng)絡(luò)。
20.如權(quán)利要求16所述的方法,其特征在于,所述該呼出處理是記錄模塊,進(jìn)一步包括將該協(xié)議信息包存儲在存儲器中。
21.如權(quán)利要求16所述的方法,其特征在于,所述該呼出處理是安全模塊,進(jìn)一步包括通過該安全模塊來確定該協(xié)議信息包需符合安全協(xié)議;驗(yàn)證該協(xié)議信息包符合該安全協(xié)議。
22.如權(quán)利要求21所述的方法,其特征在于,所述該安全協(xié)議是IPSec安全協(xié)議。
23.一種用于執(zhí)行計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀介質(zhì),這些計(jì)算機(jī)可讀指令用于促進(jìn)在計(jì)算機(jī)系統(tǒng)內(nèi)執(zhí)行防火墻構(gòu)架,以提供信息包的多層過濾,其特征在于包括一組層處理器,每個層處理器能夠處理和該層處理器關(guān)聯(lián)的該信息包的層參數(shù),每個層處理器進(jìn)一步能夠發(fā)出包括這些層參數(shù)的分類請求;以及,第一個防火墻引擎,包括層接口,用于從請求層處理器接收第一層參數(shù),并用于將動作返回到該請求層,該請求層處理器是該層處理器組中的一個層處理器;一組被安裝的過濾器;以及,查找部件,用于從這個被安裝的過濾器組中識別至少一個匹配過濾器,并從該匹配過濾器中識別將由該層接口返回的該動作。
24.如權(quán)利要求23所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述請求層從前一層處理器那里接收包括第二層參數(shù)的信息包上下文,并且,該分類請求包括該信息包上下文;其中,該查找部件進(jìn)一步使用該信息包上下文,用于識別至少一個匹配過濾器。
25.如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述防火墻引擎進(jìn)一步包括呼出接口,用于將這第一層參數(shù)、該信息包上下文和該信息包發(fā)送到呼出,其中,該呼出分析該信息包,并將該動作返回到該防火墻引擎。
26.如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述請求層將該信息包上下文傳遞到下一層。
27.如權(quán)利要求23的計(jì)算機(jī)可讀介質(zhì),其特征在于進(jìn)一步包括策略供應(yīng)器,用于建立新的過濾器;以及,第二個防火墻引擎,用于將該新的過濾器加入該被安裝的過濾器組。
28.一種用于執(zhí)行計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀介質(zhì),這些計(jì)算機(jī)可讀指令用于在操作系統(tǒng)中的第一層處理與防火墻處理之間進(jìn)行通信,其特征在于包括以下各個步驟通過第一層處理,來發(fā)出具有多個參數(shù)的分類調(diào)用,這些參數(shù)包括協(xié)議信息包、至少一個層參數(shù)和來自第二層處理的信息包上下文;通過該防火墻處理,來接收該分類調(diào)用;以及,通過該防火墻處理,來發(fā)出從與該至少一個層參數(shù)相匹配的過濾器中被加以識別的動作。
29.如權(quán)利要求28所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述第一層處理是新的處理,進(jìn)一步包括通過這第一層處理,來發(fā)出增加層調(diào)用。
30.如權(quán)利要求28所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述第一層處理是現(xiàn)存的處理,進(jìn)一步包括通過這第一層處理,來發(fā)出刪除層調(diào)用。
31.一種用于執(zhí)行計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),這些計(jì)算機(jī)可執(zhí)行指令用于在操作系統(tǒng)中的防火墻處理與呼出處理之間進(jìn)行通信,其特征在于包括以下各個步驟通過該防火墻處理,來發(fā)出具有多個參數(shù)的分類調(diào)用,這些參數(shù)包括協(xié)議信息包、至少一個層參數(shù)、信息包上下文和匹配過濾器標(biāo)識;通過該呼出處理,來接收該分類調(diào)用;以及,通過該呼出處理,來發(fā)出從該分類調(diào)用中的多個參數(shù)中被加以識別的動作。
32.如權(quán)利要求31所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述呼出處理是記錄模塊,進(jìn)一步包括將該協(xié)議信息包存儲在存儲器中。
33.如權(quán)利要求31所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述呼出處理是安全模塊,進(jìn)一步包括通過該安全模塊,來確定該協(xié)議信息包需符合安全協(xié)議;驗(yàn)證該協(xié)議信息包符合該安全協(xié)議。
34.一種用于允許請求層獲得關(guān)于信息包的策略的功能接口,該請求層是多個層中的一個層,其特征在于包括一種分類方法,該方法包括由該請求層接收的該信息包;與該信息包關(guān)聯(lián)的參數(shù)集,該參數(shù)集包括由該請求層處理的數(shù)據(jù);由該請求層從多個層中的另一個層那里接收的信息包上下文;以及,將要被返回到該請求層的動作,所述動作識別將要被應(yīng)用于該信息包的第一項(xiàng)策略。
35.如權(quán)利要求34的功能接口,其特征在于進(jìn)一步包括增加層方法,用于允許將新的層加入這多個層。
36.如權(quán)利要求34的功能接口,其特征在于進(jìn)一步包括刪除層方法,用于從這多個層中除去現(xiàn)存的層。
37.如權(quán)利要求34的功能接口,其特征在于進(jìn)一步包括策略上下文,定義要被應(yīng)用于該信息包的第二項(xiàng)策略。
38.如權(quán)利要求37的功能接口,其特征在于其中,這第一項(xiàng)策略是防火墻策略,這第二項(xiàng)策略是非防火墻策略。
全文摘要
本發(fā)明提供了一種方法和系統(tǒng),用于在網(wǎng)絡(luò)設(shè)備中執(zhí)行防火墻結(jié)構(gòu)。該防火墻結(jié)構(gòu)包括多個網(wǎng)絡(luò)層、第一個防火墻引擎以及一個或多個呼出模塊。這些層將信息包和信息包信息發(fā)送到第一個防火墻引擎,保持信息包上下文并將其傳遞到隨后的各個層,并且處理這些信息包。第一個防火墻引擎將該信息包信息與一個或多個被安裝的過濾器進(jìn)行比較,并將動作返回到這些層,指出如何處置該信息包。這些呼出提供額外的功能性(例如,侵入檢測、記錄和雙親控制特點(diǎn))。
文檔編號G06F13/00GK1574839SQ20041004888
公開日2005年2月2日 申請日期2004年6月4日 優(yōu)先權(quán)日2003年6月6日
發(fā)明者B·D·斯瓦恩德, P·G·枚菲爾德 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
全南县| 石泉县| 辽宁省| 资源县| 阿克苏市| 安平县| 宿松县| 浦北县| 鄯善县| 东丽区| 肃宁县| 浦北县| 鄯善县| 天祝| 六枝特区| 长岛县| 全椒县| 松江区| 榆中县| 兰州市| 延边| 陆丰市| 新平| 海门市| 加查县| 奉贤区| 财经| 襄汾县| 灯塔市| 玉溪市| 新和县| 房产| 新余市| 都安| 壶关县| 苏州市| 运城市| 宜丰县| 手游| 波密县| 岳池县|