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