專利名稱:中繼裝置、數據包過濾方法以及數據包過濾程序的制作方法
技術領域:
本發明涉及對通信報文按每個數據包進行中繼的中繼裝置、數據包過濾方法以及數據包過濾程序。
背景技術:
在互聯網等通信系統中,為了防御外來攻擊,提出有各種對在互聯網上收發的數據進行過濾的技術方案。作為外來攻擊的例子,例如包括緩沖器溢位攻擊以及格式化字符串攻擊等,這類攻擊大部分都是使用違反了OSI(Open Systems Interconnection開放系統互連)參照模式的應用層協議(例如相當于HTTP(Hyper Text Transfer Protocol)和SMTP(Simple Mail Transfer Protocol)等)所規定的通信協議的通信報文進行攻擊。
違反了應用層協議的報文,由于在其數據里,也就是數據包的有效負載(數據包中除了報頭信息外的本來要傳送的數據本身)中存在不正當因素,所以,使用通過參照數據包的報頭信息來檢測不正當數據的數據包過濾方法無法檢測出不正當的數據。要檢測出應用層協議中的不正當報文,必須參照數據本身的內容,作為這樣地檢測不正當報文的裝置,有應用網關(例如參照下記非專利文獻1)。
非專利文獻1「伊藤幸夫,紫藤政義,野口修著「圖解·標準最新VPN手冊」秀和系統,2003年5月,P.56-61」。
應用網關是介于服務器與客戶機之間的一種代理服務器,其把被收發的數據作為報文流進行監視。即,把作為數據包而在網絡上傳送的數據,在應用網關中再次組成通信報文,通過解析被再組成的通信報文來檢測出不正當的數據。因此,應用網關在能夠判斷通信報文不是不正當數據之前,不進行數據包的中繼,因此,網絡上的數據包流被一時中斷,由此造成通信延遲。此外,由于應用網關需按照每個協議進行上述不正當通信報文的檢測,所以有多少協議就必須有多少應用網關。
發明內容
本發明就是為了解決上述問題而提出的,其目的是提供一種中繼裝置、數據包過濾方法以及數據包過濾程序,其可防止通信延遲的增加,可不分協議種類地檢測出應用層協議中的不正當通信報文。
為了達到上述的目的,本發明的中繼裝置,用于對通信報文按每個數據包進行中繼,其特征在于,包括順序判斷單元,其判斷所接收的數據包是否是按照應接收的順序接收的數據包;數據包保持單元,其在由上述順序判斷單元判斷上述數據包不是按照上述應接收的順序接收的情況下,控制為在保持該數據包的同時進行該數據包的中繼;合并單元,其根據上述應接收的順序,判斷由上述數據包保持單元所保持的數據包是否是應與在被保持之后接收的數據包合在一起進行驗證的數據包,根據該判斷,決定是否把該接收的數據包的有效負載與該被保持的數據包的有效負載合并;驗證單元,其在由上述順序判斷單元判斷數據包是按照上述應接收的順序接收的情況下,驗證該數據包的有效負載、或由上述合并單元合并的該數據包的有效負載是否符合預先規定的規則,并且為了在上述通信報文中的下一次的驗證中使用,而保持關于該驗證內容的信息;和中繼控制單元,在由上述驗證單元驗證為上述數據包符合上述規則的情況下,控制為進行該數據包的中繼,在由上述驗證單元驗證為上述數據包不符合上述規則的情況下,控制為禁止該數據包的中繼。
根據上述的中繼裝置,由于在每次接收數據包時,先進行關于是否為正當的有效負載的驗證,然后發送該數據包,所以在應用層協議中的是否為不正當的通信報文的檢測中,可防止通信延遲的增加。另外,對于在進行是否正當的驗證中所使用的規則,可不考慮應用層協議的種類進行設定,所以可不分協議種類地檢測出不正當的通信報文。
另外,作為一例,優選使用自動機進行上述驗證單元的驗證、以及關于驗證內容的信息的保持。在使用了自動機的情況下,能夠以宣告的形式記述用于進行驗證以及驗證內容的保持的上述規則,從而可容易地進行規則的作成、驗證以及維護。
另外,本發明除了如上述那樣可記述為中繼裝置的發明以外,還可以如以下那樣記述為數據包過濾方法以及數據包過濾程序的發明。這些只是類型不同,但實質上是同一性質的發明,并具有相同的作用和效果。
本發明的數據包過濾方法,是在對通信報文按每個數據包進行中繼的中繼裝置中使用的數據包過濾方法,其特征在于包括順序判斷步驟,判斷所接收的數據包是否是按照應接收的順序接收的數據包;數據包保持步驟,在上述順序判斷步驟判斷上述數據包不是按照上述應接收的順序接收的情況下,控制為在保持該數據包的同時進行該數據包的中繼;合并步驟,根據上述應接收的順序,判斷在上述數據包保持步驟所保持的數據包是否是應與在被保持之后接收的數據包合在一起進行驗證的數據包,根據該判斷,把該接收的數據包的有效負載與該被保持的數據包的有效負載合并;驗證步驟,在上述順序判斷步驟判斷數據包是按照上述應接收的順序接收的情況下,驗證該數據包的有效負載、或上述合并步驟合并的該數據包的有效負載是否符合預先規定的規則,并且保持關于該驗證內容的信息,以便在上述通信報文中的下一次驗證中使用;和中繼控制步驟,在上述驗證步驟驗證為上述數據包符合上述規則的情況下,控制為進行該數據包的中繼,在上述驗證步驟驗證為上述數據包不符合上述規則的情況下,控制為禁止該數據包的中繼。另外,作為一例,優選使用自動機進行上述驗證步驟的驗證、以及關于驗證內容的信息的保持。
本發明的數據包過濾程序,使對通信報文按每個數據包進行中繼的中繼裝置中進行以下處理即順序判斷處理,判斷所接收的數據包是否是按照應接收的順序接收的數據包;數據包保持處理,在通過上述順序判斷處理判斷上述數據包不數據包是按照上述應接收的順序接收的情況下,進行控制,使得在保持該數據包的同時進行該數據包的中繼;合并處理,根據上述應接收的順序,判斷通過上述數據包保持處理所保持的數據包是否是應與在被保持之后接收的數據包合在一起進行驗證的數據包,根據該判斷,把該接收的數據包的有效負載與該被保持的數據包的有效負載合并;驗證處理,在通過上述順序判斷處理判斷數據包是按照上述應接收的順序接收的情況下,驗證該數據包的有效負載、或通過上述合并處理被合并的該數據包的有效負載,是否符合預先規定的規則,并且保持關于該驗證內容的信息,以便在上述通信報文中的下一次的驗證中使用;和中繼控制處理,在通過上述驗證處理驗證為上述數據包符合上述規則的情況下,控制為進行該數據包的中繼,在通過上述驗證處理驗證為上述數據包不符合上述規則的情況下,控制為禁止該數據包的中繼。作為一例,優選使用自動機進行上述驗證處理的驗證、以及關于驗證內容的信息的保持。
根據本發明,由于如上述那樣在每次接收數據包時,先進行關于是否為正當的有效負載的驗證,然后發送該數據包,所以在對于應用層協議中是否為不正當的通信報文的檢測中,可防止通信延遲的增加。另外,對于在是否正當的驗證中所使用的規則,可不考慮應用層協議的種類進行設定,所以可不分協議種類地檢測出不正當的通信報文。
圖1是表示實施方式的中繼裝置的結構的圖。
圖2是表示數據包的發送和接收的順序的一例的圖。
圖3是表示實施方式中的由中繼裝置執行的處理的流程圖。
圖4是表示自動機的顯示例的圖。
圖5是表示實施方式的數據包過濾程序的結構的圖。
圖中符號說明10…中繼裝置;11…接收部;12…發送部;13…順序判斷部;14…數據包保持部;15…合并部;16…驗證部;17…中繼控制部;20…發送方;30…送達方;40…存儲介質40a…程序存儲區域;41…數據包過濾程序;41a…順序判斷模塊;41b…數據包保持模塊;41c…合并模塊;41d…驗證模塊;41e…中繼控制模塊。
具體實施例方式
下面,參照附圖,對本發明的最佳實施方式進行詳細說明。此外,在附圖的說明中,對相同或等同的部分標記相同的符號,并省略重復說明。
圖1表示本實施方式的中繼裝置10的結構。中繼裝置10通過把從發送方20發送來的數據包向送達方30發送,來進行數據包的中繼。中繼裝置10具體由CPU和存儲器等構成,其優選由例如路由器和橋接器等信息處理裝置來實現。發送方20例如相當于發送數據的服務器裝置,或是其它的中繼裝置。送達方30相當于數據送達方的客戶機裝置。
這里所謂的數據包,是指為了通過網絡收發通信報文即數據,而被細分割,并被附加了送達方的地址等控制信息的數據。當數據的送達方接收到一連串的數據包時,通過再編輯還原成原來的數據。數據包的大小根據數據鏈層可發送數據的大小來決定。
在本實施方式中,數據包的發送主要采用TCP(TransmissionControl Protocol傳輸控制協議)的例子。數據包在通信報文、即數據被分割時,被附加了存儲了上述控制信息的報頭。該報頭里存儲有用于根據數據包正確地再組成(復原)數據的順序信息,即序號等。通過使序號按照從小到大的順序依次連結數據包的有效負載,進行數據的再組成。此外,被發送的一連串數據包在送達方未必是依照序號的順序被接收。這是因為各個數據包在互聯網上是經由不同路徑的中繼等原因。序號根據有效負載的大小決定如下。例如第一個數據包的序號為2001,有效負載的大小為1000字節時,下一個數據包的序號就是3001,再下一個序號為4001。
圖2表示數據包的分割和再組成的簡單示例。如圖2所示,在數據的發送側,對要發送的數據進行分割,并在被分割的各個數據包的報頭中附加用于再組成的“1”、“2”、“3”、“4”,并依照該順序進行傳送。在數據的接收側,則未必是依照“1”、“2”、“3”、“4”的順序接收數據包,而有時會按照如圖2所示的“1”、“3”、“2”、“4”的順序接收。即使在這樣的情況下,也能依照數據包的報頭中所包含的順序信息,將數據再組成。
接下來,說明中繼裝置10的各項功能。如圖1所示,中繼裝置10包括接收部11、發送部12、順序判斷部13(順序判斷單元),數據包保持部14(數據包保持單元)、合并部15(合并單元)、驗證部16(驗證單元)、以及中繼控制部17(中繼控制單元)。此外,中繼裝置10如代理服務器那樣,對向送達方30發送的通信報文的全部數據包進行中繼。
接收部11是用于接收從發送方20發送的應被中繼的數據包的接收單元。發送部12是用于將由接收部11所接收的應被中繼的數據包,發送到送達方30的發送單元。
順序判斷部13是判斷單元,其參照由接收部11所接收的數據包,判斷該數據包是否是依照應接收的順序接收的數據包。這里,作為應接收的順序,可以使用例如再組成數據的順序,即從小到大的順序。對于是否是依照應接收的順序接收的數據包的判斷,優選參照數據包的報頭信息進行。把關于判斷結果的信息分別發送到數據包保持部14、合并部15以及驗證部16。
數據包保持部14是,在順序判斷部13判斷所接收的數據包不是按照應接收的順序接收的數據包時,將該被接收的數據包(數據包副本)保持的單元。此外,數據包保持部14控制發送部12,使其把該數據包發送到規定的送達方30。
合并部15是合并單元,其判斷由數據包保持部14所保持的數據包是否是應該與在該保持后由接收部11所接收的數據包一起進行驗證的數據包,并根據該判斷,將接收的數據包的有效負載與所保持的數據包的有效負載合并。此處所進行的驗證由驗證部16進行,具體的判斷方法將在后面敘述。
驗證部16是進行驗證的部分,其在判斷部13判斷所接收的數據包是按照應接收的順序接收的數據包的情況下,驗證數據包有效負載是否符合事先設定的規則。此處,成為驗證對象的數據包的有效負載,在為所接收的數據包的有效負載、與被合并部15保持在數據包保持部14中的數據包的有效負載合并的有效負載的情況下,確定其為合并后的有效負載。此外,驗證部16保持關于該驗證內容的信息,以便在同一通信報文中的下一次驗證中使用。在同一通信報文的下一次數據包驗證時,通過使用所保持的關于驗證內容的信息,可獲得與驗證報文流的情況相同的效果。要驗證不正當的通信報文,光靠驗證所接收的數據包是否符合規定并不足以進行充分的驗證,但通過驗證由數據包構成的報文流,可檢測出不正當的通信報文。此外,也可以對同一通信報文,將所接收的數據包(數據包副本)全部保存起來,在適當時候,使用這些再組成該所接收的數據包,并對其數據進行驗證。
關于驗證部16的驗證,具體而言,可以將成為驗證對象的有效負載作為字符串數據進行處理,并通過判斷該字符串數據是否符合預先設定的規則來進行驗證。作為預先設定的規則,最好是采用可檢測出違反了在應用層協議中所規定的通信規定的通信報文的規則。該規則有符合該字符串數據所規定的模式、和不符合該模式的規則。而且,除此以外還有不含字符串以外的控制代碼等的規則。由于在不正當的通信報文中,通常都含有控制代碼,所以使用該規則可檢測出該控制代碼。另外,如果使該規則包含與特定的協議對應的規則,則能更精確地檢測出該協議中的不正當的通信報文。
中繼控制部17是用于控制發送部12的部分,其在驗證部16驗證為數據包符合規則時,控制發送部12進行該數據包的發送,在驗證部16驗證為數據包不符合規則時,控制發送部12禁止該數據包的發送。
以下,結合圖3的流程圖,說明本實施方式中的中繼裝置10所執行的處理。在中繼裝置10對從發送方20向送達方30發送的通信報文的數據包進行中繼時,進行該處理。在TCP中,在發送方20與中繼裝置10之間確立了連接后,進行數據包的發送。
數據包一旦被發送,在中繼裝置10中,由接收部11接收抵達的數據包(S01)。接收部11通過參照在所接收的數據包的報頭信息中所包含的發送方20及送達方30的IP(網絡協議)地址、發送方20及送達方30的出口編號、以及確定應用層協議的信息,來確定該數據包是基于哪個連接所接收的數據包,并將該數據包保持。另外,接收部11參照數據包報頭信息,確定數據包是屬于哪個通信報文的數據包。另外,接收部11根據這些信息和由中繼裝置10所保持的路徑選擇表,來確定送達方30(中繼目的地)。
然后,順序判斷部13判斷所接收的數據包是否是依照應接收的順序接收的數據包(S02)。通過讀出所接收的數據包,并參照在數據包的報頭中所包含的序號,進行該判斷。
例如,如圖2中的數據包“1”那樣,在判斷其是按照應接收的順序接收的數據包的情況下,合并部15進一步判斷在由數據包保持部14所保持的數據包中,是否存在應該與所接收的數據包合并的數據包(S03)。在數據包“1”的情況下,由于是同一通信報文中的第一個接收的數據包,所以不存在應合并的數據包。在圖2中,是基于數據包再組成數據,但是在中繼裝置10中,通常不進行數據的再組成。
接下來,驗證部16驗證所接收的數據包的有效負載是否符合規則(S05)。這里,在判斷數據包符合規則,也就是不是不正當的通信報文的情況下,中繼控制部17控制發送部12,使其將該數據包發送到送達方30。接受控制的發送部12進行數據包的發送(S06)。另外,此處是根據所接收的全部數據包的信息來進行是否是不正當通信報文的判斷。即,有根據在該判斷之后所接收的數據包的信息,判斷是不正當的通信報文的情況。此外,在判斷數據包符合規則的情況下,驗證部16將關于驗證內容的信息保持。此時,若該通信報文的數據包都被發送出去,則結束處理(S08)。
在通過驗證部16的驗證,判斷數據包是不符合規則的數據包,即是不正當的通信報文時,中繼控制部17控制發送部12,使其禁止把該數據包發送到送達方30。受到控制的發送部12,禁止數據包的發送(S07)。一旦數據包被禁止發送,則對于之后接收的數據包都禁止發送,并結束處理。此外,在一系列的數據包驗證處理中,在判斷正在處理的數據包不符合規則時,之前的數據包雖然已經被發送到送達方30,可是在送達方30通常會在數據包全部抵達后才將數據轉送到應用層,所以能防止基于不正當的通信報文的攻擊等。
在S08,在還未完成全部數據包的發送時,接收部11繼續進行數據包的接收(S01)。然后,順序判斷部13判斷接收的數據包是否是依照應接收的順序接收的數據包(S02)。這里,例如在如圖2中的數據包“3”那樣被判斷不是按照應接收的順序接收的數據包(在應在數據包“3”之前接收的數據包“2”之前接收到數據包“3”)時,數據包保持部14保持該數據包的副本(S09)。然后,數據包保持部14控制發送部12,使其將該數據包發送到送達方30。接受控制的發送部12進行數據包的發送(S10)。通過該處理,將以比應接收的順序提前的順序接收的數據包保持在數據包保持部14中。
接下來,接收部11進行數據包的接收(S01),順序判斷部13判斷所接收的數據包是否是按照應接收的順序接收的數據包(S02)。這里,例如在如圖2中的數據包“2”那樣,到數據包“1”為止的數據包經過驗證,并被判斷是按照應接收的順序接收的數據包時,合并部15進一步判斷在由保持部14所保持的數據包中是否存在應與所接收的數據包合并的數據包(S03)。為了進行此判斷,順序判斷部13讀出數據包保持部14所保持的數據包,并參照數據包報頭中的序號。通過根據應接收的順序判斷所保持的數據包是否是應與所接收的數據包合在一起進行驗證的數據包,來進行該判斷。例如,在被保持的數據包中,存在序號為接在所接收的數據包的序號之后的序號的數據包的情況下,判斷該被保持的數據包是應與所接收的數據包合在一起進行驗證的數據包,并判斷這些是應合并的數據包。例如在圖2的例子中,保持有數據包“3”,當接收到數據包“2”時,由于數據包“3”應接在數據包“2”之后,因此,判斷所保持的數據包“3”是應與所接收的數據包“2”合并的數據包。
然后,合并部15將兩個數據包的有效負載合并,使驗證部16能夠進行驗證(S04)。之后,驗證部16驗證被合并的有效負載是否符合規則(S05)。此處的驗證,在進行該驗證之前進行針對同一通信報文的數據包的驗證的情況下,使用保持在驗證部16中的有關驗證內容的信息進行驗證。在圖2的例中,在進行關于數據包“2”及“3”的有效負載的驗證時,參照之前驗證過的數據包“1”的驗證內容進行驗證。
在此,在數據包符合規定,也就是被判斷不是不正當的通信報文時,中繼控制部17控制發送部12將該數據包發送給送達方30。受到控制的發送部12進行數據包的發送(S06)。由于被保持在數據包保持部14中的數據包都被發送出去,因此,這里在被發送的數據包中最好不含被保持的數據包。此時,在發送了該通信報文的全部數據包的情況下,結束處理(S08)。在判斷為不符合規則的情況下,與上述的處理相同。
根據本實施方式的中繼裝置10,由于在每次接收到數據包時,都是先對有效負載進行是否為是否正當的驗證,然后再發送該數據包,因此在對應用層協議中的不正當通信報文的檢測中,能夠防止通信延遲的增大。此外,由于對在進行不正當通信報文的驗證中所使用的規則,可不根據應用層協議種類進行設定,所以無論何種協議,都能夠檢測出不正當的通信報文。
另外,對于由驗證部16所進行的驗證、以及有關驗證內容的信息的保持,最好使用自動機進行。自動機的驗證可利用根據數據包的有效負載內容的狀態變化來進行。此外,可以預先把自動機中的狀態設定成與驗證內容對應,通過在驗證部16每次驗證該狀態時,將該狀態保持,來進行驗證內容的保持。
作為自動機的狀態顯示,有如圖4所示的狀態。例如,首先,如圖4的例(a)所示,使用正常顯示,預先把由英文字母構成的信息定義為“echo_message”。另外,如圖4的例(b)所示,作為初始狀態(INITIAL)而定義為“receive”狀態。在括號內定義狀態“receive”,表示在有效負載的內容與“echo_message”一致時,便遷移到狀態“reply”。如圖4的例(c)所示,狀態“reply”是發送所接收的數據包的狀態。即,圖4的例子(a)~(c)所示的自動機,能夠這樣地判斷出數據包的有效負載是由英文字母構成的字符串的情況。此外,如圖4的例子(d)所示,還能判斷出報文長度。
通過這樣地使用自動機,能夠以宣告的形式記述用于進行驗證以及驗證內容的保持的上述規則,并且容易進行規則的作成、驗證以及維護。而且能夠嚴謹地記述在應用層協議中的通信報文的收發。
另外,在形成對被分割的數據包進行進一步分割的分段的情況下,通過參照被分段的數據中的標志,可判斷出數據包的順序,并可進行上述的處理。
下面,對用于使中繼裝置10執行上述一系列處理(數據包過濾方法)的數據包過濾程序進行說明。如圖5所示,數據包過濾程序41被存儲在中繼裝置10的儲存介質40中的程序存儲區域40a內。
數據包過濾程序41包含順序判斷模塊41a、數據包保持模塊41b、合并模塊41c、驗證模塊41d以及中繼控制模塊41e。由順序判斷模塊41a所實現的功能與中繼裝置10的順序判斷部13的功能相同。相同地,數據包保持模塊41b與數據包保持部14的功能相對應,合并模塊41c與合并部15的功能相對應,驗證模塊41d與驗證部16的功能相對應,中繼控制模塊41e與中繼控制部17的功能相對應。
數據包過濾程序41可以通過把其一部分或全部,通過通信線路等傳送介質傳送,并利用其它機器接收、儲存(包括安裝)。另外,上述程序也可以通過被儲存在計算機可讀取的儲存介質中進行發布。這類儲存介質包括例如硬盤和軟盤等磁盤介質、CD-ROM及DVD-ROM等光學存儲介質、磁光盤等磁盤光學存儲介質、或者是為了存儲或執行程序指令而特別設置的,例如RAM、ROM、以及半導體不易失性存儲器等硬件裝置等。另外,也可以預先把用于從這樣的儲存介質中讀取程序的存儲介質讀取用驅動器(例如軟盤驅動器等)與中繼裝置10連接。
本發明可以作為中繼裝置、數據包過濾方法和數據包過濾程序使用,其能夠防止通信延遲的增大,并且可不分協議種類地檢測出在應用層協議中的不正當通信報文。
權利要求
1.一種中繼裝置,其用于對通信報文按每個數據包進行中繼,其中包括順序判斷單元,其判斷所接收的數據包是否是按照應接收的順序接收的數據包;數據包保持單元,其在由上述順序判斷單元判斷上述數據包不是按照上述應接收的順序接收的情況下,控制為在保持該數據包的同時進行該數據包的中繼;合并單元,其根據上述應接收的順序,判斷由上述數據包保持單元所保持的數據包是否是應與在被保持之后接收的數據包合在一起進行驗證的數據包,根據該判斷,把該接收的數據包的有效負載與該被保持的數據包的有效負載合并;驗證單元,其在由上述順序判斷單元判斷數據包是按照上述應接收的順序接收的情況下,驗證該數據包的有效負載、或由上述合并單元合并的該數據包的有效負載是否符合預先規定的規則,并且保持關于該驗證內容的信息,以便在上述通信報文中的下一次驗證中使用;和中繼控制單元,其在由上述驗證單元驗證為上述數據包符合上述規則的情況下,控制為進行該數據包的中繼,在由上述驗證單元驗證為上述數據包不符合上述規則的情況下,控制為禁止該數據包的中繼。
2.根據權利要求1所述的中繼裝置,其特征在于使用自動機進行上述驗證單元的驗證、以及關于驗證內容的信息的保持。
3.一種數據包過濾方法,在對通信報文按每個數據包進行中繼的中繼裝置中使用,其包括以下步驟順序判斷步驟,判斷所接收的數據包是否是按照應接收的順序接收的數據包;數據包保持步驟,在上述順序判斷步驟中判斷上述數據包不是按照上述應接收的順序接收的情況下,控制為在保持該數據包的同時進行該數據包的中繼;合并步驟,根據上述應接收的順序,判斷在上述數據包保持步驟所保持的數據包是否是應與在被保持之后接收的數據包合在一起進行驗證的數據包,根據該判斷,把該接收的數據包的有效負載與該被保持的數據包的有效負載合并;驗證步驟,在上述順序判斷步驟中判斷數據包是按照上述應接收的順序接收的情況下,驗證該數據包的有效負載、或在上述合并步驟中合并的該數據包的有效負載是否符合預先規定的規則,并且保持關于該驗證內容的信息,以便在上述通信報文中的下一次驗證中使用;和中繼控制步驟,在上述驗證步驟驗證為上述數據包符合上述規則的情況下,控制為進行該數據包的中繼,在上述驗證步驟驗證為上述數據包不符合上述規則的情況下,控制為禁止該數據包的中繼。
4.根據權利要求3所述的數據包的過濾方法,其特征在于使用自動機進行上述驗證步驟的驗證、以及關于驗證內容的信息的保持。
5.一種數據包過濾程序,用于使對通信報文按每個數據包進行中繼的中繼裝置進行以下處理即順序判斷處理,判斷所接收的數據包是否是按照應接收的順序接收的數據包;數據包保持處理,在通過上述順序判斷處理判斷上述數據包不是按照上述應接收的順序接收的情況下,進行控制,使得在保持該數據包的同時進行該數據包的中繼;合并處理,根據上述應接收的順序,判斷通過上述數據包保持處理所保持的數據包是否是應與在被保持之后接收的數據包合在一起進行驗證的數據包,根據該判斷,把該接收的數據包的有效負載與該被保持的數據包的有效負載合并;驗證處理,在通過上述順序判斷處理判斷數據包是按照上述應接收的順序接收的情況下,驗證該數據包的有效負載、或通過上述合并處理被合并的該數據包的有效負載,是否符合預先規定的規則,并且保持關于該驗證內容的信息,以便在上述通信報文中的下一次驗證中使用;和中繼控制處理,在通過上述驗證處理驗證為上述數據包符合上述規則的情況下,控制為進行該數據包的中繼,在通過上述驗證處理驗證為上述數據包不符合上述規則的情況下,控制為禁止該數據包的中繼。
6.根據權利要求5所述的數據包過濾程序,其特征在于使用自動機進行上述驗證處理的驗證、以及關于驗證內容的信息的保持。
全文摘要
一種用于對通信報文按每個數據包進行中繼的中繼裝置。該中繼裝置(10)包括順序判斷單元(13),其判斷所接收的數據包是否是按照應接收的順序接收的數據包;數據包保持單元(14),其在判斷上述數據包不是按照應接收的順序接收的數據包的情況下,保持該數據包,并且進行數據包的中繼;合并單元(15),其把接收的數據包的有效負載與被保持的數據包的有效負載合并;驗證單元(16),其驗證數據包的有效負載是否符合預先規定的規則;和中繼控制單元(17),其在由上述驗證單元驗證為上述數據包符合上述規則的情況下,進行該數據包的中繼。由此,可防止通信延遲的增加,并且可不分協議種類地檢測出在應用層協議中的不正當的通信報文。
文檔編號H04L29/06GK1839601SQ200580000740
公開日2006年9月27日 申請日期2005年5月26日 優先權日2004年5月31日
發明者河野健二, 品川高廣, 卡比爾·拉哈特 申請人:獨立行政法人科學技術振興機構