摘 要:在現有移動通信終端和服務器安全認證方案的基礎上,結合橢圓曲線密碼算法提出一種新的基于身份的端到端認證協議。該協議既提供了安全雙向認證和密鑰協商功能,又極大地適應了移動終端的計算能力,降低了安全系統的復雜性,為端到端加密在移動通信系統中的大規模應用提供了基礎。
關鍵詞: 基于身份的公鑰密碼;橢圓曲線密碼;雙向認證;私鑰產生中心;端到端加密
中圖分類號:TP309 文獻標志碼:A 文章編號:1001-3695(2008)08-2457-03
Identity-based end-to-end authentication and
key agreement protocol in mobile communication
SHAO Lin, LI Hui, YANG Yi-xian
(Information Security Center, National Key Laboratory of Networking Switching, Beijing University of Posts Telecommunications, Beijing 100876, China)
Abstract: This paper provided a new authentication mechanism used identity in virtue of the concept of ECC, based on the existing authentication and key agreement mechanism of mobile communication. This scheme not only provided the function of bidirectional authentication and key agreement between users, but also suited the computational requirement of mobile terminals and reduced the complexity of security system. Thus, this mechanism lays a foundation for extensive practical application of end-o-end encryption in mobile communication.
Key words:IBE; ellipse curve cryptograph; bidirectional authentication; private key generator; end-to-end encryption
目前雖然3G的認證和密鑰管理等方面的安全性有很大提高[1],但仍然存在缺乏應用域安全、沒有提供通信安全透明化、算法過多、密鑰產生機制和認證協議有一定的安全隱患、沒有建立公鑰密碼體制等安全問題[2,3]。特別是,目前3G無法提供端到端的安全服務(機密性、認證性、完整性),因此不利于3G新業務的發展。現有的認證和密鑰協商協議,尤其是基于身份的密鑰協商協議,多數不能很好解決完美前向保密性(perfect forward secrecy,PFS)和密鑰生成中心(key generation center,KGC)前向保密性問題[4,5]。針對這些問題,考慮到現有移動通信系統的終端計算能力不強、網絡帶寬有限的特點,本文提出了一種新的基于身份的端到端認證和密鑰協商兩輪協議,能夠獨立于通信系統設備,獨立地完成通信雙方雙向鑒權、端到端會話密鑰協商等功能,并且具有抵抗選擇消息等多種攻擊的能力。
1 基于身份的公鑰密碼體制
Adi Shamir于1984首先提出基于身份的公鑰密碼加密方法(identity-based encryption,IBE)。該公鑰體制使用用戶身份信息作為用戶公鑰,從而解決了公鑰管理和公鑰有效性驗證的問題。該體制中公鑰多數情況下是方便可得的公開標志,無須實時請求第三方機構如私鑰產生中心(private key generator,PKG)。相比傳統的公鑰密碼體制,IBE系統更加簡單,只需密鑰產生中心完成用戶身份認證、私鑰生成和安全傳送,多數情況無須對公鑰進行存儲管理;無須實時地請求公鑰證書;無須傳統的證書機構中繁雜的公鑰證書的產生、維護、更新和撤銷等[6]。但是IBE存在加/解密速度相對于對稱密碼算法較慢、私鑰更新等問題[7]。
本文提出的協議中采用了基于身份的公鑰密碼體制,并通過對用戶的身份信息中附加上時間的限制,靈活地控制用戶公鑰的生命周期,解決了實際應用中的私鑰更新問題。
2 橢圓曲線密碼體制
橢圓曲線計算性Diffie-Hellman問題(ECCDH):
Input:Fq為q個元素的有限域,E其上的一條橢圓曲線,E的階為一大素數z,或者是一個大素數z與另一個小整數的乘積;選取E上的階為大素數z的點G、mG、 nG,這里m,n ∈RZz(這里符號∈R代表隨即均勻選取,下同)。
Output:mnG。
所謂的ECCDH假設,即假設不存在有效的概率多項式時間的算法解決該問題。
定義1 具有密碼學意義的雙線性對 。
設G1和G2是兩個階同為素數z的群。其中:G1為加法群,G2為乘法群;G是G1的生成元。假設G1和G2中的離散對數是難解的。一個具有密碼學意義的雙線性對是指具有如下性質的映射e:G1 2→G2:
雙線性:對任何的P,Q ∈G1, a,b∈RZz,都有e(aP,bQ)=e(P,Q)ab。
非退化性:對于生成元G有,e(G,G)≠1。
可計算性:對任意的P,Q∈G1,存在有效的算法計算e(P,Q)。
雙線性的計算性Diffie-Hellman問題(BCDH):
Input:(aG, bG, cG),這里a,b∈RZz,
Output:e(G, G)abc。
如果存在有效算法O可以處理G1中的ECCDH問題,則可以通過如下算式處理BCDH問題:
e(G, G)abc = e(O(aG, bG), cG) = e(abG, cG)
由此可見,ECCDH是難解的是BCDH難解的前提[8]。
3 基于身份的認證和密鑰協商協議
本方案采用基于身份的公鑰體制,并使用橢圓曲線密碼(ellipse curve cryptograph, ECC)算法進行認證和密鑰協商[7]。而對稱密碼算法在加密速度上有較大優勢。因此,為了減少參與端到端通話的第三方機構的數量,簡化協議流程,筆者希望將協商生成的會話密鑰用于加密通信業務中。這里需要參與的加密層面的系統元素只有私鑰產生中心。
符號約定:
|| :連接符號前后的字符數據;
IDa、IDb:終端標志號碼;
s:PKG系統主密鑰,s∈RZz;
Ppub:系統公鑰,Ppub=sG;
A、B:公鑰信息={ IDa或IDb|| 時間點t}∈{0,1};
H1:{0,1}*→ E (MapToPoint)為hash函數;
Ka、Kb:公鑰,Ka =H1(A)∈E,Kb=H1(B)∈E;
kIDa、kIDb:私鑰標志 = {公鑰的時間點t || 密鑰生存周期的長度T ||請求密鑰的個數x };
ka、kb:私鑰主體,ka =sKa,kb =sKb;
Fka、Fkb:私鑰文件= {私鑰標志kIDa或kIDb || 私鑰主體ka或kb };
(msg)Kb:表示用公鑰Kb加密消息msg;
m、n:終端a、b各自產生的私有隨機數,m,n ∈[0,z-1];
mG、nG:有限域橢圓曲線的點G的m 或n次點加;
H2:{0,1}×E→Zz為hash函數;
(U1,V1)、(U2,V2):代表第一輪和第二輪的消息簽名;
e:上面提到的雙線性映射;
N1、N2:終端用于認證的nonce = {時間戳‖隨機數},不能公開。其中,N1、N2分別由通話方a、b產生。
在進行認證和密鑰協商前,認為系統已經對用戶進行了身份認證,IBE系統各個參數已經初始化完成,并對外公開H1、Ppub、Fq 、E、G、H2和e,并且PKG向用戶分配了各自的私鑰文件。用戶得到的私鑰文件集合的總有效期是從該時間點之后連續的xT時間內。用戶可以按照H1算出公鑰信息對應的通話方的公鑰。
目前端到端的認證協議有很多,多數都需要第三方機構的參與,協議流程比較復雜[9,10] 。而現有的橢圓曲線密鑰生成協議(ECKEP)不能提供密鑰的確認性(key confirmation),存在中間攻擊。為了減少第三方的認證機構,且保證雙方能夠確認密鑰確實是雙方協商的密鑰,本文給出了一種新的基于身份的橢圓曲線密碼體制(ECC)的快速認證和密鑰協商協議。協議借鑒現有的協議思想[10,11] ,將ECC引入Diffie-Hellman密鑰交換過程,設計了如下協議:
a)Alice→ Bob:mG,Kb,t1,(N1||IDb)Kb,(U1,V1)。其中:U1=mKa, h1= H2{mG||Kb|| t1 ||(N1||IDb)Kb, U1}, V1 = (m+h1) ka均由Alice計算得到。
Bob接收到數據后,計算h1,驗證e(G,V1)=e(Ppub, U1+h1Ka)是否成立,參見文獻[4]。接著,根據Kb對應的時間點t1,Bob按照kIDb在一組私鑰中找到對應的kb,用kb解密可以得到N1和IDb,檢查IDb是否是自身;驗證N1的時效性,如果時間失效,則Bob認為會話已過期。
b)Bob→Alice:nG,Ka,t2,(N1||N2||IDa)Ka,(U2,V2)。其中:U2=nKb, h2= H2{nG||Ka|| t2 ||( N1||N2||IDa) Ka, U2}, V2 = (n+h2)kb均由Bob計算得到。
Alice接收到數據后,計算h2,驗證e(G,V2)=e(Ppub,U2+h2Kb)是否成立。接著,Alice用t2對應的ka解密得到N1、N2和IDa。比較N1是否一致,確定IDa是否是自身,并且確認N2時效性。
這時Alice與Bob之間的身份驗證已經完成,雙方均可以計算K= mnG。
此時,密鑰協商過程完成,Alice開始使用會話密鑰K與Bob進行保密通信。其中基于身份的公鑰加/解密算法見參考文獻[7] 。
4 性能分析
采用混合密碼體制進行端到端的安全通信,在安全通信的前提下,既保證了通信對于實時性的要求,又盡可能地減少了參與E2EE實體的通信,簡化了協議中通信實體的交互流程。以下在通信效率、運算數量和安全性方面作具體分析。
4.1 協議比較分析
表1是本文所介紹的混合密碼體制下基于身份的認證、密鑰協商協議,現有的用戶與服務器間比較成熟的身份認證和密鑰分發體制[12,13]的主要的性能比較。
表1 與各種常用體制性能比較
性能指標對稱密鑰體制
Kerberos v5傳統公鑰證書
體制X.509證書基于身份的認證
和密鑰協商協議時效性最好不好好通信建立時的
性能瓶頸集中式管理,
易形成瓶頸在線申請證書,
易形成瓶頸能夠消除應用可擴展性不好一般好消息數據量至少5至少32加解密運算次數四次對稱運算一次非對稱解密兩次非對稱解密密鑰存
儲量/終端三個對稱密鑰一個證書和
一個私鑰一組私鑰文件,一個
公鑰和系統公鑰證書KGC
/PKG三個終端數——無須保存
私鑰和公鑰CA——終端數——是否需要時間同步是否是是否存在用戶口令是否否是否需要CA證書否是否針對私鑰更新的安全性和效率不能兼顧的問題,本文采用周期可控的組私鑰下發的方法。較小的T和x意味著密鑰及時性好,但要求與PKG進行頻繁的通信;較大的T和x可以減少計算和通信成本,但導致用戶長時間地使用已被吊銷私鑰。用戶根據需要去設定下發的密鑰的總有效期,在安全和效率之間取得折中,提高了平均性能,靈活性好。
該協議總共有兩輪交互消息即可完成雙向認證和密鑰協商,而多數需要在線獲取證書的協議大都需要4~6條消息。
從計算的復雜性來看,協議采用ECC,使該協議在更小密鑰量下提供了更大的安全性,所需帶寬明顯減少,而且還大大降低了用戶端的計算負擔和存儲要求。認證算法中最復雜的是與私鑰相關的解密或數字簽名計算。但在此協議中,兩個移動用戶端僅各有兩次這樣的計算,即第一輪和第二輪中的消息解密和私鑰簽名。所以,極大地降低了用戶的運算量。
協議可以與傳統公鑰體制的CA相結合使用。一個用戶有了CA所頒發的公鑰證書,就可以自己充當私鑰產生中心,而將自己的CA私鑰作為中心的主密鑰。協議的擴展性比較好,隨用戶數增加,密鑰管理比較簡單。當N個用戶互相通信時,需要N個公鑰和一組私鑰以及PKG系統的公鑰,相比較Kerberos系統[12],其需要N(N-1)/2個密鑰,而傳統的公鑰體制,需要N個證書和一個私鑰[13]。
4.2 協議安全性分析
這里主要分析端到端認證協議的安全性。本協議實現了通話雙方之間的雙向認證,且分配了用于后續保密通信的對稱密鑰。達到了以下安全要求:
a)雙向認證。第一輪消息中,由于私鑰ka是安全的,即便消息被截獲,并按照新的消息體{mG,Kb,t1,(N1||IDb)Kb}′和U′1重新計算并替換原有的h1,V1也不可能被第三方偽造(即偽造消息不能通過Bob的簽名驗證)。Bob驗證通過時,可以相信消息的來源是Alice;在第二輪消息中,Alice也可以確認消息的來源是Bob,實現了雙向認證。
b)密鑰安全。基于ECCDH假設,即使消息全部被截獲,竊聽者也只能獲得mG、nG,無法在多項式時間內計算出密鑰K,具有內在認證性(implicit authentication)。
c)協議前向保密性。每次協議執行時,密鑰總是由雙方臨時商定的,K=mnG與該次的隨機信息m、n相關,攻擊者即使攻陷了Alice和Bob的私鑰ka和kb 也得不到任何以前建立的會話密鑰, 這是因為會話密鑰與ka, kb無關。因此每次通信所協商的密鑰互不相關,保證了前向安全(forward secrecy)[14]。
d)PKG/KGC前向保密性。在基于身份的密碼系統中, 目前的協議多采用了雙線性weil對的性質來生成會話密鑰,如文獻[4],不能夠解決KGC 前向保密性問題[14]。但這里用戶的會話密鑰只與mG和nG相關,且m、n是隨機的,即使PKG的主密鑰被攻陷了(由此所有用戶的私鑰也被攻陷了), 以前任何用戶之間建立的會話密鑰仍然不會被攻陷,因此協議能保證PKG/KGC前向保密性。
e)抗重放攻擊。兩條消息中包含N1和N2,而且經過了加密和哈希,不能竊取或更改;只要根據移動通信的特點選擇合理的時間窗口,重放攻擊是難以進行的。注意協議中是N1和N2由時間戳和隨機數構成,而不是僅僅使用時間戳,這樣能在一定程度上抵消明文中存在一段可知的時間信息所帶來的消極作用,從而使得加密更安全。
f)抗中間人攻擊。考慮最極端的情況,如果Alice的私鑰被竊聽者獲取,但是由于竊聽者不知道Bob的私鑰而不能解密得到N1,不能代替Bob進行回復;但如果Bob的私鑰被獲取,能夠得到N1,竊聽者可以代替Bob進行回復。
如果Bob的私鑰是安全的,即使N1被竊聽者獲取,也不能通過Alice對回復消息的簽名驗證,也能抵抗中間人攻擊。因此,在Bob私鑰安全的前提下,協議中通過設置N1,可以讓中間人攻擊無法進行。
h)抵抗選擇消息,選擇身份的存在性偽造。協議借鑒了文獻[4]的思想,采用基于雙線性對的密碼方案實現了對長消息的簽名,防止消息被竄改。在ECCDH問題的難解性和消息的hash函數的安全性的合理假設下,這種基于身份的簽名具有在Random Oracle模型下可證明安全性。
g)私鑰安全。私鑰通過對稱密鑰算法加密后保存在終端智能卡上,安全級別比較高。此外,對于終端智能卡丟失造成的私鑰竊取問題,PKG應具有進行吊銷用戶私鑰的能力。此外,可以將每次下發的私鑰的有效期設定在目前的條件下破解對稱密碼算法的時間范圍內,以防止私鑰并沒有成功吊銷時,私鑰被破解,通話被監聽的可能。
j)公鑰的真實性。PKG對終端用戶進行身份認證,只有通過認證的用戶才能得到相應的私鑰。在這種情況下,利用公鑰體制進行保密通信的雙方中,發方不再為加密時所用的收方的公鑰的認證性擔憂,而是將認證性轉移到了私鑰產生中心與收方用戶之間。監聽者無法破譯用身份信息作為公鑰進行加密所得的密文,因為其無法從私鑰產生中心那里得到相應的私鑰。
5 結束語
本文針對移動通信網的特點,設計了一種用于移動通信中基于身份的端到端認證和密鑰協商協議。通過采用橢圓曲線密碼體制,雙鑰和單鑰相互配合,采用hash、現時鏈等技術或方法,既提供了安全的認證和密鑰協商功能,能夠抵抗多種攻擊,又極大地適應了移動終端的計算能力。相比較現有的客戶端和服務器的認證模型,該協議適合在移動網中使用,進行端到端加密。此外,為了提高系統的私鑰更新效率,本文引入了密鑰生存期,并下發一組私鑰,這既減少了傳統方案的計算、通信和維護等成本,同時又在安全性與效率之間達到平衡,提供滿足不同安全需求和應用需求的靈活性。
參考文獻:
[1]ZHANG Mu-xiang,FANG Yu-guang.Security analysis and enhancements of 3GPP authentication and key agreement protocol[J]. IEEE Trans on Wireless Communications, 2005, 4(2):734-742.
[2]LEE H K,MOON S J.AKA protocols for mobile communications[C]// Proc of the 5th Australasian Conference Information Security and Privacy.London:Springer-Verlag,2000:400-411.
[3]劉東蘇,韋寶典,王新梅,等.第三代移動通信系統的安全體系結構[J].西安電子科技大學學報,2002,29(3): 351-354.
[4]CHA J C,CHEON J H.An identity-based signature from gap Diffie-Hellman groups[C]//Proc of Public Key Cryptography-PKC 2003, LNCS 2139.London:Springer-Verlag,2003:18-30.
[5]KRAWCZYK H. HMQV:a high-performance secure Diffie-Hellman protocol[C]//SHOUP V.Proc ofCrypto 2005, LNCS 3621.Berlin:Springer-Verlag,2005:546-566.
[6]SHAMIR A. Identity-based cryptosystems and signature schemes[C]//Proc of Crypto1984,LNCS196.[S.l.]:Springer-Verlag,1985:47-53.
[7]BONEHD,FRANKLIN M.Identity-based encryption from the Weil pairing[C]//Advanced in Cryptology-Crypto'2001, LNCS 2139.[S.l.]: Springer-Verlag, 2001:213-229.
[8]王學理,裴定一.橢圓與超橢圓曲線的公鑰密碼的理論與實現[M].北京:科學出版社,2006.
[9]HWU J S, CHEN R J ,LIN Y B.An efficient identity-based cryptosystem for end-to-end mobile security[J]. IEEE Trans on Wireless Communications,2006,5(9):2586-2593.
[10]王江平,李治柱. 移動通信網中的雙向認證與密鑰協商新協議[J].信息安全與通信保密,2004(8):34-36.
[11]POINTCHEVAL D, MU Y, CHEN K. CANS 2006, LNCS 4301[C].2006: 37-54.
[12]SCHNEIER B. Applied cryptography:protocols,algorithms and source code in C[M]. 吳世忠,祝世雄,等譯.北京:機械工業出版社,2000:404-408.
[13]STALLING S W.Cryptography and network security principles and practices[M].2nd ed. 楊明,胥光輝,等譯.北京:清華大學出版社,2001:270-275.
[14]李興華,馬建峰,文相在,等.基于身份密碼系統下Canetti-Krawczyk模型的安全擴展[J].中國科學(E輯), 2004,34(10):1185-1192.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文