苗婷婷,劉笑凱,姬勝凱,郝克林,蘇立文
(華北計算機系統(tǒng)工程研究所,北京102200)
隨著衛(wèi)星通信技術(shù)的發(fā)展,衛(wèi)星通信組網(wǎng)技術(shù)越來越被人們重視。安全認證是通信系統(tǒng)中不可或缺的重要環(huán)節(jié)[1]。由于衛(wèi)星通信在開放的無線信道進行數(shù)據(jù)傳輸,接入衛(wèi)星IP 網(wǎng)絡的業(yè)務系統(tǒng)面臨來自公開信道的信息竊取和網(wǎng)絡攻擊威脅,因此,用戶終端接入衛(wèi)星IP 網(wǎng)絡時需要進行身份認證,從而確保接入用戶為合法的真實用戶。對衛(wèi)星網(wǎng)絡安全認證協(xié)議的研究是衛(wèi)星網(wǎng)絡安全問題研究的重要組成部分。然而,目前空間信息網(wǎng)絡中的身份認證技術(shù)仍存在很多問題,例如:通信和計算資源消耗大、認證時間長、不考慮密鑰生成中心安全性等[2]。
本文就衛(wèi)星通信認證技術(shù)進行研究,基于無證書公鑰密碼體制(Certificateless Public Key Cryptosystem,CL-PKC),使用公鑰加密、私鑰簽名、公鑰驗簽等密碼技術(shù)設計一種具備身份信息匿名保護功能的安全認證協(xié)議,以提升用戶接入衛(wèi)星通信系統(tǒng)的隱私性??紤]到衛(wèi)星網(wǎng)絡的計算、存儲能力受限的特點,本文使用基于身份的密碼體制在安全認證的基礎上提高認證協(xié)議的性能。
非對稱密碼體制的身份認證技術(shù)分為基于證書和基于身份ID 兩種[3]。不需要用身份信息生成公鑰的方式需要在公鑰基礎設施體系(Public Key Infrastructure,PKI)中通過驗證可信第三方授權(quán)機構(gòu)(Certificate Authority,CA)下發(fā)的證書來驗證公鑰與目標用戶信息的對應關系。但獲取證書和CA 的公鑰并進行驗簽將造成額外的通信傳輸和計算開銷。基于身份的公鑰密碼系統(tǒng)(Identity-Based Public Cryptosystem,ID-PKC)使用用戶的身份來生成用戶的公鑰實現(xiàn)了用戶公鑰和身份的綁定,從而可以降低證書方式帶來的開銷。這也就是基于身份的密碼體制(Identity-Based Encryption,IBE)[4]。但ID-PKC 方式完全依賴體系內(nèi)的密鑰生成中心(Key Generation Center,KGC)生成私鑰,不能解決KGC 不完全可信的情況。
因此本文選擇CL-PKC 的密碼體制由用戶選擇秘密值和KGC 生成的部分私鑰組合成完整的私鑰,在KGC 不完全可信或被攻破的情況下仍可以保護完整私鑰的安全性[5]。
基于IBE 密碼體制的第一個實用方案是用雙線性映射對構(gòu)造的,其安全性基于雙線性對中離散對數(shù)問題的難解性[6]。本文IBE 密碼體制認證協(xié)議采用基于雙線性對運算的方案。
一個完整的IBE 密碼體制由四部分組成,分別是系統(tǒng)初始化、密鑰提取、加密和解密。本文設計身份認證的前提條件為:衛(wèi)星通信系統(tǒng)組織建立可信組織KGC,用來接收終端用戶和衛(wèi)星節(jié)點的注冊[7]。
(1)KGC 產(chǎn)生的參數(shù)有:大素數(shù)q;q 階加法群(G1,+)和q 階乘法群(G2,·);G1的生成元P;雙線性對e:G1×G1→G2。
(3)選擇兩個Hash 函 數(shù),H1:{0,1}*→G1,H2:G2→{0,1}n。
因此,需要公開的系統(tǒng)參數(shù)為<q,G1,G2,e,n,P,Ppub,H1,H2>。
本文設計的基于CL-PKC 的通信認證協(xié)議分為注冊階段密鑰提取和身份認證階段兩個過程,以下將對這兩個過程分別進行描述。協(xié)議描述中的標識符及定義如表1 所示。
表1 標識符及定義
用戶A 發(fā)送IDA給KGC,如果用戶A 為合法用戶,KGC 計算用戶A 的部分私鑰ds=sH1(IDA),用戶A 再選取秘密值和部分私鑰一起得到A 的完整私鑰SA。密鑰生成中心KGC 用選定的哈希函數(shù)和其公鑰PKGC計算用戶的公鑰PA。同時KGC 構(gòu)建包含用戶ID、用戶權(quán)限、密鑰有效時長的授權(quán)令牌,并使用自己的私鑰SKGC對用戶A 的權(quán)限令牌進行簽名。通過安全通道(如加密郵箱)發(fā)送KGC 私鑰簽名了的權(quán)限令牌給用戶A[9]。至此,用戶A 便完成了訪問衛(wèi)星系統(tǒng)之前的注冊,同時在KGC 保存有合法衛(wèi)星ID 表。衛(wèi)星節(jié)點的公鑰私鑰獲得方式與用戶相同。注冊階段的過程示意圖如圖1 所示。
世界經(jīng)濟一體化的高速發(fā)展,對商貿(mào)物流提出了更高的要求,而商貿(mào)物流的眾多環(huán)節(jié)中,分撥是最容易出問題的一環(huán)。分撥中心是在整個物流鏈中,在始發(fā)倉和末端中間起著重要的作用。同時也是在快遞整個網(wǎng)絡中的一個重要節(jié)點,在其所在的物流配送區(qū)域和其他有聯(lián)系的物流配送中心區(qū)域有著重要作用,換個角度來說,它又是集加工、理貨、送貨等多種職能于一體的物流據(jù)點。分撥中心的業(yè)務質(zhì)量關系到整個物流鏈的效率。
圖1 用戶注冊流程示意圖
注冊完成后,當用戶A 需要申請衛(wèi)星S 的服務時,首先要先進行身份的認證。身份認證過程如下:
(1)用戶A 向衛(wèi)星S 發(fā)起認證時,首先從KGC列表得到衛(wèi)星S 的IDS∈{0,1}*,然后計算H2(e(H1(IDS),Ppub)r)用來加密用戶A 的身份IDA、PA和時間戳,并取隨機數(shù)r∈,計算:
U=rP
V=H2(e(H1(IDS),Ppub)r)⊕(IDA,PA,timestamp)
用戶A 公開發(fā)送<U,V>給衛(wèi)星節(jié)點。
(2)衛(wèi)星S 收到認證申請后用KGC 頒發(fā)的私鑰SS解密,檢測U ∈G1是否成立,不成立則拒絕,成立則用衛(wèi)星的私鑰SS解密V,得到明文后校驗時間戳信息,驗證系統(tǒng)時差是否在允許范圍內(nèi),不在允許范圍內(nèi)則不處理該注冊信息。用解密得到的IDA計算用戶的PA,若一致說明其為合法用戶,完成衛(wèi)星節(jié)點對用戶的認證。然后,衛(wèi)星S 生成協(xié)商密鑰key 和隨機數(shù)C,使用衛(wèi)星的私鑰SS對C、key 和系統(tǒng)時間timestamp 進行簽名,并用用戶A 的公鑰PA進行加密后將第二包消息C、key 和timestamp 以及簽名發(fā)送給用戶A:
EncryPA(C,key,timestamp,SignSS(C,key,timestamp))
(3)用戶A 收到衛(wèi)星發(fā)過來的密文后用自己的私鑰SA進行解密,用衛(wèi)星的公鑰驗簽。解密后若時間校驗不通過則不響應此報文;通過后,用驗簽得到的隨機數(shù)和密鑰值key 與解密消息的隨機數(shù)和密鑰值進行比對,比對一致說明消息是由衛(wèi)星S 發(fā)出,完成用戶對衛(wèi)星節(jié)點的認證,同時保存隨機數(shù)和密鑰值。然后使用協(xié)商密鑰key 進行加密后向衛(wèi)星S 發(fā)送第三包消息:
Encrykey(C+1,AuthToken)
(4)衛(wèi)星S 收到第三包消息之后,使用協(xié)商密鑰key 進行解密,驗證解密后的隨機數(shù)C+1 是否正確。使用KGC 的公鑰對AuthToken 進行驗簽,對比認證用戶ID 是否與用戶A 在認證開始時的身份ID 一致。
如果上述步驟均無誤,則認證成功,衛(wèi)星S 將在用戶A 的資源有效時長T 內(nèi)為其分配相關資源,并提供用戶授權(quán)令牌中指定的服務。協(xié)商密鑰key作為用戶與該衛(wèi)星節(jié)點通信的對稱密鑰。
表2 端到端認證平均計算用時
通過Socket 網(wǎng)絡編程用C++語言對本文設計的認證方案進行仿真實驗測試,基于ECC 算法進行3次 加 密、3 次 解 密、1 次 簽 名、2 次 驗 簽。為 了 控 制 計算平臺對協(xié)議計算性能的影響,選擇CPU 1.7 GHz和CPU 2.2 GHz 兩個機器分別進行仿真實驗。在每一次仿真實驗中,取500 次認證用時的平均值,同樣的仿真實驗進行4 次。表2 為4 次仿真實驗得到的端到端認證平均計算用時統(tǒng)計表。
分析仿真實驗數(shù)據(jù),在計算性能略低的機器上仿真的認證用時較長但均不超過50 ms。一般認為衛(wèi)星網(wǎng)絡的傳輸時延為270 ms[10],實驗中認證用時加衛(wèi)星網(wǎng)絡傳輸用時遠遠低于文獻[9]中的認證計算用時(平均8 s),說明本文設計的認證方案具有很好的計算性能。
根據(jù)通信流程,對身份認證方案的安全性分析如下:
(1)用戶身份信息保護。在注冊階段,用戶向KGC進行注冊時的信息使用KGC 的公鑰進行加密,然后KGC 收到注冊信息后使用其私鑰進行解密,竊聽者即使能得到KGC 的公鑰,也無法對注冊信息進行解密,實現(xiàn)了對合法用戶的身份信息的保護。在認證階段,用戶A 對身份ID 進行加密發(fā)送,攻擊者同樣無法竊取合法用戶的身份信息。
(2)抗重放攻擊。抗重放攻擊是指在攻擊者無法有效猜測出認證信息的情形下,通過截獲其中的認證報文,重復轉(zhuǎn)發(fā)該報文,從而導致合法用戶認證受到影響[11]。本文設計的協(xié)議中添加了系統(tǒng)時間信息,接收端在收到信息進行解密后會判斷系統(tǒng)時間,若系統(tǒng)時間不在合理的時間差內(nèi)則不對該報文進行響應。因此,協(xié)議可以有效地抵抗重放攻擊。
(3)抗中間人攻擊。根據(jù)IBE 密碼體制的特點,用戶ID 對應了唯一一對公私鑰[12],通過公鑰驗簽可以確定是否為特定用戶的私鑰簽名。在注冊階段中間人不能以合法的身份重復進行注冊,因此也不能偽裝為認證中的任一身份。
(4)抗假冒攻擊。由于衛(wèi)星回復的第一包報文是用用戶的公鑰加密的,而攻擊者無法得知用戶的私鑰,所以無法完成假冒攻擊。衛(wèi)星使用公共參數(shù)和用戶ID 計算得到用戶A 的公鑰與PA一致,那么就建立對該身份ID 的信任。當用戶A 使用其私鑰進行驗簽成功,并返回正確信息給衛(wèi)星S 時,就說明用戶A 為合法用戶。
(5)前向安全性。由于協(xié)議使用了基于身份的密鑰協(xié)商形式,超過有效時長T 之后需要進行再次密鑰協(xié)商得到新的會話密鑰,因此可以保證會話密鑰的前向安全性。
本文的認證方案使用了對稱和非對稱混合密碼算法,用私鑰簽名,從而保證消息來源的唯一性和真實性,實現(xiàn)用戶終端與衛(wèi)星節(jié)點的雙向身份認證。使用認證服務系統(tǒng)的公鑰對上報的信息進行加密,保護了用戶身份信息。并在上報的報文中添加系統(tǒng)時間信息,可以抵抗重放攻擊。當用戶進行認證時,根據(jù)協(xié)議可以在保證用戶隱私的前提下實現(xiàn)認證。
本文在分析衛(wèi)星通信特點和安全認證需求的基礎上,設計了一種基于CL-PKC 密碼體制的身份認證協(xié)議,避免了PKI 證書機制帶來的存儲和通信上的開銷,同時有效保護了用戶的身份信息,實現(xiàn)了衛(wèi)星節(jié)點與用戶之間的安全認證和通信。用戶端和衛(wèi)星節(jié)點在沒有獲取接收方證書的前提下,只要擁有接收方的身份ID 和系統(tǒng)參數(shù),就可以計算出接收方的公鑰,向接收方發(fā)送由其公鑰加密的信息。當接收方接到消息后使用其私鑰解密密文信息,在這一過程中也不需要獲取證書。因此,該協(xié)議的安全性取決于IBE 密碼系統(tǒng)的安全性。在實現(xiàn)認證的同時,也產(chǎn)生了協(xié)商會話密鑰,認證結(jié)束后認證雙方會使用協(xié)商密鑰對通信內(nèi)容進行對加解密處理,從而保證通信的安全性。