熊 玲 ,彭代淵 ,彭 圖 ,梁宏斌
(1. 西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,四川 成都 611756;2. 北京理工大學(xué)軟件學(xué)院,北京 100081;3. 西南交通大學(xué)交通運輸與物流學(xué)院,四川 成都 611756;4. 西南交通大學(xué)綜合交通運輸智能化國家地方聯(lián)合工程實驗室,四川 成都 611756)
近年來,隨著無線通信技術(shù)飛速發(fā)展,手機、筆記本、iPad等移動終端設(shè)備已經(jīng)成為人們生活中必不可少的部分[1-2]. 移動云服務(wù)(mobile cloud computing,MCC)融合了云計算服務(wù)、移動通信設(shè)備和傳統(tǒng)互聯(lián)網(wǎng)技術(shù),因此能夠便捷靈活地實現(xiàn)傳統(tǒng)云服務(wù)在移動互聯(lián)網(wǎng)中的擴展和應(yīng)用,為用戶提供了更加自由、方便和靈活的服務(wù),移動云服務(wù)引起了業(yè)界的又一次產(chǎn)業(yè)變革[3]. 然而,移動云服務(wù)運行在無線網(wǎng)絡(luò)這種開放的環(huán)境下,攻擊者更加容易發(fā)起各種攻擊[4],為了防止惡意的攻擊者訪問服務(wù),互相認證是移動云服務(wù)環(huán)境下最基本的安全需求,同時由于用戶的身份信息會暴露用戶的位置、習(xí)慣等,移動云服務(wù)環(huán)境下的隱私保護越來越受人們關(guān)注,因此,設(shè)計適用于移動云服務(wù)環(huán)境下具有隱私保護的認證協(xié)議迫在眉睫[5-6].
移動用戶通過移動終端訪問多個不同的云服務(wù),按照傳統(tǒng)的單服務(wù)器認證方式[7-10],用戶登錄不同的移動云服務(wù)提供者時需要輸入多個不同的用戶名和口令,多個口令使得用戶難以記憶且容易造成混淆,為了方便,用戶通常選擇相同的口令,這種方式存在安全隱患,同時,每個云服務(wù)提供者需要創(chuàng)建一個用戶的數(shù)據(jù)庫,增加管理負擔,造成資源浪費.單點登錄(single sign-on,SSO)機制[11-15]有效地解決了該問題,用戶只需登錄一次就可以訪問多個服務(wù)提供者,而不需要重復(fù)輸入多次用戶名和口令[11].SSO給我們生活帶來了極大的方便,但是目前多數(shù)的 SSO,比如 Passport[12],OpenID[13]和 SAML[14]等,每次認證都需要一個可信的第三方參與,當用戶數(shù)量增多時,可能會造成可信第三方的通信瓶頸[5-6],其次,由于每次認證都需要與可信第三方通信,可信第三方能夠知道用戶的行蹤,從而泄露了用戶隱私[15].除此之外,當前大多SSO認證方案需要通過SSL(secure sockets layer)或者 TLS (transport layer security)建立通信連接,然而,SSL或者TLS計算和通信代價都非常高,并不適用資源有限的移動云服務(wù)環(huán)境.
為了解決上述問題,2015年Tsai和Lo[5]基于多服務(wù)器認證機制設(shè)計了一個適用于移動云服務(wù)環(huán)境的協(xié)議,該協(xié)議聲稱能夠滿足隱私保護和互相認證,且只需用戶注冊一次,便可訪問多個服務(wù)提供者,每次認證過程不需要可信第三方參與,并且協(xié)議沒有使用計算復(fù)雜度高的SSL或TLS協(xié)議. Tsai和Lo的方案[5]發(fā)表后,引起了眾多學(xué)者研究和分析[6,16-19],首先,Jiang等[6]指出該方案存在嚴重的安全缺陷,不能提供互相認證,同時存在一些設(shè)計缺陷,包括生物特征錯誤使用,錯誤口令指紋登錄,沒有用戶撤銷功能. 隨后出現(xiàn)了一系列攻擊和改進方案[16-19]. He等[16]于2016年提出基于身份的簽名技術(shù)改進的方案,該方案能夠提供各種安全功能,并能抗擊各種現(xiàn)有攻擊. 然而,分析發(fā)現(xiàn),由于該方案在登錄前沒有驗證口令是否正確,因此不能抵抗由于輸錯口令而引起的錯誤口令登錄攻擊,同時,該方案存在一些小得設(shè)計缺陷,包括沒有考慮用戶撤銷和重注冊,沒有考慮口令修改. 文獻[17]在文獻[5]的基礎(chǔ)上增加密鑰確認完成互相認證,但增加了計算代價,此外,文獻[17]的3個認證因子分別為:智能卡、口令Wi、生物特征fi,智能卡中存儲了驗證表 Vi= h(Di||Wi||Hb(fi)),其中:Di為身份標志;Hb( )為哈希函數(shù). 顯然,若智能卡和生物特征丟失,攻擊者可以成功猜測用戶的口令,從而不能達到真正的三因子安全. 并且該方案也沒有考慮用戶撤銷和重注冊功能. 文獻[18]采用簽密技術(shù)實現(xiàn)互相認證,該方案具有可證明安全性,然而與文獻[17]一樣,文獻[18]同樣不能提供三因子安全,并且文獻[18]在移動端使用了兩次映射到域上的hash運算,使得計算效率明顯降低. 文獻[19]設(shè)計了一個匿名認證協(xié)議,但該方案使用條件非??量蹋笥脩舯仨毢戏ㄊ匦?,否則惡意用戶可以假冒任何服務(wù)器和其他用戶. 因為移動端存儲 < (DS1,PK1),(DS2,PK2), · · ·, ( DSi,PKi), · · ·> ,PKi為用戶和服務(wù)提供者共享的秘密值,方案主要通過PKi進行認證和協(xié)商,然而用戶的移動設(shè)備中存儲所有服務(wù)提供者的PKi,惡意的用戶可以任意假冒服務(wù)提供者和其他用戶.
綜上所述,本文設(shè)計一種適用于移動云服務(wù)環(huán)境高效的具有隱私保護的認證協(xié)議. 主要貢獻如下:
(1) 抗錯誤口令登錄和修改攻擊和多因子安全是密碼協(xié)議中非常重要的兩個安全屬性,然而很少有協(xié)議同時滿足兩個安全屬性,如上述協(xié)議[5,16-19]中均不能同時滿足這兩個安全屬性,本文利用Wang等[20-23]提出的fuzzy verifier方法,設(shè)計能同時滿足抗錯誤口令攻擊和多因子安全的方案.
(2) 上述移動云服務(wù)環(huán)境的協(xié)議[5,16-18]在移動終端均使用計算復(fù)雜度高的映射到域上的hash運算,且文獻[18]使用兩次. 然而通過分析發(fā)現(xiàn)用普通的hash函數(shù)得到的比特序列對秘密值的比特序列進行消息掩蓋保護能達到同樣的安全效果. 因此,本文未使用映射到域上的hash函數(shù),計算效率明顯提高.
(3) 本文設(shè)計一種新的適用于移動云服務(wù)環(huán)境的隱私保護認證方案,可證明安全技術(shù)證明新方案是安全的. 此外,新方案解決了現(xiàn)有改進方案中的安全問題,安全對比表明新方案具有更高的安全功能,計算效率對比表明,與近期方案[5,16-18]相比新方案的計算效率顯著提高.
基于文獻[5,16]建立適合本文方案的安全模型.該安全模型定義為攻擊者A和挑戰(zhàn)者ζ的游戲,假定用戶Ui和服務(wù)器Sj之間有概率多項式時間攻擊者 A,Ui∈U,Sj∈S,i,j = 1,2, · · ·, U 為用戶集合,S為移動云服務(wù)提供者集合,ΠU,s為用戶預(yù)言機,用于會話s中與移動云服務(wù)提供者交互,ΠS,s為移動云服務(wù)提供者預(yù)言機,用于會話s中與用戶交互的預(yù)言機. 攻擊者A可以進行下列詢問:
hi(mi):該詢問模擬 hash函數(shù),A 發(fā)起詢問,ζ生成隨機數(shù)hi∈,并將其返回給A.
Register(D):該詢問模擬A作為一個合法的用戶向智能卡生成中心(smart card generated center,SGC)申請注冊,A發(fā)送身份標識D,ζ返回移動存儲設(shè)備中的秘密信息.
Send(C,s,C′,M):該詢問模擬攻擊者 A的主動攻擊,A假冒參與方C′發(fā)送消息M給另一個參與方C的預(yù)言機ΠC,s,預(yù)言機按照協(xié)議的規(guī)定執(zhí)行協(xié)議,并將結(jié)果返回給攻擊者A. 如P′ 和M為空,則表示用戶發(fā)起一個新的會話.
Reveal(s):該詢問模擬已知會話攻擊,返回會話s中用戶和移動云服務(wù)提供者之間的會話密鑰.
Corrupt(Di,Wi):該詢問模擬口令 Wi丟失攻擊,返回用戶Di的口令.
Corrupt(Di,Mi):該詢問模擬移動設(shè)備 Mi丟失攻擊,返回移動設(shè)備中存儲的秘密參數(shù).
Corrupt(Sj):該詢問模擬惡意服務(wù)提供者攻擊.
Test(Ui,Sj,s):該詢問模擬會話密鑰的語義安全性,如果測試會話沒有計算出會話密鑰,則輸出“⊥”,終止該詢問,否則,隨機選擇一個比特b∈{0,1},拋擲一枚硬幣,若硬幣正面朝上,b = 0,返回真實的會話密鑰;否則,b = 1,從密鑰空間中選擇一個隨機數(shù),將其返回. 攻擊者需要輸出0或1作為結(jié)果. 注意:攻擊者A只能進行一次詢問.
匹配會話和安全認證密鑰交換協(xié)議定義如下:
定義 1匹配會話:如果會話實例 ΠU,s和 ΠS,s′為接受狀態(tài),且 s′ = s,pidU= S,pidS= U,則稱 ΠU,s和ΠS,s′為匹配會話,其中 pidU和 pidS表示參與協(xié)議另一交互方的身份標識.
定義2安全的認證協(xié)議:如果下面的安全屬性成立,則本文協(xié)議為安全的認證協(xié)議:
(1) ΠU,s和 ΠS,s為匹配會話;
(2) ΠU,s接受 A 為 ΠS,s發(fā)生的概率是可忽略的;
(3) ΠS,s接受 A 為 ΠU,s發(fā)生的概率是可忽略的;
(4) 如果會話是新鮮的,且 ΠU,s和 ΠS,s是匹配會話,它們有共同的會話密鑰,且會話密鑰和隨機數(shù)是不可區(qū)分的;
(5) 當A獲取移動設(shè)備,并得到移動設(shè)備中的秘密參數(shù),則A成功猜測口令的概率是可忽略的.
注意 ΠU,s和 ΠS,s互相接受,且沒有進行 Reveal詢問,則稱為新鮮會話.
移動云服務(wù)應(yīng)用于公開的無線網(wǎng)絡(luò)環(huán)境,這使得移動云服務(wù)環(huán)境具有更高的安全需求. 除了文獻[16]指出安全需求之外,移動云服務(wù)環(huán)境的認證協(xié)議還應(yīng)滿足如下的安全需求:
(1) 防止錯誤口令登錄或修改攻擊:用戶登錄階段應(yīng)能有效地檢測口令的正確性,防止無效的登錄引起額外的通信和計算代價. 同時修改口令時應(yīng)驗證舊口令的正確性,因為錯誤的口令修改會破壞移動設(shè)備的秘密參數(shù),使用戶無法再登錄[24].
(2) 友好的用戶口令修改策略:用戶能自由修改口令,修改時不需要遠程服務(wù)提供者參與[9,20-24].
(3) 雙因子安全:雙因子安全為泄露用戶兩個認證因子中任何一個不會影響協(xié)議的安全性[20-24]. 本文協(xié)議兩個認證因子為口令和移動設(shè)備,若口令或移動設(shè)備丟失(假設(shè)攻擊者得到移動設(shè)備,能夠獲取移動設(shè)備中的秘密參數(shù))不會影響認證方案的安全.
(4) 有效的用戶撤銷和重注冊機制:實際使用中,會有移動設(shè)備丟失或被盜的情況,所以應(yīng)考慮用戶撤銷策略,確保用戶發(fā)現(xiàn)移動設(shè)備丟失時,向SGC發(fā)起撤銷申請,SGC處理后原來移動設(shè)備中的秘密參數(shù)值不可以再用來訪問服務(wù). 另外,若惡意的攻擊者知道用戶的身份標識,并利用該標識向SGC申請注冊,SGC按照協(xié)議的規(guī)定給注冊者發(fā)送秘密參數(shù),則惡意的攻擊者可以假冒用戶. 因此,移動云服務(wù)環(huán)境中應(yīng)考慮相同用戶身份重注冊機制[6,25-26].
(1) SGC選擇兩個階為q的群G1和G2,以及雙線性對 e:G1× G1→G2,g = e(P,P)其中 P 為G1的生成元.
(2) SGC 生成隨機數(shù) sk∈Z?q,計算 Pk=sk·P,sk作為系統(tǒng)主密鑰,Pk作為公開密鑰.
(3) SGC選擇5個安全的hash函數(shù),分別為h0,h1,h3,h4:{0,1}*→Zq,h2:{0,1}*→{ 0 ,1,···,1 023 },其中l(wèi)為G1域中元素的長度.
(4) SGC 保存主密鑰 sk,并公開參數(shù){q,G1,G2,e,h0,h1,h2,h3,h4,P,Pk,g}.
當用戶Ui想訪問移動云服務(wù)提供者Sj的時候,Ui和Sj必須向SGC申請注冊,Ui注冊過程如圖1所示.
圖1 用戶注冊階段Fig.1 User registration phase
具體流程如下:
(1) Ui生成隨機數(shù) bi,選擇身份標識 Di和口令Wi,計算 Ci= h0(Di||Wi||bi),將身份標識 Di和 Ci通過安全信道發(fā)送給SGC.
(2) SGC首先驗證Di是否存在用戶信息表中,若存在,SGC拒絕注冊申請,否則,SGC利用sk計算
式中:T為Ui的使用期限.
然后SGC更新用戶信息表,將{Di,T}存入用戶信息表中,將Fi、V和T通過安全信道發(fā)送給Ui.
(3) Ui收到 Fi、V 和 T 后,將其和 bi存儲于移動設(shè)備中.
移動云服務(wù)提供者Sj注冊過程如下:
(1) 將Sj身份標識Dj通過安全信道發(fā)送給SGC.
(2) SGC首先驗證Dj是否在云服務(wù)提供者信息表中,若存在,SGC拒絕注冊申請,否則,SGC利用主密鑰sk計算,將{Dj}存入云服務(wù)提供者信息表中,將Kj通過安全信道發(fā)送給Sj.
(3) Sj收到Ki后,將其存儲于安全的存儲區(qū).
用戶訪問移動云服務(wù)提供者,互相認證密鑰協(xié)商過程如圖2所示,具體流程如下:
圖2 用戶認證階段Fig.2 User authentication phase.
(1) Ui輸入 Di和口令 Wi,計算 Ci= h0(Di||Wi||bi),Ki= Fi⊕Ci,V′ = h2(h3(Ki||Ci)),驗證 V′ 和 V 是否相等,若不相等,則拒絕認證登錄,否則,計算Ki=Fi⊕Ci,向 Sj發(fā)送登錄請求.
(2) Sj生成隨機數(shù) y∈,計算 Y = gy,將其發(fā)送給Ui.
(3) Ui生成隨機數(shù) x∈,計算 X = gx,Kij=h3(Y||X||Yx),R1= xPk+ h1(Dj)xP,ω = h4(Di||Dj||Y||X||Kij||R1),Ei= (x + ω)Ki,CT= (Di||T||Ei)⊕h0(Kij),然后將{R1,CT}發(fā)送給Sj.
(4) Sj收到{R1,CT}后,計算 X = e(R1,Kj),Kij=h3(Y||X||Xy),Di||T||Ei= CT⊕h0(Kij),ω = h3(Di||Dj||Y||X||Kij||R1),然后,Sj驗證等式 e(Ei,h1(Di)P + Pk) =Xgω是否成立,若不成立,則拒絕登錄請求,否則Sj計算 V1= h4(Dj||Di||Y||Kij||R1||X),并將其發(fā)送給 Ui.
(5) Ui計算 V′1= h4(Dj||Di||Y||Kij||R1||X),驗證其與收到的V1是否相等. 若不相等則終止會話,否則Ui確認Sj是合法的移動云服務(wù)提供者.
用戶Ui更換的口令的具體步驟如下:
步驟 1Ui輸入 Di和 Wi到移動設(shè)備,移動設(shè)備計算計算 Ci= h0(Di||Wi||bi),Ki=Fi⊕Ci,V′ =h2(h3(Ki||Ci)),驗證 V′和 V 是否相等,若不相等,則說明身份標識或口令驗證失敗,移動設(shè)備拒絕口令修改需求.
步驟2用戶輸入新口令,智能卡計算=h0(Di||||bi), V?= h2(h3(Ki||)),= Fi⊕Ci⊕.
步驟3最后,用戶用和V更新智能卡中的Fi和V.
當用戶發(fā)現(xiàn)移動設(shè)備丟失,向SGC申請撤銷,SGC驗證用戶身份后,立即通報所有的服務(wù)提供者.原來舊的身份標識將列入黑名單.
假定安全模型定義為一個攻擊者A和挑戰(zhàn)者ζ的游戲,首先給出兩個數(shù)學(xué)困難問題[5,16,27].
定義 3 k-CAA (collusion attack algorithm with k-traitors)問題:給定 k 個 e1,e2,···,ek∈ Z?q以及 k +2 個 P,計算
·P e0? {e1,e2,···,ek} 是不可行的,其中 ,并且sk是中未知的元素.
定義 4 k-mBIDH (modified bilinear inverse diffie-hellman with k value)問題:定 k 個e1,e2,···,ek∈
引理1安全的用戶認證:如果hash函數(shù)(h0,h1,h3,h4)是理想的隨機函數(shù)且 ΠS,s是接受狀態(tài),則在本文方案中沒有一個多項式攻擊者能夠以不可忽略的概率成功假冒用戶.
證明 假設(shè)攻擊者A能夠以不可忽略的概率?成功地假冒用戶完成認證,則一定有一個挑戰(zhàn)者ζ能夠以不可忽略的概率解決k-CAA問題.
給定 k-CAA 問題{( e1,e2,···,ek∈q),P,sk·P,挑戰(zhàn)者 ζ的任務(wù)是計算. ζ發(fā)送系統(tǒng)參數(shù){q,G1,G2,e,h0,h1,h2,h3,h4,P,PK,g}給 A. 假定挑戰(zhàn)者的身份標識為D0. 則ζ可以與A進行如下詢問:
(1) h1(Di):h1(Di)詢問維護一個列表 Lh1,該列表初始化為空. ζ驗證Di是否在 Lh1中. 如果在,ζ返回它對應(yīng)的值 hi給 A. 否則,如果 Di= D0,將h1(D0||T)← e0,否則將 h1(Di||T)← ei. 則,ζ將元組(Di,hi)存儲于表 Lh1中,并將 hi返回給 A.
(2) hi(mi):hi(mi),i = 0,3,4 維護一個列表 Lhi,該列表初始化為空. ζ驗證mi是否在 Lhi中.如果在,ζ返回它對應(yīng)的值hi給A. 否則,ζ生成一個隨機數(shù)hi,將元組(mi,hi)存儲于表 Lhi中,并將 hi返回給 A.
(3) Register(Di):在該詢問中,ζ維護一個列表LR,該列表初始化為空. 當 A詢問 Di時,ζ驗證Di是否存在表 LR中. 如果存在,ζ返回 Di給 A. 否則,ζ操作如下:
① 如果 Di= D0,ζ記 h1(Di||T)=e0, Ki=⊥ ,將元組(Di,e0)和(Di,Ki)分別存儲于 Lh1和 LR中. ζ將Di返回給A.
② 如果 Di≠ D0, ζ 記 h1(Di||T)=ei,將元組(Di||T,ei)和(Di,Ki)分別存儲于 Lh1和 LR中.ζ將Di返回給A.
(4) Send(Ui,s,Sj,M):當該詢問發(fā)起時,ζ首先驗證Sj和M是否為空. 如果是,ζ根據(jù)協(xié)議的規(guī)定發(fā)起登錄申請. 否則ζ驗證Ui= D0是否相等,如果不相等,ζ根據(jù)協(xié)議的規(guī)定返回{R1,CT}給A,否則,ζ終止游戲.
(5) Send(Sj,s,Ui,M):ζ根據(jù)協(xié)議的規(guī)定將執(zhí)行后的結(jié)果返回給A.
(6) Reveal(s):ζ返回會話 s的 Kij給 A.
(7) Corrupt(Di,Wi):ζ返回身份標識為 Di的用戶口令Wi給A.
(8) Corrupt(Di,Mi):ζ返回(Fi,Vi,T)給 A.
(9) Corrupt(Sj):ζ返回 Sj的狀態(tài)給 A.
基于以上詢問,如果A能成功地偽造消息{R1,CT},則A能夠成功地假冒用戶完成認證. 則根據(jù)偽造引理[16,27],A通過選擇另一個隨機預(yù)言機h1偽造另一個合法的消息{R1,C′T},從而得到新的 ω′和 E′i,則可得到下面兩個等式:
由式(1)和式(2)可得:
由式(3)可得:
由式(4)可得, ( ω -ω′)-1(Ei-) 就是 k-CAA問題的解.下面給出 ζ 得到k-CAA問題的概率,為了方便理解,定義了以下4個事件:
B1:ζ知道A攻擊自己的事件,假設(shè)在k+1次會話中A至少攻擊一次,ζ不知道A攻擊的是誰,直到Send詢問終止.因此該事件發(fā)生的概率為P(B1) =,其中,qs表示Send詢問的次數(shù).
B2:A成功地假冒挑戰(zhàn)者的事件.
B3:h1(D0||T)從 Lh1表正確地獲取.
B4:h4(Di||Dj||Y||X||Kij||R1)從表 Lh4中正確獲取.
可以得到:
其中: qh1和 qh4分別為h1詢問和h4詢問的訪問次數(shù).
因此, ζ 獲到k-CAA問題的概率如下:
顯然,ζ得到k-CAA問題的概率是不可忽略的,因為?是不可忽略的. 這是矛盾的假設(shè). 綜上所述,不存在概率多項式時間攻擊者能夠以不可忽略的概率假冒一個合法的用戶.
引理 2安全移動云服務(wù)提供者認證:如果hash 函數(shù)(h0,h1,h3,h4)是理想的隨機函數(shù)且 ΠU,s是接受狀態(tài),則本文方案中沒有一個多項式攻擊者能夠以不可忽略的概率成功假冒移動云服務(wù)器提供者.
證明假設(shè)攻擊者A能夠以不可忽略的概率?成功地假冒移動云服務(wù)提供者完成認證,則一定有一個挑戰(zhàn)者 ζ 能夠以不可忽略的概率解決k-mBIDH問題.
給 定 k-mBIDH問 題{( e1,e2,···,ek∈),P,挑戰(zhàn)者ζ的任務(wù)是計算 e (P,P)y/(sk+e0). ζ發(fā)送系統(tǒng)參數(shù){q,G1,G2,e,h0,h1,h2,h3,h4,P,Pk,g}給 A. 假定挑戰(zhàn)者的身份標識為D0. 則ζ可以與A進行hi(i =0,1,3,4)詢問,Register詢問、Reveal詢問以及Corrupt詢問,這些詢問和引理1證明中的詢問相似,其他詢問如下:
(1) Send(Ui,s,Sj,M):ζ根據(jù)協(xié)議的規(guī)定將執(zhí)行后的結(jié)果返回給A.
(2) Send(Sj,s,Ui,M):ζ驗證 Sj= D0是否成立,如果不成立,ζ根據(jù)協(xié)議的規(guī)定將執(zhí)行后的結(jié)果返回給A;否則,ζ終止游戲.
基于以上假設(shè),如果A能夠成功的偽造V1,則A能夠成功地仿冒服務(wù)提供者完成認證. 有下面兩種情況可以成功偽造V1.
Case 1A不知道X的值能夠正確地猜測V1.這種情況發(fā)生的概率等于hash函數(shù)發(fā)生碰撞的概率,概率為,其中l(wèi)為hash函數(shù)h4的輸出長度.
Case 2A通過h4詢問獲得X. 這意味著X是k-mBIDH問題的解.下面給出 ζ 得到k-mBIDH問題的概率,與引理1相同,為了方便理解,定義了以下4個事件:
B1:ζ知道A在攻擊自己的事件.
B2:A成功地假冒挑戰(zhàn)者的事件.
B3:h3(Y||X||Xy)從 Lh3表正確地獲取.
B4:h4(Dj||Di||Y||Kij||R1||X)從表 Lh4中正確獲取.
可以得到:
其中:qh3為h3詢問的訪問次數(shù).
因此,ζ獲到k-mBIDH問題的概率如式(6).
由于?是不可忽略的,ζ得到k-mBIDH問題的概率是不可忽略的. 顯然這是矛盾的假設(shè). 綜上所述,不存有概率多項式時間攻擊者能夠以不可忽略的概率假冒一個合法的移動云服務(wù)提供者.
引理 3安全的密鑰協(xié)商:如果hash函數(shù)(h0,h1,h3,h4)是理想的隨機函數(shù),且 ΠU,s和 ΠS,s是接受狀態(tài),則在本文方案中沒有一個多項式攻擊者能夠以不可忽略的概率成功區(qū)分會話密鑰Kij和隨機數(shù).
證明攻擊者 A 可以發(fā)起 hi(i = 0,1,3,4)詢問、Register詢問、Send詢問、Corrupt詢問和 Test詢問,ζ隨機選擇一個 b ∈{0,1} . 如果b = 1,ζ返回會話密鑰Kij給A,否則,ζ返回一個隨機數(shù)給A. 根據(jù)引理1和引理2證明,如果A能夠成功地區(qū)分Kij和一個隨機數(shù),則A必然能夠解決k-CAA問題或kmBIDH問題. 顯然這是矛盾的假設(shè). 所以,不存有概率多項式時間攻擊者能夠以不可忽略的概率成功地區(qū)分會話密鑰Kij和隨機數(shù).
定理 1如果 hash 函數(shù)(h0,h1,h3,h4)是理想的隨機函數(shù),k-CAA問題和k-mBIDH問題是困難的,且 ΠU,s和 ΠS,s是接受狀態(tài),則本文方案是安全的.
證明根據(jù)引理1可知,如果k-CAA問題是困難的,則不存在概率多項式時間攻擊者能夠成功假冒用戶完成認證. 根據(jù)引理2可知,如果k-mBIDH問題是困難的,則不存在概率多項式時間攻擊者能夠成功假冒服務(wù)提供者完成認證. 根據(jù)引理3可知,如果k-CAA問題和k-mBIDH問題是困難的,則不存在多項式攻擊者能夠以不可忽略的概率成功區(qū)分會話密鑰Kij和隨機數(shù). 除此之外,如果攻擊者發(fā)起Corrupt(Di, Mi)詢問,則攻擊者可以獲取移動設(shè)備中的秘密參數(shù)(Fi,Vi,T),此時攻擊者能夠成功猜測口令的概率為1 024/|DPW| ,其中,|DPW|為口令空間[18-21],顯然這是可以忽略的. 綜上所述定義2成立,所以定理1成立.
(1) 互相認證
根據(jù)引理1和引理2可知,不存在概率多項式時間攻擊者能夠成功假冒用戶或者服務(wù)提供者完成認證. 因此,如果用戶和移動云服務(wù)提供者均為接受狀態(tài),則與其通信的參與者確實是他所宣稱的身份.
(2) 用戶匿名和不可追蹤
本文協(xié)議中,用協(xié)議的會話密鑰保護用戶的身份標識Di,根據(jù)引理3可知,不存在概率多項式時間攻擊者能夠成功地區(qū)分會話密鑰和隨機數(shù),除了通信雙方,任何第三方無法獲取會話密鑰,因此,任何第三方無法獲取用戶的Di,從而保證了用戶的隱私安全. 此外,協(xié)商的會話密鑰為Kij= h3(Y||X||Yx),而X = gx和Y = gy是新鮮的,因此每次會話產(chǎn)生的Kij是獨立的,所以攻擊者無法追蹤用戶.
(3) 雙因子安全
雙因子安全是指用戶的兩個認證因子中有一個因子泄露了,不會對協(xié)議造成安全威脅. 本文協(xié)議中,用戶的兩個因子分別為口令和移動設(shè)備,當口令丟失時,沒有移動設(shè)備攻擊者無法從公開的信道上傳輸?shù)南⒅谢謴?fù)Ki,從而無法完成認證和密鑰協(xié)商. 另一方面,當用戶的移動設(shè)備丟失時,假設(shè)此時用戶能夠獲取移動設(shè)備中的秘密參數(shù)(Fi,Vi,T)、Fi= Ki⊕Ci、V = h2(h3(Ki||Ci))、Ci= h0(Di||Wi||bi),此時攻擊者仍然無法成功猜測口令,因為存在|DPW|/1 024個候選口令滿足等式,因此本文協(xié)議可以提供雙因子安全.
(4) 用戶撤銷和重注冊
當用戶的移動設(shè)備丟失或被盜時,用戶需要向SGC申請重新注冊,并報備設(shè)備已經(jīng)丟失,之前的身份標識和秘密參數(shù)值已經(jīng)不能再使用,當用戶申請撤銷后,用戶重新申請注冊時需要使用一個新的身份標識,將原來的身份標識劃入黑名單,并廣播給系統(tǒng)中的每個移動云服務(wù)提供者. 同時,本文協(xié)議在注冊時,SGC 產(chǎn)生秘密值 Ki= 1/(sk+ h1(Di||T))P 時增加期限T,在期限T內(nèi)Ki有效,過期需要重新注冊,所以用戶若是不知道自己的移動設(shè)備丟失,在期限T過后,攻擊者無法使用移動設(shè)備.
(5) 錯誤口令登錄修改攻擊
本文協(xié)議中,移動設(shè)備中存儲了驗證信息V =h2(h3(Ki||Ci))和 Ci= h0(Di||Wi||bi),每次用戶登錄和修改口令,都需要驗證輸入的口令是否正確,如果輸入錯誤的口令,則移動設(shè)備拒絕登錄或修改口令,因此本文協(xié)議可以抗錯誤口令登錄、修改引起的拒絕服務(wù)攻擊.
表1將本文方案與最近相關(guān)方案[5,16-18]進行安全功能對比,結(jié)果表明本文方案可抗上述所有攻擊.
表1 安全功能對比結(jié)果Tab.1 Comparison of security functionality
由于本方案和He等[16]方案所使用的密碼算法一致,則繼續(xù)沿用He等方案中算法操作的運行時間,移動端使用的設(shè)備參數(shù)情況為:Samsung Galaxy S5,四核2.45 GHz處理器,2 GB內(nèi)存,操作系統(tǒng)為Google Andriod 4.4.2. 服務(wù)器端使用的設(shè)備參數(shù)情況為:Dell計算機,型號:I5-4460S,2.90 GHz處理器,4 GB內(nèi)存,操作系統(tǒng)為Window 8. He等方案相關(guān)操作的運行時間如表2所示.
表2 相關(guān)操作運行時間Tab.2 Running time of related operations ms
表 2中:Tbp為雙線性對的執(zhí)行時間;Tsm為G1域中點乘的操作時間;Tmtp為hash函數(shù)H的操作時間;Tpa為G1域中點加的操作時間;Texp為G2域中指數(shù)的操作時間;Tmul為G2域中乘法的操作時間;Th為一般的hash函數(shù)操作時間.
表2表明映射到域上的hash函數(shù)H的運行時間最長. 本文方案使用一般的hash函數(shù)h0替代H,掩蓋保護時將Ki轉(zhuǎn)換成二進制比特序列,登錄時,將二進制比特序列轉(zhuǎn)換成G1域上的大整數(shù)即可.具體實現(xiàn)過程為:注冊時移動設(shè)備存儲的值為Fi=BigIntToBit(Ki)⊕h0(Di||Wi||bi),登錄時計算 Ki= BitTo-BigInt(Fi⊕h0(Di||Wi||bi)). 其中 BigIntToBit( )為大整數(shù)轉(zhuǎn)換為比特序列的函數(shù),BitToBigInt( )為比特序列轉(zhuǎn)換為大整數(shù)的函數(shù),這兩個函數(shù)的計算代價非常小,幾乎可以忽略不計,因此本文方案有效地改進了計算效率.
表3將本文方案與最近相關(guān)方案[5,16-18]進行計算性能對比,對比結(jié)果表明本文方案的實現(xiàn)速度最高.
表3 計算性能對比Tab.3 Comparison of computation cost ms
隨著無線通信技術(shù)的發(fā)展,移動設(shè)備成為生活中必不可少的部分,移動云服務(wù)已經(jīng)成為非常受歡迎的網(wǎng)絡(luò)服務(wù),認證和隱私保護是訪問移動云服務(wù)的最基本的安全需求. 本文在He等改進方案的基礎(chǔ)上設(shè)計了一個高效的適用于移動云服務(wù)環(huán)境的隱私保護認證協(xié)議. 安全性分析結(jié)果表明,本文設(shè)計的方案能夠提供各種安全需求并能抗現(xiàn)有的各種攻擊,性能分析結(jié)果表明,本文協(xié)議具有更高效的計算性能和通信性能. 在以后的工作中,我們將致力于更加高效的、更加實用化的移動云服務(wù)環(huán)境隱私保護認證協(xié)議研究.