陳如 傅明
摘要:鑒于雙因素認證需依賴智能卡和時鐘同步問題突出,并且隨機數(shù)開銷大的弊端,提出了一種基于挑戰(zhàn)應,答機制的動態(tài)口令異構(gòu)機制認證方案,該方案不涉及第三方設備,通過SHA-256計算、“與”計算減輕了運算過程的開銷,縮短了運算時間。同時服務器端與用戶端的雙向身份認證中采取隨機數(shù)與Rabin加密機制加強安全性,能夠有效地抵御重放攻擊等各類攻擊,可用于對安全性有一定要求的應用與環(huán)境。在同各類方案進行對比體現(xiàn)該方案優(yōu)勢的同時,也通過SVO邏輯方法對該方案的認證過程做了形式化的分析及論證。
關鍵詞:軟件即服務(SaaS);動態(tài)口令;雙向身份認證;sv0
中圖分類號:TP393
文獻標識碼:A
1 引言
身份認證應用于人們?nèi)粘I钜呀?jīng)十分久遠,并且隨著Lamport[1]在1981年第一次提出基于遠程口令的身份認證方案,基于其想法的OTP協(xié)議研究取得了較大進展,產(chǎn)生了CHAP、EAP等OTP協(xié)議。1991年,Bell core提出的依據(jù)OTP的挑戰(zhàn)/應答式動態(tài)口令身份認證架構(gòu)“S/KEY”初次亮相[2]。由于網(wǎng)絡安全需求的提高,對于SaaS服務所處的網(wǎng)絡安全研究也在如火如荼的開展著。
文獻[3]采用了一種依據(jù)環(huán)簽名形式的遠程認證方案,同時還能夠不借助第三方來進行雙方可信的驗證證實,由于云環(huán)境的復雜性特點,不能夠確保可信計算平臺的安全保障范圍,從而無法保障公有云系統(tǒng)架構(gòu)的安全性;文獻[4]考慮了橢圓曲線密碼體制(ECO安全性及現(xiàn)有OTP系統(tǒng)無需第三方公證的參與,提出了將雙方特點結(jié)合在一起的一種新認證方案,該方案對于安全性、認證效率和存儲空間上都具備較強的優(yōu)勢,但此方案沒有在時間同步問題上作分析,為認證的結(jié)果埋下了隱患;文獻[5]利用正弦函數(shù)有著變量取值范圍較廣的特點,再結(jié)合單向散列函數(shù)(SHA-1)對這些取值進行正弦投影,得到相對應的映射值,由此實現(xiàn)身份要素信息的變換運算,此方案具有存儲小,能耗低的特點,但在各階段的運算量仍成是個瓶頸,并且隨著SHA-1遭到破解,安全性問題也變得沒有保障。文獻[6]對文獻[7]的方案進行改進,對其方案使用單向散列函數(shù)和異或運算并借助智能卡來實現(xiàn)的雙因素用戶認證,前者用計算量的消耗來增加認證過程的安全性,讓其具備了有效抵御密碼猜測等惡意攻擊的能力。
針對上述密碼技術和認證機制的不足,在此提出了一種在傳統(tǒng)的挑戰(zhàn)/應答機制下的通過SHA-256運算、“與”運算及Rabin加密技術的復雜性結(jié)合的OTP認證技術來實現(xiàn)SaaS服務模式下的雙向身份認證的方案。該方式既考慮到系統(tǒng)的存儲能力又兼顧了認證中的安全性。
2 相關技術
2.1 挑戰(zhàn)/應答機制
傳統(tǒng)的依據(jù)挑戰(zhàn)/應答機制[8-9]為基礎的身份認證方式分為兩個過程:注冊過程、認證過程。圖1為傳統(tǒng)的依據(jù)挑戰(zhàn)/應答機制的認證過程:
傳統(tǒng)的依據(jù)挑戰(zhàn)/應答機制存在以下幾個弊端:
(1)缺少服務器端對用戶端的合法性判定過程,非法的訪問方可利用冒充服務器這一手段來完成同用戶端的交互,從而對得到的交互信消息進行操作,來進行對用戶端的攻擊;
(2)圖1的認證過程中必須完成較多的散列操作和加解密等步驟,用戶端與服務器端在運算開銷上付出了很大的代價;
(3)服務器端需要對每一位現(xiàn)實用戶和潛在用戶建立并保存相對應的對稱密鑰。
2.2 SHA-256算法
SHA-256是一種具有列散函數(shù)性質(zhì)的SHA(Secure Hash Algorithm)算法,它能將輸入進來的長度各異的明文信息,依據(jù)6個邏輯函數(shù)以及一組常數(shù)Kt來完成信息的轉(zhuǎn)換,形成一段256bit的密文消息[10]。
在算法安全性方面,一方面SHA-256算法具有不可逆性這一特點,使得攻擊者就算是得到了密文信息也無法從其本身得到明文并且對于任何輸入的信息都會對其結(jié)果有很大的影響;另一方面從安全性衡量標準來看,Hash函數(shù)具有迭代算法的雪崩效應,以SHA-256算法的輪數(shù)可以有效的增強其整體碰撞難度,因此SHA-256被視為目前最為安全的哈希函數(shù)之一。
2.3 Rabin密碼體制
Rabin密碼體制是經(jīng)RSA修正后得到的一種建立在數(shù)論中的求和數(shù)模平方根復雜性問題基礎上的一種密碼體制,其復雜度已經(jīng)被證明與分解大整數(shù)一樣困難。
使p和q作為兩個大素數(shù),且它們是互異的,其中這兩個大素數(shù)由Dirichlet定理得出,m(m=p×q)和6(6≥1)已知公開,加密為:C= E(M)=M(M+b)(modm),其中C,M分別代表密文和明文。一般會在M中加入有關發(fā)送者身份的信息,如與發(fā)送者有關系的數(shù)字信息、字母信息、時間信息等[11-14]。
3 云模式下基于動態(tài)口令的身份認證方案
3.1 身份認證方案設計思想
(1)異種機制雙向認證:通過依據(jù)挑戰(zhàn)/應答的身份認證機制,來完成雙方相互的身份確認過程。一方面在用戶端進行Hash函數(shù)操作,確保變換的安全性,且結(jié)合“與”運算的方式來增加加密的復雜度從而提高信息交互時的安全性,確保認證的可靠性;另一方面服務器端采用Rabin加密技術的身份認證方式來對用戶端的身份進行判定。
(2)多類結(jié)合加密算法:基于列散函數(shù)的特點,在SHA-1與MD5相繼被破譯后,SHA-256又以其在安全性方面的絕對優(yōu)勢,成為了相對于安全性需求更高的網(wǎng)絡的首選加密算法;其次,Rabin算法是基于數(shù)論中的求和數(shù)模平方根這類問題復雜性的基礎上的一種算法,其復雜度已經(jīng)被證明與分解大整數(shù)一樣困難,用Rabin算法選出來的系統(tǒng)公鑰和秘鑰更加具有安全性。
(3)四次交互雙向認證:在三次攜帶檢測信息及其鑒別口令的交互認證過程和確定認證成功的最終交互形式下,考慮到用戶端登陸環(huán)境的多樣性和硬件設施不同帶來的運算能力差異性,用戶端對服務器的認證采取簡易的認證方式,這一舉措可以使計算量降低,從而減輕用戶端的計算開銷;而另一方面,服務器端對用戶端而言,則通過偽隨機數(shù)與公鑰加密結(jié)合的方式來實現(xiàn),提高雙向身份認證系統(tǒng)的安全性;采用Rabin密碼體制對網(wǎng)上傳輸?shù)拿魑?、隨機數(shù)、用戶端輸入的口令等進行加密傳輸處理,有效防止第三方截獲明文消息。
3.2 身份認證方案的描述
本文中身份的認證方案分別是用戶注冊階段、雙向認證階段這兩個過程來進行。每個用戶都要進行一次注冊過程,在注冊成功過后,用戶每一次登錄系統(tǒng)時,都將進行一次身份的雙向認證過程。本文使用的符號及描述如表1所示。
3.2.1 注冊階段
注冊階段為每一個用戶使用該系統(tǒng)前必須進行的一個步驟,在這個階段關鍵在于對用戶進行口令和密鑰的生成和身份的確認。即用戶注冊時,初次將自己的身份信息交到認證服務器端進行存儲待用,其次雙方對密鑰進行了交換。注冊階段流程圖如2所示。
具體注冊流程如下:
(1)認證服務器端AS通過Rabin密碼體制選擇合適的密鑰對。KUR,KUR為用戶端U的密鑰對,KSR,KSS為認證服務器端AS的密鑰對,其中Kxy,表示:x端的公/私鑰(R/S);
(2)用戶端U準備注冊時,會將注冊請求信息通過交互信道傳至待注冊的認證服務器端AS,當AS接收到請求信號后進行存儲、備份等相應的處理,確保用戶端再次訪問時可依據(jù)己存信息進行身份的認證;
(3)在確認用戶U為初次注冊的用戶后,認證服務器端AS則根據(jù)相關規(guī)則對用戶發(fā)送Rabin及其公鑰KSR,用于完成注冊過程;
(4)用戶端U存儲認證服務器端的公鑰并根據(jù)Rabin密碼體制選取自己的密鑰對;
(5)在對認證服務器端的交互過程中,用戶U將自己的IDu和PW傳送至AS端并請求注冊,并向AS傳輸用AS的KSR加密的IDu\PW及KUR,令M1=SHA( IDU|| PW),M2=SHA (PW),即傳送EKSR(IDU|| KUR|| Ml || Ml || PW);
(6) AS將用戶端傳送過來的加密消息進行相應的解密操作,利用其私鑰得到解密后的明文信息,再根據(jù)明文信息到數(shù)據(jù)存儲服務器中進行關鍵信息的匹配工作,若是服務器中已經(jīng)存在該用戶的注冊信息,那么則返回注冊失敗的提示;
(7)接著(6)的另一種情況來看,假若用戶發(fā)送的注冊消息驗證成功,即在存儲服務器中沒有匹配到相應的注冊信息。那么AS將IDU與M1、M2、PW、KUR綁定,進一步用認證服務器私鑰對其進行加密存儲,存入數(shù)據(jù)存儲服務器,方便在后續(xù)的身份認證過程中使用,同時向用戶端發(fā)送成功注冊的信息。
3.2.2 認證階段
用戶在登陸的階段采取四次交互的方式完成雙向認證過程,該階段基于傳統(tǒng)的挑戰(zhàn)/應答方式并對其進行改進。在認證過程中,用戶端U將自己的IDu發(fā)送至認證服務器端AS,當AS接收到IDU后搜索與IDU綁定在一起的用戶的相關信息,從而對用戶身份進行鑒別。
身份認證的具體過程可描述如下:
(1)U→AS:用戶端向認證服務器端發(fā)出身份驗證的請求信號,并向AS提交用戶標識IDU; AS查詢數(shù)據(jù)存儲服務器,并檢測用戶端的用戶是否完成注冊,即判定ID列表中有沒有IDU數(shù)據(jù),若沒有用戶的信息,也就不具有對此資源的訪問權(quán)利,用戶端則被拒絕認證。
(2) AS→U:若在執(zhí)行(1)后得到能夠查詢到用戶的注冊信息,認證服務器通過偽隨機數(shù)獲取算法進行計算,并得到進行此次認證的唯一偽隨機數(shù)R,向用戶端發(fā)送IDU,PW,R運算后的信息:(M1·R) || SHA (M2·R),并保存副本;用戶端通過字符提取技術,獲得M1·R、SHA (M2·R),令P=M1·R,Q=SHA (M1·R)。并計算M'= SHA -1 (IDU || PW),R'=M'·P,Q=SHA (R'·M2)。若Q與Q'不相等,則不能夠證明是合法的認證方,即會將其視為偽造服務器進而拒絕其認證,并且得到認證失敗信息。如果Q與Q相等,那么U對于AS的身份驗證視為成功,進入U對AS的驗證這一環(huán)節(jié)。
(3)U→AS:用戶輸入PW',令W= SHA (M2||R'|| PW')即對PW'、R'、M2進行哈希運算,用服務器公鑰KSR對ID和W加密,得EKSR (IDu || SHA(M2 || R'||PW')),并利用用戶私鑰KUS對消息完成簽名后(Signxus [EKSR (IDu || SHA (M2||R'||PW))])傳輸給AS做進一步的處理;AS利用KSS進行密文的解密,并獲得密文中的IDu和W。再通過IDu信息在存儲庫里面找到與之相對應的M2、PW和R信息,對于此處依然存在兩種結(jié)果,一種是不存在對應的以上三個信息,則說明并非合法用戶,進而拒絕認證;另一種則是能夠檢索到對應的信息,并且對它們做進一步做哈希處理,令其為W'= SHA (M2||R||PW)D,如果W與W'不相等,則此認證被視為失敗,用戶端具有不友好性,認證服務器端拒絕其交互,登陸失敗。
雙向身份認證的流程如圖3所示:
4 形式化分析
4.1 SVO邏輯的語法
SVO邏輯所用的記號延續(xù)了BAN邏輯和AT邏輯的記號,其中|≡、<、|~、|≈、|→、⑤、#、≡符號分別表示:信任、收到、發(fā)送過、新發(fā)送過、管轄、擁有、新鮮與等價的含義[15-18]。
以下羅列了12種符號,以及它們在SVO邏輯系統(tǒng)中所特有的解釋:
(1)*:主體不能識別的消息;
(2)K~:密鑰K對應的解密密鑰;
4.3 SVO邏輯分析過程
整個SVO邏輯分析過程可分為以下3個步驟:
步驟1:用SVO邏輯語言對該方案所有的假設條件集合(包括主體本身所蘊涵的初始信念和接收到的外來傳入給主體的信息)做出合理的表示與解釋;
步驟2:設定出該方案經(jīng)推理后能夠達到的目標集合,并且對此目標集合進行SVO邏輯語言的描述;
步驟3:利用“步驟1”所給出的初始假設集合進行符合本方案認證過程的推理證明,得到的結(jié)果與“步驟2”進行比對,看是否能夠達到“步驟2”中所給出來的目標集合。
以下為SVO邏輯方法對該方案的具體分析,為本方案認證過程能否滿足實體認證目標,給出了有利的分析依據(jù)。
本方案的初始假定,其中用戶端與認證服務器端分別為:U,AS:
5 方案性能分析
5.1 安全性分析
(1)通過加入高質(zhì)量的偽隨機數(shù),保證每次認證消息不同,使得攻擊者所截獲到的信息有異于認證方存儲的認證信息則無法通過認證,能夠?qū)χ胤殴襞c小數(shù)攻擊等形成良好的抵御效果;
(2)根據(jù)3.2.1節(jié)對用戶于注冊階段的具體描述可知,其經(jīng)過安全的傳輸通道與認證服務器交換身份認證和公開密鑰,因此,只有認證服務器AS擁有用戶認證服務器的合法身份的依據(jù)M1、M2,攻擊者無法冒充認證服務器,即使攻擊者獲得了Mi和M2其中的任意一個,通過運算獲得Q'=SHA(M·P·M2)與Q=SHA (M2·R)不完全符合,從而無法通過認證。
同理,經(jīng)認證服務器端AS傳送來的信息,再根據(jù)用戶端U所得的IDu、PW可運算出認證服務器端AS提供的隨機數(shù)R,因為攻擊者無法冒充用戶,所以W≠W'= SHA (M2||R || PW),無法通過認證,進而對中間人攻擊進行了有效地抵御。
5.2 各因素綜合比較
本文方案通過與FTP雙向認證協(xié)議、文獻[6]這兩種方法展開對比,來呈現(xiàn)本文方法的優(yōu)點所在,對比的結(jié)果如表2所示。
(1)本文方案與依據(jù)動態(tài)口令的FrIP雙向認證協(xié)議相比較:
基于動態(tài)口令的FTP雙向認證協(xié)議是基于挑戰(zhàn)/應答機制并結(jié)合散列函數(shù)、對稱密碼體制,利用第三方硬件設備(智能卡)來實現(xiàn)雙向認證。本文方案采取無第三方設備的方式完成驗證,利用偽隨機數(shù)、散列函數(shù)、Rabin密碼體系、公鑰加密簽名的方式來實現(xiàn)用戶端與服務器端雙向的身份驗證,并確保認證過程的安全性,同時減少了服務器存儲負擔和注冊成本,并避免了對第三方硬件的依賴和第三方硬件損壞或丟失所擔負的風險與損失。
(2)本文方案與文獻[6]方案相比較:
文獻[6]利用單向散列函數(shù)、異或運算和智能卡來實現(xiàn)雙因素類型的身份驗證,認證過程中的通信次數(shù)多,并用計算量的消耗來增加認證過程的安全性,使其能夠更加有效地抵抗內(nèi)部人攻擊、密碼猜測等攻擊,認證過程依賴外部硬件設備。本文相對于此方案擁有更加安全的密鑰算法,確保了在信道中傳送的安全性;無需第三方硬件,認證簡潔,通信次數(shù)少從而減輕了運算和存儲的開銷。
6 結(jié)束語
基于挑戰(zhàn)/應答模式,并融合Rabin密碼體制和散列函數(shù)提出了一種適應于SaaS模式的動態(tài)口令異構(gòu)機制身份認證的方案。本方案相比于其他傳統(tǒng)身份認證方案和依靠第三方設備進行身份認證的方案相比較,有如下優(yōu)勢:(1)用戶和認證服務器采用雙向身份驗證模式,能夠有效避免冒充服務器的惡意攻擊,提高身份驗證的安全性;(2)考慮到用戶端登陸環(huán)境的多樣性和硬件設施不同帶來的運算能力差異性,用戶端對服務器的身份驗證采用簡易的身份驗證方式,減少用戶端計算負擔;(3)服務器端對用戶端的身份驗證通過偽隨機數(shù)與公鑰加密結(jié)合的方式來完成,提高雙向身份驗證系統(tǒng)的安全性;(4)采用Rabin密碼體制對網(wǎng)上傳輸?shù)拿魑?、隨機數(shù)、用戶端輸入的口令等進行加密傳輸處理,有效防止第三方截獲明文消息。在以后的工作研究中,將對認證方案安排數(shù)據(jù)仿真,并對方案展開不同場合下安全性差異的設定,達到安全性要求較高的SaaS服務模式下認證方案的適用性和合理性。
參考文獻
[1]LAMPORT l.Password authentication with insecure commumca-tion EJl.Communications of the ACM, 1981, 24(ll):770-772.
[2] HALLER N M.The S/Key One-time Password System.Proceed-ings of the Internet Society Symposium on Network and Dis-tributed System Security [C].San Diego, 1995: 151-157.
[3] 楊紹禹,王世卿,郭曉峰.一種基于環(huán)簽名的跨域云服務資源遠程證明方法[J].小型微型計算機系統(tǒng),2014,35(2):324- 328.
[4]曹陽,洪岐,余冬梅.基于橢圓曲線密碼體制的OTP身份認證方案[J].計算機與數(shù)學工程,2011,39 (10):118-120.
[5]隆笑,王景成,趙廣磊,等.基于哈希函數(shù)的正弦投影身份認證方案[J].計算機工程.012,38(9):126-130.
[6] HSIEH Wen-Bin,LEU Jenq-Shiou.A dynarruc identity user au-thentication scheme in wireless sensor networks [J].IEEE,2013:1132-1137.
[7] MOUFTAH V M, Mouftah.lmproved two-factor user authentica-tion in wireless sensor networks.Wireless and Mobile Comput-ing,Networking and Commurucations (WiMob) [J].IEEE,2010:600-606.
[8]張德育,徐蓮.一種改進動態(tài)口令雙向身份認證方案研究[J].沈陽理工大學學報,2013,32 (5):23-26.
[9]周福才,高克寧,曹光輝,等.基于混沌理論的身份認證機制及其安全性分析[J].小型微型計算機系統(tǒng),2003,24 (12):2088 -2091.
[10]蔣華,阮玲玲,王鑫.基于SHA-256消息認證的四次握手協(xié)議研究[J].微電子學與計算機,2014,31(8):155-158.
[11] BEHROUZ A.Cryptography and Network Security by Forouzan[M] .McGraw Hill Highter Education, 2007: 291-293.
[12]劉嘉勇.應用密碼學[M].北京:清華大學出版社,2008:154-155.
[13]韓秋君,丁岳偉.SaaS模式下新型認證方案的設計與分析[J].計算機工程,2011,37 (7):133-135.
[14]楊波,鄭東,王育民.基于Rabin加密算法的密鑰托管體制[J].西安電子科技大學學報,1999,26 (2):214-216.
[15] SYVERSON P F,VAN ORSCHOT P C.On unified some crypto-graphic protocol logics [A].IEEE Computer Society Press,1994:16-18.
[16] SYVERSON P F,VAN ORSCHOT P C.A unified cryptographicprotocollogics [R].NRL Publication 5540-227,Naval ResearchLah, 1996.
[17]陳丹偉,黃秀麗,孫國梓.基于sv0邏輯的云服務安全形式化分析[J].小型微型計算機系統(tǒng),2010,31 (12):2439-2441.
[18]周鵬.基于sv0邏輯的網(wǎng)絡安全協(xié)議形式化分析[D].貴陽:貴州大學,2011.