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