樊松委,陳 越,劉 揚
1(鄭州大學(xué) 軟件學(xué)院,鄭州 450003)
2(中國人民解放軍戰(zhàn)略支援部隊信息工程大學(xué),鄭州 450003)
資源公鑰基礎(chǔ)設(shè)施(resource public key infrastructure,RPKI)[1]作為有效管理互聯(lián)網(wǎng)碼號資源(Internet number resource,INR,以下簡稱“資源”)的專項技術(shù),已有多個國家和地區(qū)參與測試部署.然而其在資源管理過程中存在各種安全問題[2],如單點故障、資源分配異常、證書撤銷數(shù)據(jù)同步不及時造成驗證失效等.針對上述問題,本文提出了一種基于可修改區(qū)塊鏈的互聯(lián)網(wǎng)碼號資源管理方案(resource management by modifiable Blockchain,RMMB).該方案將RPKI 中的資源管理節(jié)點加入到區(qū)塊鏈中以規(guī)避單點故障風(fēng)險.同時為了實現(xiàn)資源在區(qū)塊鏈機(jī)制下高效的自動化管理,RMMB 在各CA 節(jié)點部署動態(tài)變化的可分配資源池(allocable resource pools,ARP),并引入實現(xiàn)證書生成、撤銷、驗證等功能的智能合約到資源的管理之中.實驗表明該方案不僅可以解決單點故障與資源分配異常問題,還消除了證書撤銷數(shù)據(jù)同步存在的隱患,使RPKI的資源管理變得更加安全高效.
RPKI 是一種用來保障互聯(lián)網(wǎng)基礎(chǔ)碼號資源安全使用的公鑰基礎(chǔ)設(shè)施,它依托層次化體系對資源進(jìn)行分配,主要通過兩種X.509 證書來實現(xiàn)分配過程的可認(rèn)證[3],分別是認(rèn)證權(quán)威(certificate authority,CA)證書和端實體(end entity,EE)證書.CA 證書用于實現(xiàn)互聯(lián)網(wǎng)碼號資源所有權(quán)的認(rèn)證,EE 證書用于對路由源認(rèn)證(route origin attestation,ROA)的簽名驗證.RPKI 由CA、資料庫(repository)和依賴方(relying party,RP)3 個基本模塊構(gòu)成,其中CA 機(jī)構(gòu)負(fù)責(zé)將發(fā)布的證書和相關(guān)數(shù)據(jù)信息發(fā)送到資料庫中,RP 負(fù)責(zé)同步資料庫中的數(shù)據(jù),并對ROA 進(jìn)行驗證.BGP 路由器則根據(jù)驗證結(jié)果構(gòu)建自己的過濾表項和緩存列表,并通過這些表項來判斷宣告路由是否有效來指導(dǎo)其路由決策[4],RPKI的運行機(jī)制如圖1所示.
圖1 RPKI 運行機(jī)制
RPKI 可以有效防御路由前綴劫持攻擊,然而其在資源管理模式中卻存在較多的隱患,導(dǎo)致RPKI的部署成本過高且難以較好實現(xiàn)預(yù)期目標(biāo)[5],總結(jié)起來有如下3 個方面的問題:單點故障、資源分配異常、證書撤銷數(shù)據(jù)同步不及時造成驗證失效.單點故障主要是由于RPKI 上層CA 節(jié)點權(quán)力過大,一旦上層節(jié)點被惡意攻擊,便會造成極大的安全隱患.證書撤銷方面的問題主要是由于RPKI 采用的CRL 機(jī)制[6],其及時性有限、冗余度過高、存儲及驗證開銷過大等缺陷會導(dǎo)致CRL 列表同步不及時,進(jìn)一步造成過期證書被惡意利用等安全問題.RPKI 資源分配過程中出現(xiàn)的錯誤操作可能導(dǎo)致各種安全風(fēng)險[7],例如將未授權(quán)的資源分配給下級節(jié)點,會導(dǎo)致該節(jié)點獲取本不屬于自己的路由信息,造成路由泄露;惡意新增一條路由源認(rèn)證信息,會導(dǎo)致一條合法的路由被判定為無效;重復(fù)分配已授權(quán)的資源,可能會導(dǎo)致資源沖突或不可用等.Fu 等[8]針對RPKI 中CA 資源分配過程中可能出現(xiàn)的異常,將其分為3 種情況,分別是未經(jīng)授權(quán)資源分配、資源再次分配和資源轉(zhuǎn)移.
未經(jīng)授權(quán)資源分配是指CA 節(jié)點將未經(jīng)上級授權(quán)的碼號資源分配給其下級節(jié)點的行為,其又細(xì)分為完全未經(jīng)授權(quán)資源分配和部分未經(jīng)授權(quán)資源分配兩種情況.資源再次分配是指CA 節(jié)點將已經(jīng)分配給某下級節(jié)點的碼號資源又重復(fù)分配給其他下級節(jié)點的行為,其又細(xì)分為Matching 類型(重復(fù)分配給多節(jié)點的資源集合完全相同)、Subset 類型(重復(fù)分配給多節(jié)點的資源集合屬于包含關(guān)系)和Intersection 類型(重復(fù)分配給多節(jié)點的資源集合存在交集).資源轉(zhuǎn)移是兩個互聯(lián)網(wǎng)機(jī)構(gòu)通過第三方認(rèn)證進(jìn)行的資源交易過程,在交易雙方達(dá)成一致的前提下,經(jīng)過舊證書的撤銷和新證書的頒發(fā),確立該資源新的所有權(quán).將該過程進(jìn)行一定程度的簡化,如圖2所示.
圖2 資源轉(zhuǎn)移
JPNIC 與TWNIC 雙方均同意要對某部分資源進(jìn)行轉(zhuǎn)移,過程如下:兩者選取一個RPKI 層次結(jié)構(gòu)中最低的IR 節(jié)點,稱為SP (swing point),且該節(jié)點為雙方的共同父節(jié)點,并且同意作資源轉(zhuǎn)移代理.JPNIC 創(chuàng)建一個證書并告知SP,描述要轉(zhuǎn)移給TWNIC的資源;SP 向TWNIC 發(fā)出一個新的擴(kuò)展證書,描述其資源管理情況以及新資源的詳情,當(dāng)雙方在確定技術(shù)和業(yè)務(wù)方面的轉(zhuǎn)移都已經(jīng)完成時會通知SP,待相關(guān)資源轉(zhuǎn)移完成后SP 會向JPNIC 頒發(fā)新證書,以更新JPNIC的資源管理情況.
針對上述問題,文獻(xiàn)[8]提出滯后驗證資料庫的數(shù)字簽名對象,當(dāng)出現(xiàn)異常時,及時通知CA 進(jìn)行錯誤糾正,但該方法需要一個錯誤糾正等待時間;為了減少該等待時間,文獻(xiàn)[9]提出了一種“事前控制”的檢測機(jī)制,通過修改rpki.net 提供的RPKI-CA 工具在證書頒發(fā)之前對頒發(fā)的資源進(jìn)行驗證,發(fā)現(xiàn)不符合規(guī)定的分配操作則不予執(zhí)行.但是其只能檢測出資源未經(jīng)授權(quán)分配以及Matching 或Subset 類型的資源再次分配,且如果驗證者被事先攻擊,則可繞過該檢測機(jī)制使其無效,故其存在單點故障和檢測問題不全面的缺陷.文獻(xiàn)[10]針對這些不足提出了基于區(qū)塊鏈的檢測方案,該機(jī)制通過將CA 機(jī)構(gòu)作為節(jié)點加入?yún)^(qū)塊鏈來解決單點故障的問題,利用了智能合約和哈希值數(shù)組的證書存儲結(jié)構(gòu)來保障機(jī)制的安全高效,并通過實驗證明了其安全性和可行性.該機(jī)制雖然解決了單點故障的問題,且能夠進(jìn)一步檢測出Intersection 類型的資源再次分配,但是該方案未考慮出現(xiàn)證書撤銷情況后檢測技術(shù)的應(yīng)對方案.當(dāng)資源所屬權(quán)發(fā)生變更,鏈上數(shù)據(jù)卻依然保持變更之前的狀態(tài),可能會導(dǎo)致原本正常的資源分配操作被智能合約檢測為異常;由于該機(jī)制只考慮對上傳至區(qū)塊鏈上的證書進(jìn)行檢測,當(dāng)出現(xiàn)鏈上證書過期的情況,邊界路由器卻依舊信任,這將會產(chǎn)生較大的安全風(fēng)險.
而本文提出的基于可修改區(qū)塊鏈的互聯(lián)網(wǎng)碼號資源管理方案同樣利用了文獻(xiàn)[10]中區(qū)塊鏈技術(shù)的優(yōu)點,如去中心化、共識機(jī)制保持?jǐn)?shù)據(jù)一致性、智能合約的應(yīng)用等.此外,補(bǔ)充考慮了證書撤銷機(jī)制,利用區(qū)塊的可修改來適應(yīng)RPKI 運行過程中數(shù)據(jù)的動態(tài)變化,較好地解決了上述方案存在的問題.
區(qū)塊鏈技術(shù)去中心化、不可篡改、可追溯、公開透明等特性為很多應(yīng)用提供了安全可靠的信任環(huán)境.這也使得近些年區(qū)塊鏈的關(guān)注度不斷上升,然而區(qū)塊鏈上數(shù)據(jù)的絕對不可更改也給其發(fā)展帶來限制,近些年出現(xiàn)的一系列以太坊智能合約漏洞攻擊事件為此敲響了警鐘.如2016年的The DAO 攻擊事件[11]、2017年的Parity 錢包被盜事件[12]以及多起由整數(shù)溢出漏洞導(dǎo)致的合約攻擊事件.官方機(jī)構(gòu)最終也只能通過軟硬分叉的方式來解決問題,這些事件不僅給用戶帶來極大的經(jīng)濟(jì)財產(chǎn)損失,也給區(qū)塊鏈技術(shù)帶來負(fù)面影響.此外,區(qū)塊鏈缺乏治理規(guī)則,當(dāng)遇到突發(fā)情況(如代碼漏洞、記錄出錯等)容易導(dǎo)致系統(tǒng)混亂.因此,在保證安全的前提下,在特定情況下允許區(qū)塊鏈上的數(shù)據(jù)被修改,對于區(qū)塊鏈的健康發(fā)展和其抗風(fēng)險能力的提升具有積極意義.
目前關(guān)于可修改的區(qū)塊鏈技術(shù)研究剛剛起步,相關(guān)概念最早是由埃森哲公司提出,其設(shè)計了利用變色龍哈希技術(shù)來更改區(qū)塊鏈中的歷史區(qū)塊[13].該方案雖然帶來了利用變色龍哈希技術(shù)來實現(xiàn)可修改區(qū)塊鏈的啟發(fā),但存在較大的中心化風(fēng)險,與我們使用區(qū)塊鏈方案解決單點故障問題的初衷相違背.
Cheng 等[14]提出了基于多項式的可修改區(qū)塊鏈結(jié)構(gòu),在每個塊中通過拉格朗日插值方法組織數(shù)據(jù)段,多項式函數(shù)用于保持塊的順序,還可以通過選擇適當(dāng)?shù)亩囗検絻绾透袷絹碚{(diào)整修改的難度.但是該方案的設(shè)計初衷是為了解決鏈上存在的金融欺詐交易信息類問題,且需要人工對上鏈數(shù)據(jù)進(jìn)行分類以確定其修改難度,應(yīng)用于RPKI的資源管理中契合度不高.
Lee 等[15]提出了另一種構(gòu)建可修改區(qū)塊鏈的方法,通過交易內(nèi)容的哈希散列值和分散的對等網(wǎng)絡(luò)節(jié)點的集體貢獻(xiàn)來批準(zhǔn)和修改交易,其使用分層的多區(qū)塊鏈模型作為在分散網(wǎng)絡(luò)中修改交易的工具,每個側(cè)鏈的區(qū)塊挖掘過程與主鏈以及其他側(cè)鏈的區(qū)塊挖掘過程幾乎獨立地進(jìn)行.該方案只進(jìn)行了相關(guān)的理論安全分析沒有進(jìn)行實驗驗證其可行性,且方案理論上涉及部署多條區(qū)塊鏈,在修改頻繁的場景下可能導(dǎo)致跨鏈通信開銷過大,故不適用于RPKI的資源管理.
文獻(xiàn)[16]基于POSpace 共識機(jī)制的SpaceMint 區(qū)塊鏈系統(tǒng),通過在區(qū)塊簽名子塊中引入機(jī)動因子的方式,利用陷門單項函數(shù),在超過閾值數(shù)節(jié)點同意的前提下,驗證群組中的礦工節(jié)點利用各自的陷門生成新的機(jī)動因子,完成對區(qū)塊信息的更改,其余區(qū)塊不受影響,整個區(qū)塊鏈系統(tǒng)仍舊保持健壯性和安全性.并通過實驗驗證了其可行性,且該方案的細(xì)粒度更高,可以只對區(qū)塊內(nèi)的某條交易進(jìn)行修改,適用于RMMB 中ARP和鏈上證書撤銷等應(yīng)用場景.綜上所述,本文最終選擇了該項可修改區(qū)塊鏈方案來應(yīng)用于所提出的互聯(lián)網(wǎng)碼號資源管理方案.
Park 等提出了以空間共識,即POSpace 作為共識機(jī)制的SpaceMint 區(qū)塊鏈系統(tǒng)[17].不同于POW和POS,這種共識機(jī)制以節(jié)點付出的磁盤空間來作為代價證明,通過節(jié)點對有向無環(huán)圖的構(gòu)造速度來衡量空間大小,進(jìn)而選取記賬者.為了使得在POSpace 下區(qū)塊鏈系統(tǒng)的安全性得以保障,SpaceMint 構(gòu)建了全新的區(qū)塊鏈結(jié)構(gòu),如圖3所示,區(qū)塊i包含3 個部分:證明子塊φi、簽名子塊σi和交易子塊τi.其中,證明子塊φi和交易子塊τi相當(dāng)于傳統(tǒng)區(qū)塊結(jié)構(gòu)中的區(qū)塊頭和區(qū)塊體,而新增的簽名子塊σi則打破了區(qū)塊頭、體之間的鏈接,這樣的結(jié)構(gòu)可以抵御多種針對所需算力較小的區(qū)塊鏈共識機(jī)制的系統(tǒng)攻擊.
圖3 SpaceMint 區(qū)塊鏈結(jié)構(gòu)
圖3中證明子塊φi=Hash(I,ζφ,(pki,γi,ci,ai)),符號具體含義如下:當(dāng)前區(qū)塊號I,記賬者對前一區(qū)塊的證明子塊φi-1的簽名ζφ,記賬者在競爭記賬權(quán)時產(chǎn)生的承諾證明以及空間證明(pki,γi,ci,ai);簽名子塊σi包含{I,ζτ,ζσ},符號具體含義如下:當(dāng)前區(qū)塊號I,記賬者對當(dāng)前區(qū)塊的交易子塊τi的簽名ζτ,記賬者對前一區(qū)塊的簽名子塊σi-1的簽名ζσ;交易子塊τi包含{I,ctx},符號具體含義如下:當(dāng)前區(qū)塊號I;交易信息列表ctx;該區(qū)塊結(jié)構(gòu)打破了區(qū)塊頭與區(qū)塊體的直接聯(lián)系,為區(qū)塊鏈的修改提供了可能.
其可修改的原理如圖4所示:通過在區(qū)塊簽名子塊中引入機(jī)動因子Gi的方式,利用陷門單項函數(shù),在超過閾值數(shù)節(jié)點同意的前提下,驗證群組中的礦工節(jié)點利用各自的陷門生成新的機(jī)動因子,完成對區(qū)塊信息的更改,其余區(qū)塊不受影響,整個區(qū)塊鏈系統(tǒng)仍舊保持健壯性和安全性.可修改區(qū)塊鏈區(qū)塊的生成和修改主要過程如過程1和過程2.
圖4 可修改的SpaceMint 區(qū)塊鏈原理
?
Gi(x1i,x2i,···,xni)=gP1i(x2i)||···||gPni (xni),其中P為礦工的公鑰,g為ECC-200 函數(shù),x為礦工專屬隨機(jī)數(shù)(每個礦工節(jié)點在初始化階段均會得到系統(tǒng)隨機(jī)分配的公私鑰對和專屬隨機(jī)數(shù)),機(jī)動因子由排名前80%的礦工共同生成.將記賬者對當(dāng)前區(qū)塊的交易子塊τi的簽名改為記賬者對交易子塊τi的哈希值與機(jī)動因子Gi 異或結(jié)果的簽名,其余不變;4) 記賬者計算區(qū)塊i的交易子塊τi;5) 記賬者將區(qū)塊i 打包并發(fā)布,經(jīng)全網(wǎng)驗證通過,區(qū)塊上鏈.(x1i)||gP2i過程2.可修改區(qū)塊鏈區(qū)塊i 修改1) 節(jié)點因某種原因要修改區(qū)塊i 中的某條交易信息,隨即生成修改請求,全網(wǎng)廣播;2) 參與區(qū)塊i 生成的礦工對修改請求進(jìn)行合法性認(rèn)證;3) 認(rèn)證合法后,根據(jù)新的交易子塊τ'i,利用如下公式:
Hash(τi)⊕Gi(x1i,x2i,···,xni)=Hash(τ′i)⊕G′i(x′1i,x′2i,···,x′ni)計算得到新的機(jī)動因子G'i;4) 各礦工通過函數(shù)陷門計算出新的隨機(jī)值x',隨后在全網(wǎng)更新;5) 區(qū)塊i的記賬者根據(jù)修改情況生成一條溯源信息放入交易池,等待后續(xù)打包上鏈.
基于SpaceMint的可修改區(qū)塊鏈通過單向陷門函數(shù)保證計算安全,多數(shù)礦工集體參與保證修改的合法性,即修改代表整體的意識.雖然相較于傳統(tǒng)區(qū)塊鏈涉及了更多的計算,增大了一定的安全風(fēng)險,但是其靈活性和可用性都大大增強(qiáng),這對于區(qū)塊鏈技術(shù)的發(fā)展具有積極意義.
RMMB 是一種基于可修改區(qū)塊鏈,依賴于BGP 協(xié)議,通過智能合約在系統(tǒng)內(nèi)自動化執(zhí)行的互聯(lián)網(wǎng)碼號資源管理方案.RMMB 主要分為兩個模塊:數(shù)據(jù)模塊和驗證模塊.其中數(shù)據(jù)模塊指的是通過智能合約的算法設(shè)計、可修改區(qū)塊鏈的安全機(jī)制以及鏈上數(shù)據(jù)的保護(hù)機(jī)制等確保鏈上的證書數(shù)據(jù)真實、有效、合法.驗證模塊主要涉及邊界網(wǎng)關(guān)路由器的驗證操作,BGP 路由器在接收到宣告報文后,首先查詢本地的路由表項,若沒有相關(guān)記錄則向數(shù)據(jù)模塊請求檢驗,并通過數(shù)據(jù)模塊的驗證結(jié)果來更新本地路由表項以指導(dǎo)其路由決策.數(shù)據(jù)模塊為BGP 路由器的驗證操作提供了可信數(shù)據(jù)源,進(jìn)而有效解決非法違規(guī)的BGP 報文所造成的路由前綴劫持問題.
圖5展示了RMMB的整體框架.圖右側(cè)展示的是數(shù)據(jù)模塊,在應(yīng)用RMMB的系統(tǒng)內(nèi),所有CA 節(jié)點都要加入一一對應(yīng)的區(qū)塊鏈網(wǎng)絡(luò),每個CA 節(jié)點的基本配置為專屬公私鑰對、原始數(shù)據(jù)集、可分配資源池.其中專屬公私鑰對的主要目的是為了驗證證書發(fā)布者的身份信息;原始數(shù)據(jù)集在系統(tǒng)建設(shè)之初就會得到確定,一般情況不會發(fā)生改變;可分配資源池包含了3 部分信息,分別是CA 身份標(biāo)識(對應(yīng)CA 公鑰的哈希摘要值)、可分配的IP 地址資源、可分配的AS 碼號資源.上述數(shù)據(jù)均保存在由可修改區(qū)塊鏈技術(shù)構(gòu)造的區(qū)塊中.
圖5 RMMB 整體框架
同時,智能合約根據(jù)相關(guān)條件判斷,自動執(zhí)行發(fā)布者身份驗證,證書內(nèi)容驗證,區(qū)塊內(nèi)容合法修改等步驟,確保所有鏈上數(shù)據(jù)的真實有效.圖左側(cè)展示的是RMMB驗證模塊.在BGP 協(xié)議中,相鄰路由器會互相傳達(dá)接收到的相關(guān)BGP 報文,在圖中BGP 路由器接收到來自相鄰路由器且本地路由表項沒有記錄的更新報文后,會立刻將相關(guān)驗證申請信息發(fā)送給數(shù)據(jù)模塊,智能合約在捕捉到信息后,會啟動鏈上搜索迅速得出該宣告報文合法性的驗證結(jié)果,隨后利用系統(tǒng)的私鑰簽名后返回,BGP 路由器簽名驗證通過后按照規(guī)則更新路由表.由于更新路由表操作需要一定的時間,在面對本地?zé)o法判斷的更新報文時,BGP 路由器管理者根據(jù)情況將其設(shè)置為按默認(rèn)路由轉(zhuǎn)發(fā)或作丟棄處理.
RMMB 智能合約系列主要包含3 方面的執(zhí)行內(nèi)容:驗證CA 節(jié)點請求的真實性和合法性、調(diào)用底層區(qū)塊鏈區(qū)塊生成和修改的權(quán)限、檢索鏈上數(shù)據(jù).應(yīng)用場景涉及CA 節(jié)點證書生成、證書撤銷以及BGP 路由器發(fā)起的證書驗證等過程.智能合約設(shè)計思路如下:
智能合約1.CA 節(jié)點證書生成1) 對CA 節(jié)點m 提交的資源證書生成請求(請求分配給下級CA 節(jié)點n的IP 資源為集合a,AS 資源為集合b)進(jìn)行簽名驗證;2) 驗證成功后,通過CA 身份標(biāo)識獲取m的ARP 信息(可分配的IP 資源為集合c,AS 資源為集合d),假設(shè)n的ARP為空值;? ?3) 對比判斷是否滿足如下條件:a c∩b d;4) 若滿足,則同意該請求,調(diào)用區(qū)塊鏈區(qū)塊生成或修改權(quán)限,將m的ARP 修改(可分配的IP 資源為集合c-a,AS 資源為集合d-b),將n的ARP 修改(可分配的IP 資源為集合a,AS 資源為集合b);5) 生成相應(yīng)證書放入交易池,等待后續(xù)打包上鏈.智能合約2.CA 節(jié)點證書撤銷1) 對CA 節(jié)點m 提交的證書撤銷請求(請求撤銷下級CA 節(jié)點n的IP 資源為集合a,AS 資源為集合b)進(jìn)行簽名驗證;
2) 驗證成功后,通過CA 身份標(biāo)識獲取m的原始數(shù)據(jù)集(IP 資源為集合c,AS 資源為集合d),m的ARP 信息(可分配的IP 資源為集合e,AS 資源為集合f),n的ARP 信息(可分配的IP 資源為集合g,AS 資源為集合h);? ?3) 判斷是否滿足如下條件:a c∩b d;4) 若滿足,則同意該請求,調(diào)用區(qū)塊鏈區(qū)塊生成或修改權(quán)限,將m的ARP 修改(可分配的IP 資源為集合e+a,AS 資源為集合f+b),將n的ARP 修改(可分配的IP 資源為集合g-a,AS 資源為集合h-b);5) 將鏈上的目標(biāo)證書執(zhí)行撤銷操作,即修改為空值.智能合約3.BGP 路由器證書驗證1) 對BGP 路由器提交的證書驗證請求進(jìn)行解密;2) 解密成功后,提取請求中相應(yīng)的特征值;3) 利用特征值在鏈上檢索相對應(yīng)的證書;4) 通過鏈上是否存在對應(yīng)的目標(biāo)資源證書來判斷BGP 路由器收到的報文是否合法,并生成路由表項;5) 將驗證結(jié)果返回給BGP 路由器,指導(dǎo)其路由決策.
從智能合約3 中提取算法1,設(shè)此時鏈上的證書數(shù)量為n,智能合約首先對某BGP 路由器的驗證請求進(jìn)行解密,接著獲取請求中格式標(biāo)準(zhǔn)的
算法1.鏈上證書驗證輸入:系統(tǒng)公鑰加密的驗證請求Cryptograph輸出:
本節(jié)進(jìn)行仿真實驗,模擬基于可修改區(qū)塊鏈的互聯(lián)網(wǎng)碼號資源管理方案并用相關(guān)實驗結(jié)果與同類方案進(jìn)行對比分析.可修改區(qū)塊鏈技術(shù)所涉及的密碼學(xué)參數(shù)在Visual Studio 2017 環(huán)境下使用C++語言進(jìn)行計算,計算涉及到的函數(shù)有SHA-256、DSA-512、ECC-200 等.使用Intel(R)Core(TM)i7-7500U CPU(2.70 GHz,16 GB memory)模擬挖礦節(jié)點,區(qū)塊鏈的結(jié)構(gòu)生成以及智能合約的算法設(shè)計用Python 3.7 來實現(xiàn),數(shù)據(jù)存儲采用Key-Value 形式.
設(shè)計5 個節(jié)點進(jìn)行POSpace 挖礦競爭,通過各節(jié)點存儲有向無環(huán)圖頂點的效率模擬空間大小證明,其最終競爭結(jié)果按照從高到底排名為4、5、2、1、3,驗證群組閾值設(shè)定為80%.實驗場景設(shè)計如下:APNIC所管理的資源范圍為{ASNs:85550-85580;IP Prefixes:192.168.2.0/24、193.168.113.0/24、194.168.55.0/24},需給JPNIC 分配資源{ASNs:85 560、85 567;IP Prefixes:192.168.2.0/25、193.168.113.0/25},給TWNIC 分配資源{ASNs:85559;IP Prefixes:194.168.55.0/25}.
根據(jù)上述設(shè)計,以JPNIC 視角為例,假設(shè)JPNIC在資源分配之前ARP為空值.APNIC 節(jié)點開始提交資源證書生成請求,首先智能合約會對該請求進(jìn)行簽名驗證;驗證通過后,判斷資源分配{ASNs:85560、85567}?{ASNs:85550–85580}合法,同時IP 資源也滿足條件;此時開始調(diào)用區(qū)塊生成或者修改權(quán)限來對JPNIC和APNIC的ARP 進(jìn)行修改,假設(shè)此時通過生成新區(qū)塊實現(xiàn),以區(qū)塊826為例,記賬者為礦工4,此次挖礦排名交易信息ctx={ranking,8CD85AE8,4,5,2,1,3},其包含證明子塊φ826、簽名子塊σ826,G和交易子塊τ826,由實驗測得:φ826=e5258fd7afac42f5e586b85aef00c7de7cd780 b5224fe9b32561558533376108,τ826={826,ctx},其中ctx可以包含25–30 條交易信息,σ826,G={826,3C5F70ED DD51270F1854D6455338CF5FF04CBBC3,8D87C8A1 CDE7F78CB4F5AB1C78790890A955AD8};最后生成相應(yīng)的X.509 證書,與上述交易信息一起進(jìn)入交易池中,等待后續(xù)礦工打包上鏈.
在上述資源證書生成后,JPNIC的ARP 更改為{ASNs:85560、85567;IP Prefixes:192.168.2.0/25、193.168.113.0/25},隨后經(jīng)過JPNIC 與TWNIC 進(jìn)行協(xié)商,JPNIC 決定將資源{ASNs:85567;IP Prefixes:192.168.2.0/25}轉(zhuǎn)移給TWNIC,如圖2所示.則此時需要JPNIC 將已經(jīng)頒發(fā)的證書執(zhí)行撤回操作,JPNIC 節(jié)點開始提交證書撤銷請求,首先智能合約會對該請求進(jìn)行簽名驗證;驗證通過后,判斷將要撤回的資源屬于JPNIC的原始數(shù)據(jù)集,撤回請求合法;此時開始調(diào)用區(qū)塊生成或者修改權(quán)限來對JPNIC的ARP 進(jìn)行修改,假設(shè)此時通過修改信息所在的區(qū)塊實現(xiàn),首先JPNIC 節(jié)點向全網(wǎng)廣播一條交易更改請求,ReviseTx={826,ARP_Change,(JPNIC_ARP;ASNs:85560、85567;IP Prefixes:192.168.2.0/25,193.168.113.0/25),(JPNIC_ARP;ASNs;85560;IP Prefixes:193.168.113.0/25)},對應(yīng)的礦工節(jié)點4、5、2、1 收到更改請求后,驗證其是否合法,驗證通過后開始進(jìn)行修改操作,生成新的交易子塊τ'826,然后根據(jù)公式計算出新的機(jī)動因子G',隨后4 名礦工節(jié)點使用各自的私鑰進(jìn)行ECC-200 解密,求出新的專屬隨機(jī)值x',并在全網(wǎng)更新;最后將修改情況生成一條溯源信息放入交易池,等待后續(xù)打包上鏈.以節(jié)點4為例,根據(jù)新的機(jī)動因子求得τ'P(4/826)=5FF033D5F280D9FD62F0396 E8D50D7691450CC9C40505B6010,然后利用其私鑰進(jìn)行ECC-200 解密,得到新的專屬隨機(jī)數(shù)x'(4/826)=9E5A4A279 E8818C784FE6BC8DE8859BE9B1A5E7D50285BC3.上述步驟完成后,開始執(zhí)行證書撤銷操作,智能合約再次調(diào)用區(qū)塊修改權(quán)限對包含證書的區(qū)塊進(jìn)行修改,將區(qū)塊內(nèi)的證書信息修改為空值,在不影響區(qū)塊其他內(nèi)容的前提下,數(shù)據(jù)已按照要求合法修改.
通過不斷模擬生成編號1–5的區(qū)塊,我們得到了這些區(qū)塊生成的平均時間開銷大約為3.846 s,接著對編號1–5的區(qū)塊進(jìn)行了修改測試,得出區(qū)塊修改平均時間為1.221 s.根據(jù)圖6可以看出RMMB 單個區(qū)塊生成的時間基本維持在4 s 以內(nèi),區(qū)塊修改時間為區(qū)塊生成時間的1/3 左右.
圖6 區(qū)塊生成與修改時間開銷
在證書驗證實驗中,我們模擬了智能合約在鏈上對目標(biāo)證書檢索的過程,得到了從不同證書數(shù)量規(guī)模的區(qū)塊鏈上檢索到目標(biāo)證書的時間開銷,將RMMB 作為一個黑匣子,從BGP 路由器的角度來檢測系統(tǒng)的效果.如圖7所示,在鏈上證書數(shù)量由1 000 到10 000 遞增的過程中,系統(tǒng)驗證的時間開銷也隨之增加.可以看出在鏈上證書數(shù)量為10 000 時,單次平均驗證時間在1 s 以內(nèi).
圖7 證書驗證時間開銷
接下來進(jìn)行RMMB 適用性分析.在當(dāng)前RPKI 機(jī)制下,BGP 路由器在獲取最新的ROA 路由過濾表時,需要RP 先通過同步協(xié)議同步RPKI 資料庫的最新數(shù)據(jù),隨后根據(jù)最新數(shù)據(jù)提取出有效的ROA 記錄生成路由過濾表項,最后再通過RTR 協(xié)議將表項下發(fā)至各個BGP 路由器[18].而現(xiàn)階段RP 軟件同步RPKI 資料庫的默認(rèn)刷新間隔通常在1 min 到1 h 不等[19].BGP 路由器每間隔1 h 左右通過RTR 協(xié)議從RP 獲取一次最新數(shù)據(jù)[20],也就是說BGP 路由器可以接受的系統(tǒng)更新時間間隔在1 h 左右.
而在RMMB 中,區(qū)塊鏈節(jié)點同步存儲著證書信息,系統(tǒng)數(shù)據(jù)自動維護(hù)更新.對BGP 路由器而言,只需要向系統(tǒng)發(fā)起驗證申請即可快速更新本地路由表項,屬于增量式的觸發(fā)更新.截至2021年5月16日,RPKI資料庫中約有107 697 個文件(包括.cer 文件和.roa 文件),此時RPKI 全球部署率為29.03% (數(shù)據(jù)來源于https://rpki-monitor.antd.nist.gov/).結(jié)合驗證算法的時間復(fù)雜度及實驗數(shù)據(jù),粗略推測鏈上證書數(shù)量達(dá)到107 697 時,單次平均驗證時間在15 s 之內(nèi).假設(shè)在最壞情況下,即
通過以上數(shù)據(jù)分析得出,對BGP 路由器而言,相比于現(xiàn)行RPKI 機(jī)制下路由表的周期性更新,通過本文所提出RMMB 機(jī)制下更新的時間開銷不論是目前還是在未來一段時間均在合理的范圍之內(nèi).RMMB 能夠安全高效地幫助BGP 路由器與最新且可靠的數(shù)據(jù)源達(dá)到同步,具有較強(qiáng)的可行性.
對RPKI、文獻(xiàn)[9]、文獻(xiàn)[10]和RMMB 四種方案在上文所提出的3 方面問題,即單點故障、證書撤銷數(shù)據(jù)同步不及時、資源分配異常,進(jìn)行功能性分析.由于所有方案都是圍繞著RPKI 進(jìn)行改進(jìn),故將RPKI作為對照,其所有類型的問題在理論上都存在;對于單點故障問題,由于文獻(xiàn)[9]所提出的檢測機(jī)制未改變RPKI 層次化的體系結(jié)構(gòu),故依舊存在單點故障風(fēng)險,一旦CA 節(jié)點被入侵,檢測機(jī)制可能面臨失效.文獻(xiàn)[10]和本文所提方案都是基于區(qū)塊鏈的分布式架構(gòu),改變了RPKI 層次化的體系結(jié)構(gòu),均很好地解決了單點故障問題.對于證書撤銷方面可能存在的安全風(fēng)險,文獻(xiàn)[9]和文獻(xiàn)[10]的主要側(cè)重點在于對資源異常分配的檢測和管理,其中文獻(xiàn)[9]依舊延續(xù)RPKI的證書撤銷規(guī)則,依舊存在證書撤銷同步不及時造成的安全問題.文獻(xiàn)[10]只考慮了將區(qū)塊鏈作為RPKI 資料庫,證書經(jīng)過安全驗證才能合法上鏈,卻未能考慮證書上鏈持久化存儲后的一些列情況,如過期證書撤銷、身份信息發(fā)生變更證書的處理等,存在較大的安全隱患.RMMB 則全面考慮了上述問題,設(shè)計了安全高效的智能合約,并將證書撤銷涉納入到鏈上數(shù)據(jù)管理中,很好地解決了證書撤銷數(shù)據(jù)不同步的問題.
資源分配異常細(xì)分為多種情況,文獻(xiàn)[9]由于只進(jìn)行資源未經(jīng)授權(quán)分配檢測、Matching 類型資源再次分配和Subset 類型資源再次分配檢測,所以未能解決Intersection 類型資源再次分配問題;在資源轉(zhuǎn)移的情況下,由于被轉(zhuǎn)移資源屬于未授權(quán)資源類型,故文獻(xiàn)[9]可以檢測出異常,能夠解決資源轉(zhuǎn)移的問題.文獻(xiàn)[10]和本文所提出的方案均全面考慮了資源未經(jīng)授權(quán)分配和資源再次分配的各種情況,故均能成功解決上述問題;在資源轉(zhuǎn)移的情況下,文獻(xiàn)[10]中關(guān)于被轉(zhuǎn)移資源的證書已頒發(fā)至區(qū)塊鏈上,且該機(jī)制未考慮出現(xiàn)此情況下的應(yīng)對方案,所以未能解決此問題,而RMMB 通過ARP 在區(qū)塊鏈上的合法動態(tài)改變,能夠檢測出資源異常,使該問題得到了解決.將最終結(jié)果匯總?cè)绫?所示,可以看出RMMB 相較于其他方案在解決各種問題方面都具有更好的表現(xiàn).
表1 有效性分析結(jié)果
本文提出了將可修改區(qū)塊鏈作為底層技術(shù)并結(jié)合智能合約的互聯(lián)網(wǎng)碼號資源管理方案RMMB.通過可分配資源池機(jī)制的設(shè)計,將上述技術(shù)的優(yōu)勢有機(jī)結(jié)合起來.在應(yīng)對互聯(lián)網(wǎng)碼號資源管理存在的問題時,不僅較傳統(tǒng)RPKI 方案更加安全,和現(xiàn)有方案相比也具有更高的實用性.該方案建立在RPKI的框架下,為邊界BGP路由器提供了及時同步且可靠的資料庫,所需要的時間成本也在合理范圍之內(nèi).下一步的工作方向是在應(yīng)用層面,利用真實的歷史數(shù)據(jù)來研究該方案對于路由劫持、路徑篡改等實際問題的解決情況.