魯遷遷,朱友文,蔣炎
無須重注冊的單向通信動(dòng)態(tài)口令認(rèn)證
魯遷遷,朱友文,蔣炎
(南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211100)
動(dòng)態(tài)口令是在系統(tǒng)中或設(shè)備上僅對一次會(huì)話有效的口令。目前存在的無須重注冊的動(dòng)態(tài)口令方案雖然不受認(rèn)證次數(shù)的限制,但僅支持在線認(rèn)證,不能離線認(rèn)證。針對以上問題,提出一種無須重注冊的單向通信動(dòng)態(tài)口令認(rèn)證方案。該方案基于無須重注冊的方式結(jié)合基于時(shí)間動(dòng)態(tài)口令方案,在實(shí)現(xiàn)離線認(rèn)證的同時(shí)滿足認(rèn)證次數(shù)無限和口令有時(shí)效,最后證明該方案的安全性。
動(dòng)態(tài)口令;無須重注冊;口令有時(shí)效;支持離線認(rèn)證
身份認(rèn)證是保障信息系統(tǒng)安全的第一道防線,口令是應(yīng)用最為廣泛的身份認(rèn)證方法。常見的口令認(rèn)證機(jī)制大多是基于靜態(tài)口令的,認(rèn)證服務(wù)器根據(jù)用戶輸入的口令和自身維護(hù)的口令表進(jìn)行匹配來判斷用戶身份的合法性,但容易受到重放、網(wǎng)絡(luò)竊聽以及猜測攻擊。針對靜態(tài)口令機(jī)制在安全方面的脆弱性,研究口令認(rèn)證的學(xué)者提出了動(dòng)態(tài)口令認(rèn)證技術(shù)以保護(hù)重要的網(wǎng)絡(luò)系統(tǒng)資源。動(dòng)態(tài)口令認(rèn)證機(jī)制是在產(chǎn)生驗(yàn)證信息時(shí)加入不定因素(如用戶登錄的時(shí)間、用戶登錄的次數(shù)等),使每次登錄過程中網(wǎng)絡(luò)傳送的數(shù)據(jù)包不同,從而提高登錄的安全性。
目前已有的(或者常用的)身份認(rèn)證方式(如令牌認(rèn)證、手機(jī)應(yīng)用程序等認(rèn)證方式)非常煩瑣,無法滿足人們的需求。令牌認(rèn)證雖然很安全,但用戶必須隨身攜帶令牌,丟失或忘記令牌會(huì)造成不必要的麻煩。而目前存在的手機(jī)App大多采用挑戰(zhàn)/應(yīng)答機(jī)制認(rèn)證,導(dǎo)致用戶和服務(wù)器之間需要雙向通信,即服務(wù)器隨機(jī)生成挑戰(zhàn)發(fā)送給用戶,用戶利用挑戰(zhàn)計(jì)算相應(yīng)的應(yīng)答并上傳給服務(wù)器。然而,該挑戰(zhàn)需要用戶手機(jī)始終保持連接狀態(tài),一旦欠費(fèi)或無信號,通信立即中斷。在這種情形下,身份認(rèn)證系統(tǒng)可采用基于時(shí)間的動(dòng)態(tài)口令(TOTP,time-based one-time password)[1],僅需要從用戶到服務(wù)器的單向通信。然而,TOTP需要服務(wù)器以明文形式存儲用戶的私鑰,一旦服務(wù)器被攻破,用戶的私鑰將立即泄露。一種可行的方法是將服務(wù)器上用戶私鑰替換為私鑰哈希值。該方法采用無限后退哈希鏈的方式,導(dǎo)致用戶需要每隔一定時(shí)間重新注冊。如何實(shí)現(xiàn)在用戶不需要重新注冊的基礎(chǔ)上使手機(jī)支持離線認(rèn)證,是一個(gè)亟待解決的問題。
1981年,Lamport首次提出基于哈希鏈的動(dòng)態(tài)口令(OTP,one-time password)認(rèn)證方案,后被改進(jìn)為S/KEY方案[2],已被廣泛地應(yīng)用于各種認(rèn)證機(jī)制[3-4]。目前應(yīng)用較廣的有:基于時(shí)間的OTP[1]、基于哈希鏈的OTP(HOTP,HMAC-based one-time password)[5]以及基于計(jì)數(shù)器的OTP(COTP,count-based one-time password)[6]。Lamport基于后退式哈希鏈,設(shè)計(jì)了動(dòng)態(tài)口令認(rèn)證方案,該方案哈希鏈鏈長固定,受限于認(rèn)證次數(shù)(即用戶需要重注冊),并且不能抵抗小數(shù)目攻擊[7]。重注冊是指哈希鏈長是固定的,每當(dāng)這個(gè)哈希鏈被用完以后,用戶必須重新生成條新的哈希鏈,并將哈希鏈最初的驗(yàn)證值提交給服務(wù)器。Das等[8]提出基于身份(ID,identity)和Hash算法的動(dòng)態(tài)口令鑒別方案,該方案可防止用戶ID被盜,同時(shí)抵抗重放攻擊、內(nèi)部攻擊以及猜測攻擊。但是,AwaSthi[7]指出如果智能卡被盜,Das等[8]提出的方案將不再安全,攻擊者可在智能卡中插入隨機(jī)口令替換用戶口令。Goyal[9]提出了N/R(N代表哈希鏈總長,R代表選取的子鏈長)動(dòng)態(tài)口令方案,減少了用戶端的計(jì)算量,但方案的安全性并沒有提高。Gong等[10]提出的基于更新子鏈的動(dòng)態(tài)口令雖然可以實(shí)現(xiàn)認(rèn)證次數(shù)不受限制,但仍然采用挑戰(zhàn)/應(yīng)答模式,無法實(shí)現(xiàn)離線認(rèn)證。Park提出的不需要重注冊的動(dòng)態(tài)口令方案[11],雖然可以抵抗重放攻擊、小數(shù)目攻擊等多種攻擊方式,但依然無法實(shí)現(xiàn)離線認(rèn)證。Kogan將Lamport提出的S/KEY方案改進(jìn)為T/KEY方案[12],可以實(shí)現(xiàn)離線認(rèn)證,但該方案和S/KEY方案一樣需要重注冊。Hwang[13]提出了前向哈希鏈的動(dòng)態(tài)口令方案,雖無須重新注冊,但不能抵抗重放攻擊[7]。Chefranov[14]在文獻(xiàn)[13]方案的基礎(chǔ)上,提出了基于無限前進(jìn)哈希鏈的動(dòng)態(tài)口令認(rèn)證方案,該方案雖然避免了重注冊的問題,但受限于雙向通信,即僅支持在線認(rèn)證。由于在實(shí)際應(yīng)用中,人們往往可能會(huì)遇到無網(wǎng)絡(luò)或網(wǎng)絡(luò)狀態(tài)差的情況(如偏遠(yuǎn)的地區(qū)、電梯或地下停車場等),因此,研究和設(shè)計(jì)一種無須重注冊的單向通信動(dòng)態(tài)口令認(rèn)證方案具有很重要的應(yīng)用價(jià)值。
針對上述問題,本文基于文獻(xiàn)[14]所使用的無限前進(jìn)哈希鏈結(jié)合TOTP算法,提出一種無須重注冊的單向通信動(dòng)態(tài)口令認(rèn)證方案。本文的主要貢獻(xiàn)有:①提出了一種基于無限前進(jìn)哈希鏈的動(dòng)態(tài)口令方案,該方案具有無須重注冊與離線認(rèn)證的特點(diǎn);②運(yùn)用TOTP算法,限制動(dòng)態(tài)口令的時(shí)效性,即動(dòng)態(tài)口令僅在短暫時(shí)間內(nèi)有效(如30 s);③使用手機(jī)二維碼產(chǎn)生動(dòng)態(tài)口令的方式代替令牌,提高了方案的可用性。
圖1 TOTP算法
Figure 1 TOTP algorithm
TOTP算法可實(shí)現(xiàn)從用戶到服務(wù)器的單向認(rèn)證(即支持離線認(rèn)證),并限制口令的時(shí)效性。
圖2 OTP方案的用戶注冊過程
Figure 2 The user registration process of OTP scheme
圖3 OTP方案的用戶登錄過程
Figure 3 The user login process of OTP scheme
Chefranov[14]構(gòu)建無限向前的哈希鏈,避免了用戶需要重注冊的問題。方案分為注冊和登錄兩個(gè)階段,注冊過程如圖4所示。
圖4 Chefranov方案的用戶注冊過程
Figure 4 The user registration process of Chefranov scheme
Chefranov方案采用前向哈希鏈取代后退式哈希鏈,避免了重注冊的過程,同時(shí)可以抵抗重放攻擊以及小數(shù)目攻擊等多種方式的攻擊。但是,Chefranov方案仍采用用戶和服務(wù)器雙向認(rèn)證的模式,一旦用戶由于某些原因處于沒有網(wǎng)絡(luò)的狀態(tài)時(shí),認(rèn)證將無法繼續(xù);另外,目前提出的大多數(shù)動(dòng)態(tài)口令方案和Chefranov方案存在同樣的弊端:動(dòng)態(tài)口令時(shí)效性的問題,動(dòng)態(tài)口令在一個(gè)不確定的時(shí)間內(nèi)有效,有效時(shí)間由用戶兩次登錄間隙決定,如果用戶登錄的并不是很頻繁,足夠的登錄間歇時(shí)間給了攻擊者可乘之機(jī)。
無須重注冊的單向通信動(dòng)態(tài)口令認(rèn)證方案基于Chefranov方案無須重注冊的優(yōu)點(diǎn)結(jié)合TOTP算法,實(shí)現(xiàn)用戶到服務(wù)器的單向通信,并用手機(jī)App產(chǎn)生動(dòng)態(tài)口令,確保用戶在沒有網(wǎng)絡(luò)的情況下認(rèn)證仍然可以完成。該方案利用TOTP算法限制口令實(shí)效的優(yōu)點(diǎn),使動(dòng)態(tài)口令每隔很短的時(shí)間便會(huì)更換,但使用TOTP算法需要在用戶和服務(wù)器兩端同時(shí)設(shè)置時(shí)鐘。方案分為用戶注冊和登錄認(rèn)證兩個(gè)階段,如圖6所示。
Figure 5 The user login authentication process of Chefranov scheme
圖6 用戶注冊和登錄認(rèn)證
Figure 6 The user registration and login authentication
圖7 用戶注冊流程
Figure 7 The flow chart of user registration
1) 用戶提交相關(guān)信息,如用戶ID、靜態(tài)口等。
3.1.2 登錄認(rèn)證階段
圖8 用戶登錄過程
Figure 8 The login process of user
圖9 動(dòng)態(tài)口令的驗(yàn)證過程和服務(wù)器驗(yàn)證值的更新
Figure 9 Verification process of one-time password and update of server authentication value
3) 用戶將1發(fā)送給服務(wù)器。
3.2.1 重放攻擊
OTP方案的實(shí)施需要滿足兩個(gè)安全要求。首先,傳送消息的雙方之間需要建立一個(gè)安全可靠的通道,因此OTP方案通常使用SSL/TLS通道。SSL/TLS(secure socket layer /transport layer security)的使用意味著用戶和服務(wù)器之間交換消息的完整性得到了保證,在服務(wù)器接收到發(fā)送過來的消息時(shí),服務(wù)器可以確定這個(gè)消息來自用戶,即在消息傳遞的過程中攻擊者不能篡改消息,反之亦然。如果不滿足這個(gè)安全要求,攻擊者可以對Lamport的OTP發(fā)起中間人攻擊。其次,服務(wù)器在驗(yàn)證動(dòng)態(tài)口令時(shí),需要保證OTP的完整性。因此,可以假設(shè)服務(wù)器從用戶接收到的OTP在服務(wù)器的防篡改模塊(TRM)中處理。在該模塊中,它保證了在服務(wù)器認(rèn)證用戶過程中OTP的值不會(huì)被篡改。
重放攻擊是指攻擊者為了欺騙用戶讓其接受自己的請求,發(fā)送給目的主機(jī)一個(gè)已經(jīng)被目的主機(jī)接受過的包。OTP的兩個(gè)安全要求中的第一個(gè)要求,僅保證消息在用戶和服務(wù)器之間不會(huì)被篡改,但可以偷窺到用戶發(fā)送給服務(wù)器的動(dòng)態(tài)口令,在滿足上述兩個(gè)安全要求的基礎(chǔ)之上,本文提出的OTP攻擊模型是這樣的:攻擊者可以偷窺到用戶和服務(wù)器所交換的消息,但不能通過正常認(rèn)證的信道傳遞來修改它們的值。
定理1 在上述攻擊模型的條件下,攻擊者不可能發(fā)送一個(gè)已發(fā)送的動(dòng)態(tài)口令來欺騙服務(wù)器。
3.2.2 偽造攻擊
OTP方案實(shí)施的兩個(gè)安全要求中的第一個(gè)要求:雙方之間需要具備一個(gè)安全可靠的通道,該通道滿足即使攻擊者有機(jī)會(huì)偷窺到用戶發(fā)送給服務(wù)器的動(dòng)態(tài)口令,也無法修改動(dòng)態(tài)口令的值。通常使用SSL/TLS通道來滿足這個(gè)要求。但在現(xiàn)實(shí)生活中,SSL/TLS已經(jīng)不再是非常安全的,2013年,Meyer[17]提出了針對SSL/TLS的攻擊模型,可以成功地?cái)r截用戶發(fā)送的動(dòng)態(tài)口令并且修改攔截的動(dòng)態(tài)口令,然后模仿用戶發(fā)送給服務(wù)器以達(dá)到偽造一個(gè)可以被服務(wù)器接受的動(dòng)態(tài)口令的目的。此時(shí),本文提出的OTP攻擊模型是這樣的:攻擊者可以訪問用戶和服務(wù)器所交換的消息,并且能通過正常認(rèn)證的信道傳遞來攔截并修改它們。假設(shè)在攻擊者偷窺到許多個(gè)動(dòng)態(tài)口令后,發(fā)現(xiàn)了一些動(dòng)態(tài)口令的規(guī)律,在這些規(guī)律的前提下,攻擊者是否可以偽造出被用戶接受的下一個(gè)OTP?
定理2 在上述攻擊模型的條件下,攻擊者不可能偽造出被服務(wù)器接受的OTP的值。
3.2.3 小數(shù)目攻擊
小數(shù)目攻擊通常發(fā)生在后退式哈希鏈中。攻擊者假扮服務(wù)器向用戶發(fā)送一個(gè)小數(shù)字,如10,用戶向攻擊者發(fā)送10()。這樣,攻擊者就可以輕松地計(jì)算出沒有使用過的一系列動(dòng)態(tài)口令,從而偽裝成用戶。本文使用前向哈希鏈,不需要服務(wù)器向用戶發(fā)送挑戰(zhàn),所以不存在小數(shù)目攻擊。
本文使用用戶到服務(wù)器的單向通信取代用戶到服務(wù)器的雙向通信方式,使用戶即使處于不在線狀態(tài),認(rèn)證依然可以完成。根據(jù)本文提出的方案,使用手機(jī)App以二維碼的方式產(chǎn)生動(dòng)態(tài)口令,手機(jī)App每隔1 min就會(huì)隨機(jī)產(chǎn)生一個(gè)動(dòng)態(tài)口令二維碼。本文使用Windows10系統(tǒng)作為軟件的開發(fā)環(huán)境,使用Android Studio作為軟件的開發(fā)工具,使用具有攝像功能的臺式機(jī)作為服務(wù)器來實(shí)現(xiàn)所提方案。服務(wù)器通過攝像頭掃描手機(jī)App產(chǎn)生的二維碼,獲得用戶的動(dòng)態(tài)口令;同時(shí),服務(wù)器使用遞歸算法計(jì)算動(dòng)態(tài)口令,如果服務(wù)器使用遞歸算法計(jì)算出來的動(dòng)態(tài)口令和用戶發(fā)送過來的動(dòng)態(tài)口令一致,則認(rèn)證成功,否則認(rèn)證失敗。
本文僅需要用戶到服務(wù)器的單向交流,不要用戶返回任何消息,手機(jī)App僅需提供動(dòng)態(tài)口令的二維碼。由于二維碼不需要在網(wǎng)絡(luò)上傳播,因此,用戶的手機(jī)是可以沒有網(wǎng)絡(luò)的。手機(jī)二維碼每隔1 min更新一次,這意味著每個(gè)動(dòng)態(tài)口令的使用壽命僅有1 min,1 min之后動(dòng)態(tài)口令便會(huì)失效。生活中已經(jīng)使用了和此類功能相似的軟件,如微信支付的二維碼是可以實(shí)現(xiàn)離線付款的,并且付款的二維碼只在比較短的時(shí)間內(nèi)有效。所以,本文方案在技術(shù)實(shí)施上具有可行性。
本文提出的動(dòng)態(tài)口令方案在用戶和服務(wù)器雙方都設(shè)置了時(shí)鐘,關(guān)于時(shí)鐘同步性的問題,本文允許一個(gè)合理的滑動(dòng)窗口的存在,只要在窗口值范圍內(nèi),就認(rèn)為動(dòng)態(tài)口令是合法的。目前正在流行的支付寶離線支付,同步用戶和服務(wù)器雙方的方法就是通過設(shè)置一個(gè)合理的滑動(dòng)窗口值來實(shí)現(xiàn)的,支付寶離線支付功能的使用驗(yàn)證了同步雙方不再是難題。因此,關(guān)于具體的同步用戶和服務(wù)器雙方的問題,具體實(shí)現(xiàn)細(xì)節(jié)不加以細(xì)述。
本節(jié)對Lamport提議的OTP、Chefranov提議的OTP以及本文提議的OTP在通信方式、是否需要用戶重新注冊等方面進(jìn)行了比較,相關(guān)方案的比較結(jié)果如表1所示。其中,關(guān)于通信方式,Lamport方案和Chefranov方案都采用用戶到服務(wù)器的雙向通信模式,無法實(shí)現(xiàn)離線認(rèn)證;本文采用用戶到服務(wù)器的單向通信模式,不需要服務(wù)器給予用戶應(yīng)答,同時(shí),采用手機(jī)二維碼方式產(chǎn)生動(dòng)態(tài)口令,僅需要使用帶有掃碼功能的服務(wù)器掃描手機(jī)二維碼即可完成登錄功能,無須用戶時(shí)刻保持在線狀態(tài),即使用戶因?yàn)楦鞣N原因造成手機(jī)無法聯(lián)網(wǎng),如地處偏僻、手機(jī)停機(jī)等,認(rèn)證仍然可以完成。關(guān)于無須重注冊,Lamport方案采用后退式哈希鏈,哈希鏈長度固定,產(chǎn)生的動(dòng)態(tài)口令個(gè)數(shù)有限,一旦動(dòng)態(tài)口令使用完畢,則需要用戶重新注冊;Chefranov方案和本文方案采用前向哈希鏈取代后退式哈希鏈,認(rèn)證次數(shù)不受限制,因此無須用戶重新注冊。關(guān)于口令具有時(shí)效性,Lamport方案和Chefranov方案的動(dòng)態(tài)口令的有效時(shí)長取決于用戶兩次登錄的時(shí)間間隔,本文方案無論用戶是否登錄,動(dòng)態(tài)口令的有效時(shí)長都僅有1 min。
表1 相關(guān)方案比較
本文基于前向哈希鏈結(jié)合TOTP算法設(shè)計(jì)了一種無須重注冊的單向通信動(dòng)態(tài)口令認(rèn)證方案,利用手機(jī)App以二維碼的方式生成動(dòng)態(tài)口令,提高了可用性,給出了安全性分析。但是,如何盡可能地減少由于用戶兩次登錄的時(shí)間間隔過長而導(dǎo)致的用戶和服務(wù)器哈希值的計(jì)算量有待進(jìn)一步地研究。
[1] M’RAIHI D, MACHANI S, PEI M, et al. TOTP: time-based one-time password algorithm[R]. 2011.
[2] HALLER N. The s/key one-time password system[C]//Proceedings of the Internet Society Symposium on Network and Distributed Systems. 1995: 151-157.
[3] ZHOU Z C, LI L X, GUO S. Biometric and password two-factor cross domain authentication scheme based on blockchain technology[J]. Journal of Computer Applications, 2018, (6).
[4] PRAKASH S, NITESH S. Listening watch: wearable two-factor authentication using speech signals resilient to near-far attacks[R]. 2018.
[5] RAIHI D M, BELLARE M, HOORNAERT F, et al. HOTP: an HMAC-based one-time password algorithm[S]. 2005
[6] 劉知貴, 臧愛軍, 陸榮杰, 等. 基于事件同步及異步的動(dòng)態(tài)口令身份認(rèn)證技術(shù)研究[J]. 計(jì)算機(jī)應(yīng)用研究, 2006, 23(6): 133-134. LIU Z G, ZANG A J, LU R J, et al. Dynamic password authentication based on event-synchronous and challenge/response technology[J]. Application Research of Computers, 2006, 23(6): 133-134.
[7] AWASTHI A K. Comment on a dynamic d-based remote user authentication scheme[J].Transaction on Cryptology,2004,l(2):15-16
[8] DAS M L, SAXENA A, GULATI V P. A dynamic ID-based remote user authentication scheme[J]. IEEE Transactions on Consumer Electronics, 2004, 50(2): 629-631.
[9] GOYAL V, ABRAHAM A, SANYAL S, et al. The N/R one time password system[C]//International Conference on Information Technology: Coding and Computing. 2005: 733-738.
[10] GONG L, PAN J, LIU B, et al. A novel one-time password mutual authentication scheme on sharing renewed finite random sub- passwords[J]. Journal of Computer and System Sciences, 2013, 79(1): 122-130.
[11] PARK C S. One-time password based on hash chain without shared secret and re-registration[J]. Computers & Security, 2018, 75.
[12] KOGAN D, MANOHAR N, DAN B. T/Key: second-factor authentication from secure Hash chains[R]. 2017.
[13] HWANG, SHEN H Y, HWANG J J. A secure one-time password authentication scheme using smart cards[J]. IEICE Trans Commun, 2002, 85(11): 2515-2518.
[14] CHEFRANOV A G. One-time password authentication with infinite Hash chains[M]. Berlin: Springer Netherlands, 2008.
[15] LAMPORT L. Password authentication with insecure communication[J]. Communications of the ACM, 1981, 24(24): 770-772.
[16] MEYER C, SCHWENK J. Lessons learned from previous SSL/TLS attacks – a brief chronology of attacks and weaknesses[J]. IACR Cryptology ePrint Archive, 2013.
One-time password authentication for one-way communication without re-registration
LU Qianqian, ZHU Youwen, JIANG Yan
School of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics, Nanjing 211100, China
One-time password is a password that is valid for only one session on a system or device. The existing one-time password scheme without re-registration which is not limited by the number of authentication only supports online authentication, but can not support offline authentication. To solve the above problems, a one-time password authentication scheme for one-way communication without re-registration was proposed. The scheme combined the time-based one-time password scheme with the way of no re-registration. It can realize the offline authentication while satisfying the infinite authentication times and the password time-effective. Finally, the security of the scheme is proved.
one-time password, no re-registration, timeliness password, offline authentication
TP301.6
A
10.11959/j.issn.2096?109x.2020038
2020?01?15;
2020?05?11
魯遷遷,2293520373@qq.com
國家重點(diǎn)研發(fā)計(jì)劃(2017YFB0802300)
The National Key R & D Program (2017YFB0802300)
魯遷遷, 朱友文, 蔣炎. 無須重注冊的單向通信動(dòng)態(tài)口令認(rèn)證[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2020, 6(3): 99-107.
LU Q Q, ZHU Y W, JIANG Y. One-time password authentication for one-way communication without re-registration [J]. Chinese Journal of Network and Information Security, 2020, 6(3): 99-107.
魯遷遷(1993? ),女,江蘇徐州人,南京航空航天大學(xué)碩士生,主要研究方向?yàn)樾畔踩?/p>
朱友文(1986? ),男,安徽阜南人,南京航空航天大學(xué)副教授,主要研究方向?yàn)樾畔踩?/p>
蔣炎(1992? ),男,湖北仙桃人,南京航空航天大學(xué)博士生,主要研究方向?yàn)樾畔踩?/p>