賈永興,廖 飛,程教育,胡 鵬
(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
SIP(Session Initiation Protocol,會話初始協(xié)議)作為VOIP(Voice over IP,IP網(wǎng)絡(luò)電話)的信令標(biāo)準(zhǔn)和IMS(IP Multimedia Subsystem,IP多媒體子系統(tǒng))的核心協(xié)議,已經(jīng)得到了廣泛的應(yīng)用,SIP協(xié)議采用客戶端/服務(wù)器架構(gòu),隨著用戶數(shù)量的增加,SIP服務(wù)器便出現(xiàn)了性能和擴(kuò)展性等方面的缺陷,人們考慮用P2P(Peer to Peer,點(diǎn)對點(diǎn))架構(gòu)取代客戶端/服務(wù)器架構(gòu)并提出了P2PSIP[1]。P2PSIP一般在底層采用P2P重疊網(wǎng)絡(luò),提供SIP中的用戶注冊、定位和查詢功能,它可以快速建立網(wǎng)絡(luò),提升了系統(tǒng)可擴(kuò)展性和健壯性,但同時(shí),由于采用了分布式的架構(gòu),這給P2PSIP網(wǎng)絡(luò)節(jié)點(diǎn)的身份認(rèn)證帶來了困難,惡意節(jié)點(diǎn)對網(wǎng)絡(luò)的破壞行為也變得更加容易,系統(tǒng)也面臨著新的安全威脅,例如中間人攻擊、離線密碼攻擊等。因此,針對P2PSIP的安全通信機(jī)制的研究變得尤為重要。
國內(nèi)外學(xué)者已針對P2PSIP的安全性問題做了很多研究[1-3],文獻(xiàn)[1]中提出采用PKI(Public Key Infrastructure,公鑰基礎(chǔ)設(shè)施)機(jī)制保障P2PSIP的安全,但PKI機(jī)制的證書管理較為復(fù)雜,僅適用于較小的P2P網(wǎng)絡(luò)。文獻(xiàn)[2]中提出了一種基于自生成證書的密鑰協(xié)商方案,但其認(rèn)證流程較為復(fù)雜,運(yùn)算開銷較大。文獻(xiàn)[4]提出了一種基于身份的可認(rèn)證密鑰協(xié)商方案,但該方案基于雙線性運(yùn)算,存在運(yùn)算效率底下以及密鑰托管等問題。
2003年,Al-Riyami和Paterson首次提出了無證書公鑰密碼體制以及該體制下的公鑰加密、簽名以及密鑰協(xié)商方案[5],它同時(shí)解決了基于身份的公鑰密碼體制和基于證書公鑰密碼體制的缺陷。針對無證書的認(rèn)證密鑰協(xié)商協(xié)議,許多學(xué)者利用雙線性對提出了一系列的方案[6-8],但是,雙線性對在已知的密碼運(yùn)算中具有最大的計(jì)算復(fù)雜度,這對于P2PSIP的實(shí)際應(yīng)用時(shí)不合適的,因?yàn)镻2PSIP一般用于VOIP呼叫或者IMS通信,它們對于呼叫建立階段的時(shí)延性是有著較高的要求的。文獻(xiàn)[9]提出了一種基于無證書的可認(rèn)證密鑰協(xié)商方案,該方案無需做雙線性運(yùn)算,迎合了P2PSIP通信的低時(shí)延低開銷需求。定義通信雙方為Alice和Bob,下面介紹該協(xié)議。
橢圓曲線上的離散對數(shù)問題定義為:給定有限域Fq上的橢圓曲線E,點(diǎn)p∈E(Fq)的階為n,對于點(diǎn)Q=lp,0≤l≤n-1,確定l的問題。
離散對數(shù)問題假設(shè):不存在多項(xiàng)式時(shí)間的算法能解決離散對數(shù)問題。
特征為大素?cái)?shù)q的循環(huán)群G,它的一個(gè)生成元是P,若未知,給定aP,bP∈G,計(jì)算abP是困難的。
計(jì)算CDH假設(shè):不存在多項(xiàng)式時(shí)間的算法能解決CDH問題。
(1)系統(tǒng)建立:選擇有限域Fp上的q階橢圓曲線點(diǎn)群G,P為G的生成元。KGC(Key Generation Center,密鑰生成中心)執(zhí)行以下操作:
c.公開系統(tǒng)參數(shù):params={Fp,E/Fp,G,P,Ppub,H1,H2}
(2)用戶密鑰生成:身份為IDA的用戶Alice向KGC申請公私鑰對,隨機(jī)選取計(jì)算pA∈xAP。KGC隨機(jī)選取rA∈Zq*,計(jì)算RA∈rAP,作為Alice的部分公鑰,計(jì)算sA∈rA+xh1作為Alice的部分私鑰,KGC將(sA,RA)作為長期密鑰通過安全信道發(fā)送給用戶,則Alice的私鑰為SKA=(xA,sA),公鑰為
Alice計(jì)算:

