摘要:基于RSA密碼系統(tǒng)和安全單向的哈希函數(shù),提出了一種相對安全的遠(yuǎn)程口令認(rèn)證方案。采用個人身份識別碼(PIN)與智能卡相結(jié)合的雙因素認(rèn)證方式,用戶不但可以自主選取用戶口令,而且還可以根據(jù)自身的需要隨時更新口令,極大地增強(qiáng)了系統(tǒng)的安全性,提高了系統(tǒng)的認(rèn)證效率。
關(guān)鍵詞:智能卡;口令認(rèn)證;哈希函數(shù)
中圖分類號:TP242文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)19-30115-02
Research of Remote Password Authentication Scheme Based on Smartcard
LI Xiao-min
(Pingdingshan Institute of Technology, Electrical and Electronic Engineering Department, Pingdingshan 467000, China)
Abstract: Based on the RSA cryptography and one-way secure hash function, this paper discusses a safer remote password authentication scheme with smart card. This scheme has the following advantages: Using the Double-Factor Authentication. Each user can freely choose his own password and can renew the password himself anytime according to his need. These will enhance the security of the system greatly and increase the efficiency of the authentication.
Key words: Smartcard; Password authentication; Hash function
1 引言
在遠(yuǎn)程用戶認(rèn)證方案中,允許一個有效用戶登錄遠(yuǎn)程服務(wù)器、共享相應(yīng)的服務(wù)。這種認(rèn)證過程是在不安全的公共信道上運(yùn)行的?;赗SA密碼系統(tǒng)和安全單向的hash函數(shù),借助智能卡功能,設(shè)計了一個安全高效的遠(yuǎn)程口令認(rèn)證方案。
2 方案設(shè)計
2.1 系統(tǒng)初始化
根據(jù)給定的系統(tǒng)安全參數(shù)l,系統(tǒng)隨機(jī)選取兩個長度為l比特的大素數(shù)p和q,計算 n=pq和Ф(n)=(p-1)(q-1)。H是一個安全的hash函數(shù),g是有限域GF(p)和GF(q)的本原元。系統(tǒng)再隨機(jī)選取一素數(shù)e,計算密鑰d:d滿足ed≡1 (modФ(n))。最后,系統(tǒng)公開系統(tǒng)參數(shù)(n,g,H)和KC的公鑰e,將密鑰d以專門的安全機(jī)制保存在KC中,同時銷毀p和q。
2.2 用戶注冊
用戶Ui選擇口令Pi,然后將Pi及其身份標(biāo)識IDi傳送給KC。在確認(rèn)Ui的有效身份后,KC計算嵌入Ui智能卡的信息
■ (1)
■(2)
最后,KC將系統(tǒng)公開參數(shù)(n,g,H)、KC的公鑰e和信息(Si,hi)寫入用戶Ui的智能卡中,然后將智能卡交給用戶Ui。
2.3 用戶登錄
假設(shè)用戶Ui當(dāng)前登陸時間為T。當(dāng)Ui將智能卡插入讀卡器、鍵入其Pi時,智能卡隨機(jī)生成一個整數(shù)ri,然后按如下方式計算
C1=Si?茌Pi(3)
C2=C1?茌H(ri) (4)
C3=HiT?茌H(H(ri)) (5)
然后,向服務(wù)器發(fā)送(IDi,C2,C3,T)。
2.4系統(tǒng)驗(yàn)證
當(dāng)服務(wù)器接收到用戶Ui發(fā)來的消息(IDi,C2,C3,T)時,記下相應(yīng)的接收時刻■ 。服務(wù)器按如下方式進(jìn)行驗(yàn)證:
1) 根據(jù)給定一個有效時間△T,檢查■ 是否滿足■ -T≤△T ?若條件不成立,則登錄失??;
2) 計算 ■ (6)
■(7)
3) 驗(yàn)證下述等式是否成立
■(8)
若等式成立,則接受用戶Ui登錄請求;否則,登陸失敗。
3 核心算法
3.1 用戶私鑰生成算法
算法是利用用戶注冊的ID和密碼,根據(jù)服務(wù)器初始化時產(chǎn)生的密鑰對相關(guān)數(shù)據(jù),生成用戶的密鑰。(如圖1)
3.2 用戶認(rèn)證信息生成算法
本算法根據(jù)用戶的密鑰S,h和哈希函數(shù)H,以及一個隨機(jī)整數(shù)r,生成用戶認(rèn)證信息。生成的流程如圖2。
3.3 用戶身份認(rèn)證算法
本算法是整個方案的主要算法,服務(wù)器根據(jù)用戶的認(rèn)證信息,依據(jù)RSA算法和離散對數(shù)原理,對用戶的登錄進(jìn)行認(rèn)證。認(rèn)證過程如圖3。
4 安全性分析
本方案的安全性是基于安全單向的hash函數(shù)和大整數(shù)分解難問題的。具體分析如下:
1) 秘密密鑰d,只為服務(wù)器端所知,是保證實(shí)現(xiàn)本認(rèn)證系統(tǒng)安全的關(guān)鍵,因而需要用專門的安全機(jī)制進(jìn)行密碼保存。
2) 攻擊者利用自己的IDi和智能卡上的信息(Si,hi),安全單向的hash函數(shù)使攻擊者從(1)得到的H(d‖IDKC‖IDi)=Pi?茌Si得到d不可能實(shí)現(xiàn),而試圖利用(2)式中hi(gIDi)d mod n來求出d,面臨求離散對數(shù)難的問題。
3) 如果客戶端使用者Ui不小心遺失智能卡,因?yàn)槭暗谜邿o法得知口令Pi,因而無法正確計算(3)中的C1=Si?茌Pi,從而無法假冒認(rèn)證信息(C2,C3)。
4) 使用者不小心泄漏了身份IDi和口令Pi,入侵者如果沒有此智能卡,則因?yàn)闊o從知道(Si,hi),從而很難仿制出(3)中的C1=Si?茌Pi和(5)中的C3=hiT?茌H(H(ri)),從而無法假冒認(rèn)證信息(C2,C3)。
5) 如果另一合法客戶端用戶Uj想假冒用戶Ui身份進(jìn)入系統(tǒng),既沒有用戶Ui的智能卡,也沒有用戶Ui的口令,從3)和4)分析可知,Uj很難攻擊成功。
6) 假設(shè)入侵者截獲從客戶端發(fā)往服務(wù)器端的認(rèn)證信息(IDi,C2,C3,T),同上述2)一樣,入侵者很難從(C2,C3)中分析出d和ri,從而無法仿制另一個有效信息(IDi,C2',C3',T ' )進(jìn)行登錄。另一方面,發(fā)送的信息中包含時間戳,從而能有效地抵抗重放攻擊。
7) 如果一個入侵者冒充服務(wù)器端,因?yàn)樗麩o從知道d, 因此無法利用(6)得到■2,因而不能根據(jù)(7)計算出滿足(8)的■3。此外,直接根據(jù)(8)的■求■3,面臨分解大整數(shù)難問題。
參考文獻(xiàn):
[1] 李海泉,李健.計算機(jī)網(wǎng)絡(luò)與加密技術(shù)[M]. 北京:科學(xué)出版社,2001.
[2] 王育民,劉建偉.通信網(wǎng)的安全──理論與技術(shù)[M]. 西安:西安電子科技大學(xué)出版社,1999.4.
[3] 盧開澄.計算機(jī)密碼學(xué)──計算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)保密與安全(第2版)[M]. 北京:清華大學(xué)出版社,1998.7.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文