魯遷遷,朱友文,蔣炎
無須重注冊的單向通信動態口令認證
魯遷遷,朱友文,蔣炎
(南京航空航天大學計算機科學與技術學院,江蘇 南京 211100)
動態口令是在系統中或設備上僅對一次會話有效的口令。目前存在的無須重注冊的動態口令方案雖然不受認證次數的限制,但僅支持在線認證,不能離線認證。針對以上問題,提出一種無須重注冊的單向通信動態口令認證方案。該方案基于無須重注冊的方式結合基于時間動態口令方案,在實現離線認證的同時滿足認證次數無限和口令有時效,最后證明該方案的安全性。
動態口令;無須重注冊;口令有時效;支持離線認證
身份認證是保障信息系統安全的第一道防線,口令是應用最為廣泛的身份認證方法。常見的口令認證機制大多是基于靜態口令的,認證服務器根據用戶輸入的口令和自身維護的口令表進行匹配來判斷用戶身份的合法性,但容易受到重放、網絡竊聽以及猜測攻擊。針對靜態口令機制在安全方面的脆弱性,研究口令認證的學者提出了動態口令認證技術以保護重要的網絡系統資源。動態口令認證機制是在產生驗證信息時加入不定因素(如用戶登錄的時間、用戶登錄的次數等),使每次登錄過程中網絡傳送的數據包不同,從而提高登錄的安全性。
目前已有的(或者常用的)身份認證方式(如令牌認證、手機應用程序等認證方式)非常煩瑣,無法滿足人們的需求。令牌認證雖然很安全,但用戶必須隨身攜帶令牌,丟失或忘記令牌會造成不必要的麻煩。而目前存在的手機App大多采用挑戰/應答機制認證,導致用戶和服務器之間需要雙向通信,即服務器隨機生成挑戰發送給用戶,用戶利用挑戰計算相應的應答并上傳給服務器。然而,該挑戰需要用戶手機始終保持連接狀態,一旦欠費或無信號,通信立即中斷。在這種情形下,身份認證系統可采用基于時間的動態口令(TOTP,time-based one-time password)[1],僅需要從用戶到服務器的單向通信。然而,TOTP需要服務器以明文形式存儲用戶的私鑰,一旦服務器被攻破,用戶的私鑰將立即泄露。一種可行的方法是將服務器上用戶私鑰替換為私鑰哈希值。該方法采用無限后退哈希鏈的方式,導致用戶需要每隔一定時間重新注冊。如何實現在用戶不需要重新注冊的基礎上使手機支持離線認證,是一個亟待解決的問題。
1981年,Lamport首次提出基于哈希鏈的動態口令(OTP,one-time password)認證方案,后被改進為S/KEY方案[2],已被廣泛地應用于各種認證機制[3-4]。目前應用較廣的有:基于時間的OTP[1]、基于哈希鏈的OTP(HOTP,HMAC-based one-time password)[5]以及基于計數器的OTP(COTP,count-based one-time password)[6]。Lamport基于后退式哈希鏈,設計了動態口令認證方案,該方案哈希鏈鏈長固定,受限于認證次數(即用戶需要重注冊),并且不能抵抗小數目攻擊[7]。重注冊是指哈希鏈長是固定的,每當這個哈希鏈被用完以后,用戶必須重新生成條新的哈希鏈,并將哈希鏈最初的驗證值提交給服務器。Das等[8]提出基于身份(ID,identity)和Hash算法的動態口令鑒別方案,該方案可防止用戶ID被盜,同時抵抗重放攻擊、內部攻擊以及猜測攻擊。但是,AwaSthi[7]指出如果智能卡被盜,Das等[8]提出的方案將不再安全,攻擊者可在智能卡中插入隨機口令替換用戶口令。Goyal[9]提出了N/R(N代表哈希鏈總長,R代表選取的子鏈長)動態口令方案,減少了用戶端的計算量,但方案的安全性并沒有提高。Gong等[10]提出的基于更新子鏈的動態口令雖然可以實現認證次數不受限制,但仍然采用挑戰/應答模式,無法實現離線認證。Park提出的不需要重注冊的動態口令方案[11],雖然可以抵抗重放攻擊、小數目攻擊等多種攻擊方式,但依然無法實現離線認證。Kogan將Lamport提出的S/KEY方案改進為T/KEY方案[12],可以實現離線認證,但該方案和S/KEY方案一樣需要重注冊。Hwang[13]提出了前向哈希鏈的動態口令方案,雖無須重新注冊,但不能抵抗重放攻擊[7]。Chefranov[14]在文獻[13]方案的基礎上,提出了基于無限前進哈希鏈的動態口令認證方案,該方案雖然避免了重注冊的問題,但受限于雙向通信,即僅支持在線認證。由于在實際應用中,人們往往可能會遇到無網絡或網絡狀態差的情況(如偏遠的地區、電梯或地下停車場等),因此,研究和設計一種無須重注冊的單向通信動態口令認證方案具有很重要的應用價值。
針對上述問題,本文基于文獻[14]所使用的無限前進哈希鏈結合TOTP算法,提出一種無須重注冊的單向通信動態口令認證方案。本文的主要貢獻有:①提出了一種基于無限前進哈希鏈的動態口令方案,該方案具有無須重注冊與離線認證的特點;②運用TOTP算法,限制動態口令的時效性,即動態口令僅在短暫時間內有效(如30 s);③使用手機二維碼產生動態口令的方式代替令牌,提高了方案的可用性。


