一種基于逐跳監(jiān)督的bgp路由驗(yàn)證方法
【專利摘要】本發(fā)明涉及一種基于逐跳監(jiān)督的BGP路由驗(yàn)證方法,包括:1)在AS(自治系統(tǒng))所維護(hù)的信息中添加唯一標(biāo)識(shí)值,根據(jù)該唯一標(biāo)識(shí)值計(jì)算得到二進(jìn)制向量數(shù)據(jù)結(jié)構(gòu)BF(Bloom Filter);2)利用BF構(gòu)造AS路徑信息,通過(guò)在BGP更新數(shù)據(jù)包中攜帶BF,并將其與AS的唯一標(biāo)識(shí)值進(jìn)行比較,選擇對(duì)應(yīng)的路由更新消息轉(zhuǎn)發(fā)接口,建立BGP路由;3)在數(shù)據(jù)包轉(zhuǎn)發(fā)過(guò)程中,在從AS出口的數(shù)據(jù)包中攜帶BF字段,接收到該數(shù)據(jù)包的AS利用BF字段進(jìn)行驗(yàn)證,判斷數(shù)據(jù)包是否從上一跳按照已建立的路由正確傳輸,實(shí)現(xiàn)基于逐跳監(jiān)督的BGP路由驗(yàn)證。本發(fā)明能夠提高路由建立過(guò)程中驗(yàn)證的效率,實(shí)現(xiàn)了宣告路由與數(shù)據(jù)轉(zhuǎn)發(fā)路徑一致性的核驗(yàn)。
【專利說(shuō)明】—種基于逐跳監(jiān)督的BGP路由驗(yàn)證方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,具體涉及一種基于逐跳監(jiān)督的BGP路由驗(yàn)證方法。
【背景技術(shù)】
[0002]BGP (Border Gateway Protocol)協(xié)議是一種域間路由協(xié)議,也是Internet最為重要的路由協(xié)議之一。BGP協(xié)議產(chǎn)生于20世紀(jì)80年代,當(dāng)時(shí),Internet的前身——ARPANET快速發(fā)展,為解決因網(wǎng)絡(luò)規(guī)模急劇擴(kuò)大而導(dǎo)致的路由可擴(kuò)展性問(wèn)題。RFC827提出一種解決方案,將ARPANET從一個(gè)單一協(xié)同管理的網(wǎng)絡(luò)轉(zhuǎn)化成由多個(gè)自治系統(tǒng)(Autonomous System,簡(jiǎn)稱AS)分散互聯(lián)的網(wǎng)絡(luò)。自治系統(tǒng)又稱為自治域,由獨(dú)立實(shí)體管理。自治域內(nèi)可自由選擇0SPF、RIP等域內(nèi)路由協(xié)議,自治域之間則采用相同的域間路由協(xié)議。最初的域間路由協(xié)議是在ARPANET中使用的EGP (Exter1r Gateway Protocol), EGP協(xié)議可以說(shuō)是BGP協(xié)議設(shè)計(jì)的雛形,它適用于早期基于骨干網(wǎng)的ARPANET,僅支持樹(shù)狀拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)。隨著互聯(lián)網(wǎng)的拓?fù)浣Y(jié)構(gòu)逐漸由樹(shù)狀向網(wǎng)狀互聯(lián)轉(zhuǎn)變,EGP協(xié)議難以適應(yīng)新的網(wǎng)絡(luò)環(huán)境。此時(shí),BGP協(xié)議作為EGP協(xié)議的替代者便應(yīng)運(yùn)而生。
[0003]首個(gè)BGP協(xié)議版本在RFC 1105中制定。歷經(jīng)IETF IDR工作組的多次修改,目前,互聯(lián)網(wǎng)中實(shí)際運(yùn)行的版本為BGP-4。BGP協(xié)議是一種路徑矢量(path vector)協(xié)議,它支持CIDR、路由聚合以及靈活多變的路由選擇策略。
[0004]歷史上,BGP對(duì)于互聯(lián)網(wǎng)的商業(yè)化和全球化立下了汗馬功勞。然而,BGP協(xié)議的設(shè)計(jì)在安全方面留有巨大的缺陷,這直接導(dǎo)致了互聯(lián)網(wǎng)安全歷史上多起重大事件的發(fā)生。比較知名的有1997年的AS7007誤配事件、2004年的TTNet路由注入事件、2008年的YouTube劫持事件以及2012年的澳洲網(wǎng)絡(luò)中斷事件。此外,BGP協(xié)議的設(shè)計(jì)缺陷也使黑客對(duì)BGP協(xié)議的攻擊興趣日漸濃厚。例如,2008年的DEFCON黑客大會(huì),兩位演講者演示了對(duì)BGP協(xié)議進(jìn)行中間人攻擊以實(shí)現(xiàn)流量劫持的攻擊方法。所有這些安全事件及攻擊行為都充分暴露了BGP路由協(xié)議在安全上的脆弱性。
[0005]基于此,有關(guān)BGP安全的研究一直非常受人關(guān)注。在國(guó)家層面,美國(guó)國(guó)土安全部于2003年正式將BGP安全納入網(wǎng)絡(luò)空間國(guó)家安全戰(zhàn)略,美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院也在2007年制定了 BGP協(xié)議安全標(biāo)準(zhǔn)文檔。在學(xué)術(shù)界,BGP安全也是網(wǎng)絡(luò)安全領(lǐng)域的一個(gè)重要研究方向,許多研究者和安全組織一直在對(duì)其進(jìn)行深入研究。比較典型的有BBN公司設(shè)計(jì)的S-BGP>Cisco 公司推出的 soBGP 以及 IETF 安全域間路由(Secure Inter-Domain Routing,簡(jiǎn)稱SIDR)工作組正在開(kāi)發(fā)的RPKI&BGPsec協(xié)議。這些都為解決BGP安全問(wèn)題提供了技術(shù)思路和努力方向。RPKI&BGPsec已成為未來(lái)大規(guī)模部署的實(shí)事標(biāo)準(zhǔn),其中RPKI的標(biāo)準(zhǔn)化工作基本完成,體系架構(gòu)已經(jīng)在ICANN推動(dòng)下得到五大RIR(Reg1nal Internet Register,地區(qū)性Internet注冊(cè)機(jī)構(gòu))的部署支持,BGPsec的標(biāo)準(zhǔn)化工作也在緊鑼密鼓進(jìn)行之中。
[0006]因?yàn)镮P地址的持有關(guān)系決定其上游的AS拓?fù)?,所以域間路由決策基于IP地址的分配情況。因此,RPKI體系的基本功能之一是對(duì)這些資源的分配提供密碼學(xué)上可驗(yàn)證的擔(dān)保。IP地址目前的分配是層次性的:層次的頂端是IANA ;在^^八之下是五大地區(qū)性因特網(wǎng)注冊(cè)機(jī)構(gòu)(RIRs)—RIRs管理自己地域內(nèi)的IP地址和AS號(hào)資源;分配層次的第三層是國(guó)家因特網(wǎng)注冊(cè)機(jī)構(gòu)(NIRs)和本地因特網(wǎng)注冊(cè)機(jī)構(gòu)(LIRs或稱之為ISP)以及所謂的獨(dú)立分配持有者(在某些地區(qū),第三級(jí)也可能只由ISP/LIR和獨(dú)立分配持有者構(gòu)成)。
[0007]通常,IP地址塊的持有者會(huì)分配其地址塊的一部分給自己的部門(mén)或者與其有注冊(cè)關(guān)系的機(jī)構(gòu)。因?yàn)檫@種結(jié)構(gòu),IP地址分配可以被層次化的PKI自然地描述一每一個(gè)證書(shū)都描述一次IP地址的分配(這種描述同樣適用于AS號(hào)碼的分配,但是AS號(hào)碼不能由除RIR和NIR之外的機(jī)構(gòu)再次分配)。因此,IP地址和AS號(hào)碼可以由同一套PKI維護(hù)。RPKI所解決的首要問(wèn)題就是:某個(gè)AS是否是某個(gè)IP的合法擁有者,以及一個(gè)AS是否擁有通告某一 IP前綴的合法授權(quán)(origin AS的真實(shí)性)。基于這一功能,BGPsec所解決的另一個(gè)問(wèn)題是:一條BGP路由中的AS_PATH是否與其網(wǎng)絡(luò)層可達(dá)信息(Network Layer ReachabilityInformat1n,簡(jiǎn)稱NLRI)實(shí)際傳播的路徑一致(即AS_APTH的完整性)。作為路徑矢量協(xié)議,BGP在傳播路由時(shí)攜帶有重要的路徑信息。路徑信息一方面用于指示到達(dá)該路由的網(wǎng)絡(luò)拓?fù)?,另一方面也用于路由選擇。BGP傳播的路徑信息主要包含網(wǎng)絡(luò)層可達(dá)信息(networklayer reachability informat1n,簡(jiǎn)稱 NLRI)和路徑屬性(path attribute)。網(wǎng)絡(luò)層可達(dá)信息包含IP前綴(prefix)和長(zhǎng)度,用于標(biāo)識(shí)目的網(wǎng)絡(luò)的CIDR地址。路徑屬性描述到達(dá)該CIDR地址的路由的特殊屬性。例如,AS_PATH屬性列出了到達(dá)目的網(wǎng)絡(luò)所經(jīng)過(guò)的一串AS路徑,ΝΕΧΤ_Η0Ρ屬性說(shuō)明了該路由的下一跳地址。
[0008]具體而言,RPKI的證書(shū)發(fā)布體系與現(xiàn)有的地址分配和AS號(hào)碼分配體系相吻合,它從IANA和RIR向下逐級(jí)簽發(fā)資源證書(shū),直到端實(shí)體(end entity)。端實(shí)體擁有一段不可再細(xì)分的IP地址資源,它使用自己的私鑰為一段名為路由源授權(quán)(route originat1nauthorizat1ns,簡(jiǎn)稱R0A)的信息進(jìn)行簽名。R0A包含端實(shí)體的IP地址塊以及端實(shí)體指定用于通告該段地址的AS號(hào)。所有證書(shū)以及R0A均通過(guò)一套分布式的RPKI證書(shū)庫(kù)系統(tǒng)(RPKI repository system)進(jìn)行集中和分發(fā),每臺(tái)BGP路由器都可以從自己所屬的ISP分發(fā)點(diǎn)獲取各類證書(shū)和R0A。利用端實(shí)體證書(shū)對(duì)R0A信息進(jìn)行認(rèn)證,就可以驗(yàn)證AS_PATH中的origin AS是否有通告NLRI的授權(quán)。
[0009]然而,當(dāng)前的BGPsec基本協(xié)議存在如下三個(gè)問(wèn)題:
[0010]1)將AS_PATH中所包含的所有AS進(jìn)行嵌套簽名,再由路由更新消息所經(jīng)過(guò)的所有AS進(jìn)行解密和驗(yàn)證,存在處理效率過(guò)低的問(wèn)題;
[0011]2)路由消息以AS號(hào)碼形式包含在AS_PATH屬性中,如果存在RPKI密鑰泄露可直接導(dǎo)致BGP路由策略的泄露;
[0012]3)BGPsec只保證了路由建立的安全,但是無(wú)法對(duì)AS是否按照所宣告路由進(jìn)行實(shí)際數(shù)據(jù)包轉(zhuǎn)發(fā)的核驗(yàn)功能。
【發(fā)明內(nèi)容】
[0013]本發(fā)明針對(duì)上述問(wèn)題,提供一種基于逐跳監(jiān)督的BGP路由驗(yàn)證方法,通過(guò)在BGPsec數(shù)據(jù)包中添加Bloom Filter,實(shí)現(xiàn)基于逐跳監(jiān)督的BGP路由驗(yàn)證。
[0014]本發(fā)明采用的技術(shù)方案如下:
[0015]一種基于逐跳監(jiān)督的BGP路由驗(yàn)證方法,其步驟包括:
[0016]1)在AS (Autonomous System,自治系統(tǒng))所維護(hù)的信息中添加唯一標(biāo)識(shí)值,根據(jù)該唯一標(biāo)識(shí)值計(jì)算得到二進(jìn)制向量數(shù)據(jù)結(jié)構(gòu)BF(Bloom Filter);
[0017]2)利用BF構(gòu)造AS路徑信息,通過(guò)在BGP更新數(shù)據(jù)包中攜帶BF,并將其與AS的唯一標(biāo)識(shí)值進(jìn)行比較,選擇對(duì)應(yīng)的路由更新消息轉(zhuǎn)發(fā)接口,從而建立BGP路由;
[0018]3)在數(shù)據(jù)包轉(zhuǎn)發(fā)過(guò)程中,在從AS出口的數(shù)據(jù)包中攜帶BF字段,接收到該數(shù)據(jù)包的AS利用BF字段進(jìn)行驗(yàn)證,判斷數(shù)據(jù)包是否從上一跳按照已建立的路由正確傳輸,從而實(shí)現(xiàn)基于逐跳監(jiān)督的BGP路由驗(yàn)證。
[0019]進(jìn)一步地,步驟1)所述二進(jìn)制向量數(shù)據(jù)結(jié)構(gòu)Bloom Filter,包括:
[0020]FBF,表示整個(gè)路徑所經(jīng)AS計(jì)算的Bloom Filter ;
[0021]CBF,表示本AS處理之前,數(shù)據(jù)包經(jīng)過(guò)的AS計(jì)算的Bloom Filter ;
[0022]LBF,表示上一跳AS處理之前,數(shù)據(jù)包經(jīng)過(guò)的AS計(jì)算的Bloom Filter。
[0023]進(jìn)一步地,步驟2)建立BGP路由的具體過(guò)程是:路由器接收到包含F(xiàn)BF的BGP更新數(shù)據(jù)包(BGP UPDATE)后,首先檢查自己的標(biāo)識(shí)是否包含在其中:
[0024]如果是,說(shuō)明正確地接收到該消息,貝U進(jìn)行對(duì)應(yīng)網(wǎng)絡(luò)層可達(dá)信息(network layerreachability informat1n,簡(jiǎn)稱NLRI)的路由更新,隨后,該路由器判斷是否有包含在FBF中的直連對(duì)等節(jié)點(diǎn),并將BGP更新數(shù)據(jù)包繼續(xù)轉(zhuǎn)發(fā)到包含在FBF中的下一跳AS ;
[0025]如果不是,說(shuō)明該路由器錯(cuò)誤地接受了 BGP更新數(shù)據(jù)包,則向接收接口進(jìn)行錯(cuò)誤反饋;接收到錯(cuò)誤反饋后,證明路徑建立有誤,則路由器逐跳返回錯(cuò)誤消息,直到源端接收到后重新規(guī)劃路徑。
[0026]進(jìn)一步地,步驟3)進(jìn)行BGP路由驗(yàn)證的具體過(guò)程是:
[0027]在數(shù)據(jù)包轉(zhuǎn)發(fā)過(guò)程中,從某個(gè)AS出口的數(shù)據(jù)包被添加一個(gè)IP選項(xiàng)(ASPATH),其攜帶FBF、CBF和LBF三個(gè)字段,F(xiàn)BF經(jīng)接收端AS公鑰加密防止中途篡改;
[0028]某個(gè)AS收到數(shù)據(jù)包后,首先通過(guò)上一跳數(shù)據(jù)包發(fā)送AS的標(biāo)識(shí)判斷LBF是否應(yīng)該轉(zhuǎn)移到CBF (即CBF是否等于“LBF+上一跳AS標(biāo)識(shí)”),如果是,該AS認(rèn)為數(shù)據(jù)包從上一跳是按照已經(jīng)建立的路由正確傳輸?shù)?,從而LBF設(shè)置為CBF的值,并將“CBF+當(dāng)前AS標(biāo)識(shí)”作為新的CBF轉(zhuǎn)發(fā)給下一跳;如果上一跳AS的標(biāo)識(shí)無(wú)法推斷從LBF到CBF,則認(rèn)為上一跳AS發(fā)送有誤,從而反饋錯(cuò)誤提示消息;
[0029]如果路徑所有AS驗(yàn)證無(wú)誤,表明途徑AS沒(méi)有對(duì)BF進(jìn)行偽造,當(dāng)最后的AS接收到數(shù)據(jù)包時(shí),用其私鑰解密FBF,檢查CBF與FBF是否相同:如果相同,表明數(shù)據(jù)包是按照所有路由器建立的路徑與策略轉(zhuǎn)發(fā);否則表明數(shù)據(jù)包并未按照預(yù)定路徑轉(zhuǎn)發(fā),則直接向數(shù)據(jù)發(fā)起端進(jìn)行通知。
[0030]RPKI體系雖然實(shí)現(xiàn)了互聯(lián)網(wǎng)碼號(hào)(AS號(hào)碼和和IP地址)之間的可信分配與驗(yàn)證機(jī)制,并實(shí)現(xiàn)了 BGP路由建立過(guò)程中的可信驗(yàn)證體系(BGPsec)。但與BGPsec相比,本發(fā)明有如下有益效果:
[0031]1)用BF檢查代替密鑰驗(yàn)證,提高了路由建立過(guò)程中驗(yàn)證的效率;
[0032]2)AS號(hào)碼不在路有消息中傳輸,而是用其對(duì)應(yīng)的BF,不存在任何路由泄露的風(fēng)險(xiǎn);
[0033]3)實(shí)現(xiàn)了宣告路由與數(shù)據(jù)轉(zhuǎn)發(fā)路徑一致性的核驗(yàn)。
【專利附圖】
【附圖說(shuō)明】
[0034]圖1是實(shí)施例中路由更新流程圖。
[0035]圖2是實(shí)施例中數(shù)據(jù)包轉(zhuǎn)發(fā)流程圖。
【具體實(shí)施方式】
[0036]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面通過(guò)具體實(shí)施例和附圖,對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
[0037]BGPsec基本協(xié)議存在的問(wèn)題(如【背景技術(shù)】中所述)是本發(fā)明提出基于BloomFilter進(jìn)行逐跳監(jiān)督的BGP路由驗(yàn)證機(jī)制的主要出發(fā)點(diǎn)。
[0038]本發(fā)明在BGPsec數(shù)據(jù)包中包含三個(gè)Bloom Filter:
[0039]Final BF (FBF):整個(gè)路徑所經(jīng) AS (Autonomous System,自治系統(tǒng))計(jì)算的 BloomFilter。
[0040]Current BF (CBF):本AS處理之前,數(shù)據(jù)包經(jīng)過(guò)的AS計(jì)算的Bloom Filter。
[0041]Last BF(LBF):上一跳AS處理之前,數(shù)據(jù)包經(jīng)過(guò)的AS計(jì)算的Bloom Filter。
[0042]在此基礎(chǔ)上,本發(fā)明將網(wǎng)絡(luò)狀態(tài)分為兩種場(chǎng)景及各自需求:
[0043]1)可信網(wǎng)絡(luò)狀態(tài):在AS之間互相可信狀態(tài)下,保證路由更新過(guò)程的高效性。
[0044]2)不可信網(wǎng)絡(luò)狀態(tài):在AS之間不可信狀態(tài)下,主要解決的問(wèn)題是數(shù)據(jù)包能否按照所建立的路徑進(jìn)行傳輸,如果沒(méi)有按照預(yù)定路徑傳輸,應(yīng)能被準(zhǔn)確發(fā)現(xiàn)。
[0045]本發(fā)明使用RPKI存儲(chǔ)每個(gè)AS對(duì)應(yīng)的標(biāo)識(shí)與其公鑰為上述流程提供支撐。下面具體介紹本發(fā)明的具體內(nèi)容。
[0046]1) AS對(duì)應(yīng)標(biāo)識(shí)的維護(hù)
[0047]RPKI已經(jīng)提供了一種可信體系架構(gòu),用于維護(hù)AS合法擁有的IP前綴信息、可驗(yàn)證的身份信息等。在本發(fā)明中需要在此基礎(chǔ)上進(jìn)行擴(kuò)展,在AS所維護(hù)信息的中心添加其全球唯一的標(biāo)識(shí)值,AS本身具有的AS號(hào)碼也具有全局唯一性,但為了不泄露AS隱私信息,在實(shí)際應(yīng)用中完全可以采用AS編號(hào)計(jì)算本發(fā)明所提各BF值,該值的生成宜采用至上向下分配的方式,并與CA證書(shū)的分配一起進(jìn)行。假設(shè)需要為最多65536個(gè)AS進(jìn)行編號(hào),其分配規(guī)則可以采用如下方式:
[0048].IANA給五大RIR分配若干位(如20位)標(biāo)識(shí)分別為
[0049]00000000000000000000,0001000000000000000,0010000000000000000,
[0050]00110000000000000000,0100000000000000000
[0051]?各RIR利用后若干位(如16位)對(duì)其所屬范圍的AS進(jìn)行唯一編號(hào)。
[0052]2)BF 的生成
[0053]本發(fā)明米用BF來(lái)構(gòu)造AS路徑信息,Bloom filter是由Howard Bloom在1970年提出的二進(jìn)制向量數(shù)據(jù)結(jié)構(gòu),它具有很好的空間和時(shí)間效率,被用來(lái)檢測(cè)一個(gè)元素是不是集合中的一個(gè)成員,如果同一位置的兩個(gè)值全0,則結(jié)果為0,否則為1。本發(fā)明中的BF是多個(gè)AS號(hào)碼Hash所生成字符串的或計(jì)算結(jié)果。
[0054]?假設(shè) AS1 的標(biāo)識(shí)為:00000001000100010001
[0055]?假設(shè) AS2 的標(biāo)識(shí)為:00000000111100001101
[0056]?那么包含 AS1 和 AS2 的 AS_PATH 的 BF 為:00000001111100011101
[0057]當(dāng)某AS接收到該BF時(shí),只有其標(biāo)識(shí)中為1的位置都包含在該BF中,才說(shuō)明該AS包含在給AS_PATH中,否則說(shuō)明該AS不在該AS_PATH中。
[0058]3)路由建立過(guò)程
[0059]本部分針對(duì)的是在可信網(wǎng)絡(luò)環(huán)境下,如何高效建立從某AS到某IP前綴的路徑,即如何保證BGP UPDATE數(shù)據(jù)包中包含的AS_PATH能夠被所經(jīng)AS快速處理并建立對(duì)應(yīng)路由狀態(tài)。在本發(fā)明BGP路由建立過(guò)程中,路由更新起源AS在所發(fā)送的BGP路由更新消息中攜帶FBF(為增加本發(fā)明的部署靈活性,在什么位置攜帶此信息不在本發(fā)明中規(guī)定),通過(guò)計(jì)算直連AS的標(biāo)識(shí)并與FBF進(jìn)行比較,該AS選擇對(duì)應(yīng)的路由更新消息轉(zhuǎn)發(fā)接口,其流程如圖1所示。本文中,AS編號(hào)/號(hào)碼都是指AS號(hào)碼,如AS 1024,AS 20334中,后面的數(shù)字就是AS編號(hào)/號(hào)碼,而AS標(biāo)識(shí)是指在本發(fā)明中經(jīng)過(guò)處理用于生成BF的編號(hào)串。
[0060]由此可見(jiàn),接收到包含F(xiàn)BF的BGP UPDATE后,路由器首先檢查自己的標(biāo)識(shí)是否包含在其中:如果是,說(shuō)明正確地接收到該消息,則進(jìn)行對(duì)應(yīng)NLRI的路由更新,隨后,該路由器判斷直連對(duì)等節(jié)點(diǎn)中的哪個(gè)包含在FBF中,并將UPDATE繼續(xù)轉(zhuǎn)發(fā)到包含在FBF中的下一跳AS ;如果不是,則說(shuō)明該路由器錯(cuò)誤地接受了 UPDATE,則向接收接口進(jìn)行錯(cuò)誤反饋。接收到錯(cuò)誤反饋后,證明路徑建立有誤,則路由器逐跳返回錯(cuò)誤消息,直到源端接收到后重新規(guī)劃路徑。
[0061]基于這一流程,路由更新消息可以順利的通過(guò)應(yīng)該通過(guò)的AS,但并沒(méi)有顯式暴露NLRI對(duì)應(yīng)的完成路徑信息(本功能基于Bloom Filter的計(jì)算不可逆,即無(wú)法通過(guò)逆向計(jì)算推斷某個(gè)AS是否包含在Bloom Filter中)。
[0062]在可信網(wǎng)絡(luò)狀態(tài)下,只要建立了安全可信的路由狀態(tài),路由器就會(huì)按照建立的路由進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。但是在不可信的網(wǎng)絡(luò)狀態(tài)下,需要對(duì)數(shù)據(jù)轉(zhuǎn)發(fā)進(jìn)行核驗(yàn),即下面步驟4)所描述的過(guò)程。
[0063]4)路由驗(yàn)證過(guò)程
[0064]在本發(fā)明數(shù)據(jù)包轉(zhuǎn)發(fā)過(guò)程中,從某個(gè)AS出口的數(shù)據(jù)包被添加一個(gè)IP選項(xiàng)(ASPATH)(如該選項(xiàng)作為IPv6數(shù)據(jù)逐跳選項(xiàng)頭的一個(gè)TLV選項(xiàng)),其攜帶FBF、CBF和LBF三個(gè)字段。對(duì)其處理流程如圖2所示。
[0065]FBF經(jīng)接收端AS公鑰加密防止中途篡改。那么在不可信的網(wǎng)絡(luò)環(huán)境中,某個(gè)AS收到數(shù)據(jù)包后,首先通過(guò)上一跳數(shù)據(jù)包發(fā)送AS的標(biāo)識(shí)判斷LBF是否應(yīng)該轉(zhuǎn)移到CBF(即CBF是否等于“LBF+上一跳AS標(biāo)識(shí)”),如果是,該AS認(rèn)為數(shù)據(jù)包從上一跳是按照已經(jīng)建立的路由正確傳輸?shù)?,從而LBF設(shè)置為CBF的值,并將“CBF+當(dāng)前AS標(biāo)識(shí)”作為新的CBF轉(zhuǎn)發(fā)給嚇一跳。如果上一跳AS的標(biāo)識(shí)無(wú)法推斷從LBF到CBF,則認(rèn)為上一跳AS發(fā)送有誤,從而反饋錯(cuò)誤提示消息。如果路徑所有AS驗(yàn)證無(wú)誤,表明途徑AS沒(méi)有對(duì)BF進(jìn)行偽造,當(dāng)最后的AS接收到數(shù)據(jù)包時(shí),用其私鑰解密FBF,檢查CBF與FBF是否相同:如果相同,表明數(shù)據(jù)包是按照所有路由器建立的路徑與策略轉(zhuǎn)發(fā);否則表明數(shù)據(jù)包并未按照預(yù)定路徑轉(zhuǎn)發(fā),則直接向數(shù)據(jù)發(fā)起端進(jìn)行通知。
[0066]以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求所述為準(zhǔn)。
【權(quán)利要求】
1.一種基于逐跳監(jiān)督的BGP路由驗(yàn)證方法,其步驟包括: 1)在AS所維護(hù)的信息中添加唯一標(biāo)識(shí)值,根據(jù)該唯一標(biāo)識(shí)值計(jì)算得到二進(jìn)制向量數(shù)據(jù)結(jié)構(gòu) Bloom Filter ; 2)利用所述BloomFilter構(gòu)造AS路徑信息,通過(guò)在BGP更新數(shù)據(jù)包中攜帶BloomFilter,并將其與AS的唯一標(biāo)識(shí)值進(jìn)行比較,選擇對(duì)應(yīng)的路由更新消息轉(zhuǎn)發(fā)接口,從而建立BGP路由; 3)在數(shù)據(jù)包轉(zhuǎn)發(fā)過(guò)程中,在從AS出口的數(shù)據(jù)包中攜帶BloomFilter字段,接收到該數(shù)據(jù)包的AS利用Bloom Filter字段進(jìn)行驗(yàn)證,判斷數(shù)據(jù)包是否從上一跳按照已建立的路由正確傳輸,從而實(shí)現(xiàn)基于逐跳監(jiān)督的BGP路由驗(yàn)證。
2.如權(quán)利要求1所述的方法,其特征在于,步驟I)所述二進(jìn)制向量數(shù)據(jù)結(jié)構(gòu)BloomFilter,包括: FBF,表示整個(gè)路徑所經(jīng)AS計(jì)算的Bloom Filter ; CBF,表示本AS處理之前,數(shù)據(jù)包經(jīng)過(guò)的AS計(jì)算的Bloom Filter ; LBF,表示上一跳AS處理之前,數(shù)據(jù)包經(jīng)過(guò)的AS計(jì)算的Bloom Filter。
3.如權(quán)利要求2所述的方法,其特征在于,步驟2)建立BGP路由的具體過(guò)程是:路由器接收到包含F(xiàn)BF的BGP更新數(shù)據(jù)包后,首先檢查自己的標(biāo)識(shí)是否包含在其中: 如果是,說(shuō)明正確地接收到該消息,則進(jìn)行對(duì)應(yīng)NLRI的路由更新,隨后,該路由器判斷是否有包含在FBF中的直連對(duì)等節(jié)點(diǎn),并將BGP更新數(shù)據(jù)包繼續(xù)轉(zhuǎn)發(fā)到包含在FBF中的下一跳 AS ; 如果不是,說(shuō)明該路由器錯(cuò)誤地接受了 BGP更新數(shù)據(jù)包,則向接收接口進(jìn)行錯(cuò)誤反饋;接收到錯(cuò)誤反饋后,證明路徑建立有誤,則路由器逐跳返回錯(cuò)誤消息,直到源端接收到后重新規(guī)劃路徑。
4.如權(quán)利要求3所述的方法,其特征在于,步驟3)進(jìn)行BGP路由驗(yàn)證的具體過(guò)程是: 在數(shù)據(jù)包轉(zhuǎn)發(fā)過(guò)程中,從某個(gè)AS出口的數(shù)據(jù)包被添加一個(gè)IP選項(xiàng),其攜帶FBF、CBF和LBF三個(gè)字段,F(xiàn)BF經(jīng)接收端AS公鑰加密防止中途篡改; 某個(gè)AS收到數(shù)據(jù)包后,首先通過(guò)上一跳數(shù)據(jù)包發(fā)送AS的標(biāo)識(shí)判斷LBF是否應(yīng)該轉(zhuǎn)移到CBF,如果是,該AS認(rèn)為數(shù)據(jù)包從上一跳是按照已經(jīng)建立的路由正確傳輸?shù)?,從而LBF設(shè)置為CBF的值,并將“CBF+當(dāng)前AS標(biāo)識(shí)”作為新的CBF轉(zhuǎn)發(fā)給下一跳;如果上一跳AS的標(biāo)識(shí)無(wú)法推斷從LBF到CBF,則認(rèn)為上一跳AS發(fā)送有誤,從而反饋錯(cuò)誤提示消息; 如果路徑所有AS驗(yàn)證無(wú)誤,表明途徑AS沒(méi)有對(duì)BF進(jìn)行偽造,當(dāng)最后的AS接收到數(shù)據(jù)包時(shí),用其私鑰解密FBF,檢查CBF與FBF是否相同:如果相同,表明數(shù)據(jù)包是按照所有路由器建立的路徑與策略轉(zhuǎn)發(fā);否則表明數(shù)據(jù)包并未按照預(yù)定路徑轉(zhuǎn)發(fā),則直接向數(shù)據(jù)發(fā)起端進(jìn)行通知。
5.如權(quán)利要求1或2所述的方法,其特征在于:采用AS編號(hào)計(jì)算二進(jìn)制向量數(shù)據(jù)結(jié)構(gòu)Bloom Filter 的值。
6.如權(quán)利要求5所述的方法,其特征在于:所述BloomFilter的值是多個(gè)AS號(hào)碼進(jìn)行Hash所生成字符串的或計(jì)算結(jié)果。
【文檔編號(hào)】H04L12/715GK104468349SQ201410705485
【公開(kāi)日】2015年3月25日 申請(qǐng)日期:2014年11月27日 優(yōu)先權(quán)日:2014年11月27日
【發(fā)明者】延志偉, 王翠翠 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心