專利名稱:通過路由器簽名提高ip網(wǎng)絡(luò)安全性的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)和通信領(lǐng)域,主要是一種通過路由器簽名提高IP網(wǎng)絡(luò)安全性的方法。這種在互聯(lián)網(wǎng)中使路由器在所轉(zhuǎn)發(fā)的IP包上加上簽名的方法,目的是在發(fā)生問題時可以追尋IP包的來源,從而提高IP網(wǎng)絡(luò)的安全性。
背景技術(shù):
IP網(wǎng)絡(luò)的安全問題是個很復(fù)雜的問題,其不安全性有著多方面的原因。其中的一個重要原因就是即使對于已知屬于黑客攻擊、由黑客發(fā)來的IP包,也幾乎不可能查明其真實的來源,因而只能把有關(guān)的IP包丟棄或阻擋在外了事。這樣,對攻擊者就既沒有反制的措施,也沒有嚇阻的作用。
當(dāng)然,在IP包中有發(fā)送者的IP地址、即“源地址”,但這是可以假冒的。黑客發(fā)往被攻擊目標(biāo)的IP包可以假冒別人的IP地址,而對于被攻擊目標(biāo)按此地址回復(fù)的IP包則可以設(shè)法加以攔截。于是,即使被攻擊目標(biāo)察覺了,按有關(guān)IP包中的源地址找到的也只是被假冒的無辜者。
之所以會如此有兩方面的原因。第一個原因是IP包中不帶有與其傳輸蹤跡有關(guān)、而又難以偽造的信息。第二個原因是沿途各路由器并不記錄(那怕是暫時記錄)屬于同一個“流”、即同一對節(jié)點(diǎn)間的流量的走向。這里的第一個原因源自IP包的格式(從而IP規(guī)程)。而第二個原因則來自IP網(wǎng)的基本特性,即IP網(wǎng)在網(wǎng)絡(luò)層是“無連接”的,并且網(wǎng)絡(luò)設(shè)備(路由器)是“無狀態(tài)”的。
顯然,由于涉及IP網(wǎng)的基本特性,對于上述的第二個原因是很難作什么改變的。而對于上述的第一個原因,則還存在改變的余地,只是這種改變必須是在現(xiàn)有IP規(guī)程的框架內(nèi)進(jìn)行并與之兼容。
其實在現(xiàn)有的IP規(guī)程中有兩個可選項是與包的傳輸蹤跡有關(guān)的。一個是“記錄路徑(Record Route)”可選項。這個可選項要求沿途的路由器在所轉(zhuǎn)發(fā)的IP包的包頭中記錄下它的IP地址(由于包頭大小的限制,最多只能記錄前9個路由器的IP地址)。另一個是“時戳(Timestamp)”可選項。這個可選項可以要求沿途的路由器在所轉(zhuǎn)發(fā)IP包的包頭中記錄下它的IP地址和當(dāng)時的時間。然而,這兩個可選項都無助于上述問題的解決。這是因為首先,現(xiàn)有IP規(guī)程中可選項的使用與否是由IP包的源節(jié)點(diǎn)決定的,而不是由途中的路由器強(qiáng)制加入,攻擊者當(dāng)然不會主動要求使用這些可選項。第二,實際上更為重要的是,攻擊者滿可以偽造出一串IP地址,而受攻擊的一方無從查驗。
所以,解決這個問題的方案必須滿足幾個條件1.允許路由器強(qiáng)行在IP包頭中插入與其傳輸蹤跡有關(guān)的信息。
2.所插入的信息要難以偽造。
3.受攻擊方可以根據(jù)所插入的信息進(jìn)行查驗,以判明其真?zhèn)巍?br>
4.與現(xiàn)有IP規(guī)程兼容。
本發(fā)明所提供的正是這樣一種方法。
當(dāng)然,IP網(wǎng)絡(luò)的安全問題是個很復(fù)雜的問題,其不安全性有著許多方面的原因,所以不能指望找到一種單一的手段來一勞永逸地從總體上解決這個問題,任何能在一定程度上提高IP網(wǎng)絡(luò)安全性的方法都是值得考慮采用的。
發(fā)明內(nèi)容
針對上述的特定問題,即在受到攻擊時找到攻擊來源的問題,以及解決這個問題的方案必須滿足的幾個條件,本發(fā)明提供了一種通過路由器簽名提高IP網(wǎng)絡(luò)安全性的方法,帶有路由功能的網(wǎng)絡(luò)設(shè)備在所轉(zhuǎn)發(fā)的IP包中依次留下與包的內(nèi)容掛鉤、難以偽造、并且可以查驗的“簽名”信息。具體方法如下(一)在現(xiàn)有IPv4規(guī)程中增添一個“簽名”可選項,要求IP包沿途的路由器(或網(wǎng)關(guān))在(包頭中)該可選項中記錄其IP地址和經(jīng)過加密的附加校驗信息。
(二)定義一組單向校驗/加密算法。最簡單的是“驗和(checksum)”,也可以是雜湊、CRC,等等。
(三)每個路由器(或網(wǎng)關(guān))的管理員都可以為其設(shè)置一組參數(shù)(稱為“鍵值”),用于上述單向校驗/加密算法。
(四)“簽名”可選項的使用可以由源節(jié)點(diǎn)主動要求,也可以由路由器(或網(wǎng)關(guān))強(qiáng)行插入。只要(包頭)空間允許,每個路由器(或網(wǎng)關(guān))就順次插入/填寫一個“簽名”可選項。
(五)“簽名”可選項中經(jīng)過加密的附加信息由兩個部分構(gòu)成●一個校驗碼。校驗碼與包的內(nèi)容掛鉤,由具體的路由器(或網(wǎng)關(guān))隨機(jī)選擇一個校驗算法和鍵值的組合,對包的內(nèi)容校驗碼(TCP報頭或UDP報頭中的校驗碼)或內(nèi)容的前N個字節(jié)進(jìn)行計算而得。包的源地址和目標(biāo)地址也可以計算在內(nèi)。進(jìn)一步,簽名者的地址也可以計算在內(nèi)。
●一個算法與參數(shù)的索引值。表明校驗碼是由哪一種算法和鍵值的組合計算所得。
(六)接收方平時無需檢查各“簽名”可選項的內(nèi)容,只是對可疑的包記錄下其包頭、包括各個“簽名”可選項,包頭后面的若干字節(jié)以及包的到達(dá)時間作為內(nèi)容依據(jù)。
(七)確認(rèn)受到攻擊后,可以就懷疑屬于攻擊行為的包所記錄下的信息,由人工輔助或通過相應(yīng)規(guī)程向留下了簽名的各路由器(或網(wǎng)關(guān))查驗。各路由器(或網(wǎng)關(guān))根據(jù)這些信息、以及簽名中的索引值所表明的當(dāng)時所用的校驗算法和鍵值的組合,重新計算出一個校驗碼,并與簽名中的校驗碼比對,以判定簽名的真?zhèn)?。這樣,就可以大大縮小查找攻擊者的范圍。
這里校驗碼的長度、校驗算法的個數(shù)、具體的算法、參數(shù)的個數(shù)、以及作為內(nèi)容依據(jù)的字節(jié)個數(shù)或具體的哪幾個字節(jié)、以及可選項的具體格式等等均屬實現(xiàn)細(xì)節(jié),這些細(xì)節(jié)上的變化并不影響本發(fā)明可以在包頭中強(qiáng)制加入與其傳輸蹤跡有關(guān)、而又難以偽造的信息的實質(zhì)。
在實際使用中,并不要求所有路由器都實現(xiàn)對“簽名”可選項的支持,例如骨干路由器就大可不必為此而進(jìn)行升級,因為攻擊者幾乎不可能直接進(jìn)入骨干網(wǎng)。但是網(wǎng)絡(luò)服務(wù)提供商(ISP)的路由器以及各單位的網(wǎng)關(guān)則都需要支持“簽名”可選項。只要ISP的路由器和各單位的網(wǎng)關(guān)都支持“簽名”可選項,對攻擊者的查找就容易多了,對攻擊者的嚇阻作用也就不小了。至于不支持“簽名”可選項的路由器,則視之為“未知可選項”,其正常的路由/轉(zhuǎn)發(fā)功能并不受到影響。
還應(yīng)指出,作為一種方法,這不僅是針對IPv4的,同樣也適用于IPv6,只是具體的實現(xiàn)略有不同。
圖1是用來說明采用本發(fā)明的方法以后受到攻擊者怎樣根據(jù)簽名信息調(diào)查攻擊來源的示意圖。
具體實施例方式
下面通過針對IPv4的實施例對本發(fā)明的實施作進(jìn)一步介紹IPv4包的頭部至少由5個32位“長字”構(gòu)成,即20字節(jié)。這5個長字劃分成許多位段,其中“頭部長度”HLEN位段的值一般是5,表示5個長字(20個字節(jié))。如果大于5就表示在頭部和所載運(yùn)的數(shù)據(jù)之間還有可選項。頭部長度是一個4位的位段,其最大值為15、即頭部的最大長度為60字節(jié),所以最多有40字節(jié)可以用于可選項(或者,按本人的另一項發(fā)明專利申請所述,如果IPv4包頭中的一個擴(kuò)展標(biāo)志位為1,就表示帶有用于可選項的擴(kuò)展部,擴(kuò)展部的長度不計入包頭,但計入包的總長度,所以是“外掛”的可選項,其長度不受40字節(jié)的限制)。
這里要介紹兩種現(xiàn)有的IPv4可選項。
一種是“無操作(NOP)”可選項,其格式如下
無操作可選項只有一個字節(jié)的操作代碼,其數(shù)值為1。顧名思義,路由器對無操作可選項不進(jìn)行任何操作。無操作可選項的用途只是占據(jù)空間。其余IPv4可選項的長短不一,而有些可選項又要求與長字或短字邊界對齊,此時就需要用無操作可選項填補(bǔ)空間。
另一種是“時戳(Timestamp)”可選項,其格式如下
時戳可選項的操作代碼是68,然后是一個字節(jié)的可選項長度。接著是一個字節(jié)的指針,它總是指向可選項中第一個尚未填寫的位置??蛇x項的第一個長字的最低4位都是標(biāo)志位,其中的最低位為1表示要求每個節(jié)點(diǎn)既填寫IP地址又填寫時間標(biāo)記(均為32位),為0則表示可選項中不含IP地址,因而只需填寫時間標(biāo)記(可選項的長度也就隨之減小)。
現(xiàn)將本發(fā)明針對IPv4的實施具體說明如下1.在IPv4規(guī)程的包頭可選項中增加一個新的可選項“簽名”,其格式如下所示。
每個簽名可選項的大小為8個字節(jié),即64位,由4個位段構(gòu)成●操作代碼,8位,建議采用數(shù)值164。
●校驗計算索引號,8位。校驗計算索引號分成兩截,表示計算中使用了哪兩個具體參數(shù)(也可以分成更多截以使用更多參數(shù);也可以不分截而只用一個參數(shù))。這個位段的具體用法不屬于本發(fā)明的內(nèi)容,可以由路由器制造商自行定義,附錄中是一個可行的實例。
●校驗碼,16位,這就是“簽名”。校驗碼的生成見下面的說明及附錄。
●IP地址32位,簽名者的IP地址,即其用來發(fā)送該IP包的網(wǎng)絡(luò)接口上的IP地址。
2.簽名可選項的插入。為減輕路由器的負(fù)擔(dān),包的源端應(yīng)為簽名可選項的插入在包頭中或擴(kuò)展部中預(yù)留一定的空間,并暫時把每個字節(jié)都設(shè)置成“無操作”可選項。為提高處理效率,也可以再定義一個“預(yù)留空間”可選項,其格式如下
●操作碼位段,8位,建議采用數(shù)值166。
●長度位段,8位,其數(shù)值以32位長字為單位。
●保留,16位。
●空白,與32位長字邊界對齊。
3.路由器應(yīng)在所轉(zhuǎn)發(fā)的包中插入自己的簽名可選項。預(yù)留空間不夠時可以在允許的大小范圍內(nèi)自行插入或擴(kuò)充預(yù)留空間,然后插入自己的簽名可選項。如有必要還須對預(yù)留空間可選項作出調(diào)整。
4.包的源節(jié)點(diǎn)也可以插入其自己的簽名可選項。
5.簽名可選項中校驗碼的生成規(guī)則。
5.1以包的內(nèi)容、即其載荷部分為依據(jù)●如果是個UDP報文,就采用UDP報頭中的16位校驗碼(checksum)位段為依據(jù)。
●如果是個TCP報文,就采用TCP報頭中的16位校驗碼(checksum)位段為依據(jù)。
●如果既非UDP報文也非TCP報文,就以其前10個16位字的和為依據(jù)。
●包的源/目標(biāo)地址也可以計算在內(nèi)。
5.2計算方法由各路由器制造商自定,不屬于本發(fā)明的內(nèi)容,附錄中是一個可行的實例。
6.接收者或者所配備的入侵檢測裝置對接收到的所有包進(jìn)行登記(Log),或?qū)ζ渲邪茨撤N入侵檢測方法(不在本發(fā)明范圍內(nèi))判定為可疑的包進(jìn)行登記。每項登記包含下列內(nèi)容,但不限于下列內(nèi)容
●包頭中的源地址和目標(biāo)地址。
●所有的簽名可選項(按次序)。
●UDP或TCP報文頭部的校驗碼,或載荷的前20個字節(jié)。
●包的到達(dá)日期和時間。
7.查驗。受攻擊者可以就有疑的IP包向留下了簽名的節(jié)點(diǎn)查詢,求證簽名的真實性。這種查詢、求證可以是人工的,也可以是通過計算機(jī)網(wǎng)絡(luò)輔助的,還可以是通過計算機(jī)網(wǎng)絡(luò)實時進(jìn)行的,具體的查驗手段不屬于本發(fā)明內(nèi)容。請求查驗者應(yīng)按第6條所列提供所記錄的信息和數(shù)據(jù)。受到查驗的節(jié)點(diǎn)根據(jù)其校驗碼的生成規(guī)則重作計算并加以比對,以判定真?zhèn)巍>唧w的算法不屬于本發(fā)明的內(nèi)容,可以參考附錄中的說明。
上面的第一項、第三項和第七項是本發(fā)明的核心所在。
需要特別指出的是作為一種具體的實現(xiàn),這里的一些細(xì)節(jié)并不是唯一的,而可以有所變化,但是細(xì)節(jié)的不同并不影響本發(fā)明的實質(zhì)。
圖1中“IP骨干網(wǎng)云狀”中的路由器均視“簽名”可選項為未知可選項而不予支持。但是,地處“邊沿”的路由器R1、R2、R3都支持“簽名”可選項,這些路由器可以是某個ISP的路由器,也可以是某個“內(nèi)網(wǎng)”的網(wǎng)關(guān)。圖中的V為受到攻擊的節(jié)點(diǎn)。作為入侵檢測的手段,V記錄(Log)下每個可疑IP包的頭部及其載荷的校驗碼或前20個字節(jié)。發(fā)現(xiàn)受到攻擊并找出一些可疑IP包的記錄之后,V的管理者可以就可疑IP包中各個路由器的簽名向具體路由器的管理者查詢求證。具體路由器的管理者根據(jù)查詢者提供的數(shù)據(jù)以及本路由器采用的算法和參數(shù)進(jìn)行驗算,以確定簽名的真?zhèn)?參看附錄)。
假定某個IP包肯定屬于某次攻擊,而R1、R2、R3的簽名全真,則攻擊者一定在路由器(或網(wǎng)關(guān))R1的覆蓋范圍內(nèi),即R1下面的子網(wǎng)內(nèi)??墒侨鬜2(的簽名)為真但R1為偽,則攻擊者在R2和R1之間的某處。而若R3也為偽,那攻擊者就在本地了。
只要合理安排整個網(wǎng)絡(luò)的拓?fù)?,?yán)格骨干網(wǎng)的接入管理,就可以比較有效地查獲攻擊者。另一方面,由于這樣一來被查獲的可能大大增加了,對于攻擊者也是一種心理上的嚇阻。
為幫助理解,下面進(jìn)一步以圖1中的路由器R1為例說明簽名的生成。
假定R1面向公網(wǎng)(與R2相連)的端口的IP地址是140.252.13.34,這是個公網(wǎng)地址?,F(xiàn)在R1從局網(wǎng)一側(cè)接收到了一個IP包P,并且已經(jīng)確定應(yīng)該將P從面向公網(wǎng)的端口轉(zhuǎn)發(fā)出去,這就到了要在P中留下簽名的時候。
絕大部分IP包都是載運(yùn)著TCP或UDP報文的,這樣的IP包在其UDP報頭或TCP報頭中都有一個16位的校驗碼。這報文校驗碼是源節(jié)點(diǎn)根據(jù)報文的內(nèi)容計算出來的,目標(biāo)節(jié)點(diǎn)在接收到包文以后要重新計算一遍加以校驗(計算方法是公開的),以確定報文的內(nèi)容在傳輸?shù)倪^程中并未改變。而如果所載運(yùn)的既非TCP報文又非UDP報文,那么一般都是些用于網(wǎng)絡(luò)控制的報文,這樣的報文一般不帶報文校驗碼。但是這種報文一般都很小,其開頭20字節(jié)就足以涵蓋其關(guān)鍵信息,所以拿開頭20字節(jié)按16位“驗和(checksum)”方法計算出一個校驗碼就可以反映這報文的關(guān)鍵信息?,F(xiàn)在假定P是個載運(yùn)著TCP報文的包,并假定其16位報文校驗碼的值如果用十進(jìn)制表示就是60123(16位無符號整數(shù)的數(shù)值范圍為0-65535)。這就是上述的第一個操作數(shù)A,它是與報文內(nèi)容密切相關(guān)的。注意這里為簡單起見并沒有把包頭中的源/目標(biāo)地址以及R1的地址計算進(jìn)去,實際上這些地址也可以納入驗和計算。
為進(jìn)行簽名所需的加密/校驗計算,R1首先要生成兩個隨機(jī)數(shù)p和r,p的范圍為0-7,r的范圍為0-31。暫且假定生成出來的p=3而r=27。如前所述,R1中有兩個數(shù)組PM[8]和RM[32]。數(shù)組PM[8]的8個元素都是16位質(zhì)數(shù),是從質(zhì)數(shù)表P[857]中隨機(jī)抽取(不重復(fù))的,并且每過一定時間(例如15分鐘)就換一下。數(shù)組RM[32]中的32個元素都是16位隨機(jī)數(shù)(不重復(fù)),也是每過一定時間就換一下。同時,還要把這兩個數(shù)組的內(nèi)容和使用時段存入數(shù)據(jù)庫。由于此時生成的p=3和r=27,用于計算的兩個參數(shù)就是PM[3]和RM[27],假定PM[3]=11,RM[27]=31002。
第一步計算是將A與PM[3]相乘并以65536取模,實際上就是取乘積的低16位。所以第一步計算是X=60123×11(mod 65536)=661353(mod 65536)=5993然后,第二步計算是將X與RM[27]相加并以65536取模,實際上就是取和的低16位C=5993+31002(mod 65536)=36995(mod 65536)=36995于是,簽名中的IP地址為140.252.13.34,(簽名)校驗碼為36995。至于索引編號則為123,它的高3位為3而低5位為27,即((3×32)+27)。最后生成的簽名可選項如下
現(xiàn)在假定黑客要偽造R1的簽名。他可以假冒路由器R1的IP地址,并且自己根據(jù)TCP報文的內(nèi)容計算出一個正確的報文校驗碼A,但是無法偽造出相應(yīng)的簽名校驗碼,因為他無法知道此刻R1中兩個數(shù)組PM[8]和RM[32]的內(nèi)容。從理論上說,如果黑客收集大量帶有R1簽名的IP包樣本,知道所用的算法,并且進(jìn)行大量的分析計算,是有可能推算出這兩個數(shù)組的內(nèi)容的(但是很困難。由于采用了取模計算,很難根據(jù)結(jié)果推算出原始的數(shù)據(jù),更何況進(jìn)行了兩次取模計算)??墒牵坏人嬎愠鰜?,那兩個數(shù)組的內(nèi)容就已經(jīng)變了(但是R1將這兩個數(shù)組在每個時段的內(nèi)容記錄存檔,以備查驗)。
在這個過程里,索引號是個8位整數(shù),可以取256種不同的值,所以平均每256個包中才有一個包具有相同的索引號,即采用相同的參數(shù),這增加了黑客收集大量樣本進(jìn)行分析計算的難度。采用質(zhì)數(shù)相乘(并取模)的目的是使計算結(jié)果即索引號分布得更加均勻,再用隨機(jī)數(shù)相加并取模則使得黑客難以破譯,而每過一段時間就更換可供選用的參數(shù)(PM[8]和RM[32]的內(nèi)容)則使得即使破譯了也沒用。
理解了上述的計算過程,對于如何查驗也就可以明白了。
附錄1一種雜湊校驗算法作為一個實例,下面是一種雜湊校驗算法1.準(zhǔn)備一個大小合適的(16位)質(zhì)數(shù)表,并為之建立一個相應(yīng)的質(zhì)數(shù)數(shù)組P[]。例如從1024到8192區(qū)間內(nèi)有857個質(zhì)數(shù),就可以為之建立一個數(shù)組P[857]。
2.準(zhǔn)備一個大小合適的16位隨機(jī)數(shù)數(shù)組R[],例如R ,并相應(yīng)生成1024個隨機(jī)數(shù)(不重復(fù))。將P[857]和R 的內(nèi)容記錄在數(shù)據(jù)庫中。
3.建立一個質(zhì)數(shù)引用(映射)數(shù)組PM[8]。
4.建立一個隨機(jī)數(shù)引用(映射)數(shù)組RM[32]。
5.從質(zhì)數(shù)數(shù)組P[857]中隨機(jī)(不重復(fù))選取8個元素,將他們填入PM[8]。
6.從隨機(jī)數(shù)數(shù)組R 中隨機(jī)(不重復(fù))選取32個元素,將他們填入RM[32]。
7.將當(dāng)前的質(zhì)數(shù)引用(映射)數(shù)組PM[8]和隨機(jī)數(shù)引用(映射)數(shù)組RM[32]的內(nèi)容,連同啟用的日期和時間記錄在數(shù)據(jù)庫中,以備查詢。
8.對于特定的IP包,以其所載運(yùn)UDP或TCP報文頭部的16位校驗碼A為第一個操作數(shù)。如果所載運(yùn)的既非UDP報文也非TCP報文,就按驗和方法計算其前10個16位短整數(shù)(20字節(jié))的16位校驗碼A。
●也可以按驗和方法把報頭中的源/目標(biāo)IP地址納入校驗碼A。
●也可以按驗和方法把簽名者的IP地址納入校驗碼A。
9.隨機(jī)生成一個質(zhì)數(shù)引用數(shù)組PM[8]的下標(biāo)p,其數(shù)值范圍為0至7。
10.將A與PM[p]相乘,取其低16位為X,即X=(A*PM[p])mode 65536。
11.隨機(jī)生成一個隨機(jī)數(shù)引用數(shù)組RM[32]的下標(biāo)r,其數(shù)值范圍為0至31。
12.將X與RM[r]相加,取其低16位為C,即C=(X+RM[r])mode 65536。
13.C就是可選項中的校驗碼,而p和r拼合成校驗計算索引編號,p為其高3位,r為其低5位。
14.每過一段預(yù)定的時間長度,例如15分鐘,就回到上面的第5步,改變PM[8]和RM[32]的映射并把新的數(shù)組內(nèi)容和啟用的日期/時間記錄在數(shù)據(jù)庫中。
15.數(shù)據(jù)庫中滾動保留最近一星期(或其它預(yù)定的歷史記錄長度)的記錄,以備查詢。以一星期為例,如果每15分鐘改變一次映射,從而產(chǎn)生一條記錄,則每天96條記錄,7天共672條記錄。此后每加入一條新的記錄就刪除(或轉(zhuǎn)儲)最老的已有記錄。
就某個IP包向某個路由器查詢時,查詢者應(yīng)提供以下信息(除路由器的IP地址外)●UDP或TCP報文頭部的16位校驗碼A,或報文的前20個字節(jié)。
●如果包頭中的源/目標(biāo)地址納入簽名計算,則須提供這兩個IP地址。
●相應(yīng)可選項中的校驗碼和校驗計算索引值。
●接收到該IP包的大致時間,以及接收者所處的時區(qū)(考慮到時差)。
路由器的管理系統(tǒng)(可以在路由器外面)根據(jù)該IP包的接收時間可以大致推算出它的發(fā)送時段(或兩個時段,如果接收時間接近其時段變更邊界的話),并從其數(shù)據(jù)庫中恢復(fù)該時段的質(zhì)數(shù)引用數(shù)組PM[8]和隨機(jī)數(shù)引用數(shù)組RM[32]的內(nèi)容,然后根據(jù)查詢者提供的數(shù)據(jù)和計算索引值進(jìn)行同樣的計算并加以比對,就可以判定簽名是否偽造了。
攻擊者如果知道所用的算法,又進(jìn)行長時間的偷聽,收集大量樣本加以分析,還是有可能推算出PM[8]和RM[32]的內(nèi)容的。但是,由于計算中采用了帶有取模運(yùn)算的雜湊算法,那已經(jīng)很困難。而這兩個數(shù)組的內(nèi)容隨時間而變,則進(jìn)一步使之難上加難了。當(dāng)然,為簡單起見也可以保持這兩個數(shù)組的內(nèi)容不變,但那樣會降低安全性。
此外,也可以定義一組算法、而不是一個算法,再把校驗計算索引分成三截(如2位+3位+3位),使得具體的雜湊算法也是隨機(jī)選取。但是那樣并沒有本質(zhì)上的區(qū)別,因為一般而言8位的校驗計算索引總是提供256種不同組合。
附錄2簽名的查詢與驗證最簡單的查詢/驗證是人工查詢,例如通過郵件或電話將有關(guān)信息告知目標(biāo)路由器的管理人員,并要求其幫助驗證。但是那樣效率太低。
一個比較好一些的辦法是讓各有關(guān)路由器的管理者都開設(shè)一個查詢網(wǎng)站,查詢者可以通過瀏覽器訪問這樣的網(wǎng)站,提供數(shù)據(jù)并請求驗證,并立即看到驗證結(jié)果。
也可以讓各有關(guān)路由器提供實時的在線驗證服務(wù),使查詢者可以通過某種規(guī)程,例如SNMP或LDAP之類的規(guī)程進(jìn)行實時的查詢/驗證。這樣,當(dāng)包的接收方發(fā)現(xiàn)可疑時甚至立即就可以加以查詢/驗證,看其傳輸蹤跡是否偽造。
進(jìn)一步,還可以像DNS服務(wù)網(wǎng)站那樣,在互聯(lián)網(wǎng)中設(shè)置若干用于查詢/驗證的代理網(wǎng)站,所有的查詢/驗證都通過這些代理網(wǎng)站間接地進(jìn)行,而代理網(wǎng)站與目標(biāo)路由器之間的通信則可以通過加密來提高安全性。
權(quán)利要求
1.一種在互聯(lián)網(wǎng)中通過路由器簽名提高網(wǎng)絡(luò)安全性的方法,其特征是帶有路由功能的網(wǎng)絡(luò)設(shè)備在所轉(zhuǎn)發(fā)的IP包中依次留下與包的內(nèi)容掛鉤、難以偽造、并且可以查驗的“簽名”信息。
2.根據(jù)權(quán)利要求1所述的在互聯(lián)網(wǎng)中通過路由器簽名提高網(wǎng)絡(luò)安全性的方法,其特征是1)、在IPv4規(guī)程的包頭可選項中增加一個新的可選項“簽名”,要求IP包沿途的路由器或網(wǎng)關(guān)在IP包頭的可選項中記錄簽名者的IP地址和經(jīng)過加密的附加校驗信息;2)、帶有路由功能的網(wǎng)絡(luò)設(shè)備在轉(zhuǎn)發(fā)IP包時根據(jù)包的內(nèi)容計算生成簽名,并將簽名可選項插入IP包頭或包的擴(kuò)充部;3)、包的接收者通過入侵檢測軟件或設(shè)備對可疑的包記錄下其包頭、包括各個“簽名”可選項,以及包頭后面的若干字節(jié)作為內(nèi)容依據(jù),同時紀(jì)錄下包的到達(dá)時間;4)、對于高度可疑的IP包,可以通過所記錄的簽名可選項、與包的內(nèi)容有關(guān)的數(shù)據(jù)、以及包的到達(dá)時間向留有簽名的網(wǎng)絡(luò)設(shè)備查詢求證具體簽名的真?zhèn)危?)、帶有路由功能的網(wǎng)絡(luò)設(shè)備在受到查詢時根據(jù)與包的內(nèi)容有關(guān)的數(shù)據(jù)、簽名可選項中的算法與參數(shù)的索引值以及時間重新計算出一個校驗碼,并將計算結(jié)果與簽名可選項中的校驗碼比對,以判定簽名的真?zhèn)巍?br>
3.根據(jù)權(quán)利要求2所述的在互聯(lián)網(wǎng)中通過路由器簽名提高網(wǎng)絡(luò)安全性的方法,其特征在于所述的“簽名”可選項中含有簽名者的IP地址和經(jīng)過加密的附加校驗信息,其中經(jīng)過加密的附加信息由兩個部分構(gòu)成1)、一個根據(jù)包的內(nèi)容計算所得的校驗碼,校驗碼與包的內(nèi)容掛鉤,由具體的路由器或網(wǎng)關(guān)隨機(jī)選擇一個校驗算法和鍵值的組合,對包的內(nèi)容校驗碼或內(nèi)容的前N個字節(jié)進(jìn)行計算而得;2)、一個算法與參數(shù)的索引值,表明校驗碼是由哪一種算法和鍵值的組合計算所得。
4.根據(jù)權(quán)利要求2或3所述的在互聯(lián)網(wǎng)中通過路由器簽名提高網(wǎng)絡(luò)安全性的方法,其特征在于所述的“簽名”可選項的使用可以由路由器或網(wǎng)關(guān)強(qiáng)行插入。
5.根據(jù)權(quán)利要求3所述的在互聯(lián)網(wǎng)中通過路由器簽名提高網(wǎng)絡(luò)安全性的方法,其特征在于將包的源地址和目標(biāo)地址納入簽名的計算。
6.根據(jù)權(quán)利要求2或3所述的在互聯(lián)網(wǎng)中通過路由器簽名提高網(wǎng)絡(luò)安全性的方法,其特征在于所述的算法是一組單向校驗/加密算法,每個路由器或網(wǎng)關(guān)的管理員都可以為路由器設(shè)置一組參數(shù),用于上述單向校驗/加密算法。
全文摘要
本發(fā)明涉及一種通過路由器簽名提高IP網(wǎng)絡(luò)安全性的方法,1)在IPv4規(guī)程的包頭可選項中增加一個新的可選項“簽名”,要求IP包沿途的路由器在IP包頭的可選項中記錄簽名者的IP地址和經(jīng)過加密的附加校驗信息;2)帶有路由功能的網(wǎng)絡(luò)設(shè)備在轉(zhuǎn)發(fā)IP包時根據(jù)包的內(nèi)容計算生成簽名,并將簽名可選項插入IP包頭或包的擴(kuò)充部;3)包的接收者對可疑的包記錄下其包頭、包括各個“簽名”可選項,以及包頭后面的若干字節(jié)作為內(nèi)容依據(jù),同時紀(jì)錄下包的到達(dá)時間。本發(fā)明的優(yōu)點(diǎn)是在受到查詢時根據(jù)與包的內(nèi)容有關(guān)的數(shù)據(jù)、算法與參數(shù)的索引值以及時間重新計算出一個校驗碼,并將計算結(jié)果與校驗碼比對,以判定簽名的真?zhèn)危梢源蟠罂s小查找攻擊者的范圍。
文檔編號H04L9/28GK1610334SQ20041008445
公開日2005年4月27日 申請日期2004年11月23日 優(yōu)先權(quán)日2004年11月23日
發(fā)明者毛德操 申請人:毛德操