圖1 TOTP算法
Figure 1 TOTP algorithm
TOTP算法可實現從用戶到服務器的單向認證(即支持離線認證),并限制口令的時效性。



圖2 OTP方案的用戶注冊過程
Figure 2 The user registration process of OTP scheme

圖3 OTP方案的用戶登錄過程
Figure 3 The user login process of OTP scheme

Chefranov[14]構建無限向前的哈希鏈,避免了用戶需要重注冊的問題。方案分為注冊和登錄兩個階段,注冊過程如圖4所示。

圖4 Chefranov方案的用戶注冊過程
Figure 4 The user registration process of Chefranov scheme

Chefranov方案采用前向哈希鏈取代后退式哈希鏈,避免了重注冊的過程,同時可以抵抗重放攻擊以及小數目攻擊等多種方式的攻擊。但是,Chefranov方案仍采用用戶和服務器雙向認證的模式,一旦用戶由于某些原因處于沒有網絡的狀態時,認證將無法繼續;另外,目前提出的大多數動態口令方案和Chefranov方案存在同樣的弊端:動態口令時效性的問題,動態口令在一個不確定的時間內有效,有效時間由用戶兩次登錄間隙決定,如果用戶登錄的并不是很頻繁,足夠的登錄間歇時間給了攻擊者可乘之機。
無須重注冊的單向通信動態口令認證方案基于Chefranov方案無須重注冊的優點結合TOTP算法,實現用戶到服務器的單向通信,并用手機App產生動態口令,確保用戶在沒有網絡的情況下認證仍然可以完成。該方案利用TOTP算法限制口令實效的優點,使動態口令每隔很短的時間便會更換,但使用TOTP算法需要在用戶和服務器兩端同時設置時鐘。方案分為用戶注冊和登錄認證兩個階段,如圖6所示。


Figure 5 The user login authentication process of Chefranov scheme

圖6 用戶注冊和登錄認證
Figure 6 The user registration and login authentication

圖7 用戶注冊流程
Figure 7 The flow chart of user registration
1) 用戶提交相關信息,如用戶ID、靜態口等。

3.1.2 登錄認證階段


圖8 用戶登錄過程
Figure 8 The login process of user



圖9 動態口令的驗證過程和服務器驗證值的更新
Figure 9 Verification process of one-time password and update of server authentication value
3) 用戶將1發送給服務器。


3.2.1 重放攻擊
OTP方案的實施需要滿足兩個安全要求。首先,傳送消息的雙方之間需要建立一個安全可靠的通道,因此OTP方案通常使用SSL/TLS通道。SSL/TLS(secure socket layer /transport layer security)的使用意味著用戶和服務器之間交換消息的完整性得到了保證,在服務器接收到發送過來的消息時,服務器可以確定這個消息來自用戶,即在消息傳遞的過程中攻擊者不能篡改消息,反之亦然。如果不滿足這個安全要求,攻擊者可以對Lamport的OTP發起中間人攻擊。其次,服務器在驗證動態口令時,需要保證OTP的完整性。因此,可以假設服務器從用戶接收到的OTP在服務器的防篡改模塊(TRM)中處理。在該模塊中,它保證了在服務器認證用戶過程中OTP的值不會被篡改。
重放攻擊是指攻擊者為了欺騙用戶讓其接受自己的請求,發送給目的主機一個已經被目的主機接受過的包。OTP的兩個安全要求中的第一個要求,僅保證消息在用戶和服務器之間不會被篡改,但可以偷窺到用戶發送給服務器的動態口令,在滿足上述兩個安全要求的基礎之上,本文提出的OTP攻擊模型是這樣的:攻擊者可以偷窺到用戶和服務器所交換的消息,但不能通過正常認證的信道傳遞來修改它們的值。
定理1 在上述攻擊模型的條件下,攻擊者不可能發送一個已發送的動態口令來欺騙服務器。

3.2.2 偽造攻擊
OTP方案實施的兩個安全要求中的第一個要求:雙方之間需要具備一個安全可靠的通道,該通道滿足即使攻擊者有機會偷窺到用戶發送給服務器的動態口令,也無法修改動態口令的值。通常使用SSL/TLS通道來滿足這個要求。但在現實生活中,SSL/TLS已經不再是非常安全的,2013年,Meyer[17]提出了針對SSL/TLS的攻擊模型,可以成功地攔截用戶發送的動態口令并且修改攔截的動態口令,然后模仿用戶發送給服務器以達到偽造一個可以被服務器接受的動態口令的目的。此時,本文提出的OTP攻擊模型是這樣的:攻擊者可以訪問用戶和服務器所交換的消息,并且能通過正常認證的信道傳遞來攔截并修改它們。假設在攻擊者偷窺到許多個動態口令后,發現了一些動態口令的規律,在這些規律的前提下,攻擊者是否可以偽造出被用戶接受的下一個OTP?
定理2 在上述攻擊模型的條件下,攻擊者不可能偽造出被服務器接受的OTP的值。

