摘? ?要: 為提高非對稱加密算法下網(wǎng)絡(luò)身份認證協(xié)議的安全和效率,將哈希函數(shù)、挑戰(zhàn)應(yīng)答機制和異或運算融合到傳統(tǒng)的非對稱密鑰認證過程中,提出一種新的雙向認證協(xié)議,協(xié)議中同時協(xié)商產(chǎn)生了成功認證后的一次性對稱會話密鑰。通過數(shù)學推導和針對已知攻擊的形式化推演,證明了協(xié)議能抵御重放攻擊、拒絕服務(wù)攻擊在內(nèi)的各種已知攻擊,具有較高的安全性能。本協(xié)議認證雙方僅需兩次信息交互即可實現(xiàn)雙向認證。經(jīng)統(tǒng)計計算,本協(xié)議的認證運算量與傳統(tǒng)的非對稱密鑰身份認證協(xié)議相當。
關(guān)鍵詞: 身份認證;非對稱加密算法;哈希函數(shù);挑戰(zhàn)應(yīng)答機制;異或運算
中圖分類號:TN918.1? ? 文獻標識碼:A? ? 文章編號:2095-8412 (2020) 06-103-05
工業(yè)技術(shù)創(chuàng)新 URL: http://gyjs.cbpt.cnki.net? ? DOI: 10.14103/j.issn.2095-8412.2020.06.018
引言
在網(wǎng)絡(luò)應(yīng)用日趨普及的今天,身份認證是網(wǎng)絡(luò)應(yīng)用的基礎(chǔ),貫穿于所有網(wǎng)絡(luò)應(yīng)用的全過程。在網(wǎng)絡(luò)安全中,身份認證技術(shù)作為第一道也是最重要的一道防線,有著極其重要的地位。身份認證的技術(shù)基礎(chǔ)主要是密碼學方法,非對稱加密算法具備較好的安全保密性能,被廣泛應(yīng)用于各種身份認證協(xié)議中。引入挑戰(zhàn)應(yīng)答機制的、基于非對稱加密算法的傳統(tǒng)雙向認證協(xié)議通過四次信息傳遞來實現(xiàn)雙向認證,一直被認為是高效的認證方案[1-2]。結(jié)合挑戰(zhàn)應(yīng)答機制的非對稱加密認證方案不斷推陳出新,但認證雙方于認證階段所需的的信息交互次數(shù)都穩(wěn)定在四次,并且各改進協(xié)議陸續(xù)被指存在重放攻擊、中間人攻擊、網(wǎng)絡(luò)竊聽等重大安全缺陷[3-8]。
哈希函數(shù)特有的單向性和高效性,能有效保障信息的完整性[9]。本文將哈希運算結(jié)合到非對稱加密算法下的雙向認證協(xié)議中,巧妙地改進雙向認證的流程和信息交互格式,使新雙向認證協(xié)議可以有效抵御重放攻擊、冒充攻擊、拒絕服務(wù)攻擊等常見攻擊,從而有效地提升了認證安全性能,同時將認證雙方在雙向認證階段的信息交互次數(shù)減少到兩次,極大地降低了認證雙方的通信代價,并協(xié)商產(chǎn)生用于后續(xù)會話的一次性對稱密鑰。
1 基于非對稱加密算法的身份認證協(xié)議
本協(xié)議的安全性建立在數(shù)字證書非對稱加密算法和哈希函數(shù)的單向性基礎(chǔ)之上。協(xié)議在不顯著提高認證計算量的基礎(chǔ)上,把認證雙方通信交互的次數(shù)減少一半,并有效提升雙向認證的安全性。認證雙方相互認證后,將各自生成用于后續(xù)會話的對稱密鑰,會話密鑰在構(gòu)成上包含有雙方的身份信息和多個隨機數(shù)信息,且沒有將會話密鑰在公共信道上明文傳輸或在認證服務(wù)器S上存儲會話密鑰明文信息。本文的雙向認證協(xié)議由用戶注冊階段、雙向認證和密鑰協(xié)商階段、口令值更新階段三個部分組成。后續(xù)符號標記描述如表1所示。
1.1? 用戶注冊
Step 1: 用戶生成注冊申請信息并通過公共信道發(fā)送給認證服務(wù)器。
用戶隨機產(chǎn)生,并計算出密保信息的哈希值和密碼的哈希值,以用戶的私鑰加密上述三項信息生成。用戶將帳號信息、數(shù)字證書、和拼接后,使用認證服務(wù)器的公鑰加密獲得注冊申請信息。
用戶在公共信道上發(fā)送給認證服務(wù)器注冊申請信息:
Step 2: 認證服務(wù)器審核注冊申請并返回注冊結(jié)果給用戶。
認證服務(wù)器用自己的私鑰解密注冊申請信息后得到及,根據(jù),通過進一步查詢獲得,并用它解密,以獲得。通過比對和的是否一致來驗證用戶注冊信息的新鮮性,如和比對失敗則拒絕注冊請求并終止會話。將解密所得的注冊內(nèi)容:、、、、寫入到本地數(shù)據(jù)庫。允許注冊后將返回結(jié)果給用戶。
協(xié)議的用戶注冊時序圖(含信息交換格式)如圖1所示。
1.2? 雙向認證及一次性會話密鑰協(xié)商
Step 1: 用戶生成并發(fā)送登錄請求信息給認證服務(wù)器。
用戶隨機產(chǎn)生,生成登錄請求信息并經(jīng)由公共信道傳送給認證服務(wù)器:
Step 2: 認證服務(wù)器驗證信息來源、認證用戶,計算得出會話密鑰。
認證服務(wù)器使用解密登錄請求信息獲得、、、。
根據(jù)用戶的帳號在本地數(shù)據(jù)庫中查詢獲取相關(guān)信息:、和,繼而獲取用戶的公鑰。首先通過比對和來驗證登錄請求信息來源的合法性,如果比對失敗則終止登錄認證過程。然后,計算,并通過比對計算所得的與收到的二者是否一致來認證用戶身份的合法性。
生成作為第一次成功登錄后的雙方會話對稱密鑰,并將和存儲于本地數(shù)據(jù)庫。
構(gòu)造雙向認證信息并通過公共信道發(fā)給用戶:
Step 3: 用戶核驗認證服務(wù)器,計算得出會話密鑰。
用戶使用解密來自認證服務(wù)器的信息,獲得認證結(jié)果信息、和。通過與本地存儲的比對來認證的合法性,如果比對失敗則終止登錄認證過程。
用戶計算出用以向通信的會話稱密鑰 。
協(xié)議的雙向認證及一次性會話密鑰協(xié)商時序圖(含信息交換格式)如圖2所示。
1.3? 口令值更新
用戶在口令值更新操作時,首先需要能成功執(zhí)行上小節(jié)的雙向認證,詳細過程略。
Step 1: 用戶向認證服務(wù)器發(fā)送登錄請求信息:
Step 2: 認證的合法性,并返回給雙向認證信息:
Step 3: 用戶通過比對以認證的合法性,構(gòu)造并發(fā)送的口令值更新信息。
用戶選定新的用戶密碼,同時生成新的隨機數(shù)。構(gòu)造以下口令值更新信息并通過公共信道發(fā)送給認證服務(wù)器:
為保障數(shù)據(jù)安全,新的用戶密碼和新的隨機數(shù)均不以原形的方式存儲和傳輸,而是以它們和原存儲值異或后的形式出現(xiàn):、。本協(xié)議的異或值設(shè)計使得攻擊者在公共信道上截獲或者從認證服務(wù)器數(shù)據(jù)庫非法取得的的信息無法直接使用。
Step 4: 認證服務(wù)器驗證注冊信息更新的權(quán)限,存儲新的口令值和隨機數(shù),并返回處理結(jié)果給用戶。
認證服務(wù)器以自己的私鑰解密收到信息后獲取,比對與本地存儲的密保信息值是否一致,若二者一致則允許修改注冊信息,否則拒絕修改并中止后續(xù)口令值更新過程。認證服務(wù)器計算、,用這兩個新值、替換本地數(shù)據(jù)庫中的對應(yīng)數(shù)據(jù),最后返回口令值更新的結(jié)果給用戶。口令值修改完成。
協(xié)議的口令值更新時序圖(含信息交換格式)如圖3所示。
2 安全性證明
2.1? 認證雙方生成的會話密鑰一致性證明
證明如下:
由上式可以看出,用戶與認證服務(wù)器彼此成功認證后,、分別生成的會話密鑰與可以用于后續(xù)會話的相互加解密操作。
2.2? 本文協(xié)議的安全性證明
問題1? 本文協(xié)議如何抵御拒絕服務(wù)攻擊?
證明:認證服務(wù)器的拒絕服務(wù)攻擊分為如下幾種情況。
① 如果攻擊者非法用戶能假冒合法用戶注冊信息而進行搶先注冊,將會造成合法用戶無法正常注冊的情況。本協(xié)議所設(shè)計的注冊信息,由于其中的,需由加密而成。非法用戶在假冒合法用戶注冊時,雖然能獲得的外層加密,但因為沒有而無法偽造內(nèi)層的密文,在后續(xù)執(zhí)行 和 比對時必然出現(xiàn)失敗的結(jié)果,從而無法成功假冒合法用戶搶先進行注冊。如果非法用戶反復惡意搶注,可以斷開其IP進而實現(xiàn)抵御拒絕服務(wù)攻擊的目的。
②由于攻擊者通過發(fā)送高頻錯誤的登錄請求給認證服務(wù)器,而造成服務(wù)器性能下降造成最終無法提供正常服務(wù)的拒絕服務(wù)攻擊是傳統(tǒng)數(shù)字證書認證的一種情況。對于本文所述協(xié)議,合法用戶注冊成功后在服務(wù)器本地數(shù)據(jù)庫上存有注冊要素,當S收到登錄請求信息后,首先將比對與登錄請求信息中所包含的一致性,以驗證登錄請求信息來源的合法性。由于攻擊者無法提供正確的以供驗證,注定其所發(fā)送的登錄請求無法通過。認證服務(wù)器會記錄來自同一IP連接的登錄請求連續(xù)錯誤次數(shù),當連續(xù)錯誤的次數(shù)超過設(shè)定的限額后,認證服務(wù)器將禁止該IP在一段時間內(nèi)再次執(zhí)行登錄請求。后續(xù)此IP連接如果再次發(fā)起拒絕服務(wù)攻擊,這一IP連接的禁止時長將被指數(shù)級逐步延長,進而實現(xiàn)抵御拒絕服務(wù)攻擊的要求。
問題2? 本文協(xié)議如何抵御冒充攻擊?
證明:注冊階段的隨機數(shù)是經(jīng)過認證服務(wù)器S的公鑰加密后傳輸?shù)?。因為攻擊者無法獲取,所以無法生成合法的登錄請求信息,所有本文協(xié)議能抵御冒充攻擊。
問題3? 本文協(xié)議如何確定后續(xù)會話的一次性對稱密鑰?
證明:合法用戶首次登錄并認證服務(wù)器S雙向認證后,雙方各自計算出、值作為后續(xù)會話的對稱密鑰。會話密鑰的構(gòu)成要件中包含的帳號信息、的密碼、服務(wù)器的帳號等多種信息,同時還包擴若干一次性隨機數(shù)信息。即便是同一與同一之間發(fā)生了的兩次不同時間的登錄認證后,所生成的會話密鑰也會因不同的隨機數(shù)或用戶修改了而不相同。而且會話密鑰的所有構(gòu)成要件均不以原始信息的形式在公共信道上傳輸,可以真正實現(xiàn)每一次會話都能夠生成不同的會話安全密鑰。
問題4? 本文協(xié)議如何抵御重放攻擊?
證明:本文的協(xié)議在雙向認證過程中引入挑戰(zhàn)應(yīng)答機制,重放登錄請求信息雖可暫時獲得認證服務(wù)器的應(yīng)答,但是由于應(yīng)答信息是經(jīng)過用戶公鑰加密的,非法用戶無法取得合法用戶的私鑰從而無法獲取信息。重放攻擊由于無法完成后續(xù)認證,所以本文協(xié)議能夠抵御重放攻擊。
問題5? 本文協(xié)議如何抵御來自內(nèi)部的攻擊?
證明:當有內(nèi)部授權(quán)人員盜取了合法用戶認證服務(wù)器中的相關(guān)信息后,只能查詢獲取相應(yīng)的認證服務(wù)器用于發(fā)送給合法用戶的用于加密的公鑰信息,在沒有信息的情況下,無法完成后續(xù)的雙向認證。內(nèi)部授權(quán)人員無法獲得用戶的密碼原形,原因是由于合法用戶的密碼是以其哈希值的形式出現(xiàn),而哈希函數(shù)具有單向安全性[10],所以本文協(xié)議能夠完美抵御來自內(nèi)部的攻擊。
問題6? 本文協(xié)議如何抵御中間人的攻擊?
證明:本文協(xié)議的合法的用戶與認證服務(wù)器雙方通過非對稱密鑰加解密運算來檢驗彼此信息的正確性,不僅實現(xiàn)了雙向認證,而且只有才可能生成正確的登錄請求信息,真正擁有的私鑰者才可能解密對方用生成的非對稱加密信息,因而本文協(xié)議能夠有效抵御中間人的攻擊。
3 性能分析
3.1 通信交互次數(shù)分析
根據(jù)圖2所示,本文所述協(xié)議的通信交互次數(shù),是用戶和在登錄認證階段僅需通過公共信道進行總共兩次信息傳遞,通信代價明顯低于文獻[1]和[3]的信息交換次數(shù)。
3.2? 運算量分析
首先定義如下符號:
: 一次非對稱加密操作所需的時間;
: 一次非對稱解密操作所需的時間;
: 一次對稱加密操作所需的時間;
: 一次哈希函數(shù)運算所需的時間;
: 一次異或操作所需的時間。
本文協(xié)議的設(shè)計未引入運算量較大的雙線性對運算[11]。對協(xié)議運算量的比較而言,最關(guān)鍵的是登錄和雙向認證階段信息構(gòu)造的運算,特別是認證服務(wù)器的運算量[12]。在本協(xié)議的登錄和雙向認證階段,用戶端和認證服務(wù)器的運算量都是,運算量相對是較低的,主要的運算量是在非對稱加解密操作。在傳統(tǒng)的非對稱密鑰雙向認證協(xié)議中,雙方的運算量至少均需要。兩種協(xié)議在運算量上沒有明顯區(qū)別。本文協(xié)議所需運算量如表2所示。
綜上分析可知:本文所述的身份認證協(xié)議與傳統(tǒng)的非對稱密鑰雙向認證協(xié)議相比,通信交互次數(shù)減少了一半,而運算復雜度并無明顯差別。因而本文協(xié)議的性能優(yōu)于傳統(tǒng)身份認證協(xié)議。
4 結(jié)語
本文提出的身份認證協(xié)議的安全性建立在公私鑰密碼難題和哈希函數(shù)單向安全性的基礎(chǔ)上,在各種已知方式的攻擊中具有較高的安全性能。本協(xié)議的運算量及復雜度與傳統(tǒng)的基于公鑰密碼體制認證協(xié)議處于同一數(shù)量級,在僅使用少量必要的非對稱加解密運算和簡單哈希運算、異或運算的情況下,將哈希函數(shù)、挑戰(zhàn)應(yīng)答機制、異或運算等靈活運用到了基于公鑰密碼的雙向身份認證協(xié)議中,在實現(xiàn)雙向認證的同時完成了一次性會話密鑰協(xié)商,認證過程僅需通過兩次的信息交互,提高了通信效率,因而具有較高的安全性和應(yīng)用價值。
參考文獻
[1] 趙銘偉, 季曉玉, 江榮安. 一種高效安全的動態(tài)口令認證方案[J]. 計算機應(yīng)用與軟件, 2009, 26(5): 255-257.
[2] LAI X J. Security Requirements on Authentication Protocols Using Challenge-Response[J]. Journal of the Graduate School of the Chinese Academy of Sciences, 2002,19(3): 246-253.
[3] 劉懷蘭, 侯昕, 王佳. 改進的基于USBKey的動態(tài)身份認證方案[J]. 華中科技大學學報: 自然科學版, 2010, 38(11): 41-43.
[4] 曹晨磊, 劉明奇, 張茹, 等. 基于層級化身份的可證明安全的認證密鑰協(xié)商協(xié)議[J]. 電子與信息學報, 2014, 36(12): 2848-2854.
[5] 王增光, 陳立云, 盧昱. 基于OTP的WiFi身份認證模型的設(shè)計及分析[J]. 測控技術(shù), 2016, 35(7): 98-101.
[6] 毛可飛, 陳杰, 劉建偉. 層次身份基認證密鑰協(xié)商方案的安全性分析和改進[J]. 電子與信息學報, 2016, 38(10): 2619-2626.
[7] 孫海燕, 李玲玲, 張玲, 等. 一種增強的移動互聯(lián)網(wǎng)身份基認證密鑰協(xié)商協(xié)議[J]. 計算機工程, 2019, 45(9): 153-160.
[8] 王霏, 陳明. 完美前向安全的基于身份認證密鑰協(xié)商方案[J]. 密碼學報, 2020, 7(1): 56-68.
[9] 陳莊, 陳亞茹. 基于hash實現(xiàn)低成本RFID的SRFID安全方案[J]. 重慶理工大學學報: 自然科學, 2017, 31(12): 140-145.
[10] 李川, 李學俊. 一種基于散列函數(shù)的RFID安全認證方法[J]. 電信科學, 2017, 33(6): 129-137.
[11] 王真, 馬兆豐, 羅守山. 基于身份的移動互聯(lián)網(wǎng)高效認證密鑰協(xié)商協(xié)議[J]. 通信學報, 2017, 38(8): 19-27.
[12] 諶雙雙, 陳澤茂, 王浩. 基于PKI的通用無線認證協(xié)議研究. 計算機科學, 2012, 39(7): 74-77.
作者簡介:
趙玉超(1974—),通信作者,男,河北唐山人,本科,實驗師。研究方向:電子通信。
E-mail: powerjsj@126.com
(收稿日期:2020-09-02)