劉倩,張愉,范安東
(成都理工大學a.管理科學學院;b.旅游與城鄉規劃學院,成都610059)
基于無雙線性對的無證書隱式認證的Kerberos協議改進
劉倩a,張愉b,范安東a
(成都理工大學a.管理科學學院;b.旅游與城鄉規劃學院,成都610059)
針對Kerberos認證協議存在的密鑰托管,口令攻擊和重放攻擊等缺陷,將隱式認證與無證書密鑰協商協議結合,提出了一種無雙線性對的無證書隱式認證的Kerberos改進協議,避免了Kerberos協議中第三方對信息的無舉證竊聽,有效克服了中間人攻擊。新協議在增強模型下是可證明安全的,并且僅需9次橢圓曲線上的點乘運算和2次哈希運算,具有較高的計算效率。
無證書公鑰密碼體制;隱式認證;Kerberos協議
在傳統的基于公鑰基礎設施的公鑰密碼體制(PKC)下,為了驗證公鑰的真實性,需要一個可信的證書中心頒發證書將用戶的身份信息和公鑰進行綁定[1],不可避免存在證書的存儲和傳輸等問題。為了解決傳統的PKC中存在的缺陷,Shamir[2]率先提出了基于身份的公鑰密碼體制(ID-PKC),這種體制使用能夠唯一標識用戶身份的信息作為用戶的公鑰,因此可以解決傳統的PKC存在使用證書的問題,然而ID-PKC卻存在著嚴重的私鑰托管問題。為了消除傳統的PKC和ID-PKC存在的缺陷,解決使用證書和私鑰托管的問題,2003年Al-Riyami和Paterson[3]提出了無證書的公鑰密碼體制(CL-PKC)。與ID-PKC類似,CL-PKC也需要一個可信的密鑰生成中心(KGC),但在CL-PKC中,用戶的私鑰是由用戶隨機選擇的秘密值和KGC產生的部分私鑰組成,公鑰則是由用戶自己的秘密值、身份信息和系統參數進行一定的運算產生的。因此,KGC不知道用戶的秘密值,就無法得知任何用戶的私鑰,從而有效地解決了ID-PKC存在的私鑰托管問題[4]。
傳統Kerberos認證協議是基于對稱加密體制的,容易遭受口令攻擊和重放攻擊。為此,很多改進算法應運而生,包括基于公鑰證書[5]、基于ElGamal算法[6]、基于混合體制[7]、基于Weil對[S]和基于Diffe-Hellman密鑰協商[9]、基于視覺密碼[10]的改進方案,這些方案雖然解決了Kerberos協議存在的口令攻擊和重放攻擊等問題,但是大都采用了顯示認證方式,容易暴露過多的信息給攻擊者,還存在密鑰托管和中間人攻擊等問題。文獻[11]結合無證書公鑰密碼學提出一個基于CL-PKC密鑰協商的改進方案,較好地解決了上述問題。但該協議在密鑰協商過程中使用了2次對數運算、2次點乘運算和1次指數運算,使得計算量大大增加。本文在文獻[11]基礎上,提出一個基于無雙線性對的無證書隱式認證改進的Kerberos協議,改進方案中的密鑰協商不再使用對數運算,僅需9次點乘運算和2次哈希運算,運算效率較高。
1.1 CDH假設
設G是階為q的橢圓曲線循環群,P是G的生成元,對于任意的a,b∈Z*q,給定P,aP,bP∈G,任意概率多項式時間算法A能成功計算abP的優勢:AdvCDH(A)=Pr[A(aP,bP)=abP|a,b∈Z*q]是可以忽略的。
1.2 安全模型
本文采用文獻[12]中定義的無證書認證密鑰協商協議安全模型。
(1)A1是一個外部的攻擊者,A1可以替換任意用戶的公鑰,但是無法獲得系統的主密鑰以及用戶的部分私鑰。
(2)A11是一個內部攻擊者,A11相當于惡意的KGC攻擊,無法替換任意用戶的公鑰,但是可以獲得系統的主密鑰以及用戶的部分私鑰。
無證書認證密鑰協商協議被模擬為挑戰者C與攻擊者Adv之間的游戲,具體過程如下:
(1)初始化:挑戰者C運行系統參數生成算法,輸入一個安全參數k,輸出系統主密鑰msk和系統參數params。
如果Adv是A1敵手,那么C將params發送給Adv,并對msk保密。如果Adv是A11敵手,那么C將(msk,params)發送給Adv。
(2)查詢:Adv可以自適應性地進行以下查詢:Create(ID),Public-Key(ID),Partial-Private-Key(ID),Corrupt(ID),Public-Key-Replacement(ID, P),和。C模擬密鑰協商方案中的相應算法分別做出回答。
(3)測試查詢:Adv選擇一個新鮮的預言機∏si,j請求Test查詢。
Test查詢結束后,Adv可以進行除了Corrupt(ID)和查詢(或者與匹配的Reveal(查詢)外的其他查詢。最后,Adv輸出對Test查詢中b的猜測b,,如果b,=b,則Adv贏得游戲。Adv贏得游戲的優勢定義為:

1.3 安全性定義
(2)對于任何攻擊者Adv∈{A1,A∏},AdvantageAdv(k)是可忽略的。
如果無證書兩方認證密鑰協商協議滿足上述要求,則被認為是安全的。
2.1 無對運算的無證書隱式認證與密鑰協商協議
該協議可分為系統建立、用戶注冊以及密鑰協商3個階段。
系統建立:輸入一個安全參數k,輸出素數階為q的橢圓曲線循環群G和大素數p,且滿足q|p-1。P是G的生成元,KGC隨機選取s∈Z*q作為系統主密鑰,記P0=sP,選擇兩個安全的哈希函數:H1:{0,1}*×G→Z*q,H2:{0,1}*2×G9→{0,1}k。設置系統參數:params={p,q,P,P0,H1,H2}。
用戶注冊:身份為IDi的用戶隨機選擇一個作為長期私有秘密,計算對應的公鑰Xi=xiP。KGC檢驗用戶的身份IDi,隨機選擇ri∈Z*q,計算Ri=riP,di=ri+sH1(IDi,Ri,Xi),通過秘密信道將di發送給IDi,作為其部分私鑰。用戶IDi的長期私鑰為Si=(xi,di),長期公鑰為Pi=(Xi,Ri)。
密鑰協商:假設用戶A和用戶B可以按照以下步驟進行協商得到最終的會話密鑰:
(1)用戶A和B分別隨機選擇a,b∈Z*q,計算臨時密鑰TA=aP,TB=bP。
(2)用戶A將(IDA,RA,TA)發送給B,用戶B將(IDB,RB,TB)發送給A。
(3)用戶A計算hB=H1(IDB,RB,XB),PB=RB+ hBP0,KA1=aPB+dATB,KA2=aXB+xATB,KA3=dAPB,KA4=xAXB,KA5=aTB,會話密鑰KA=H2(IDA,IDB,XA,XB,TA,TB,KA1,KA2,KA3,KA4,KA5)。用戶B計算hA= H1(IDA,RA,XA),PA=RA+hAP0,KB1=bPA+dBTA,KB2=bXA+xBTA,KB3=dBPA,KB4=xBXA,KB5=bTA,會話密鑰KB=H2(IDA,IDB,XA,XB,TA,TB,KB1,KB2,KB3,KB4,KB5)。
2.2 改進的Kerberos認證協議
改進的Kerberos協議中,KDC與無證書公鑰體系密鑰中KGC都是可信第三方組件,具有很大的相似性,KDC集成了KGC的功能。改進的Kerberos協議認證過程如圖1所示,客戶端C要訪問應用服務器S,首先,KDC生成系統的主密鑰s∈Z*q,計算系統公鑰P0= sP;其次,KDC分別為客戶端C和應用服務器S生成部分私鑰dC和dS;最后,C和S分別隨機選擇各自的秘密值c,s,計算各自的公私鑰對PC/SC,PS/SS。其中,IDi為用戶i的身份信息;Pi為用戶i的公鑰;Si為用戶i的私鑰;EKPi為用用戶i的公鑰加密;Ticketx,y為x訪問y的授權票據;Authenticatorx,y為x訪問y的認證碼;ri是為防止重放攻擊而設的隨機數。

圖1改進的Kerberos認證過程
(1)C→AS:C向本地AS申請訪問本地的TGS服務器的授權票據:IDC,IDTGS,Sign(IDC),M,r1。
客戶端C隨機選取r1∈Z*q,計算TC=r1P,h1= H1(IDAS,RAS,XAS),h=H2(TC,IDC,r1),s=r1/(xC+ dC+h),生成簽名Sign(IDC)=(h,s),C=r1(XAS+ RAS+h1P0),M=H3(C)⊕r1。C向AS發送訪問本地的TGS服務器請求信息,包括IDC,IDTGS,Sign(IDC),M,r1。
(2)AS→C:AS驗證數字簽名Sign(IDC)來確認用戶的合法身份,然后返回訪問TGS的授權票據:PTGS,AddTGS,TicketC,TGS。
通過(1)和(2)這兩個過程,C與AS完成了雙向身份認證,并且C從AS處獲得了訪問TGS的票據。
(3)C→TGS:C向TGS申請訪問應用服務器S的票據授權票據:IDC,IDTGS,TicketC,TGS,AuthenticatorC,TGS,r2。
客戶端C向TGS提交授權票據TicketC,TGS,以及訪問TGS的認證單AuthenticatorC,TGS=EKPTGS(IDC,IDS)。
(4)TGS→C:TGS返回給C訪問應用服務器S的票據授權票據以及公鑰PS:TicketC,S,PS。
TGS向C發送票據授權票據TicketC,S=EKPS(IDC,AddC,IDS,PC,Lifetimes2)
通過(3)和(4)兩個過程,C從TGS處成功獲得訪得應用服務器S的票據授權票據。從Kerberos的消息流程來看,發起通信的主體要與相關的TGS進行通信,目的是確認用戶身份的合法性以及消息的新鮮性。通過(1)~(4)的身份認證,C獲得授權與遠程應用服務器S通信,依據本文提出的密鑰協商協議,C與S進行密鑰協商建立安全通信信道。
(5)C→S:IDC,TicketC,S,TC
客戶端C隨機選取c∈Z*q,計算TC=cP,將TC發送給應用服務器S。
(6)S→C:IDS,TS
應用服務器S隨機選取s∈Z*q,計算TS=sP,將TS發送給客戶端C。客戶端C計算:hS=H1(IDS,RS,XS),PS=RS+hSP0,KC1=cPS+dCTS,KC2=cXS+ xCTS,KC3=dCPS,KC4=xCXS,KC5=cTS,會話密鑰KC=H2(IDC,IDS,XC,XS,TC,TS,KC1,KC2,KC3,KC4,KC5),應用服務器S計算hC=H1(IDC,RC,XC),PC=RC+ hCP0,KS1=sPC+dSTC,KS2=sXC+xSTC,KS3=dSPC,KS4=xSXC,KS5=sTC,會話密鑰K=H2(IDC,IDS,XC,XS,TC,TS,KS1,KS2,KS3,KS4,KS5),最終協商出共同的會話密鑰K=H2(IDC,IDS,XC,XS,TC,TS,KS1=KC1,KS2= KC2,KS3=KC3,KS4=KC4,KS5=KC5)。
3.1 協議的正確性分析
正確性驗證:


由此可知KA=KB,用戶A和用戶B可以通過此協議協商出相同的會話密鑰。
3.2 協議的安全性分析
3.2.1 密鑰協商協議的安全性
SK,且SK在{0,1}k上均勻分布。
引理2如果CDH假設成立,在強安全模型下,第一類敵手A1不能以不可忽略的優勢攻破本文提出的無證書密鑰協商協議。
引理3如果CDH假設成立,在強安全模型下,第二類敵手A11不能以不可忽略的優勢攻破本文提出的無證書密鑰協商協議。
引理1、2、3的證明可參考文獻[14]中的證明過程。因此,由上述三個引理可知:如果CDH假設成立,該無證書隱式認證密鑰協商協議在強安全模型下是安全的。
3.2.2 改進的Kerberos協議的安全性
首先,在CL-PKC中,用戶的私鑰是由用戶隨機選擇的秘密值和KGC產生的部分私鑰組成,公鑰則是由用戶自己的秘密值、身份信息和系統參數進行一定的運算產生的。因此,KGC不知道用戶的秘密值,就無法得知任何用戶的私鑰,從而有效地解決了ID-PKC存在的私鑰托管問題。另外,利用隨機數ri代替原協議中的時間戳,有效避免了時間同步問題,防止重放攻擊。
其次,利用公鑰加密票據來代替弱口令加密授權票據。在客戶端與認證服務器之間使用無證書簽密技術進行實體身份驗證,增強了安全性。
最后,改進協議將無證書的隱式認證與密鑰協商技術相結合,使得通信雙方通過協商獲得會話密鑰,避免了第三方對信息的無舉證竊聽,有效克服了中間人攻擊。
3.3 協議的效率分析
本文從運算量和安全性兩個方面,將改進的新方案與原有方案進行比較,比較結果見表1。在計算量方面,主要考慮雙線性對運算、指數運算、點乘運算和Hash運算,其中雙線性對運算的計算量最大,指數運算次之,而改進方案不需要這兩種運算,僅需9次點乘運算和2次哈希運算,計算量大大降低了。

表1改進方案與原有方案的比較
本文利用無雙線性對的無證書隱式認證對原有的Kerberos協議進行了改進,有效地解決了密鑰托管、中間人攻擊以及惡意KDC的無舉證竊聽,改進協議在增強模型下是可證明安全的。與其他方案相比,改進協議只需要9次橢圓曲線上的點成運算,執行效率比較高。
[1]Adams C,Lloyd S.Understanding public_key infrastruc_ ture_concepts,standards,and deployment considerations[M].Indiana,USA:Sams,1999.
[2]Shamir A.Identity_based cryptosystem and signature scheme[C]//Blakley G R,Chaum D.Proceeding of Advances in Cryptology_Crypto'84,California,August,19_22,1984:47_53.
[3]A l_Riyami S S,Paterson K G.Certificateless public key cryptography[C]//Advances in Cryptology_ASIACRYPT′03.Berlin:Springer_Verlag,2003:452_473.
[4]Zhang F T,Sun Y X,Zhang L,et al.Research on certifi_ cateless public key cryptography[J].Journal of Software,2011,22(6):1316_1332.
[5]田俊鋒,畢志明,張晶.一種基于公鑰的新型Ker_ beros域間認證方案[J].微電子學與計算機,2008,25 (9):161_164.
[6]王娟.一種基于無證書公鑰密碼學思想的Kerberos認證方案的改進[J].池州學院學報,2011,25(3):16_ 18.
[7]Estan C,Savage S,Varghese G.Automatically inferring pattern of resource consumption in network traffic[C]// Proceedings of SIGCOMM′03.Karlsruhe,Germany: ACM Press,2003:137_148.
[8]李繼勇.基于Weil對改進的Kerberos協議設計[J].計算機應用,2008,28(2):422_423.
[9]湯衛東,李為民.利用Diffie_Hellman算法改進Ker_ beros協議[J].計算機工程與設計,2007,28(2):343_ 345.
[10]胡志剛,曾巧平.基于視覺密碼的Kerberos改進協議[J].計算機工程,2009,35(18):159_160.
[11]陳家琪,馮俊,郝妍.無證書密鑰協商協議對跨域Kerberos的改進[J].計算機工程,2010,36(20):150_ 152.
[12]Zhang L,Zhang F T,Wu Q H,et al.Simulatable certifi_ cateless two_party authenticated key agreement proto_ col[J].Information Sciences,2010,180(2):1020_1030.
[13]Chen L Q,Cheng Z H,Smart N P.Identity_based key agreement protocols from pairing[J].International Jour_ nal of Information Security,2007,6(4):213_241.
[14]張延紅,陳明.標準模型下強安全的無證書認證密鑰協商協議[J].四川大學學報:工程科學版,2013,45(1):125_132.
Improved Kerberos Protocol Based on Certificateless Implicit Authentication without Bilinear Pairing
LIU Qiana,ZHANG Yub,FAN Andonga
(a.College of Management Science;b.College of Tourism and Rural and Urban Planning,Chengdu University of Technology,Chengdu 610059,China)
In order to solve the Problems of the key escrow,Password_based attack and rePlay attack in Kerberos authen_ tication Protocol,combining imPlicit authentication and certificateless key agreement Protocol,an imProved Kerberos Protocol based on certificateless imPlicitauthentication withoutbilinear Pairing is ProPosed.In the imProved Protocol,the third Party's intercePtion without solid evidence can be avoided,and the attacks ofman_in_the_middle can also be overcome efficiently. The new Protocol is Proved to be secure in the imProved model,and requires only nine times PointmultiPlication on the elliP_ tic curve and two times hash oPeration,so the imProved scheme has better comPutational efficiency.
certificateless Public key cryPtograPhy;imPlicit authentication;Kerberos Protocol
TP309
A
1673_1549(2014)02_0059_05
10.11863/j.suse.2014.02.13
2013_11_20
四川省應用基礎計劃項目(2012JY0033)
劉倩(19SS_),女,陜西西安人,碩士生,主要從事密碼學、信息安全方面的研究,(E_mail)S0676S7S3@qq.com