3.2.3 小數目攻擊
小數目攻擊通常發生在后退式哈希鏈中。攻擊者假扮服務器向用戶發送一個小數字,如10,用戶向攻擊者發送10()。這樣,攻擊者就可以輕松地計算出沒有使用過的一系列動態口令,從而偽裝成用戶。本文使用前向哈希鏈,不需要服務器向用戶發送挑戰,所以不存在小數目攻擊。
本文使用用戶到服務器的單向通信取代用戶到服務器的雙向通信方式,使用戶即使處于不在線狀態,認證依然可以完成。根據本文提出的方案,使用手機App以二維碼的方式產生動態口令,手機App每隔1 min就會隨機產生一個動態口令二維碼。本文使用Windows10系統作為軟件的開發環境,使用Android Studio作為軟件的開發工具,使用具有攝像功能的臺式機作為服務器來實現所提方案。服務器通過攝像頭掃描手機App產生的二維碼,獲得用戶的動態口令;同時,服務器使用遞歸算法計算動態口令,如果服務器使用遞歸算法計算出來的動態口令和用戶發送過來的動態口令一致,則認證成功,否則認證失敗。
本文僅需要用戶到服務器的單向交流,不要用戶返回任何消息,手機App僅需提供動態口令的二維碼。由于二維碼不需要在網絡上傳播,因此,用戶的手機是可以沒有網絡的。手機二維碼每隔1 min更新一次,這意味著每個動態口令的使用壽命僅有1 min,1 min之后動態口令便會失效。生活中已經使用了和此類功能相似的軟件,如微信支付的二維碼是可以實現離線付款的,并且付款的二維碼只在比較短的時間內有效。所以,本文方案在技術實施上具有可行性。
本文提出的動態口令方案在用戶和服務器雙方都設置了時鐘,關于時鐘同步性的問題,本文允許一個合理的滑動窗口的存在,只要在窗口值范圍內,就認為動態口令是合法的。目前正在流行的支付寶離線支付,同步用戶和服務器雙方的方法就是通過設置一個合理的滑動窗口值來實現的,支付寶離線支付功能的使用驗證了同步雙方不再是難題。因此,關于具體的同步用戶和服務器雙方的問題,具體實現細節不加以細述。
本節對Lamport提議的OTP、Chefranov提議的OTP以及本文提議的OTP在通信方式、是否需要用戶重新注冊等方面進行了比較,相關方案的比較結果如表1所示。其中,關于通信方式,Lamport方案和Chefranov方案都采用用戶到服務器的雙向通信模式,無法實現離線認證;本文采用用戶到服務器的單向通信模式,不需要服務器給予用戶應答,同時,采用手機二維碼方式產生動態口令,僅需要使用帶有掃碼功能的服務器掃描手機二維碼即可完成登錄功能,無須用戶時刻保持在線狀態,即使用戶因為各種原因造成手機無法聯網,如地處偏僻、手機停機等,認證仍然可以完成。關于無須重注冊,Lamport方案采用后退式哈希鏈,哈希鏈長度固定,產生的動態口令個數有限,一旦動態口令使用完畢,則需要用戶重新注冊;Chefranov方案和本文方案采用前向哈希鏈取代后退式哈希鏈,認證次數不受限制,因此無須用戶重新注冊。關于口令具有時效性,Lamport方案和Chefranov方案的動態口令的有效時長取決于用戶兩次登錄的時間間隔,本文方案無論用戶是否登錄,動態口令的有效時長都僅有1 min。

表1 相關方案比較
本文基于前向哈希鏈結合TOTP算法設計了一種無須重注冊的單向通信動態口令認證方案,利用手機App以二維碼的方式生成動態口令,提高了可用性,給出了安全性分析。但是,如何盡可能地減少由于用戶兩次登錄的時間間隔過長而導致的用戶和服務器哈希值的計算量有待進一步地研究。
[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] 劉知貴, 臧愛軍, 陸榮杰, 等. 基于事件同步及異步的動態口令身份認證技術研究[J]. 計算機應用研究, 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
國家重點研發計劃(2017YFB0802300)
The National Key R & D Program (2017YFB0802300)
魯遷遷, 朱友文, 蔣炎. 無須重注冊的單向通信動態口令認證[J]. 網絡與信息安全學報, 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? ),女,江蘇徐州人,南京航空航天大學碩士生,主要研究方向為信息安全。

朱友文(1986? ),男,安徽阜南人,南京航空航天大學副教授,主要研究方向為信息安全。
蔣炎(1992? ),男,湖北仙桃人,南京航空航天大學博士生,主要研究方向為信息安全。