Bob計(jì)算:

圖1給出了基于無證書的P2PSIP可認(rèn)證密鑰協(xié)商的具體流程。在密鑰協(xié)商過程進(jìn)行之前,KGC已經(jīng)完成了主密鑰選取和系統(tǒng)參數(shù)的準(zhǔn)備工作,通信雙方已經(jīng)通過和KGC的交互,獲取了各自的公私鑰對,Alice的身份信息為IDA,公私鑰對為(SKA,PKA),Bob的身份信息為IDB,公私鑰對為(SKB,PKB)。具體密鑰協(xié)商流程如下:
(2)Bob接收到INVITE請求后,首先用Alice的公鑰PKA驗(yàn)簽,檢查消息的完整性,然后從Zq*隨機(jī)選取b,計(jì)算TB=bP,并在消息體SDP中封裝(IDB,PB,RB,TB),向Alice發(fā)送180 Ringing消息。和第一步相同,Bob需要采用私鑰SKB對SDP消息體和非路由消息頭簽名,確保消息的完整性。
(3)Alice接收到Ringing消息后,用Bob的公鑰PKB驗(yàn)簽,檢查消息的完整性,然后開始計(jì)算和會話密鑰并向Alice發(fā)送ACK消息。
(5)Alice和Bob使用協(xié)商好的會話密鑰建立保密通信。

圖1 基于無證書的P2PSIP可認(rèn)證密鑰協(xié)商流程
本節(jié)將對本方案的正確性、安全性和高效性三個(gè)方面進(jìn)行分析。
由于G是阿貝爾群,得出:

