邊界網(wǎng)關(guān)協(xié)議(Border Gateway Protocol)確實起到了不少作用。但是,企業(yè)仍舊應(yīng)該實施一些措施以保證IT路由的安全性。
全球互聯(lián)網(wǎng)路由表主要是基于信任但需驗證的模型而建立的,這不同于早期的互聯(lián)網(wǎng),因為那里每一位主干網(wǎng)的工程師本身都是互相認(rèn)識的。與許多其他的早期應(yīng)用程序類似,安全并不是邊界網(wǎng)關(guān)協(xié)議(BGP)發(fā)展的主要因素。
互聯(lián)網(wǎng)在過去只是一種主要用于學(xué)術(shù)研究的通信媒介,它的應(yīng)用程序和協(xié)議都依賴于可信的個人連接,但是它現(xiàn)在已經(jīng)轉(zhuǎn)換為一種依賴于加密機制的技術(shù),通過加密來保證數(shù)據(jù)保密性、完整性和身份驗證。 Telnet大多數(shù)時候提供了安全Shell連接方法,而開放郵件(Open Mail)延遲問題也大多已經(jīng)解決。BGP安全性基本上也有相同的需求,現(xiàn)在有一些標(biāo)準(zhǔn)可以進(jìn)一步加強信任但需驗證策略的“驗證”部分。
沒有針對全球IP路由的集中授權(quán)方法
目前還既沒有針對全球IP路由信息的集中授權(quán)方法,既沒有面向互聯(lián)網(wǎng)分層路由結(jié)構(gòu)的方法。全球路由表是由互連運營商建立的,他們會向連接方告知自己將通過哪些路由來接收流量。為了實現(xiàn)這個效果,BGP會在路由器之間建立會話,用于交換關(guān)于可訪問性信息前綴。即使是非ISP的中小型公司也可以應(yīng)用BGP,它可以幫助他們同時連接多個ISP,同時在供應(yīng)商之間實現(xiàn)輕松切換。在任意時刻,任何BGP通信端都可以對外發(fā)布任意的IP前綴。
與此相反的是公共交換電話網(wǎng)絡(luò),它們的路由信息是靜態(tài)的,并且通過紙質(zhì)方式或電子方式分發(fā)(如微軟Access數(shù)據(jù)庫)。只要有過更換電話號碼的經(jīng)歷,任何人都能理解BGP的好處。正是這種靈活性加快了互聯(lián)網(wǎng)的爆炸性增長。這是一個支撐互聯(lián)網(wǎng)日常運行的基礎(chǔ)元素,但是最終用戶感覺不到它的存在。這種不可見性在一定程度上解釋了為什么BGP拋棄了其他互聯(lián)網(wǎng)協(xié)議和應(yīng)用程序上的許多安全性改進(jìn)措施。
BGP或IP尋址協(xié)議并沒有內(nèi)置措施可以防止網(wǎng)絡(luò)發(fā)布錯誤前綴信息。同樣,這實際上是一個基于信任的系統(tǒng),ISP需要自行驗證他們的下游用戶發(fā)布了正確的網(wǎng)絡(luò)信息。
它必須部署一些過濾器,防止用戶發(fā)布一個不屬于它的網(wǎng)絡(luò)。但是,這個過程很容易發(fā)生錯誤,因為它基于更新不及時的信息源,如Whois數(shù)據(jù)庫或一組路由注冊表——它們都不可靠。即使在最佳環(huán)境中,仍然有可能出現(xiàn)錯誤。
公共密鑰基礎(chǔ)架構(gòu)可能是解決問題的方法
前綴劫持(Prefix Hijacking)的概念是指網(wǎng)絡(luò)運營商發(fā)布或宣布一個未分配給它的路由器。在2008年,巴西有一個ISP不小心把差不多整個路由表泄露給同級運營商了。幸好,這個意外很快被發(fā)現(xiàn),因此千萬的破壞并不嚴(yán)重。在今年初,巴基斯坦電信公司觸發(fā)一場全球性斷網(wǎng)事件,原因是它在試圖阻擋YouTube時設(shè)置了一個錯誤配置。這是不是一個錯誤配置導(dǎo)致泄露或內(nèi)部拒絕服務(wù)的案例?很難說。而最近還發(fā)生了一些造成金錢損失的劫持事件:盜取比特幣。
有一個解決可以解決許多此類問題:資源公共密鑰基礎(chǔ)架構(gòu)(RPKI)。RPKI是一個專用的PKI框架,它使用X.509證書擴展來傳輸IP路由來源信息。一些需要發(fā)布前綴的組織創(chuàng)建了一個路由源簽證(Route Origin Attestation, ROA),其中包括前綴、掩碼長度范圍和來源獨立系統(tǒng)號。這些ROA會被發(fā)布到全世界,特定的組織可以用一個可驗證的授權(quán)方式發(fā)布指定的IP前綴。根據(jù) RPKI Dashboard網(wǎng)站的數(shù)據(jù),目前只有不到5%的全球路由表使用ROA保護(hù),其中南美洲和加勒比海地區(qū)數(shù)量最多。南美洲和加勒比海地區(qū)有接近20%的網(wǎng)絡(luò)信息中心路由處于RPKI有效狀態(tài),大約占全球路表的2.5%。
這一平臺的兩種實現(xiàn)方法
實現(xiàn)RPKI的方法有兩個:托管方法和代理方法。在托管模型中,地區(qū)互聯(lián)網(wǎng)注冊機構(gòu)(Regional Internet Registry, RIR)負(fù)責(zé)執(zhí)行證書授權(quán)(CA)和托管愿意參與的組織的私有證書。對于沒有很多資源或不太會修改ROA明細(xì)的較小型組織而言,這是一個很便捷的入門方法。這個過程的交互則在RIR提供的一個門戶網(wǎng)站上進(jìn)行。
代理RPKI則更加靈活一些,它允許組織使用一個編程接口來訪問RIR基礎(chǔ)架構(gòu)。這要求該組織成為一個負(fù)責(zé)相關(guān)管理工作負(fù)載的CA。這種方法更適合那些有大量資源的服務(wù)提供商,他們會將這些資源分配給下游客戶或組織,而這些用戶會執(zhí)行非常多的修改,因此通過一個門戶網(wǎng)站來完成手工配置會非常繁瑣。
在托管模式中,RIR實現(xiàn)這個新標(biāo)準(zhǔn)的難度較小一些,因此即使是最小型網(wǎng)絡(luò)運營,使用BGP來參與通信也是很輕松的。對于不需要使用BGP的組織而言,他們?nèi)匀挥斜匾斫膺@種技術(shù)對于安全性的作用。如果不使用BGP去連接互聯(lián)網(wǎng),那么你仍然要向上游提供商確定兩個問題:分配給你組織的前綴是否受RPKI保護(hù)?如果沒有,什么時候才會有這種保護(hù)?
評估云提供商的保護(hù)措施
如果網(wǎng)站或應(yīng)用程序托管在一個云提供商環(huán)境中,那么你在評估和選擇過程中應(yīng)該確定這些應(yīng)用程序所在的網(wǎng)絡(luò)是否有RPKI保護(hù)。注意:前面提到的劫持事件就是針對托管在亞馬遜Web Services的比特幣擁有者。
一定要注意,RPKI可以解決BGP來源驗證問題,但是無法驗證路徑。RPKI不能檢測所有的路由異常,它只檢測帶有來自非授權(quán)獨立系統(tǒng)前綴的路由。
全球路由表是互聯(lián)網(wǎng)的基礎(chǔ)元素。保證它的完整性是所有構(gòu)成網(wǎng)絡(luò)的責(zé)任。RPKI是保證這種共享資源完整性的一個重要步驟。我們沒有任何借口可以容忍因為錯誤配置或劫持造成的斷網(wǎng)事件。