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