楊曉云,徐國(guó)華
(太原學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系,山西 太原 030032)
進(jìn)入新世紀(jì)后,伴隨著科技不斷發(fā)展,移動(dòng)手機(jī)的使用越來(lái)越普及?;诂F(xiàn)有移動(dòng)手機(jī)的強(qiáng)大性,一部移動(dòng)手機(jī)可以完成非常多的事情,比如可以使用移動(dòng)手機(jī)上網(wǎng)課、可以使用移動(dòng)手機(jī)看電影看電視劇等[1,2]。用戶在使用移動(dòng)手機(jī)進(jìn)行上述事情過(guò)程中,將會(huì)一次或多次訪問(wèn)不同的應(yīng)用程序服務(wù)器,該過(guò)程中用戶與服務(wù)器之間可能交互一些諸如口令等隱私信息。鑒于移動(dòng)手機(jī)與應(yīng)用程序服務(wù)器間基于無(wú)線鏈路交互數(shù)據(jù),無(wú)線鏈路固有的開(kāi)放性,使得兩者交互數(shù)據(jù)過(guò)程中存在一定的安全隱患[3-5]。為能夠保證合法用戶重要信息或隱私信息的安全性,就需要設(shè)計(jì)出安全的認(rèn)證協(xié)議或方案,如文獻(xiàn)[6-10]中設(shè)計(jì)出多個(gè)不同類型的認(rèn)證協(xié)議或方案。
Wang等在文獻(xiàn)[11]中給出一個(gè)改進(jìn)的認(rèn)證方案,并聲稱具備較好的安全屬性。Yin等在文獻(xiàn)[12]中基于橢圓曲線與生物特征值設(shè)計(jì)了一個(gè)認(rèn)證方案,但對(duì)方案進(jìn)行分析,發(fā)現(xiàn)方案無(wú)法抵抗假冒攻擊。Wang等在文獻(xiàn)[13]中提出了一種3個(gè)多服務(wù)器環(huán)境下的匿名認(rèn)證方案,方案雖具備完善的安全需求,但方案采用傳統(tǒng)算法實(shí)現(xiàn)信息加密,使得系統(tǒng)整體計(jì)算量部分超出計(jì)算能力,無(wú)法廣泛推廣使用。
Du等在文獻(xiàn)[14]中對(duì)文獻(xiàn)[11]中設(shè)計(jì)的方案進(jìn)行了深入分析,指出該方案并沒(méi)有實(shí)現(xiàn)真正的匿名性,同時(shí)還指出該方案易遭受服務(wù)器一端假冒攻擊的安全缺陷問(wèn)題。在此之后,Du等在文獻(xiàn)[14]中設(shè)計(jì)一個(gè)改進(jìn)的方案,該方案采用哈希函數(shù)及中國(guó)剩余定理實(shí)現(xiàn)對(duì)信息的加密,雖暫未發(fā)現(xiàn)該方案存在何種安全隱患,但鑒于方案采用的加密算法,使得系統(tǒng)整體計(jì)算量大幅度提升,僅能使用在特定場(chǎng)合中,無(wú)法大規(guī)模推廣。
鑒于現(xiàn)有的認(rèn)證方案僅適用單服務(wù)器或存在安全隱患或計(jì)算量大等不足,文中給出一個(gè)將口令與生物特征值相結(jié)合設(shè)計(jì)的認(rèn)證方案。方案可適用于多服務(wù)器環(huán)境下,使方案具有更廣闊的使用范圍;方案基于一種按位運(yùn)算實(shí)現(xiàn)的超輕量級(jí)加密算法對(duì)信息加密,能夠極大程度上降低系統(tǒng)整體計(jì)算量;循環(huán)移位運(yùn)算實(shí)現(xiàn)過(guò)程中充分利用加密參數(shù)自身具備的漢明權(quán)重,可在減少參量引入的同時(shí),增加攻擊者破解難度。
文中設(shè)計(jì)一種加密算法,即循環(huán)移位運(yùn)算。循環(huán)移位運(yùn)算統(tǒng)一用Cso(X,Y) 符號(hào)表示,并可按照如下方式定義及實(shí)現(xiàn):
(1)X、Y是長(zhǎng)度為L(zhǎng)位的二進(jìn)制串,W(X) 表示二進(jìn)制串X的漢明權(quán)值、W(Y) 表示二進(jìn)制串Y的漢明權(quán)值;
(2)當(dāng)W(X)≥W(Y) 時(shí),如果滿足 (W(X)-W(Y))<(L-2), 則對(duì)二進(jìn)制串Y的第2位至第L-1位循環(huán)向左移動(dòng)W(X)-W(Y) 位,且保持二進(jìn)制串Y的第1位、第L位不變動(dòng),則可得到循環(huán)移位運(yùn)算的最終結(jié)果。如果滿足 (W(X)-W(Y))≥(L-2), 則對(duì)二進(jìn)制串Y的第2位至第L-1位循環(huán)向左移動(dòng)L-(W(X)-W(Y))/2位,且保持二進(jìn)制串Y的第1位、第L位不變動(dòng),則可得到循環(huán)移位運(yùn)算的最終結(jié)果;
(3)當(dāng)W(X) 其中L-(W(Y)-W(X))/2中的 (W(Y)-W(X))/2按照取整向零的方式取運(yùn)算結(jié)果整數(shù)。 為便于對(duì)循環(huán)移位運(yùn)算的理解,將通過(guò)下面兩個(gè)例子進(jìn)行講解。取長(zhǎng)度L=12,X=101100101100,Y=001001001010, 則可以得到W(X)=6、W(Y)=4, 滿足W(X)≥W(Y) 及 (W(X)-W(Y))<(L-2) 情況,根據(jù)上述描述,可得到循環(huán)移位運(yùn)算結(jié)果為Cso(X,Y)=000100101010, 具體過(guò)程如圖1所示。 再次取長(zhǎng)度L=12,X=001001001010,Y=101100101100, 則可以得到W(X)=4、W(Y)=6, 滿足W(X) 本章節(jié)主要從下面兩個(gè)大方面展開(kāi),第一個(gè)方面,給出方案設(shè)計(jì)過(guò)程中相關(guān)的符號(hào)含義說(shuō)明;第二個(gè)方面,描述文中認(rèn)證方案具體實(shí)現(xiàn)步驟。 其中文中認(rèn)證方案具體實(shí)現(xiàn)步驟又可分為5個(gè)不同階段,具體如下:服務(wù)器注冊(cè)階段、用戶注冊(cè)階段、登錄階段、認(rèn)證階段、口令修改階段。 文中方案涉及到多個(gè)符號(hào),為便于對(duì)方案的理解,現(xiàn)將部分符號(hào)所表示的含義說(shuō)明如下: Sj編號(hào)為j的服務(wù)器 Ui編號(hào)為i的用戶 RC注冊(cè)中心 KSRC為Sj與RC間共享密鑰 IDj為Sj的身份標(biāo)識(shí) IDi為Ui的身份標(biāo)識(shí) PWi為Ui的口令密碼 ai為Ui注冊(cè)時(shí)選取的隨機(jī)數(shù) βi為Ui的生物特征 γ系統(tǒng)的主密鑰 b為Ui擁有的智能卡產(chǎn)生的隨機(jī)數(shù) d為Sj產(chǎn)生的隨機(jī)數(shù) ⊕異或運(yùn)算 Cso(X,Y) 循環(huán)移位運(yùn)算 服務(wù)器注冊(cè)階段開(kāi)始的時(shí)候,編號(hào)為j的應(yīng)用服務(wù)器Sj向注冊(cè)中心RC申請(qǐng)成為一個(gè)合法的服務(wù)器。同時(shí)注冊(cè)中心RC將向該服務(wù)器Sj分配一個(gè)Sj與RC間共享密鑰KSRC。 新的用戶如果想要獲取應(yīng)用服務(wù)器Sj上面的合法資源,則新的用戶需要先在注冊(cè)中心RC上注冊(cè),成為一個(gè)合法的新用戶。用戶注冊(cè)階段具體步驟描述如下: 步驟1 新的用戶Ui先自主選擇一個(gè)身份標(biāo)識(shí)IDi、 口令密碼PWi、 注冊(cè)時(shí)選取的隨機(jī)數(shù)ai, 同時(shí)提取生物特征βi, 接著新用戶Ui開(kāi)始計(jì)算Ai、Bi, 最后新用戶Ui通過(guò)安全鏈路將IDi、Ai、Bi發(fā)送給注冊(cè)中心RC。 其中Ai=Cso(IDi,ai)、Bi=Cso(PWi,βi)。 步驟2 注冊(cè)中心RC在收到信息后,通過(guò)計(jì)算依次可得到Ci、Di、Ei、Fi、Gi。 其中Ci=Cso(IDi,γ)、Di=Cso(Ci_R,Ci_L)、Ei=Di⊕Bi、Fi=Di⊕Ai、Gi=KSRC⊕Ci。 步驟3 待注冊(cè)中心RC計(jì)算完畢之后,注冊(cè)中心RC將存儲(chǔ)新用戶Ui注冊(cè)信息,并將參數(shù) 步驟4 新用戶Ui收到智能卡之后,新用戶Ui將參數(shù)ai存儲(chǔ)于智能卡中。 待用戶注冊(cè)階段完成,智能卡中存儲(chǔ)參數(shù)有 待新用戶Ui完成注冊(cè),成為一個(gè)合法用戶后,新用戶Ui可向應(yīng)用服務(wù)器Sj發(fā)起登錄請(qǐng)求,待登錄成功,新用戶Ui可享受應(yīng)用服務(wù)器Sj上資源。登錄具體步驟描述如下: 步驟1 新用戶Ui登錄服務(wù)器Sj, 將智能卡插入服務(wù)器Sj相應(yīng)的讀卡器中,同時(shí)新用戶Ui輸入在注冊(cè)階段設(shè)定好的身份標(biāo)識(shí)IDi、 口令密碼PWi、 生物特征βi。 待服務(wù)器Sj收到信息之后,便開(kāi)始服務(wù)器Sj與新用戶Ui之間的雙向認(rèn)證階段。認(rèn)證階段具體步驟描述如下: 步驟2 服務(wù)器Sj生成一個(gè)隨機(jī)數(shù)d, 接著按照約定好的法則依次計(jì)算得到KSU、I3、I4, 最后將 其中KSU=Cso(IDi⊕d,IDj⊕b)、I3=Cso(IDi,b)⊕d、I4=Cso(IDj,d)。 步驟4 服務(wù)器Sj收到信息后,將通過(guò)計(jì)算得到N1, 然后對(duì)比計(jì)算所得N1與接收到的N值是否相等。 若N1≠N, 則服務(wù)器Sj驗(yàn)證新用戶Ui失敗,方案不再往后進(jìn)行。 若N1=N, 說(shuō)明服務(wù)器Sj驗(yàn)證新用戶Ui成功,表明該用戶為合法用戶。 其中N1=Cso(dR,dL)⊕KSU。 待服務(wù)器Sj與新用戶Ui之間的雙向認(rèn)證完成,則新用戶Ui可獲取服務(wù)器Sj的資源。當(dāng)新用戶Ui需修改口令時(shí),用戶修改口令步驟描述如下: 步驟1 用戶Ui向智能卡輸入身份標(biāo)識(shí)IDi、 口令密碼PWi、 生物特征βi。 步驟3 智能卡將按照約定好的規(guī)則計(jì)算得到Enew, 并用Enew替換Ei, 到此為止,口令修改操作正常完成結(jié)束。 其中Enew=Ei⊕Cso(PWi,βi)⊕Cso(PWnew,βi)、Ei=Enew。 (1)相互認(rèn)證 (2)前向安全性 前向安全性是指第三方人員無(wú)法從當(dāng)前獲取的信息中破解出之前會(huì)話用到的或涉及到的隱私信息。文中認(rèn)證方案為能夠提供前向安全行,所有信息在加密過(guò)程中都混有隨機(jī)數(shù),或服務(wù)器Sj產(chǎn)生的隨機(jī)數(shù)混入其中或新用戶Ui選擇的隨機(jī)數(shù)混入其中,這樣將會(huì)使得每輪會(huì)話時(shí),雖都是按照相同的運(yùn)算法則進(jìn)行計(jì)算,但計(jì)算出來(lái)的會(huì)話消息卻不盡相同。因每輪產(chǎn)生的隨機(jī)數(shù)不同,且具備隨機(jī)性,第三方人員從獲取當(dāng)前消息中,無(wú)法逆推出之前涉及到隱私信息。故,文中認(rèn)證方案可提供前向安全需求。 (3)重放攻擊 第三方人員在截獲當(dāng)前會(huì)話消息后,第三方人員假冒成其中一個(gè)會(huì)話實(shí)體,將截獲的消息再次發(fā)送一遍,以企圖通過(guò)另一端實(shí)體驗(yàn)證,進(jìn)而獲悉其它更多隱私信息。認(rèn)證方案消息加密時(shí)有隨機(jī)數(shù)參與,可保證當(dāng)前會(huì)話計(jì)算所得消息值與下輪會(huì)話計(jì)算所得消息值之間無(wú)關(guān)聯(lián),這樣就會(huì)使得第三方人員重發(fā)消息時(shí),無(wú)法通過(guò)另一端實(shí)體驗(yàn)證。故,文中認(rèn)證方案課可提供抵抗重放攻擊安全需求。 (4)假冒攻擊 從理論上來(lái)講,第三方人員可以假冒成會(huì)話過(guò)程中任一個(gè)會(huì)話實(shí)體,具體的,文中會(huì)話過(guò)程中,第三方人員可假冒成服務(wù)器Sj, 也可假冒成新用戶Ui。 鑒于篇幅有限,僅選擇第三方人員假冒成新用戶Ui來(lái)進(jìn)行分析。 第三方人員假冒成新用戶Ui, 將一張假的智能卡插入應(yīng)用服務(wù)器的讀卡器中,第三方人員需要輸入正確的用戶身份標(biāo)識(shí)、正確的口令、與之相對(duì)應(yīng)的正確的生物特征值。但上述合法的3個(gè)參數(shù)信息,只有合法的用戶才具有,且也只有合法用戶才知曉,整個(gè)認(rèn)證方案過(guò)程中,上述3個(gè)參數(shù)信息并沒(méi)有明文出現(xiàn)過(guò),因此第三方人員無(wú)法獲取。第三方人員在無(wú)法獲取的前提下,第三方人員是無(wú)法輸入上述3個(gè)正確的參數(shù)值;待第三方人員輸入信息完成,應(yīng)用服務(wù)器只需要進(jìn)行簡(jiǎn)單計(jì)算,即可識(shí)別出第三方人員是偽造的,認(rèn)證方案結(jié)束。故,文中認(rèn)證方案可提供抵抗假冒攻擊安全需求。 (5)窮舉攻擊 一個(gè)好的認(rèn)證方案,不僅要能夠抵抗假冒、重放等攻擊,更要能夠抵抗第三方人員窮舉分析攻擊。想要抵抗第三方人員發(fā)起的窮舉攻擊最直接的解決辦法是:每個(gè)消息加密過(guò)程中,至少確保有兩個(gè)或兩個(gè)以上參數(shù)信息對(duì)于第三方人員來(lái)說(shuō)不知曉,則第三方人員就無(wú)法窮舉出有用的隱私信息,那么窮舉攻擊就失敗。 這里選取I4=Cso(IDj,d) 為例進(jìn)行分析,文中認(rèn)證方案可抵抗第三方人員的窮舉攻擊。在消息I4中,雖然第三方人員知曉IDj, 亦知曉加密算法具體實(shí)現(xiàn)步驟,但第三方人員不知曉隨機(jī)數(shù)d, 此時(shí)第三方人員將會(huì)采用窮舉方式窮舉出隨機(jī)數(shù)d所有可能取值,但第三方人員無(wú)法成功。根據(jù)文中有關(guān)循環(huán)移位運(yùn)算定義可得知,算法加密過(guò)程中涉及到隨機(jī)數(shù)d自身具備的漢明權(quán)重,即第三方人員在不知曉隨機(jī)數(shù)d的前提下,第三方人員亦無(wú)法知曉隨機(jī)數(shù)d自身具備的漢明權(quán)重。在上述情況下,第三方人員相當(dāng)于有兩個(gè)參量信息不知曉,使得第三方人員無(wú)法窮舉出任何有用的隱私信息。故,文中認(rèn)證方案可提供抵抗窮舉攻擊安全需求。 (6)匿名性 依據(jù)文中認(rèn)證方案的具體描述可得知,在用戶擁有的智能卡中并沒(méi)有存放用戶的身份標(biāo)識(shí)參數(shù),因此,當(dāng)用戶擁有的智能卡在丟失之后,第三方人員也無(wú)法獲悉用戶的真實(shí)身份。另外,可假設(shè)第三方人員通過(guò)一些不正當(dāng)手段獲取了合法用戶的智能卡,則第三方人員可獲取智能卡存放的所有信息 將選擇文中認(rèn)證方案與其它認(rèn)證方案在5個(gè)不同階段的計(jì)算開(kāi)銷進(jìn)行性能對(duì)比分析,具體分析結(jié)果可見(jiàn)表1。 表1中出現(xiàn)的符號(hào)含義如下:hash表示哈希函數(shù)計(jì)算的時(shí)間;xor表示位運(yùn)算的時(shí)間(該處位運(yùn)算包含常見(jiàn)的位運(yùn)算,比如異或運(yùn)算、連接運(yùn)算、與運(yùn)算。因不同位運(yùn)算間時(shí)間差距較小,可認(rèn)為計(jì)算時(shí)間相同,故統(tǒng)一用xor符號(hào)表示);mod表示指數(shù)模冪運(yùn)算的時(shí)間;Cso表示循環(huán)移位運(yùn)算的時(shí)間。 表1 協(xié)議的性能比較 在上述運(yùn)算時(shí)間中,xor表示的位運(yùn)算時(shí)間最短,Cso表示的循環(huán)移位運(yùn)算時(shí)間長(zhǎng)于xor運(yùn)算時(shí)間,都可認(rèn)為是超輕量級(jí)的計(jì)算量;而hash所表示的哈希函數(shù)計(jì)算時(shí)間、mod所表示的指數(shù)模冪運(yùn)算時(shí)間遠(yuǎn)遠(yuǎn)大于前面兩類運(yùn)算時(shí)間,該種運(yùn)算可稱之為輕量級(jí)的計(jì)算量。根據(jù)現(xiàn)有的研究理論可得知,一次輕量級(jí)運(yùn)算量相當(dāng)于幾十次超輕量級(jí)運(yùn)算量,則相對(duì)應(yīng)的時(shí)間開(kāi)銷亦呈現(xiàn)出上述關(guān)系。 文中認(rèn)證方案各階段具體計(jì)算量的由來(lái)分析如下: 服務(wù)器注冊(cè)階段:該階段會(huì)話實(shí)體并未有任何計(jì)算,故計(jì)算量為0,因此表1中省略。 用戶注冊(cè)階段:新用戶Ui在計(jì)算Ai、Bi過(guò)程中,分別第1次、第2次使用Cso運(yùn)算;服務(wù)器Sj在計(jì)算Ci、Di過(guò)程中,分別第3次、第4次使用Cso運(yùn)算;服務(wù)器Sj在計(jì)算Ei、Fi、Gi過(guò)程中,分別第1次、第2次、第3次使用xor運(yùn)算。故用戶注冊(cè)階段總的計(jì)算量為4Cso+3xor。 基于上述,文中認(rèn)證方案完成整個(gè)過(guò)程需要的總的計(jì)算量為24Cso+18xor。從表1中可以分析出,文中認(rèn)證方案需要的總的計(jì)算量最少,不僅在于超輕量級(jí)的位運(yùn)算次數(shù)少,同時(shí)文中認(rèn)證方案選擇的加密算法計(jì)算量也遠(yuǎn)少于其它方案中加密算法計(jì)算量,從而使得文中方案整體計(jì)算量得到較大幅度上減少。再結(jié)合前一章節(jié)中安全性分析可得知,文中認(rèn)證方案在保證計(jì)算量降低的情況下,依舊可以保障認(rèn)證方案具有較好的安全性能,因此文中認(rèn)證方案具有推廣使用的實(shí)際意義。 針對(duì)多服務(wù)器環(huán)境下的認(rèn)證方案計(jì)算量大或存在安全不足等問(wèn)題,文中提出一種將用戶口令與生物特征值相結(jié)合的多服務(wù)器環(huán)境下使用的密鑰認(rèn)證方案。方案中為能夠減少系統(tǒng)整體計(jì)算開(kāi)銷,采用新設(shè)計(jì)的循環(huán)移位運(yùn)算對(duì)信息進(jìn)行加密;循環(huán)移位運(yùn)算可基于按位運(yùn)算方式實(shí)現(xiàn),可使得計(jì)算開(kāi)銷達(dá)到超輕量級(jí)別;循環(huán)移位運(yùn)算實(shí)現(xiàn)過(guò)程中,巧妙充分利用加密信息自身攜帶的漢名重權(quán)參數(shù)值,在即可減少參數(shù)引入的同時(shí),也可以增加第三方人員破解難度。從安全需求、計(jì)算開(kāi)銷角度對(duì)認(rèn)證方案進(jìn)行分析,表明文中設(shè)計(jì)認(rèn)證方案具有良好的安全性能,且計(jì)算開(kāi)銷優(yōu)于其它對(duì)比認(rèn)證方案。2 多服務(wù)器的密鑰認(rèn)證方案
2.1 方案符號(hào)含義說(shuō)明
2.2 服務(wù)器注冊(cè)階段
2.3 用戶注冊(cè)階段
2.4 登錄階段
2.5 認(rèn)證階段
2.6 口令修改階段
3 協(xié)議安全性
4 協(xié)議性能分析
5 結(jié)束語(yǔ)