武警工程大學(xué) 文 聞
分層PCE多域光網(wǎng)絡(luò)身份認(rèn)證機制設(shè)計
武警工程大學(xué) 文 聞
從光網(wǎng)絡(luò)信息安全角度對分層PCE多域光網(wǎng)絡(luò)的身份認(rèn)證機制進(jìn)行詳細(xì)設(shè)計,以期待光網(wǎng)絡(luò)節(jié)點能智能識別通信對象身份的真實性。
分層PCE;多域光網(wǎng)絡(luò);身份認(rèn)證;安全機制
RFC 6805[1]提出的分層PCE架構(gòu),但該草案并未提出相應(yīng)的安全機制保證光路建立的安全性。本文將結(jié)合分層PCE的特殊結(jié)構(gòu),對其中的身份認(rèn)證模塊進(jìn)行詳細(xì)設(shè)計。
基于分層PCE的多域光網(wǎng)絡(luò)架構(gòu)如圖1所示,在整個網(wǎng)絡(luò)中配一個父路徑計算單元pPCE(parent-PCE),每個域中配一個子路徑計算單元cPCE(child-PCE)。pPCE采用集中式算路結(jié)構(gòu),各cPCE間沒有TED消息的往來。以圖1為例,介紹其架構(gòu)下的建路過程。其中包括3個自治域(Domain)D1,D2,D3,網(wǎng)絡(luò)中有若干節(jié)點(Router)m1,m2…,m15作為域成員節(jié)點,假設(shè)源節(jié)點為m1,目的節(jié)點為m15。
圖1 分層PCE架構(gòu)
①源節(jié)點m1作為PCC向本域cPCE(即cPCE1)發(fā)送跨域路徑計算請求消息,然后cPCE1將該請求轉(zhuǎn)發(fā)給pPCE。
②pPCE接收到請求后,首先通過向其他域cPCE廣播目的地址,確定目的節(jié)點所在的域,然后計算出一條源到目的節(jié)點的抽象路徑,并發(fā)送算路請求給相關(guān)的cPCE,即要求計算源節(jié)點到邊界節(jié)點、邊界節(jié)點到邊界節(jié)點、邊界節(jié)點到目的節(jié)點的路徑段。
③pPCE收到各相關(guān)cPCE提交的路徑計算結(jié)果后,將這些路徑段合并處理,得到多條端到端跨域路徑,然后從中選擇一條滿足約束條件的最優(yōu)路徑作為最終計算結(jié)果,將該結(jié)果發(fā)送到cPCE1。
④cPCE1收到來自pPCE的算路結(jié)果后,將計算得到的路徑信息發(fā)送給PCC,即完成了跨域路徑的計算。
⑤若算路成功,則開始建路階段,與分布式PCE的建路過程相同。
身份認(rèn)證是實現(xiàn)安全算路和安全建路的前提,其主要發(fā)生在PCC與PCE或節(jié)點與節(jié)點之間。由于PCC與PCE之間運行TCP,因此本文選擇RFC 5246[2]建議的基于TCP的TLS握手協(xié)議來完成實體間的雙向認(rèn)證。但是大多數(shù)TLS握手協(xié)議需要利用公鑰基礎(chǔ)設(shè)施來完成身份認(rèn)證,存在證書管理效率較低和通信開銷較大等問題,因此本文運用IBC[3](基于身份密碼學(xué))的TLS握手協(xié)議來完成實體之間的身份認(rèn)證。
表1 TLS參數(shù)符號
假設(shè)網(wǎng)絡(luò)實體a和b之間進(jìn)行身份認(rèn)證,當(dāng)a和b均為節(jié)點或均為cPCE時,稱a與b為同層實體;當(dāng)a與b一個為節(jié)點一個為cPCE時,或一個為cPCE一個為pPCE時,稱a與b為異層實體。協(xié)議使用表1所示的符號進(jìn)行描述。
①各PCC、PCE交互之前,均通過離線或安全信道傳輸?shù)姆绞筋A(yù)置了PKG(密鑰產(chǎn)生中心)生成的公私鑰對(Pub,Pri)。
②a向發(fā)送ClientHello,向b協(xié)商安全參數(shù)。當(dāng)a與b是同層實體時,Ra為a產(chǎn)生的隨機數(shù)。當(dāng)a與b是異層實體時,Ra由密鑰管理系統(tǒng)產(chǎn)生。
a→b:ClientHello{Vera,Cipa,IDaRa,SessionID}
③b收到ClientHello后向a發(fā)送ServerHello,告知a選擇協(xié)議的版本和密碼套件。然后計算會話密鑰,當(dāng)a與b為同層實體時,Keya,b按公式(1)計算。
當(dāng)a與b是異層實體時,Keya,b按公式(2)計算,其中Kb是離線配置時b產(chǎn)生的隨機數(shù),不能更改。
b選取協(xié)商數(shù)Rb。當(dāng)a與b是同層實體時,Rb為b產(chǎn)生的隨機數(shù)。當(dāng)a與b是異層實體時,Rb由密鑰管理系統(tǒng)產(chǎn)生。用自己的私鑰簽名后用Keya,b加密后通過ServerKeyExchange發(fā)送給a。
b→a:ServerHello{Vera,Cipa,IDaRa,SessionID}
ServerHelloDone
④a收到ServerHello、ServerKeyExchange、ServerHelloDone后,計算會話密鑰,當(dāng)a與b為同層實體時,Keya,b按公式(3)計算:
當(dāng)a與b是異層實體時,Keya,b按公式4計算,其中Ka是離線配置時a產(chǎn)生的隨機數(shù),不能更改。
通過Keya,b解密后,再用b的公鑰解密ServerKeyExchange得到的如果是Ra,則a便完成了身份認(rèn)證,否則身份認(rèn)證失敗,a斷開TLS握手,向LMP模塊發(fā)送警告消息。然后a將Rb用自己的私鑰簽名后用Keya,b加密后放入ClientKeyExchange中,用新的密鑰Keya,b發(fā)送Finished給b,F(xiàn)inished中message1表示本次認(rèn)證除本消息外的所有消息,a隨后切換到會話密鑰的加密信道通信。
⑤b收到ClientKeyExchange、Finished后,通過Keya,b解密后再用a的公鑰解密ClientKeyExchange,如果得到Rb,則b使用新的密鑰Keya,b發(fā)送Finished給a,表示完成身份認(rèn)證,F(xiàn)inished中message2表示本次認(rèn)證除本消息外的所有消息,b隨后切換到會話密鑰通信,通過消息4給a。若未通過身份認(rèn)證,b斷開TLS握手,向LMP模塊發(fā)送警告消息。
其交互過程如圖2所示,當(dāng)異層實體需要對公鑰和私鑰進(jìn)行更新時,可以使用協(xié)商好的Keya,b在ApplicationData階段將密鑰參數(shù)在該加密信道上重新配置,公私密鑰更新后須重新進(jìn)行握手。同層實體只能通過協(xié)商好的會話密鑰更新會話密鑰。
圖2 基于TLS的雙向身份認(rèn)證
身份認(rèn)證是通信雙發(fā)進(jìn)行安全交流的第一步,多層多域的特點使得分層PCE多域光網(wǎng)絡(luò)進(jìn)行身份認(rèn)證機制較對等實體間的身份認(rèn)證更加復(fù)雜。本文從同層實體間和異層實體間兩個層面對其進(jìn)行設(shè)計,為光網(wǎng)絡(luò)信息安全提出了新的解決方案。
[1]RFC 6805.The Application of the Path Computation Element Architecture to the Determination of a Sequence of Domains in MPLS and GMPLS Internet Engineering Task Force[S].
[2]RFC 5246.The Transport Layer Security(TLS)Protocol[S].
[3]諶雙雙,陳澤茂,王浩.基于身份的無線傳輸層安全握手協(xié)議改進(jìn)方案[J].計算機應(yīng)用,2011,31(11):2954-2956.