Rpki文件的同步方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其設(shè)及一種資源公鑰證書(shū)體系巧esourcePublic IfeyIn化astruc化re,簡(jiǎn)稱(chēng)RPKI)文件的同步方法及裝置。
【背景技術(shù)】
[0002] 作為支撐互聯(lián)網(wǎng)基礎(chǔ)設(shè)施的域間路由系統(tǒng),對(duì)互聯(lián)網(wǎng)的安全有著至關(guān)重要的影 響。由于邊界網(wǎng)關(guān)協(xié)議度orderGatewayProtocol,簡(jiǎn)稱(chēng)BGP)缺乏對(duì)路由通告內(nèi)容真實(shí) 性的保證,黑客的蓄意攻擊行為W及錯(cuò)誤的網(wǎng)絡(luò)參數(shù)配置都可W導(dǎo)致路由劫持現(xiàn)象的發(fā) 生。為了增強(qiáng)域間路由系統(tǒng)的安全性,因此引入了互聯(lián)網(wǎng)基礎(chǔ)RPKI。RPKI構(gòu)建了個(gè)公鑰 證書(shū)體系(PublicKeyInfrast;ruc1:ure,簡(jiǎn)稱(chēng)PKI)來(lái)完成對(duì)互聯(lián)網(wǎng)碼號(hào)資源(Internet NumberResource,簡(jiǎn)稱(chēng)INR)的所有權(quán)和使用權(quán)的認(rèn)證,并W路由源聲明(Route化igin Attestation,簡(jiǎn)稱(chēng)R0A)的形式幫助域間路由系統(tǒng),驗(yàn)證某個(gè)自治系統(tǒng)(Autonomous System,簡(jiǎn)稱(chēng)A巧號(hào)針對(duì)特定網(wǎng)絡(luò)互連協(xié)議(InternetProtocol,簡(jiǎn)稱(chēng)I巧地址前綴的路由 通告是否合法,從而避免路由劫持;其中,INR包括IP地址前綴和AS號(hào)。
[0003] RPKI包括S大基本組件:認(rèn)證權(quán)威(CertificateAuthority,簡(jiǎn)稱(chēng)CA)、依賴(lài)方 (RelyingParty,簡(jiǎn)稱(chēng)RP)和資料庫(kù)Cr巧ository)。運(yùn)立大組件通過(guò)簽發(fā)、傳送、存儲(chǔ)、驗(yàn)證 各種數(shù)字對(duì)象(包括各種簽名對(duì)象和證書(shū))來(lái)彼此協(xié)作,共同完成RPKI的功能。CA通過(guò)簽 發(fā)資源證書(shū)巧esourceCedificate,簡(jiǎn)稱(chēng)RC)將資源持有者和其持有的INR關(guān)聯(lián)起來(lái),也 可W通過(guò)簽發(fā)路由起源聲明(Route化iginAuthorization,簡(jiǎn)稱(chēng)R0A)來(lái)授權(quán)某個(gè)互聯(lián)網(wǎng) 服務(wù)提供商(InternetServiceProvider,簡(jiǎn)稱(chēng)ISFO針對(duì)自己的一部分IP地址前綴發(fā)起 源路由通告,ROA包含一個(gè)AS號(hào)與一個(gè)或多個(gè)IP地址前綴之間的"綁定關(guān)系";RPKI中所 有數(shù)字對(duì)象都在RPKI資料庫(kù)存儲(chǔ)并加W發(fā)布,供全球的RP下載;RP負(fù)責(zé)從RPKI資料庫(kù)中 下載同步運(yùn)些數(shù)字對(duì)象,將驗(yàn)證之后的ROA分發(fā)給相關(guān)的邊界路由器。當(dāng)有新的路由通告 到達(dá)運(yùn)些邊界路由器時(shí),RP提供的ROA就成為邊界路由器判斷路由通告是否可信的一個(gè)依 據(jù)。
[0004] 現(xiàn)有技術(shù)中,RPKI體系的RP端在同步數(shù)據(jù)時(shí)使用的是開(kāi)源軟件rsync,RP端在同 步文件時(shí)需要將文件讀入內(nèi)存進(jìn)行分塊和計(jì)算校驗(yàn)值,假設(shè)塊大小為S個(gè)字節(jié),并將所有 校驗(yàn)值傳給部署RPKI資料庫(kù)的設(shè)備,該設(shè)備對(duì)RPKI資料庫(kù)中文件進(jìn)行同樣的分塊處理并 計(jì)算校驗(yàn)值,將接收到的校驗(yàn)值和計(jì)算出的校驗(yàn)值進(jìn)行比較,從而判斷文件是否相同,RP端 是否需要同步,將RP端需要同步的文件傳輸給RP端。上述過(guò)程中,RP端和部署RPKI資料 庫(kù)的設(shè)備都需要將文件讀入內(nèi)存進(jìn)行分塊,如果文件數(shù)量巨大,那么讀取數(shù)量龐大的文件 會(huì)占用很多的1/0資源,同步數(shù)據(jù)時(shí)的效率較低。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提供一種RPKI文件的同步方法及裝置,W克服現(xiàn)有技術(shù)中讀取數(shù)量龐大 的文件會(huì)占用很多的1/0資源,同步數(shù)據(jù)時(shí)的效率較低的問(wèn)題。
[0006] 第一方面,本發(fā)明提供一種RPKI文件的同步方法,包括:
[0007] 接收依賴(lài)方RP端發(fā)送的文件同步請(qǐng)求,所述文件同步請(qǐng)求包括RP端目錄對(duì)應(yīng)的 第一有序哈希樹(shù);
[0008] 獲取資源公鑰證書(shū)體系RPKI資料庫(kù)中目錄對(duì)應(yīng)的第二有序哈希樹(shù);其中,所述第 一有序哈希樹(shù)和所述第二有序哈希樹(shù)分別由樹(shù)節(jié)點(diǎn)組成;
[0009] 遍歷所述第一有序哈希樹(shù)W及所述第二有序哈希樹(shù),根據(jù)所述第一有序哈希樹(shù)和 所述第二有序哈希樹(shù)中樹(shù)節(jié)點(diǎn)的信息,確定所述RP端需同步的文件。
[0010] 第二方面,本發(fā)明提供一種RPKI文件的同步裝置,包括:
[0011] 接收模塊,用于接收依賴(lài)方RP端發(fā)送的文件同步請(qǐng)求,所述文件同步請(qǐng)求包括RP 端目錄對(duì)應(yīng)的第一有序哈希樹(shù);
[0012] 獲取模塊,用于獲取資源公鑰證書(shū)體系RPKI資料庫(kù)中目錄對(duì)應(yīng)的第二有序哈希 樹(shù);其中,所述第一有序哈希樹(shù)和所述第二有序哈希樹(shù)分別由樹(shù)節(jié)點(diǎn)組成;
[0013] 處理模塊,用于遍歷所述第一有序哈希樹(shù)W及所述第二有序哈希樹(shù),根據(jù)所述第 一有序哈希樹(shù)和所述第二有序哈希樹(shù)中樹(shù)節(jié)點(diǎn)的信息,確定所述RP端需同步的文件。
[0014] 本發(fā)明提供的RPKI文件的同步方法及裝置,在同步時(shí),首先獲取到RP端目錄對(duì)應(yīng) 的第一有序哈希樹(shù)W及RPKI資料庫(kù)中目錄對(duì)應(yīng)的第二有序哈希樹(shù);然后遍歷所述第一有 序哈希樹(shù)W及所述第二有序哈希樹(shù),根據(jù)所述第一有序哈希樹(shù)和所述第二有序哈希樹(shù)中樹(shù) 節(jié)點(diǎn)的信息,確定所述RP端需同步的文件,與現(xiàn)有技術(shù)相比,無(wú)需讀取數(shù)量龐大的文件,也 無(wú)需將文件進(jìn)行分塊,直接獲取目錄對(duì)應(yīng)的有序哈希樹(shù),遍歷有序哈希樹(shù)的樹(shù)節(jié)點(diǎn),比現(xiàn)有 的分塊處理能夠更直接快速的查找到需同步的文件,同步數(shù)據(jù)時(shí)的效率較高,而且讀取目 錄對(duì)應(yīng)的有序哈希樹(shù)比讀取文件占用的I/O資源少的多。
【附圖說(shuō)明】
[0015] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā) 明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可W 根據(jù)運(yùn)些附圖獲得其他的附圖。
[0016] 圖1為本發(fā)明RPKI文件的同步方法一實(shí)施例的流程示意圖;
[0017] 圖2為本發(fā)明實(shí)施例的RPKI文件尺寸分布圖;
[0018] 圖3為本發(fā)明方法實(shí)施例中目錄轉(zhuǎn)化有序哈希樹(shù)的示意圖;
[0019] 圖4A為本發(fā)明方法實(shí)施例的第一有序哈希樹(shù)示意圖;
[0020] 圖4B為本發(fā)明方法實(shí)施例的第二有序哈希樹(shù)示意圖;
[0021] 圖5A為本發(fā)明方法另一實(shí)施例的第二有序哈希樹(shù)示意圖;
[0022] 圖5B為本發(fā)明方法另一實(shí)施例的第一有序哈希樹(shù)示意圖;
[0023] 圖5C為圖5B中經(jīng)過(guò)同步后的第一有序哈希樹(shù)示意圖;
[0024] 圖6A為本發(fā)明方法又一實(shí)施例的第一有序哈希樹(shù)示意圖; 陽(yáng)0巧]圖6B為本發(fā)明方法又一實(shí)施例的第二有序哈希樹(shù)示意圖;
[00%] 圖6C為圖6A中經(jīng)過(guò)同步后的第一有序哈希樹(shù)示意圖;
[0027] 圖7為本發(fā)明RPKI文件的同步裝置一實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0028] 為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0029] 本發(fā)明實(shí)施例設(shè)及的方法,旨在解決現(xiàn)有技術(shù)中讀取數(shù)量龐大的文件會(huì)占用很多 的I/O資源,同步數(shù)據(jù)時(shí)的效率較低的技術(shù)問(wèn)題。
[0030] 下面W具體地實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。下面運(yùn)幾個(gè)具體的實(shí)施 例可W相互結(jié)合,對(duì)于相同或相似的概念或過(guò)程可能在某些實(shí)施例不再寶述。
[0031] 圖1為本發(fā)明RPKI文件的同步方法一實(shí)施例的流程示意圖。本實(shí)施例的執(zhí)行主 體可W為RPKI文件的同步裝置,該裝置可W設(shè)置在部署RPKI資料庫(kù)的設(shè)備內(nèi)。如圖1所 示,本實(shí)施例的方法包括:
[0032] 步驟101、接收RP端發(fā)送的文件同步請(qǐng)求,所述文件同步請(qǐng)求包括RP端目錄對(duì)應(yīng) 的第一有序哈希樹(shù);
[0033] 步驟102、獲取RPKI資料庫(kù)中目錄對(duì)應(yīng)的第二有序哈希樹(shù);
[0034] 步驟103、遍歷所述第一有序哈希樹(shù)W及所述第二有序哈希樹(shù),根據(jù)所述第一有序 哈希樹(shù)和所述第二有序哈希樹(shù)中樹(shù)節(jié)點(diǎn)的信息,確定所述RP端需同步的文件。
[0035] 具體來(lái)說(shuō),RPKI資料庫(kù)同步過(guò)程設(shè)及到的文件種類(lèi)有:CA證書(shū)(.cer)、R0A(. roa)、資料清單(.mft)、邸L證書(shū)(.Cd)和化OS憂listers證書(shū)(.gbr)等,而且文件數(shù)量 多。截止到2015年6月30日,全球RPKI體系中資料庫(kù)文件大小為290M字節(jié),共47763個(gè) 文件,而此時(shí)RPKI在全球的部署率僅為6. 4%??蒞想象,如果RPKI今后在全球普遍推廣 部署后,RPKI體系中資料庫(kù)將是十分龐大的。而現(xiàn)有的同步工具rsync在同步文件時(shí)需要 將文件讀入內(nèi)存進(jìn)行分塊和計(jì)算校驗(yàn)值,如果文件數(shù)量巨大,那么讀取數(shù)量龐大的文件無(wú) 疑會(huì)占用很多的I/O資源,對(duì)同步的整體性能會(huì)產(chǎn)生不利的影響。
[0036] 而RPKI體系中的文件的尺寸通常比較小。圖2為本發(fā)明實(shí)施例的RPKI文件尺寸 分布圖。經(jīng)統(tǒng)計(jì),在上述資料庫(kù)的47763個(gè)文件中文件尺寸分布圖如圖2所示。從分布比 例可W看出,文件大小在2K字節(jié)W內(nèi)的文件數(shù)量占總文件數(shù)的93 %。運(yùn)些文件按照發(fā)布點(diǎn) 的不同,組織在不同的目錄中。另外,RPKI體系中的文件是數(shù)字簽名對(duì)象,簽名對(duì)象的內(nèi)容 包含文件的語(yǔ)義內(nèi)容和該語(yǔ)義內(nèi)容的哈希值(即上述校驗(yàn)值)。由于文件語(yǔ)義內(nèi)容的哈希 值和文件語(yǔ)義內(nèi)容之間的強(qiáng)關(guān)聯(lián)性,因此當(dāng)文件語(yǔ)義內(nèi)容發(fā)生變化時(shí),即使是細(xì)微的改變, 哈希值也將徹底改變,結(jié)果整個(gè)簽名對(duì)象的內(nèi)容也會(huì)徹底的改變,即使將文件分塊,也不存 在簽名對(duì)象局部更新的情況。
[0037] 因此,在本發(fā)明實(shí)施例中,文件無(wú)需分塊。運(yùn)樣一方面減少了讀取文件劃分文件塊 時(shí)的性能消耗,另一方面在同步時(shí)也不會(huì)傳輸過(guò)多的協(xié)議數(shù)據(jù)。
[0038] 本實(shí)施例的具體實(shí)現(xiàn)過(guò)程如下:
[0039] RP端會(huì)實(shí)時(shí)性的或周期性的發(fā)起文件同步請(qǐng)求,同步RPKI資料庫(kù)中的文件;所述 文件同步請(qǐng)求包括RP端目錄對(duì)應(yīng)的第一有序哈希樹(shù)。
[0040] 當(dāng)接收到RP端發(fā)送的文件同步請(qǐng)求后,需要獲取RPKI資料庫(kù)中目錄對(duì)應(yīng)的第二 有序哈希樹(shù)。
[0041] 圖3為本發(fā)明方法實(shí)施例中目錄轉(zhuǎn)化有序哈希樹(shù)的示意圖。第一有序哈希樹(shù)和第 二有序哈希樹(shù)是將文件目錄轉(zhuǎn)化成有序哈希樹(shù)進(jìn)行表示,為了便于比較。如圖3所示,左邊 為文件目錄,右邊為轉(zhuǎn)化后的有序哈希樹(shù)。樹(shù)節(jié)點(diǎn)RPKI為該有序哈希樹(shù)的根節(jié)點(diǎn),樹(shù)節(jié)點(diǎn) ISPl為根節(jié)點(diǎn)的頭子節(jié)點(diǎn),樹(shù)節(jié)點(diǎn)ISP2為ISPl的后繼兄弟節(jié)點(diǎn)。樹(shù)節(jié)點(diǎn)ISPl的相對(duì)路徑 為RPKI/1SP1,樹(shù)節(jié)點(diǎn)ISP2的相對(duì)路徑為RPKI/1SP2。
[0042] 遍歷所述第一有序哈希樹(shù)W及所述第二有序哈希樹(shù),根據(jù)所述第一有序哈希樹(shù)和 所述第二有序哈希樹(shù)中樹(shù)節(jié)點(diǎn)的信息,確定所述RP端需同步的文件。通過(guò)一一比對(duì)第一有 序哈希樹(shù)和第二有序哈希樹(shù)的樹(shù)節(jié)點(diǎn),比較兩顆哈希樹(shù)的同一相對(duì)路徑下的樹(shù)節(jié)點(diǎn)是否相 同,可W通過(guò)比較樹(shù)節(jié)點(diǎn)的哈希值是否相同,從而判斷樹(shù)節(jié)點(diǎn)是否相同。
[0043] 圖4A為本發(fā)明方法實(shí)施例的第一有序哈希樹(shù)示意圖。圖4B為本發(fā)明方法實(shí)施例 的第二有序哈希樹(shù)示意圖。
[0044] 具體來(lái)說(shuō),如圖4A、4B所示,假設(shè)圖4A所示的有序哈希樹(shù)為RP端目錄對(duì)應(yīng)的第一 有序哈希樹(shù),圖4B所示的有序哈希樹(shù)為資料庫(kù)目錄對(duì)應(yīng)的第二有序哈希樹(shù),遍歷第一有序 哈希樹(shù)W及第二有序哈希樹(shù),即首先比較樹(shù)節(jié)點(diǎn)A和樹(shù)節(jié)點(diǎn)A',若樹(shù)節(jié)點(diǎn)A和樹(shù)節(jié)點(diǎn)A'的 哈希值不同,然后比較樹(shù)節(jié)點(diǎn)B和樹(shù)節(jié)點(diǎn)B',若樹(shù)節(jié)點(diǎn)B和樹(shù)節(jié)點(diǎn)B'的哈希值相同,則繼續(xù) 比較樹(shù)節(jié)點(diǎn)C和樹(shù)節(jié)點(diǎn)C',進(jìn)一步去確定是哪兩個(gè)