本方案采用了無證書公鑰密碼體制及該體制下的可認(rèn)證密鑰協(xié)商和簽名,該密鑰協(xié)商方案在Bellare-Rogaway模型下是可證明安全的[8-9]。
關(guān)于中間人攻擊。由于系統(tǒng)的主密鑰由KGC妥善保管,用戶的私鑰和用戶的身份ID關(guān)聯(lián),所以方案的安全首先源于主密鑰和私鑰的安全。攻擊者無法得到用戶身份ID對應(yīng)的私鑰,自然無法完成數(shù)據(jù)的解密或者完成假冒簽名;攻擊者無法得到和用戶身份ID關(guān)聯(lián)的公鑰,就無法向其他用戶證明自己的身份,也就無法用假冒的公鑰來發(fā)起中間人攻擊,這樣也就能夠有效防止身份欺騙,消息篡改和會話劫持等攻擊。
關(guān)于重放攻擊。如果通信雙方整個(gè)密鑰協(xié)商流程的消息被攻擊者截獲,然后攻擊者偽裝成Alice,并向用戶Bob發(fā)送已截獲的流程消息,這種情況下Bob無法判定消息的來源是攻擊者還是Alice,所以也會做出正確的應(yīng)答,但是因?yàn)闆]有相應(yīng)的Alice的私鑰,攻擊者無法完成基本的驗(yàn)簽流程,自然也就無法獲取正確的會話密鑰。
關(guān)于密鑰前向安全。在密鑰的生成與更新過程中,攻擊者如果截獲了通信雙方當(dāng)前的會話密鑰,由于每次密鑰更新時(shí)Alice和Bob都使用隨機(jī)數(shù)參與生成下次的會話密鑰,所以新舊密鑰不存在任何關(guān)聯(lián)等式,該方案具備完美的前向安全。
關(guān)于離線密碼攻擊。如果通信雙方所有的通信數(shù)據(jù)被攻擊者截獲并分析,無論是從公鑰推算還是枚舉猜測,因?yàn)橹髅荑€由KGC保管,攻擊者無法通過技術(shù)手段獲取正確的私鑰。同時(shí),攻擊者想要通過技術(shù)手段獲取會話密鑰,在理論上的難度等同于破解CDH難題。
首先,在通信開銷上,對比通信雙方的協(xié)議交互次數(shù),文獻(xiàn)[2]需要7次協(xié)議交互,文獻(xiàn)[4]需要4次協(xié)議交互,而本方案僅需要3次協(xié)議交互,因而通信開銷更低一些。
其次,在運(yùn)算效率上,本方案中在具體執(zhí)行過程中需要完成的運(yùn)算包括Hash運(yùn)算和橢圓曲線上點(diǎn)乘。將本方案分為兩個(gè)運(yùn)算階段,第一階段為參數(shù)獲取階段,第二階段為密鑰協(xié)商階段。在第一階段通信雙方均需要執(zhí)行1次橢圓曲線上的點(diǎn)乘運(yùn)算和1次Hash運(yùn)算;在第二階段通信雙方均需要執(zhí)行4次橢圓曲線上的點(diǎn)乘運(yùn)算和1次Hash運(yùn)算。
表1給出了各類密鑰協(xié)商方案的運(yùn)算開銷對比,其中Pair表示對運(yùn)算,Mul表示點(diǎn)乘運(yùn)算,Hash表示哈希運(yùn)算,Exp表示模指數(shù)運(yùn)算。哈希運(yùn)算和橢圓曲線上點(diǎn)乘運(yùn)算的復(fù)雜度相當(dāng),而有限域上模指數(shù)運(yùn)算和雙線性對運(yùn)算的復(fù)雜度分別是橢圓曲線上點(diǎn)乘運(yùn)算的大約3倍和20倍[10],因此雙線性對運(yùn)算具有最大的計(jì)算復(fù)雜度。根據(jù)對比結(jié)果可以看出,本方案無需對運(yùn)算和模指數(shù)運(yùn)算,運(yùn)算開銷集中在點(diǎn)乘運(yùn)算上,因此較其它方案有更高的運(yùn)算效率。
低呼叫時(shí)延是P2PSIP呼叫建立階段的基本要求,尤其對于VOIP呼叫顯得更為重要,否則用戶在呼叫過程中等待時(shí)間過長,用戶體驗(yàn)將變得會很差。本方案協(xié)議交互次數(shù)少,運(yùn)算開銷低,在處理器性能日益提高的情況下,低呼叫時(shí)延是能夠得到有效保障的。

表1 各方案運(yùn)算效率對比
針對P2PSIP的分布式特點(diǎn)、低呼叫時(shí)延需求和面臨的安全威脅,本文在基于無證書公鑰密碼系統(tǒng)的基礎(chǔ)上,提出了一種高效的P2PSIP可認(rèn)證密鑰協(xié)商方案。方案實(shí)現(xiàn)了P2PSIP協(xié)議的呼叫過程雙向身份認(rèn)證和密鑰協(xié)商,協(xié)議可證明安全;同時(shí)該方案通信開銷低且無需做雙線性運(yùn)算,在運(yùn)算執(zhí)行過程中較其它方案更為高效,適應(yīng)P2PSIP呼叫的實(shí)際應(yīng)用。方案擁有公鑰密碼的優(yōu)點(diǎn),無需預(yù)先共享秘密,也避免了使用傳統(tǒng)PKI數(shù)字證書機(jī)制帶來的各種問題。