韓增杰, 胡 楊, 姚志強
(福建師范大學(xué) 計算機與網(wǎng)絡(luò)空間安全學(xué)院, 福州 350117)
邊界網(wǎng)關(guān)協(xié)議(border gateway protocol, BGP)的作用是在不同的自治系統(tǒng)之間傳遞路由, 通過BGP 提供的各種路由屬性為自治系統(tǒng)通信提供最佳路徑. 由于BGP 協(xié)議的通信雙方無條件信任彼此, 自治系統(tǒng)不驗證路由信息的有效性, 因此容易受到中間人攻擊[1].BGP 的中間人攻擊主要包括前綴劫持攻擊和路徑偽造攻擊. 中間人可以宣布自己為目標(biāo)前綴的起源, 通告一個比目標(biāo)前綴更長的虛假路由, 其余的BGP 路由器在接收到這些虛假的通告后將其放到路由表中傳送數(shù)據(jù).如果中間人將劫持的路由信息丟棄, 則通信雙方不可達, 產(chǎn)生路由黑洞; 如果中間人把自己作為中轉(zhuǎn)中心,將受害者路徑重定向到目標(biāo)網(wǎng)絡(luò), 原始路徑依舊可達,惡意的中間人可以隨時竊聽雙方的通信, 導(dǎo)致消息泄露. 中間人攻擊能夠得逞的原因是由于缺少對路由消息來源以及對AS-PATH 路徑的認(rèn)證, 目前針對中間人攻擊的研究方案主要分為兩大類, 一類是以S-BGP 為代表的安全擴展技術(shù), 另一類是當(dāng)發(fā)生中間人攻擊時及時響應(yīng)的異常檢測技術(shù). 在使用證書的BGP 安全擴展方案中, 證書的頒布和撤銷都是復(fù)雜的過程, 而無證書方法只需要引入可信的第三方與用戶交互生成公私鑰即可, 不需要引入證書, 因此本文提出無證書的簽名方法來防止中間人攻擊.
針對BGP 的中間人攻擊, S-BGP[2]通過公鑰基礎(chǔ)設(shè)施為每個AS 頒發(fā)證書來驗證路由的起始源, 通過簽名的方式使得攻擊者無法劫持, 但由于S-BGP 采用基于證書的安全擴展方案來防御中間人攻擊, 在域間路由驗證時會產(chǎn)生較大的計算開銷和存儲代價, 難以實施. 文獻[3]提出一種改進的BGP 路由源認(rèn)證方案. 將從RP 獲取的ROA 證書附加到更新報文中, 接收端從RP 申請可信的ROA 證書公鑰并進行解密, 通過與更新報文比較從而驗證路由源的真實性. 文獻[4]針對路由傳輸路徑上的負(fù)載變化提出了前綴劫持檢測系統(tǒng)LDC, 攻擊者發(fā)動前綴劫持后流量負(fù)載會發(fā)生異常. 文獻[5]根據(jù)BGP 在受到中間人攻擊時路由控制平面路徑和真實轉(zhuǎn)發(fā)路徑不一致的特征, 提出一種針對中間人攻擊的實時檢測系統(tǒng), 但該方案無法檢測延長距離為1 的中間人攻擊. 文獻[6]提出了一種實時檢測與緩解系統(tǒng)ARTEMIS, 由AS 本身檢測和自動緩解針對其自身前綴的劫持, 該方案利用控制面板監(jiān)視的最新進展實時檢測前綴劫持, 并且會進行自動緩解. Li 等人[7]提出了針對BGP 的特殊中間人攻擊Tiger 攻擊, Tiger攻擊不會破壞路由在控制平面和數(shù)據(jù)平面一致性, 因此可以規(guī)避現(xiàn)有的檢測方案. Alkadi 等人[8]針對前綴劫持提出了一種實時處理方法OGI, 通過AS 本身來檢測由被劫持節(jié)點引起的可疑傳輸自治系統(tǒng). 鄧海蓮等人[9]從Route Views 系統(tǒng)獲取路由信息, 根據(jù)路由變化的冪律性建立正常域間路由模型, 從而檢測前綴劫持和路徑篡改等異常行為. 大多數(shù)針對BGP 的中間人攻擊檢測系統(tǒng)通常是在前綴劫持發(fā)生后進行的檢測機制, 因此無法從根本上解決BGP 的中間人攻擊.
為解決基于身份的密碼體制中私鑰生成中心(PKG)可能造成的偽造簽名攻擊, Al-Riyami 等人[10]提出了無證書公鑰密碼體制. 該體制通過引入可信中心KGC 來產(chǎn)生用戶的部分私鑰, 用戶根據(jù)隨機生成的秘密值產(chǎn)生另一部分私鑰, 完整私鑰由用戶自己保存. 陳亞萌等人[11]提出的基于雙線性對的無證書簽名方案成員交互次數(shù)過多, 效率較低. 劉帥等人[12]提出的基于橢圓曲線的無證書簽名方案在計算效率上有一定的提升, 但是簽名長度不固定, 會隨著簽名人數(shù)的增加而改變.
將無證書公鑰密碼體制和有序多重簽名結(jié)合構(gòu)造成無證書的有序多重簽名, 既可以解決傳統(tǒng)簽名方案中公鑰合法性和私鑰托管問題, 又可以解決簽名時多個簽名人無法有序驗證的問題. 羅文俊等人[13]提出一種不含雙線性對運算的無證書簽名方案, 計算效率較高, 但是該方案的簽名長度不固定, 且簽名人數(shù)越多,通信效率越低. 秦艷琳等人[14]提出的無證書有序多重簽名方案被許艷等人[15]通過安全性分析證明其無法抵抗偽造攻擊, 許艷等人對方案進行改進從而使其能夠抵抗偽造攻擊. 但是杜紅珍等人[16]提出許艷等人的方案存在不足, 并且通過修改后發(fā)現(xiàn)其驗證過程需要n+1 個雙線性對計算, 計算效率大大降低. 孫玉等人[17]提出的多重簽名方案沒有驗證簽名者的順序, 各個簽名成員可以私自改變簽名順序從而偽造簽名.
為了從根本上解決BGP 協(xié)議中存在的中間人攻擊, 本文從有序多重簽名出發(fā), 結(jié)合無證書簽名方案的優(yōu)勢, 在路由傳遞過程中源AS 和傳播AS 需要按序?qū)β酚尚畔⑦M行多重簽名, 路由信息接收者通過正確的簽名順序?qū)ζ溥M行驗證, 從而解決域間路由在傳遞過程中的路徑認(rèn)證問題. 該方案不僅解決了傳統(tǒng)公鑰密碼體制中存在的證書管理問題和基于身份的密碼體制中秘鑰生成中心偽造簽名的問題, 同時能夠抵抗邊界網(wǎng)關(guān)路由協(xié)議的中間人攻擊.
無證書多重簽名方案通常是以雙線性對為工具構(gòu)造的, 也有研究人員提出不含雙線性對的無證書有序多重簽名方案, 本文采用基于雙線性對的多重數(shù)字簽名方案, 其安全性是基于離散對數(shù)和計算性Diffie-Hellman 問題, 這里不再贅述雙線性對和困難問題定義.
無證書有序多重簽名方案的步驟如下:
(1)初始化系統(tǒng)參數(shù): KGC 生成參數(shù)params、系統(tǒng)主密鑰和系統(tǒng)公鑰, 將params對用戶公開.
(2)生成秘密值: 用戶Ni隨機生成秘密值, 并根據(jù)參數(shù)params生成部分公鑰.
(3)生成部分私鑰: KGC 驗證用戶的身份, 并根據(jù)參數(shù)params生成對應(yīng)的部分私鑰發(fā)送給用戶Ni.
(4)生成完整公私鑰: 用戶Ni通過參數(shù)params驗證部分私鑰, 生成完整公鑰和完整私鑰.
(5)用戶簽名: 輸入消息m和params生成部分簽名 σi, 并將部分簽名發(fā)送給后續(xù)簽名成員.
(6) 驗證簽名: 驗證上一個簽名成員的簽名結(jié)果σi是否正確. 若正確, 則繼續(xù)簽名, 否則停止簽名.
為簡述方便, 將方案中使用的符號和含義列于表1.無證書有序多重簽名方案主要包括注冊階段、簽名階段和整體驗證階段, 其中注冊階段包括KGC 初始化系統(tǒng)參數(shù)及用戶公私鑰的生成; 簽名階段包括每個用戶的部分簽名; 整體驗證階段是對生成的完整簽名進行驗證. 下面詳述無證書有序多重簽名方案的具體過程:
表1 符號說明
(1)注冊階段
(2)抑塵效果明顯。該裝置采用密閉收集和超聲波霧化除塵技術(shù),將生產(chǎn)過程中形成的硫磺粉塵加以處理,起到了降低現(xiàn)場粉塵濃度的作用。
為方便計算, 本文將雙線性對運算記為BP, 橢圓曲線上的點乘計算記為A,C表示一次模乘運算,D表示一次模逆運算,H表示使用了一次哈希函數(shù), 忽略模加和模減運算, 根據(jù)雙線性對運算的性質(zhì), 驗證公式右邊可以化簡為一個雙線性對, 一次簽名使用了一次哈希函數(shù). 從表2 可以看出在整體驗證階段, 文獻[15]的方案需要n+1 次雙線性對運算, 而本文方案和文獻[16]僅需要兩個雙線性對運算, 且比文獻[16]在整體驗證時少了n倍的哈希運算.
表2 與其他方案比較
表2 中, 根據(jù)文獻[18]和文獻[19]提供的數(shù)據(jù),本文用Tm代表模乘運算所需的計算開銷, 則模的取逆運算≈11.60Tm, 橢圓曲線標(biāo)量乘運算≈29.00Tm, 映射到點的哈希運算≈29.00Tm, 雙線性配對運算≈87.00Tm. 設(shè)置簽名成員n=5, 在I5-4590、16 GB 內(nèi)存和Windows 7操作系統(tǒng)環(huán)境下本方案在注冊階段用時為0.63 ms, 簽名階段用時為0.20 ms, 整體驗證階段用時為2.75 ms.從表3 可以看出, 在安全性方面, 文獻[13]無法抵抗第2 類攻擊者且簽名長度不固定, 文獻[15]提出的方案被杜紅珍等人[16]證明無法抵抗第1 類攻擊者和第2類攻擊者, 本文在第5.2 節(jié)對簽名過程進行了詳細的分析, 證明本方案能夠同時抵抗這兩類攻擊者的偽造簽名攻擊. 通過在相同實驗環(huán)境下分析得出本方案總體計算效率要高于文獻[15]和文獻[16]: 文獻[15]在簽名階段用時0.29 ms, 在整體驗證階段用時4.24 ms;文獻[16]在簽名階段的用時0.29 ms, 在整體驗證階段的用時3.06 ms. 本方案較文獻[15]在整體驗證效率上提升了約35%, 較文獻[16]在注冊階段提升了約31%.因注冊階段的效率基本相同, 考慮到各成員只進行一次注冊階段, 而簽名過程需要多次驗證, 因此隨著簽名人數(shù)的增多, 本方案的優(yōu)勢越明顯. 同時本方案的簽名長度固定, 驗證者只需要驗證最后產(chǎn)生的完整簽名即可, 屬于緊湊的有序多重簽名.
表3 安全性對比
基于證書的BGP 安全擴展技術(shù)存在不足, 因此本文將無證書有序多重簽名引入到BGP 的路由信息認(rèn)證中, 解決S-BGP 的證書頒發(fā)和撤銷的復(fù)雜問題. 基于無證書多重簽名的BGP 安全方案主要分為KGC 初始化階段、自治系統(tǒng)注冊認(rèn)證階段、發(fā)布路由階段和路由傳播階段.
(1) KGC 初始化階段
(4)路由傳播階段
當(dāng)前自治系統(tǒng)收到路由信息時, 需要驗證簽名結(jié)果, 若驗證通過則將路由條目添加到路由表, 并將路由信息繼續(xù)傳輸, 驗證不通過則丟棄路由.
驗證過程如下: 計算Qj,Vj, 其中, 1≤j≤i-1; 驗證等式:
4.2.1 抗偽造性
定理1. 在隨機預(yù)言機模型下, 如果攻擊者A1能夠以不可忽略的概率偽造出多重簽名, 則挑戰(zhàn)者D可以通過A1解決CDH 問題.
假設(shè)攻擊者擁有最大優(yōu)勢已經(jīng)獲得n-1 個簽名者的簽名, 即攻擊者已經(jīng)獲得了n-1 個簽名者的私鑰, 可以偽造出這n-1 個簽名者的簽名, 為了證明本方案難以抵抗偽造性, 攻擊者需要在多項式時間內(nèi)以一個不可忽略的概率偽造出最后一個簽名者的簽名.D已知P,X=aP,Y=bP, 如果可以求出abP, 則稱D可以通過A1解決CDH 問題.
模擬過程如下:
若成立, 則式(17)和式(18)相除可求解sY即abP,從而解決CDH 困難問題, 這與定理1 矛盾, 因此A1無法偽造簽名.
定理2. 在隨機預(yù)言機模型下, 如果攻擊者A2能夠以不可忽略的概率偽造出多重簽名, 則挑戰(zhàn)者D可以通過A2解決ECDLP 問題.
假設(shè)攻擊者擁有最大優(yōu)勢已經(jīng)獲得n-1 個簽名者的簽名, 即攻擊者已經(jīng)獲得了n-1 簽名者的私鑰, 可以偽造出這n-1 個簽名者的簽名, 為了證明本方案難以抵抗偽造性, 攻擊者需要在多項式時間內(nèi)以一個不可忽略的概率偽造出最后一個簽名者的簽名.D已知用戶n的公鑰U和P, 如果可以求出u, 則可以通過A2解決ECDLP 問題.
模擬過程如下:
挑戰(zhàn)者D選擇橢圓曲線上的點構(gòu)成階為q的循環(huán)群G和GT, 其中,q為素數(shù),G為加法群,GT為乘法群,雙線性映射e:G×G→GT. 選擇兩個安全的哈希函數(shù)H1和H2, 其中,H1: {0,1}*×G×G→Zq*,H2: {0,1}*→Zq*.D隨機選擇s∈Zq*, 計算P0=sP, 其中,P為群G的一個生成元,s為系統(tǒng)主密鑰,P0為系統(tǒng)公鑰,D維護4 張表:L1對應(yīng)用戶的秘密值詢問,L2和L4分別對應(yīng)哈希函數(shù)H1和H2的詢問,L3對應(yīng)用戶的部分私鑰詢問,將params={G,GT,q,e,H1,H2,P,P0}和系統(tǒng)主密鑰s發(fā)送給攻擊A2,A2進行如下詢問:
若成立, 則式(19)和式(20)相除可求解u的值,從而解決ECDLP 困難問題, 這與定理2 矛盾, 因此攻擊者A2無法偽造簽名.
4.2.2 抗中間人攻擊
在BGP 中, 惡意的中間人通過偽造路由信息的方式, 使其在控制層面的轉(zhuǎn)發(fā)路徑和真實傳輸路徑不一致, 導(dǎo)致面臨威脅. 本方案中發(fā)布或者轉(zhuǎn)發(fā)路由信息的自治系統(tǒng)需要向KGC 注冊身份信息, KGC 通過運營商驗證自治系統(tǒng)的合法身份后才會向其分配部分私鑰和完整的公鑰. 其次在路由傳遞過程中包含了自治系統(tǒng)的身份集合{ID1,ID2, …,IDi, …,IDn}, 惡意的中間人無法偽造身份信息. 當(dāng)中間人使用新的身份ID進行簽名后, 下一個自治系統(tǒng)會通過原始的身份集合進行驗證. 由于簽名時的隨機數(shù)發(fā)生改變, 根據(jù)無證書有序多重簽名方案的驗證方式, 下一個自治系統(tǒng)將無法驗證, 則會停止簽名, 并將驗證失敗的路由條目丟棄. 本方案通過簽名的方式確保路由條目沒有被篡改, 當(dāng)攻擊者和受害者前綴網(wǎng)絡(luò)所在的自治系統(tǒng)相鄰時同樣滿足上述的驗證過程, 因此本方案也解決文獻[5]方案存在的不足. 同時本方案存在用來表明簽名順序的0-1字符串, 每個自治系統(tǒng)都有固定的簽名順序, 各個自治系統(tǒng)不能擅自改變簽名順序來偽造簽名.
本文針對邊界網(wǎng)關(guān)路由協(xié)議存在的中間人攻擊威脅, 將無證書公鑰密碼體制和有序多重簽名結(jié)合, 提出一種無證書的有序多重簽名方案, 并對私鑰生成過程和簽名過程進行改進. 與同類型方案相比, 本文提出的簽名方案在計算效率上有一定的提升, 同時能夠抵抗BGP 的中間人攻擊.