專利名稱:網(wǎng)絡(luò)處理器的動(dòng)態(tài)網(wǎng)絡(luò)安全裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理器,尤其涉及在網(wǎng)絡(luò)處理器中根據(jù)網(wǎng)絡(luò)條件動(dòng)態(tài)地加載安全算法的裝置和方法。
背景技術(shù):
網(wǎng)絡(luò)通信應(yīng)用的增長,尤其是分組交換網(wǎng)絡(luò),比如因特網(wǎng),增加了對(duì)更有效的網(wǎng)絡(luò)安全的需求。這樣,隨著越來越多的具有潛在價(jià)值的信息通過通信網(wǎng)絡(luò)傳輸,吸引了更多的非授權(quán)人員泄露這些信息。
已有多種公知技術(shù)可以危及分組交換通信網(wǎng)絡(luò)或網(wǎng)絡(luò)通信設(shè)備(比如網(wǎng)絡(luò)處理器,專用集成電路(ASIC)等等)的安全。其中有一種通常被稱為拒絕服務(wù)(denial of service,DOS)攻擊的技術(shù)。DOS攻擊可以用多種不同的方法發(fā)起和實(shí)現(xiàn)。比如IP源地址欺騙(Internet Protocolsource address spoofing),SYN分組淹沒(SYN packet flooding),UDP淹沒(UDP flooding),ICMP回應(yīng)(ICMP echo reply),ICMP淹沒(ICMP flooding)以及序號(hào)攻擊(sequence number attack)等都是一些公知類型的DOS攻擊。只要檢測、識(shí)別并做出響應(yīng)的設(shè)備能夠迅速地執(zhí)行適當(dāng)?shù)捻憫?yīng)算法,就可以檢測、唯一地識(shí)別并挫敗所有的這些已知DOS攻擊,從而避免危及網(wǎng)絡(luò)安全。
通常,一個(gè)網(wǎng)絡(luò)會(huì)包含多個(gè)連接的通用處理器、網(wǎng)絡(luò)處理器和/或ASIC,使用一個(gè)或多個(gè)這些設(shè)備來執(zhí)行對(duì)網(wǎng)絡(luò)安全攻擊的響應(yīng)或?qū)?。例如,這些響應(yīng)或?qū)箍赡馨▓?zhí)行對(duì)特定類型的DOS攻擊進(jìn)行檢測、識(shí)別和響應(yīng)的算法。ASIC是高度定制的設(shè)備,它通常執(zhí)行一個(gè)預(yù)定的算法,這樣可以快速有效地對(duì)DOS攻擊或其它類型的網(wǎng)絡(luò)安全攻擊進(jìn)行響應(yīng)。不幸的是,ASIC的本質(zhì)是靜態(tài)的,它們只能執(zhí)行有限數(shù)量的預(yù)定安全策略算法,這些算法是在制造或設(shè)置ASIC的時(shí)候?qū)懭氲?。這樣的結(jié)果是,如果一個(gè)ASIC受到?jīng)]有相應(yīng)響應(yīng)算法的DOS攻擊或其它類型的網(wǎng)絡(luò)安全攻擊,那么這個(gè)ASIC就不能有效地對(duì)這種攻擊進(jìn)行響應(yīng)以避免危及網(wǎng)絡(luò)安全。
與ASIC相反,網(wǎng)絡(luò)處理器是可編程的,這樣,網(wǎng)絡(luò)處理器執(zhí)行的安全算法可以在運(yùn)行時(shí)間(也就是網(wǎng)絡(luò)處理器執(zhí)行軟件的時(shí)候)之前通過下載適當(dāng)?shù)能浖M(jìn)行修改。對(duì)網(wǎng)絡(luò)安全攻擊的有效響應(yīng)要求程序員開發(fā)特別適合于在網(wǎng)絡(luò)處理器的快速通路(fast path)分組處理部件(也就是快速通路硬件)中加載和執(zhí)行的網(wǎng)絡(luò)安全軟件。不幸的是,可在網(wǎng)絡(luò)處理器的快速通路硬件中執(zhí)行的軟件指令集通常是有限的,并且網(wǎng)絡(luò)處理器的快速通路處理部件通常只能為指令提供相對(duì)有限的內(nèi)存空間(也就是代碼存儲(chǔ)器)。結(jié)果,可在網(wǎng)絡(luò)處理器的快速通路硬件中加載和執(zhí)行的程序的復(fù)雜性和大小都會(huì)受到某些限制。因此,程序員通常只選擇一個(gè)網(wǎng)路安全算法供網(wǎng)絡(luò)處理器的快速通路下載和執(zhí)行。這樣,在網(wǎng)絡(luò)處理器中采用的對(duì)網(wǎng)絡(luò)安全攻擊進(jìn)行響應(yīng)的安全措施或算法是靜態(tài)的(也就是不能在運(yùn)行時(shí)改變),并且不能對(duì)一種以上的網(wǎng)絡(luò)安全攻擊進(jìn)行響應(yīng)。
此外,雖然可以采用操作系統(tǒng)來選擇性地管理多個(gè)應(yīng)用程序或進(jìn)程的執(zhí)行,但是已知的網(wǎng)絡(luò)處理器不采用傳統(tǒng)的操作系統(tǒng),這是因?yàn)閭鹘y(tǒng)的操作系統(tǒng)會(huì)降低網(wǎng)絡(luò)處理器執(zhí)行安全算法的速度。因而,實(shí)際上網(wǎng)絡(luò)處理器也是靜態(tài)的(也就是說它們被編程為對(duì)單一類型的網(wǎng)絡(luò)安全威脅進(jìn)行響應(yīng)),并且網(wǎng)絡(luò)處理器執(zhí)行的安全算法不能在運(yùn)行時(shí)改變。
發(fā)明內(nèi)容
為了解決上述問題,根據(jù)本發(fā)明的一個(gè)方面,一種把安全算法加載到網(wǎng)絡(luò)處理器的快速通路中的方法,包括從第一網(wǎng)絡(luò)客戶端接收與網(wǎng)絡(luò)處理器連接的請(qǐng)求;為所述第一網(wǎng)絡(luò)客戶端提供多個(gè)可用的安全算法;根據(jù)由所述第一網(wǎng)路客戶端進(jìn)行的選擇,來確定所述多個(gè)可用安全算法中的哪一個(gè)算法將被用來與所述第一客戶端進(jìn)行通信;以及把所述多個(gè)可用安全算法中將被用來與所述第一客戶端進(jìn)行通信的所選擇的一個(gè)安全算法下載到網(wǎng)絡(luò)處理器中。
根據(jù)本發(fā)明的另一方面,一種網(wǎng)絡(luò)通信設(shè)備,包括包含多個(gè)安全算法的存儲(chǔ)器;以及與該存儲(chǔ)器相連接的處理器,該處理器被編程為從第一網(wǎng)絡(luò)客戶端接收與處理器連接的請(qǐng)求;為所述第一網(wǎng)絡(luò)客戶端提供一組多個(gè)安全算法;根據(jù)由所述第一網(wǎng)絡(luò)客戶端進(jìn)行的選擇,來確定所述多個(gè)安全算法中哪一個(gè)算法將被用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信;以及把所述多個(gè)安全算法中將被用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信的一個(gè)下載到處理器中。
根據(jù)本發(fā)明的另一方面,一種系統(tǒng),其包括數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)多個(gè)安全算法;與所述數(shù)據(jù)結(jié)構(gòu)相連的處理器,用于從第一網(wǎng)絡(luò)客戶端接收連接該處理器的請(qǐng)求,為所述第一網(wǎng)絡(luò)客戶端提供多個(gè)可用的安全算法,并且根據(jù)由所述第一網(wǎng)絡(luò)客戶端進(jìn)行的選擇,來確定所述多個(gè)可用安全算法中的哪一個(gè)將被用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信;以及與所述處理器相連的快速通路分組處理單元,其中所述處理器將所述多個(gè)安全算法中的將被用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信的所選擇的一個(gè)下載到該快速通路分組處理單元中。
根據(jù)本發(fā)明的另一方面,一種處理器,其具有多個(gè)處理單元,其中這些處理單元中的第一處理單元從第一網(wǎng)絡(luò)客戶端接收連接該處理器的請(qǐng)求,為所述第一網(wǎng)絡(luò)客戶端提供多個(gè)可用安全算法,并且根據(jù)由所述第一網(wǎng)絡(luò)客戶端進(jìn)行的選擇,來確定所述多個(gè)可用安全算法中的哪一個(gè)將被選擇用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信,并且其中,所述多個(gè)處理單元中的第一處理單元與所述多個(gè)處理單元中的第二處理單元相連,并將所述多個(gè)可用安全算法中的所述選擇的一個(gè)下載到所述多個(gè)處理單元中的第二處理單元中。
圖1所示的是采用本文所述的動(dòng)態(tài)網(wǎng)絡(luò)安全方法和裝置的示例系統(tǒng)的示意圖;圖2所示為在圖1所示系統(tǒng)中實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)絡(luò)安全的示例方法的流程圖;圖3所示的是可用于TCP SYN攻擊檢測和響應(yīng)的動(dòng)態(tài)網(wǎng)絡(luò)安全技術(shù)示例方法的流程圖;圖4所示的是在一個(gè)與虛擬專用網(wǎng)絡(luò)連接的網(wǎng)絡(luò)處理器中實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)絡(luò)安全的示例方法的流程圖。
具體實(shí)施例方式
圖1所示的是示例系統(tǒng)10的簡圖,在這個(gè)系統(tǒng)中采用了本文所描述的動(dòng)態(tài)網(wǎng)絡(luò)安全方法和裝置。如圖1所示,系統(tǒng)10包括一個(gè)帶有網(wǎng)絡(luò)處理器14和一個(gè)可選的協(xié)處理器16的計(jì)算機(jī)系統(tǒng)或工作站12。網(wǎng)絡(luò)處理器14可以是任何合適的網(wǎng)絡(luò)處理器,比如Intel IXP425,IXP1200和IXP2x00處理器。通常,網(wǎng)絡(luò)處理器14包含多個(gè)子處理單元或處理器(未示出),其中一個(gè)用來執(zhí)行通信分組的快速通路處理,另一個(gè)用來執(zhí)行通常的處理任務(wù),包括分組處理和其它的處理任務(wù)。如果包含了協(xié)處理單元16的話,它被網(wǎng)絡(luò)處理器14用來執(zhí)行特定的操作(比如數(shù)學(xué)運(yùn)算),以使網(wǎng)絡(luò)處理器14更加有效地執(zhí)行它的通信功能。
工作站12也包含有一個(gè)與網(wǎng)絡(luò)處理器14相連接的存儲(chǔ)器17。下面會(huì)詳細(xì)的講到,存儲(chǔ)器17包含一個(gè)安全算法數(shù)據(jù)庫,網(wǎng)絡(luò)處理器14可以根據(jù)網(wǎng)絡(luò)條件,比如通過網(wǎng)絡(luò)處理器14所連接的局域網(wǎng)20和分組交換網(wǎng)絡(luò)22接收到的通信的特征,選擇性地調(diào)用和執(zhí)行一個(gè)或多個(gè)算法。
另外,工作站12通過局域網(wǎng)20與另一個(gè)計(jì)算機(jī)系統(tǒng)18相連接。計(jì)算機(jī)系統(tǒng)18可以是與工作站12相似或相同的工作站,或者是其它類型的計(jì)算機(jī)系統(tǒng)。局域網(wǎng)20可以利用以太網(wǎng)(一種公知的網(wǎng)絡(luò)結(jié)構(gòu)),或者其它合適的網(wǎng)絡(luò)結(jié)構(gòu)而實(shí)施。工作站12也通過局域網(wǎng)20與分組交換網(wǎng)絡(luò)22(比如因特網(wǎng))連接,分組交換網(wǎng)絡(luò)22同時(shí)也和位于遠(yuǎn)端的工作站24相連接,工作站24具有網(wǎng)絡(luò)處理器26和協(xié)處理單元28。如果需要的話,其它的計(jì)算機(jī)或工作站也可以連接到局域網(wǎng)20或分組交換網(wǎng)絡(luò)22上。
圖2為在圖1所示的工作站12中實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)絡(luò)安全的示例方法的流程圖。優(yōu)選地,圖2所示的方法是利用圖1所示網(wǎng)絡(luò)處理器14的普通處理功能執(zhí)行的,而不是在網(wǎng)絡(luò)處理器14的快速通路通信分組處理單元中執(zhí)行。然而,圖2所示或結(jié)合圖2描述的一部分或全部方法也可以在工作站12的通用處理器或與網(wǎng)絡(luò)處理器14相連的任何合適的處理單元中執(zhí)行。
另外,圖2中所描述的方法與正常的通信分組處理過程是并行的,這樣就不會(huì)影響正常通信分組處理的速度。如上所述,網(wǎng)絡(luò)處理器,如圖1所示的網(wǎng)絡(luò)處理器14,包含多個(gè)處理單元(未示出),在這些處理單元中,有一些是通用的,并且至少有一個(gè)被配置成實(shí)現(xiàn)快速通路分組處理單元的功能。雖然網(wǎng)絡(luò)處理器中的各種處理單元可以相互通信,但是這些處理單元是獨(dú)立工作的(也就是并行的)。
如圖2所示,對(duì)輸入通信分組(在本例中為IP分組)進(jìn)行監(jiān)視并且生成與這些分組相關(guān)的統(tǒng)計(jì)信息和其它特征(塊100)。另外,也生成與網(wǎng)絡(luò)處理器14相關(guān)的資源的統(tǒng)計(jì)信息和其它特征,例如連接緩存狀態(tài)(塊100)。生成統(tǒng)計(jì)信息的一些或全部計(jì)算可以由協(xié)處理單元16進(jìn)行。
選擇塊100中生成的統(tǒng)計(jì)信息的具體類型,使得可以檢測可能的一種或多種類型的網(wǎng)絡(luò)安全攻擊。例如,對(duì)于一種通常稱為IP源地址欺騙的DOS攻擊,源地址隨機(jī)地改變?yōu)橥ǔ2辉谝蛱鼐W(wǎng)路由表中出現(xiàn)的地址,這些地址是不可達(dá)的。每一個(gè)不可達(dá)的地址都會(huì)在一段時(shí)間內(nèi)消耗接收到該連接請(qǐng)求的網(wǎng)絡(luò)處理器的連接和緩存空間。這樣,可以通過監(jiān)視可用連接的數(shù)目和對(duì)應(yīng)于每個(gè)連接的緩存數(shù)量,并且對(duì)當(dāng)前使用的資源和通常的資源使用情況進(jìn)行比較,從而對(duì)IP源地址欺騙攻擊進(jìn)行檢測。當(dāng)網(wǎng)絡(luò)處理器受到IP地址欺騙攻擊時(shí),網(wǎng)絡(luò)處理器的當(dāng)前資源使用量要大大超過通常的資源使用量,比如,超過80%。這樣,為了能夠檢測IP地址欺騙攻擊,塊100生成的統(tǒng)計(jì)信息應(yīng)該包括與網(wǎng)絡(luò)處理器14中的連接緩存的緩存使用率相關(guān)的值。
在另一方面,對(duì)于一種通常稱為SYN分組淹沒的DOS攻擊,攻擊系統(tǒng)使用三路握手(three-way handshake)建立TCP連接來消耗主機(jī)系統(tǒng)(也就是被攻擊的系統(tǒng))的可用連接。具體而言,攻擊系統(tǒng)發(fā)出大量的SYN分組并且不應(yīng)答(也就是ACK)主機(jī)系統(tǒng)發(fā)來的SYN ACK信號(hào)。結(jié)果,無法完成所請(qǐng)求的連接,并且不能被合法的TCP用戶使用。最終,攻擊系統(tǒng)消耗了主機(jī)系統(tǒng)(也就是主機(jī)系統(tǒng)的網(wǎng)絡(luò)處理器)所有的可用連接,系統(tǒng)拒絕為合法用戶提供服務(wù)。這樣,可以通過生成與網(wǎng)絡(luò)處理器接收SYN分組的速率相關(guān)的統(tǒng)計(jì)信息,并且把當(dāng)前SYN接收速率和一個(gè)閾值(比如10,000每秒)相比較,從而檢測SYN分組淹沒攻擊。如果當(dāng)前網(wǎng)絡(luò)處理器接收SYN分組的速率超過了預(yù)定的閾值,則生成一個(gè)事件來表示可能正在進(jìn)行SYN分組淹沒攻擊。這樣,塊100生成的統(tǒng)計(jì)信息應(yīng)該包括與網(wǎng)絡(luò)處理器14的SYN分組接收速率相關(guān)的信息。
更進(jìn)一步說,也可以在塊100中生成其它的統(tǒng)計(jì)信息,比如網(wǎng)絡(luò)處理器的UDP分組接收速率和ICMP分組接收速率,從而能夠檢測其它類型的網(wǎng)絡(luò)安全攻擊,例如UDP淹沒、ICMP淹沒、ICMP回應(yīng)或者任何其它類型的網(wǎng)絡(luò)安全攻擊。當(dāng)然,塊100生成的分組和資源統(tǒng)計(jì)以及其它的分組和資源信息可以包含檢測任何已知或未知類型的網(wǎng)絡(luò)攻擊所需的統(tǒng)計(jì)和信息。
使用分組和資源統(tǒng)計(jì)來確定是否正在進(jìn)行網(wǎng)絡(luò)安全攻擊(塊102)。比如,在網(wǎng)絡(luò)處理器14正在受到IP地址欺騙攻擊的情況下,網(wǎng)絡(luò)處理器14將會(huì)意識(shí)到其異常升高的連接緩存使用率。在TCP SYN淹沒攻擊的情況下,網(wǎng)絡(luò)處理器14將會(huì)意識(shí)到其異常高的輸入SYN分組速率和/或異常高的連接緩存占用率。在任何情況下,如果網(wǎng)絡(luò)處理器14確定沒有網(wǎng)絡(luò)安全攻擊正在進(jìn)行,它將會(huì)返回生成分組和資源統(tǒng)計(jì)信息和其它信息(塊100)。
另一方面,如果網(wǎng)絡(luò)處理器14確定有網(wǎng)絡(luò)安全攻擊正在進(jìn)行,它將會(huì)確定是否有適當(dāng)?shù)陌踩惴?也就是可以對(duì)當(dāng)前攻擊進(jìn)行有效響應(yīng)的算法)(塊104)。具體而言,網(wǎng)絡(luò)處理器14首先確定在其快速通路處理硬件中當(dāng)前是否加載有合適的算法。如果在網(wǎng)絡(luò)處理器14的快速通路硬件中當(dāng)前沒有加載合適的算法,則在存儲(chǔ)器17的安全算法數(shù)據(jù)庫中搜索合適的安全算法。如果網(wǎng)絡(luò)處理器14確定沒有合適的算法,它將會(huì)選擇一個(gè)最適合對(duì)當(dāng)前攻擊進(jìn)行響應(yīng)的算法并且加載該算法,這將在下面描述,或者不加載任何算法并且返回生成分組和資源統(tǒng)計(jì)信息(塊100)。
如果有合適的安全算法,則網(wǎng)絡(luò)處理器14計(jì)算把該安全算法加載到其快速通路硬件中所需要的時(shí)間(塊106)。
然后網(wǎng)絡(luò)處理器14確定所選擇的算法(它的加載所需時(shí)間已經(jīng)經(jīng)過計(jì)算)是否應(yīng)該加載到網(wǎng)絡(luò)處理器14的快速通路硬件中(塊108)。優(yōu)選的,決定是否加載所選擇的算法取決于一個(gè)價(jià)值函數(shù),該價(jià)值函數(shù)對(duì)網(wǎng)絡(luò)處理器所執(zhí)行安全算法的快速調(diào)整(更換)的益處和把算法下載到網(wǎng)絡(luò)處理器的快速通路硬件時(shí)暫停通信產(chǎn)生的延遲所帶來的通信吞吐量降低(這是造成用戶不便的重要來源)之間進(jìn)行平衡。比如,在一個(gè)或多個(gè)由塊100生成的分組和資源統(tǒng)計(jì)信息達(dá)到了各自對(duì)應(yīng)的一個(gè)或多個(gè)與安全攻擊相關(guān)的閾值的情況下,網(wǎng)絡(luò)處理器14會(huì)試圖快速或連續(xù)地加載不同的安全算法。這種過多或頻繁的加載安全算法會(huì)大大地減少網(wǎng)絡(luò)處理器處理通信分組的時(shí)間,導(dǎo)致通信吞吐量的大大降低。
為了避免過多或頻繁的下載安全算法,網(wǎng)絡(luò)處理器14可以采用一個(gè)基于將算法加載到快速通路硬件所需的下載時(shí)間和從最后一次下載到快速通路硬件起經(jīng)過的時(shí)間之間比值的價(jià)值函數(shù)。這樣,當(dāng)算法的下載時(shí)間達(dá)到從最后一次下載起經(jīng)過的時(shí)間的很大比重時(shí),下載新選擇的算法的期望度或價(jià)值將會(huì)減小。比如,如果下載所選擇的算法所需的時(shí)間大于從最后一次下載到現(xiàn)在的時(shí)間的1%,則網(wǎng)絡(luò)處理器14將不會(huì)下載一個(gè)不同的算法到它的快速通路硬件中。當(dāng)然,也可以使用大于或小于從最后一次下載起經(jīng)過時(shí)間的1%的值。
如果網(wǎng)絡(luò)處理器14根據(jù)價(jià)值函數(shù)確定不加載某個(gè)算法,它會(huì)返回生成分組和資源統(tǒng)計(jì)信息(塊100)。另一方面,如果網(wǎng)絡(luò)處理器14確定要加載一個(gè)算法,則它將采用任何用以更新其控制存儲(chǔ)器的功能來將該算法加載到它的快速通路中(塊110)。這些功能是眾所周知的,在這里沒有詳細(xì)描述。
存儲(chǔ)在存儲(chǔ)器17中的安全算法數(shù)據(jù)庫可以采用網(wǎng)絡(luò)處理器軟件開發(fā)者熟知的軟件開發(fā)工具建立。例如,對(duì)SYN淹沒攻擊進(jìn)行響應(yīng)的算法會(huì)增加網(wǎng)絡(luò)處理器14內(nèi)的連接隊(duì)列或緩存的大小,比如增加25%,或減小三路握手的超時(shí)等待時(shí)間,比如減小40%。
圖3所示的是將圖2所示動(dòng)態(tài)網(wǎng)絡(luò)安全技術(shù)用于TCP SYN攻擊檢測和響應(yīng)的示例方法的流程圖。如圖3所示,網(wǎng)絡(luò)處理器14在接收每一個(gè)分組后都要更新SYN速率統(tǒng)計(jì)信息(塊200)。網(wǎng)絡(luò)處理器14也更新連接隊(duì)列統(tǒng)計(jì)信息(比如連接隊(duì)列填充率)并且計(jì)算分配給每個(gè)連接的資源的百分比(塊202)。當(dāng)然,網(wǎng)絡(luò)處理器14可以使用協(xié)處理單元16來執(zhí)行生成與塊200和202相關(guān)的信息、統(tǒng)計(jì)等所需的一個(gè)或多個(gè)計(jì)算。
更新通信分組和資源統(tǒng)計(jì)信息和其它信息后(塊200和202),網(wǎng)絡(luò)處理器14將SYN分組速率統(tǒng)計(jì)值與和TCP SYN攻擊相關(guān)的預(yù)定閾值相比較(塊204)。如果SYN分組速率統(tǒng)計(jì)值大于與TCP SYN攻擊相關(guān)的閾值,則網(wǎng)絡(luò)處理器14確定TCP SYN攻擊正在進(jìn)行。如果TCP SYN攻擊正在進(jìn)行,則網(wǎng)絡(luò)處理器14計(jì)算一個(gè)優(yōu)選地基于入口端口過濾算法(Ingress portfiltering algorithm)加載時(shí)間的價(jià)值函數(shù)(塊206)。入口端口過濾算法是一種眾所周知的處理TCP SYN攻擊的技術(shù),在此不詳細(xì)描述。
然后網(wǎng)絡(luò)處理器14確定價(jià)值函數(shù)的結(jié)果(比如加載時(shí)間)是否小于最后一次下載安全算法到網(wǎng)絡(luò)處理器14的快速通路硬件起所經(jīng)過時(shí)間的100倍(塊208)。如果價(jià)值函數(shù)的結(jié)果大于或等于最后一次下載安全算法到網(wǎng)絡(luò)處理器14的快速通路硬件起所經(jīng)過時(shí)間的100倍,則網(wǎng)絡(luò)處理器14返回,響應(yīng)于接收到通信分組而更新SYN分組速率統(tǒng)計(jì)值(塊200)。另一方面,如果網(wǎng)絡(luò)處理器14確定價(jià)值函數(shù)的結(jié)果小于最后一次下載安全算法到網(wǎng)絡(luò)處理器14的快速通路硬件起所經(jīng)過時(shí)間的100倍,則網(wǎng)絡(luò)處理器14把所選擇的算法加載到網(wǎng)絡(luò)處理器14的快速通路中,在這里是入口端口過濾算法(塊210)。
如果網(wǎng)絡(luò)處理器14確定SYN分組速率小于預(yù)定的閾值(塊204),則它確定資源的使用率(比如,基于連接隊(duì)列統(tǒng)計(jì)、分配給連接的資源百分比等)是否大于一個(gè)與TCP SYN攻擊相關(guān)的預(yù)定閾值(塊212)。如果網(wǎng)絡(luò)處理器14確定資源的使用率小于或等于該閾值(塊212),則它認(rèn)為沒有TCP SYN攻擊在進(jìn)行,并且返回去響應(yīng)于接收到通信分組而更新SYN分組速率統(tǒng)計(jì)信息(塊200)。另一方面,如果網(wǎng)絡(luò)處理器14確定資源使用率大于該閾值(塊212),則它認(rèn)為有TCP SYN攻擊正在進(jìn)行,并且基于適當(dāng)算法(例如,增加連接隊(duì)列大小和/或減小三路握手的超時(shí)等待時(shí)間的算法)的加載時(shí)間計(jì)算價(jià)值函數(shù)。
計(jì)算價(jià)值函數(shù)后(比如,計(jì)算算法加載時(shí)間后),將價(jià)值函數(shù)的結(jié)果(在這個(gè)例子中是加載時(shí)間)與最后一次下載安全算法到網(wǎng)絡(luò)處理器14的快速通路硬件起所經(jīng)過時(shí)間的100倍進(jìn)行比較(塊208)。如果網(wǎng)絡(luò)處理器14確定價(jià)值函數(shù)的結(jié)果小于最后一次下載安全算法到網(wǎng)絡(luò)處理器14的快速通路硬件起所經(jīng)過時(shí)間的100倍,則網(wǎng)絡(luò)處理器加載該算法,增加連接隊(duì)列的大小和/或減小三路握手的超時(shí)等待時(shí)間(塊210)。否則,如果塊214中計(jì)算的價(jià)值函數(shù)結(jié)果大于或等于最后一次下載安全算法到網(wǎng)絡(luò)處理器14的快速通路硬件起所經(jīng)過時(shí)間的100倍,則網(wǎng)絡(luò)處理器14返回去更新SYN速率統(tǒng)計(jì)信息(塊200)。
圖2和圖3中所描述的有關(guān)技術(shù)也可以用來實(shí)現(xiàn)把網(wǎng)絡(luò)安全算法動(dòng)態(tài)地下載(也就是在運(yùn)行時(shí)下載)到虛擬專用網(wǎng)絡(luò)(VPN)網(wǎng)關(guān)中的網(wǎng)絡(luò)處理器中。例如,圖1所示的系統(tǒng)10可以采用一個(gè)通過因特網(wǎng)22實(shí)現(xiàn)工作站24與工作站18和/或12之間的安全通信的VPN。在這種情況下,網(wǎng)絡(luò)處理器14用作VPN的網(wǎng)關(guān),從而使工作站18和/或工作站12中的應(yīng)用程序或客戶端能夠通過因特網(wǎng)22以安全的方式與工作站24中的一個(gè)或多個(gè)應(yīng)用程序進(jìn)行通信。
圖4是一個(gè)在網(wǎng)絡(luò)處理器,比如圖1所示與VPN相連接的網(wǎng)絡(luò)處理器14內(nèi)部實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)絡(luò)安全的示例方法的流程圖。圖4中所描述的示例方法是基于互聯(lián)網(wǎng)協(xié)議安全(IPsec)標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)定義了在分組處理層中使用的通信安全算法,并采用了因特網(wǎng)密鑰交換(Internet key exchange,IKE)協(xié)議,這是一種公知的安全密鑰協(xié)商協(xié)議,不過也可以采用其它的標(biāo)準(zhǔn)和協(xié)議。
如圖4所示,網(wǎng)絡(luò)處理器14監(jiān)視輸入IKE分組或者從系統(tǒng)10中的一個(gè)或多個(gè)客戶端接收到的通信數(shù)據(jù)。當(dāng)一個(gè)客戶端,例如在工作站18中運(yùn)行的一個(gè)應(yīng)用程序,試圖通過因特網(wǎng)22與工作站24中運(yùn)行的一個(gè)應(yīng)用程序建立通信時(shí),該客戶端與網(wǎng)關(guān)開始協(xié)商,在本例中是通過網(wǎng)絡(luò)處理器14實(shí)現(xiàn)的。該協(xié)商包括包含IKE查詢的IKE分組,網(wǎng)絡(luò)處理器14把這個(gè)IKE查詢解釋為一個(gè)請(qǐng)求告訴客戶端在網(wǎng)絡(luò)處理器14和客戶端之間建立通信時(shí)哪些安全算法可用的請(qǐng)求。
當(dāng)意識(shí)到正在進(jìn)行IKE查詢時(shí)(塊300),網(wǎng)絡(luò)處理器14確定是否有一個(gè)以上的客戶端已經(jīng)連接到網(wǎng)絡(luò)處理器14上(也就是說,VPN正由網(wǎng)絡(luò)處理器14管理)。在圖4中,為了示例的目的,把當(dāng)前協(xié)商進(jìn)行連接的客戶端認(rèn)為是一個(gè)已經(jīng)連接的客戶端。如果只有一個(gè)客戶端連接到VPN,那么網(wǎng)絡(luò)處理器14提供所有可用的安全算法給當(dāng)前協(xié)商連接的VPN客戶端。優(yōu)選的,這些安全算法保存在存儲(chǔ)器17內(nèi)的數(shù)據(jù)庫中。另外,優(yōu)選的,這些安全算法包含所期望的任何配置為在網(wǎng)絡(luò)處理器的快速通路硬件中運(yùn)行的認(rèn)證和加密算法。
另一方面,如果網(wǎng)絡(luò)處理器14確定有多個(gè)客戶端連接在VPN上,則它確定存儲(chǔ)器17的數(shù)據(jù)庫中那些沒有下載到網(wǎng)絡(luò)處理器14的安全算法中哪一個(gè)適合放到網(wǎng)絡(luò)處理器14的快速通路硬件的代碼存儲(chǔ)器中(塊306)。然后,網(wǎng)絡(luò)處理器14將這個(gè)可以下載到網(wǎng)絡(luò)處理器14的代碼存儲(chǔ)器中的附加算法(塊306中所確定的)連同其它任何已經(jīng)下載到網(wǎng)絡(luò)處理器14的代碼存儲(chǔ)器中的算法一起提供給請(qǐng)求連接的客戶端(塊308)。
在網(wǎng)絡(luò)處理器14給請(qǐng)求連接的客戶端提供了可用算法(塊304或308)后,網(wǎng)絡(luò)處理器14等待IKE協(xié)商完成(塊310)。協(xié)商完成時(shí),請(qǐng)求連接的客戶端已經(jīng)選擇了一個(gè)或多個(gè)在塊304或塊308中提供的算法。
然后,網(wǎng)絡(luò)處理器14確定所提供的算法中哪一個(gè)被選擇或協(xié)商(塊312),并且確定所選擇或協(xié)商的算法是否已經(jīng)下載到網(wǎng)絡(luò)處理器快速通路硬件的代碼存儲(chǔ)器中(塊314)。如果被選擇或協(xié)商的算法已經(jīng)下載,則網(wǎng)絡(luò)處理器14返回去監(jiān)視輸入IKE通信數(shù)據(jù)(塊300)。另一方面,如果網(wǎng)絡(luò)處理器14確定選擇或協(xié)商的算法還沒有下載,則網(wǎng)絡(luò)處理器14將選擇的算法下載到它的快速通路硬件中(塊316)。
網(wǎng)絡(luò)處理器14下載所選擇的算法以后(塊316),網(wǎng)絡(luò)處理器14更新表示其快速通路中代碼存儲(chǔ)器剩余空間的值(塊318)。同時(shí),網(wǎng)絡(luò)處理器14也會(huì)更新包含與已經(jīng)下載并當(dāng)前存儲(chǔ)在網(wǎng)絡(luò)處理器14快速通路硬件中的算法相關(guān)的信息的列表或其它數(shù)據(jù)結(jié)構(gòu)(塊320)。
這樣,上面參考圖4所述的技術(shù)使得在VPN中作為網(wǎng)關(guān)的網(wǎng)絡(luò)處理器能夠動(dòng)態(tài)地加載(也就是運(yùn)行時(shí)加載)和執(zhí)行用于在網(wǎng)絡(luò)處理器的快速通路中執(zhí)行的一個(gè)或多個(gè)網(wǎng)絡(luò)安全算法。這樣,當(dāng)客戶端連接到VPN網(wǎng)關(guān)時(shí),可以增加網(wǎng)關(guān)中由網(wǎng)絡(luò)處理器下載和執(zhí)行的不同安全算法的數(shù)量。同樣的,當(dāng)客戶端從VPN斷開時(shí),可以減少下載到網(wǎng)絡(luò)處理器快速通路硬件中的算法數(shù)量,并且從網(wǎng)絡(luò)處理器快速通路硬件的存儲(chǔ)器中清除的算法可以回收供以后使用。當(dāng)然,如果很多客戶端通過網(wǎng)關(guān)連接到VPN,某些或者所有的已連接客戶端可以使用相同的算法,也可以每一個(gè)客戶端都使用不同的算法(假定在網(wǎng)絡(luò)處理器快速通路硬件的代碼存儲(chǔ)器中有足夠的空間),或者多個(gè)由兩個(gè)或多個(gè)客戶端構(gòu)成的組使用不同的算法。
更進(jìn)一步的說,使用圖4所述的技術(shù),如果只有一個(gè)客戶端連接到VPN,則這個(gè)客戶端可以使用IKE通信與VPN網(wǎng)關(guān)開始一個(gè)協(xié)商來下載一個(gè)不同于當(dāng)前已經(jīng)下載的安全算法。例如,客戶端可以要求一個(gè)能夠提供更加嚴(yán)格的認(rèn)證和/或加密機(jī)制的安全算法。
雖然在這里描述了幾種根據(jù)本發(fā)明的原理實(shí)現(xiàn)的特定裝置和方法,但是本發(fā)明的范圍不限于此。相反地,本發(fā)明涵蓋落在所附權(quán)利要求及其等同物的范圍內(nèi)的所有實(shí)施例。
權(quán)利要求
1.一種把安全算法加載到網(wǎng)絡(luò)處理器的快速通路中的方法,包括從第一網(wǎng)絡(luò)客戶端接收與網(wǎng)絡(luò)處理器連接的請(qǐng)求;為所述第一網(wǎng)絡(luò)客戶端提供多個(gè)可用的安全算法;根據(jù)由所述第一網(wǎng)路客戶端進(jìn)行的選擇,來確定所述多個(gè)可用安全算法中的哪一個(gè)算法將被用來與所述第一客戶端進(jìn)行通信;以及把所述多個(gè)可用安全算法中將被用來與所述第一客戶端進(jìn)行通信的所選擇的一個(gè)安全算法下載到網(wǎng)絡(luò)處理器中。
2.根據(jù)權(quán)利要求1所述的方法,還包括確定第二網(wǎng)絡(luò)客戶端當(dāng)前正與網(wǎng)絡(luò)處理器連接,并且提供所述多個(gè)可用安全算法,從而把所述多個(gè)可用安全算法中的至少一個(gè)以前下載了的安全算法和一個(gè)未下載的安全算法提供給所述第一網(wǎng)絡(luò)客戶端。
3.根據(jù)權(quán)利要求1所述的方法,其中,從所述第一網(wǎng)絡(luò)客戶端接收與網(wǎng)絡(luò)處理器連接的請(qǐng)求包括從所述第一網(wǎng)絡(luò)客戶端接收虛擬專用網(wǎng)絡(luò)連接請(qǐng)求。
4.根據(jù)權(quán)利要求3所述的方法,其中,從所述第一網(wǎng)絡(luò)客戶端接收與虛擬專用網(wǎng)絡(luò)連接的請(qǐng)求包括從所述第一網(wǎng)絡(luò)客戶端接收安全密匙交換信息。
5.根據(jù)權(quán)利要求1所述的方法,其中,為所述第一網(wǎng)絡(luò)客戶端提供所述多個(gè)可用安全算法包括為所述第一網(wǎng)絡(luò)客戶端提供認(rèn)證和加密算法。
6.根據(jù)權(quán)利要求1所述的方法,其中,把所述多個(gè)可用安全算法中將被用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信的一個(gè)安全算法下載到網(wǎng)絡(luò)處理器中包括把所述多個(gè)可用安全算法中的一個(gè)加載到網(wǎng)絡(luò)處理器的快速通路中。
7.一種網(wǎng)絡(luò)通信設(shè)備,包括包含多個(gè)安全算法的存儲(chǔ)器;以及與該存儲(chǔ)器相連接的處理器,該處理器被編程為從第一網(wǎng)絡(luò)客戶端接收與處理器連接的請(qǐng)求;為所述第一網(wǎng)絡(luò)客戶端提供一組多個(gè)安全算法;根據(jù)由所述第一網(wǎng)絡(luò)客戶端進(jìn)行的選擇,來確定所述多個(gè)安全算法中哪一個(gè)算法將被用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信;以及把所述多個(gè)安全算法中將被用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信的一個(gè)下載到處理器中。
8.根據(jù)權(quán)利要求7所述的網(wǎng)絡(luò)通信設(shè)備,其中,所述處理器確定第二網(wǎng)絡(luò)客戶端與該處理器連接,并且提供所述安全算法的集合,從而把所述安全算法集合中的至少一個(gè)以前下載了的安全算法和一個(gè)未下載的安全算法提供給所述第一網(wǎng)絡(luò)客戶端。
9.根據(jù)權(quán)利要求7所述的網(wǎng)絡(luò)通信設(shè)備,其中,所述處理器用作到虛擬專用網(wǎng)絡(luò)的網(wǎng)關(guān)。
10.根據(jù)權(quán)利要求7所述的網(wǎng)絡(luò)通信設(shè)備,其中,所述處理器使用從所述第一網(wǎng)絡(luò)客戶端接收到的安全密匙交換信息來生成所述的安全算法集合。
11.根據(jù)權(quán)利要求7所述的網(wǎng)絡(luò)通信設(shè)備,其中,所述多個(gè)安全算法包括認(rèn)證和加密算法。
12.一種系統(tǒng),其包括數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)多個(gè)安全算法;與所述數(shù)據(jù)結(jié)構(gòu)相連的處理器,用于從第一網(wǎng)絡(luò)客戶端接收連接該處理器的請(qǐng)求,為所述第一網(wǎng)絡(luò)客戶端提供多個(gè)可用的安全算法,并且根據(jù)由所述第一網(wǎng)絡(luò)客戶端進(jìn)行的選擇,來確定所述多個(gè)可用安全算法中的哪一個(gè)將被用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信;以及與所述處理器相連的快速通路分組處理單元,其中所述處理器將所述多個(gè)安全算法中的將被用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信的所選擇的一個(gè)下載到該快速通路分組處理單元中。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述處理器確定第二網(wǎng)絡(luò)客戶端是否已與所述處理器連接,并且向所述第一網(wǎng)絡(luò)客戶端提供所述多個(gè)可用安全算法,從而把所述多個(gè)可用安全算法中的至少一個(gè)以前下載了的安全算法和一個(gè)未下載的安全算法提供給所述第一網(wǎng)絡(luò)客戶端。
14.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述處理器通過將所述多個(gè)可用安全算法中的所述一個(gè)加載到所述快速通路處理單元中,來將所述多個(gè)可用安全算法中將被用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信的一個(gè)下載到所述處理器中。
15.一種處理器,其具有多個(gè)處理單元,其中這些處理單元中的第一處理單元從第一網(wǎng)絡(luò)客戶端接收連接該處理器的請(qǐng)求,為所述第一網(wǎng)絡(luò)客戶端提供多個(gè)可用安全算法,并且根據(jù)由所述第一網(wǎng)絡(luò)客戶端進(jìn)行的選擇,來確定所述多個(gè)可用安全算法中的哪一個(gè)將被選擇用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信,并且其中,所述多個(gè)處理單元中的第一處理單元與所述多個(gè)處理單元中的第二處理單元相連,并將所述多個(gè)可用安全算法中的所述選擇的一個(gè)下載到所述多個(gè)處理單元中的第二處理單元中。
16.根據(jù)權(quán)利要求15所述的處理器,其中,所述多個(gè)處理單元中的第一處理單元確定第二網(wǎng)絡(luò)客戶端是否已與所述處理器連接,并且向所述第一網(wǎng)絡(luò)客戶端提供所述多個(gè)可用安全算法,從而將所述多個(gè)可用安全算法中的至少一個(gè)以前下載了的安全算法和一個(gè)未下載的安全算法提供給所述第一網(wǎng)絡(luò)客戶端。
17.根據(jù)權(quán)利要求15所述的處理器,其中,所述多個(gè)處理單元中的第一處理單元通過將所述多個(gè)可用安全算法中的所述一個(gè)加載到所述快速通路分組處理單元中,來將所述多個(gè)可用安全算法中將被用來與所述第一網(wǎng)絡(luò)客戶端進(jìn)行通信的一個(gè)下載到所述多個(gè)處理單元中的第二處理單元中。
全文摘要
網(wǎng)絡(luò)處理器的動(dòng)態(tài)網(wǎng)絡(luò)安全裝置及方法。公布了一種把安全算法加載到網(wǎng)絡(luò)處理器的快速通路中的方法,包括從第一網(wǎng)絡(luò)客戶端接收與網(wǎng)絡(luò)處理器連接的請(qǐng)求;為第一網(wǎng)絡(luò)客戶端提供多個(gè)可用的安全算法;根據(jù)由第一網(wǎng)路客戶端進(jìn)行的選擇,來確定多個(gè)可用安全算法中的哪一個(gè)算法將被用來與第一客戶端進(jìn)行通信;以及把多個(gè)可用安全算法中將被用來與第一客戶端進(jìn)行通信的所選擇的一個(gè)安全算法下載到網(wǎng)絡(luò)處理器中。
文檔編號(hào)H04L29/06GK1809069SQ20061000735
公開日2006年7月26日 申請(qǐng)日期2003年8月29日 優(yōu)先權(quán)日2002年10月25日
發(fā)明者蘇海勒·艾哈邁德, 埃瑞克·J·約翰遜, 瑪納斯·戴福 申請(qǐng)人:英特爾公司