2021-4-10 | 互聯(lián)網(wǎng)
1IP地址分配與域間路由安全傳統(tǒng)的域間路由協(xié)議BGP[4](bordergatewayprotocol,邊界網(wǎng)關(guān)協(xié)議)存在很多安全隱患[5],對路由通告內(nèi)容不加以驗證,錯誤甚至蓄意偽造的路由可達(dá)信息可以隨意在互聯(lián)網(wǎng)上傳播。具體表現(xiàn)為兩種形式:IP地址前綴劫持和自治域路徑信息竄改。前者是指某個自治域發(fā)出一個非本自治域內(nèi)的IP地址前綴路由可達(dá)通告,導(dǎo)致網(wǎng)絡(luò)中以該IP地址前綴為路由目的的全部或者部分流量被路由至該自治域;后者是指蓄意修改BGP報文的自治域路徑信息以傳播虛假的網(wǎng)絡(luò)拓?fù)湫畔ⅲ瑸楹罄m(xù)網(wǎng)絡(luò)攻擊行為作鋪墊。
有眾多研究針對BGP的安全缺陷提出了解決方案:a)以S-BGP[6]、SoBGP[7]等為代表,旨在協(xié)議層面彌補(bǔ)BGP的安全缺陷,以抵御IP地址前綴劫持和自治域路徑信息竄改兩種形式的攻擊;b)以DoAV[8]、IPa+[9]以及RPKI[10]為代表,從完善IP地址分配機(jī)制的角度來避免IP地址前綴劫持。前者涉及BGP的協(xié)議改進(jìn),與IP地址管理無直接聯(lián)系,本文不作討論;后者從IP地址管理的角度出發(fā)來保障互聯(lián)網(wǎng)域間路由安全,是本文要探研討的重點。
IP地址前綴和路由源的自治域號(AS號)的正確映射關(guān)系是抵御IP地址前綴劫持的關(guān)鍵。互聯(lián)網(wǎng)注冊機(jī)構(gòu)(如亞太互聯(lián)網(wǎng)絡(luò)信息中心)天然地?fù)碛蠥S號和IP地址的分配信息以及兩者的映射關(guān)系,但這些信息缺乏統(tǒng)一的數(shù)據(jù)格式,數(shù)據(jù)的完整性和一致性也缺乏保障。此外,提供這些信息的查詢工具WHOIS[11]協(xié)議沒有驗證機(jī)制,很容易遭受各種類型的攻擊。因此,有效地組織IP地址分配信息并構(gòu)建授權(quán)信息的驗證體系,成為在IP地址管理層面抵御IP地址前綴劫持的技術(shù)路線。
1.1基于DNS資源記錄的路由源信息發(fā)布
基于DNS的公共目錄服務(wù)性質(zhì)和DNSSEC[12]安全擴(kuò)展機(jī)制,以DoAV和IPa+為代表的技術(shù)方案通過對DNS相關(guān)資源記錄進(jìn)行修改,實現(xiàn)了IP地址前綴和其路由源映射關(guān)系的發(fā)布。使用DNS反向解析樹來反映IP地址分配以及授權(quán)信息,是這類技術(shù)方案的核心思想。DoAV建議在DNS反向解析樹中新增一條子樹bgp.in-ad-dr.a(chǎn)rp來實現(xiàn)特定IP地址前綴到其路由源AS號的映射。
DoAV設(shè)計了一種新的DNS資源記錄類型“AS記錄”來完成信息的發(fā)布。假定IP地址前綴205.1.1/24授權(quán)AS號為2914的自治域為其通告路由可達(dá)信息,那么該IP地址前綴信息的持有機(jī)構(gòu),在其維護(hù)的DNS區(qū)文件中添加的資源記錄為1.1.205.bgp.in-addr.a(chǎn)rpa.AS291424。基于DoAV的設(shè)計,邊界路由器在使用BGP交換路由可達(dá)信息時,在DNS反向解析樹中查詢相關(guān)IP地址前綴的AS記錄,以驗證BGP消息中IP地址前綴的路由可達(dá)信息是否屬實。而DNS查詢數(shù)據(jù)本身的可信問題交由DNSSEC去解決。考慮到新設(shè)計的AS記錄在短期內(nèi)無法部署,DoAV建議將相關(guān)的路由源信息數(shù)據(jù)放在TXT記錄中,但并未給出詳細(xì)的TXT文本表示語法。
作為域間路由安全領(lǐng)域的典型解決方案,S-BGP盡管設(shè)計周密,但需要重新構(gòu)建一個全球范圍的PKI[13]是其部署的最大障礙。2009年底,ICANN(theInternetCorporationforAs-signedNamesandNumbers,互聯(lián)網(wǎng)名稱與數(shù)字地址分配機(jī)構(gòu))對DNSSEC實施“根簽”,構(gòu)建了一個基于DNS樹的全球信任體系。為解決S-BGP在部署方面的困難,IPa+將DNSSEC資源記錄作為一種輕量級的證書,以完成IP地址前綴與其持有實體公鑰的關(guān)聯(lián)。與DoAV類似,IPa+也利用了DNS中的IP地址反向解析樹來完成資源的發(fā)布,并通過DNSSEC中新增的DS記錄來證明IP地址的授權(quán)分配關(guān)系。例如,ARIN(北美互聯(lián)網(wǎng)注冊機(jī)構(gòu))持有IP地址塊165.0.0.0/8,將其子空間165.72.0.0/16分配給AT&T(美國電話電報公司)。按照IPa+的設(shè)計,ARIN通過DNSSEC的DS資源記錄72.165.in-addr.a(chǎn)rpaDSHash(KEYAT&T)來證明AT&T公鑰的真實性,以支撐S-BGP所設(shè)計的路由可達(dá)信息簽名機(jī)制。考慮到IP地址前綴的路由源信息不會太過頻繁,為提高驗證效率,IPa+采用了周期查詢并將查詢結(jié)果進(jìn)行緩存的驗證機(jī)制。
1.2基于RPKI的路由源聲明正如IPa+提到的那樣,構(gòu)建一個覆蓋全球范圍的PKI是S-BGP的最大部署障礙。然而,RPKI(resourcePKI)[10]的出現(xiàn),不僅為S-BGP提供了實施基礎(chǔ),更為IP地址資源管理提供了一個可信的基礎(chǔ)平臺。
以X.509證書基本格式為基礎(chǔ),RPKI通過使用資源證書擴(kuò)展[14]延伸了PKI的功能。資源證書擴(kuò)展添加了新的X.509值域,用于攜帶證書持有者所擁有的IP地址資源或AS號。參照現(xiàn)有的IP地址分配體系,上游節(jié)點既是其鄰接下游節(jié)點的資源分配者,也是其鄰接下游節(jié)點所持有資源證書的頒發(fā)者。
由于層次化的IP地址分配體系,RPKI為樹型信任結(jié)構(gòu),并采用分布式的RPKI資料庫存儲IP地址分配信息。每當(dāng)有IP地址分配信息更新時,RPKI中的IP地址分配者就將新簽發(fā)的資源證書發(fā)布到其管理的RPKI資料庫中。
基于RPKI,IP地址前綴的路由源信息經(jīng)由一種稱為路由源聲明的簽名項發(fā)布,用于說明某個IP地址前綴授權(quán)給某個AS號進(jìn)行路由可達(dá)通告。當(dāng)需要授權(quán)某個AS號為特定的IP地址前綴通告路由可達(dá)信息時,該IP地址前綴的持有者使用其資源證書對應(yīng)的私鑰簽發(fā)一個EE(endpointentity)證書,然后再用EE證書對應(yīng)的私鑰產(chǎn)生路由源聲明簽名項。EE證書中的IP地址前綴與路由源聲明所表征的IP地址前綴一致。
完成授權(quán)后,IP地址前綴持有者將相應(yīng)的路由源聲明連同產(chǎn)生該簽名項的EE證書發(fā)布到其管理的RPKI資料庫中。
依托RPKI所提供的可信IP地址分配信息以及授權(quán)信息,驗證者和RPKI服務(wù)器負(fù)責(zé)將這些信息推送給邊界路由器,供其驗證BGP消息所攜帶的IP地址前綴路由源信息。驗證者(relyingparty)在全球范圍內(nèi)周期性地下載各個RPKI資料庫的數(shù)據(jù),并通過構(gòu)造證書路徑完成對路由源聲明的驗證。驗證通過后,路由源聲明中攜帶的授權(quán)信息被推送到全球各個角落的本地緩存中。一旦收到關(guān)于某個IP地址前綴的路由可達(dá)通告,邊界路由器通過RPKI/router協(xié)議[15]向RPKI服務(wù)器發(fā)起查詢,獲得本地緩存的關(guān)于該IP地址前綴的授權(quán)信息,同路由可達(dá)通告中攜帶的路由源信息比較是否一致,并結(jié)合本地策略選擇是否信任該路由可達(dá)通告。