一種基于智能卡的雙因素遠(yuǎn)程身份認(rèn)證方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全和網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種基于智能卡的雙因素遠(yuǎn)程身 份認(rèn)證方法
【背景技術(shù)】
[0002] 網(wǎng)絡(luò)通信技術(shù)發(fā)展迅速,使得越來越多的人習(xí)慣使用網(wǎng)絡(luò)提供的服務(wù),比如電子 商務(wù)、電子政務(wù)、電子化物流等。用戶要從服務(wù)器獲得信息或者享受服務(wù)器提供的服務(wù),首 先要登錄到服務(wù)器。因此,需要有一個(gè)應(yīng)用于網(wǎng)絡(luò)的遠(yuǎn)程身份認(rèn)證方案,以驗(yàn)證用戶的合法 性。但是,互聯(lián)網(wǎng)是一個(gè)公共的環(huán)境,任何人都可以攔截用戶和服務(wù)器之間的消息,所以如 何保護(hù)用戶信息、防止非法通信非常重要。
[0003] 雙因素身份認(rèn)證方法是通過"用戶所知"和"用戶所有"兩個(gè)因素判斷用戶的身份, "用戶所有"的因素通過給用戶發(fā)放智能卡實(shí)現(xiàn),"用戶所知"因素一般為用戶選擇的口令, 如密碼。基于智能卡和密碼的雙因素身份認(rèn)證方法彌補(bǔ)了單因素身份認(rèn)證方法易受驗(yàn)證表 泄露攻擊等缺陷,被研究者們進(jìn)行了大量研究。
[0004] 多服務(wù)器環(huán)境下身份認(rèn)證方法可以實(shí)現(xiàn)用戶只注冊一次,即可在多個(gè)服務(wù)器上實(shí) 現(xiàn)相互認(rèn)證。多服務(wù)器環(huán)境下的身份認(rèn)證方法應(yīng)用廣泛,涉及到校園卡、金融卡、智能銀行 卡等系統(tǒng)。如用戶注冊校園卡后,不僅可在餐廳刷卡就餐、在超市刷卡購物,還能通過寢室 門禁系統(tǒng)。如果校園卡、金融卡丟失并被攻擊者從中竊取了關(guān)鍵信息,會(huì)導(dǎo)致個(gè)人信息泄 露,甚至財(cái)產(chǎn)損失。雖然現(xiàn)有技術(shù)提供了一些解決方案,比如常用的信用卡驗(yàn)證方法,但是 這些方法中沒有本地驗(yàn)證的步驟,若攻擊者以某種方式獲得一張智能卡,則可以通過持續(xù) 不斷地向服務(wù)器發(fā)送登錄請求,使系統(tǒng)無法正常工作,導(dǎo)致拒絕服務(wù)攻擊;不僅如此,在這 些方法的登錄階段,用戶通過公共信道向服務(wù)器明文傳輸其身份標(biāo)識(shí),攻擊者可以通過截 獲用戶與服務(wù)器間的通信監(jiān)控,從而掌握用戶的登錄時(shí)間和規(guī)律,實(shí)現(xiàn)匿名性攻擊;還有, 這些方法中智能卡內(nèi)存儲(chǔ)用戶身份標(biāo)識(shí),使得其方法可遭受智能卡被盜攻擊;此外,這些方 法不能更改密碼,不適合于實(shí)際應(yīng)用。
【發(fā)明內(nèi)容】
[0005] 針對(duì)以上缺陷,本發(fā)明的目的在于提供一種更加安全的多服務(wù)器環(huán)境下基于智能 卡的雙因素遠(yuǎn)程身份認(rèn)證方法,本方法能夠抵抗拒絕服務(wù)攻擊、智能卡被盜攻擊。
[0006] 為達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案:
[0007] -種基于智能卡的雙因素遠(yuǎn)程身份認(rèn)證方法,包括如下步驟:將服務(wù)器在注 冊中心注冊為多服務(wù)器系統(tǒng)中的合法服務(wù)器;用戶向注冊中心提交注冊申請,注冊成 功后,通過安全信道向用戶發(fā)放存有特定信息的智能卡,所述特定信息為{PdDdUdE, 1'1一1^1,8 1,11〇},其中,?1、01、1114_1'14 1^1和81均為加密信息』1為所述注冊中心根據(jù) 用戶提供的密碼PWi所得到的兩次哈希值Pi=h(h(PWJ),DiS根據(jù)用戶標(biāo)識(shí)UID^導(dǎo)到的加 密值D,_ ,Ui為用戶的加密信息 % , Vi=h(x+l,UIDJ 服務(wù)器S,對(duì)用戶Ui的有效服務(wù)時(shí)間,Au是用戶和每個(gè)服務(wù)器的私有密鑰V1]=h(vi,SID,) 的加密值4其中符號(hào)£;3( ?)表不使用密鑰s進(jìn)行加密,SIDj為服務(wù)器的身 份標(biāo)識(shí),1和Bi為所述注冊中心生成的加密信息4 ? &和K=M?J),b為所述智 能卡生成的一個(gè)隨機(jī)數(shù),h()為哈希函數(shù);用戶使用所述智能卡登錄所述服務(wù)器;所述智能 卡根據(jù)用戶提供的口令進(jìn)行本地合法性驗(yàn)證,若通過驗(yàn)證,則生成攜帶密鑰信息的第一驗(yàn) 證數(shù)據(jù),并將第一驗(yàn)證數(shù)據(jù)發(fā)給服務(wù)器,否則結(jié)束用戶登錄發(fā)起的會(huì)話;所述服務(wù)器根據(jù)收 到的第一驗(yàn)證數(shù)據(jù)驗(yàn)證所述智能卡的身份,若通過驗(yàn)證,則生成用于驗(yàn)證服務(wù)器身份的第 二驗(yàn)證數(shù)據(jù),并將第二驗(yàn)證數(shù)據(jù)發(fā)給所述智能卡,否則結(jié)束所述智能卡與服務(wù)器之間的會(huì) 話;所述智能卡根據(jù)收到的第二驗(yàn)證數(shù)據(jù)驗(yàn)證所述服務(wù)器身份的合法性,若通過驗(yàn)證,則生 成智能卡端會(huì)話密鑰和用于二次驗(yàn)證的包含所述智能卡端會(huì)話密鑰信息的第三驗(yàn)證數(shù)據(jù), 并將第三驗(yàn)證數(shù)據(jù)發(fā)送給所述服務(wù)器,否則結(jié)束所述智能卡與服務(wù)器之間的會(huì)話;所述服 務(wù)器根據(jù)接收到的第三驗(yàn)證數(shù)據(jù)對(duì)所述智能卡身份進(jìn)行二次驗(yàn)證,若驗(yàn)證通過,則生成服 務(wù)器端會(huì)話密鑰,同時(shí)驗(yàn)證與所述智能卡端會(huì)話密鑰的一致性,若一致則通過驗(yàn)證,繼續(xù)所 述智能卡與所述服務(wù)器的會(huì)話,否則結(jié)束兩者之間的會(huì)話。
[0008] 進(jìn)一步地,一種基于智能卡的雙因素遠(yuǎn)程身份認(rèn)證方法,用戶使用所述智能卡登 錄所述服務(wù)器的步驟進(jìn)一步包括:所述用戶將智能卡插入讀卡器,輸入密碼和所登錄 服務(wù)器的身份標(biāo)識(shí)SID,,智能卡生成<=/?(/#〇),并驗(yàn)證P# 是否相等,若相 等,則證明用戶輸入正確密碼,否則提示用戶重新輸入密碼。
[0009] 進(jìn)一步地,一種基于智能卡的雙因素遠(yuǎn)程身份認(rèn)證方法,智能卡生成并發(fā)送第一 驗(yàn)證數(shù)據(jù)的步驟進(jìn)一步包括:所述智能卡生成加密身份標(biāo)識(shí)和生成會(huì)話密鑰所需的隨機(jī)數(shù) 13_和ruk,并計(jì)算還原用戶身份標(biāo)識(shí)6VD, =D; ?MPf),進(jìn)而利用隨機(jī)數(shù)來加密身份標(biāo) 識(shí),生成i十upa=I,. ?L所述智能卡通過計(jì)算還原v,.=",.十辦,并生 成與服務(wù)器的對(duì)稱密鑰Vl] =h(vdSID,),然后智能卡用對(duì)稱密鑰Vl]加密{ruk,h(UIDi)}得 到第一驗(yàn)證數(shù)據(jù)€.少',WZA)),并將其與輔助驗(yàn)證數(shù)據(jù){E+T^,A、,,QdByb_}發(fā)送給服 務(wù)器。
[0010] 進(jìn)一步地,一種基于智能卡的雙因素遠(yuǎn)程身份認(rèn)證方法,所述服務(wù)器根據(jù)收到的 第一驗(yàn)證數(shù)據(jù)驗(yàn)證所述智能卡的身份的步驟進(jìn)一步包括:所述服務(wù)器獲取當(dāng)前的時(shí)間戳 T;所述服務(wù)器計(jì)算和與用戶的共同密鑰% ,并利用Vl]解 密))以獲得rUk和h(UIDi),然后,服務(wù)器驗(yàn)證解密獲得的h(UIDi)和計(jì)算得到 的hOJIDi)是否相等,若相等,則智能卡通過了身份驗(yàn)證。
[0011] 進(jìn)一步地,一種基于智能卡的雙因素遠(yuǎn)程身份認(rèn)證方法,還包括所述智能卡更新 其存儲(chǔ)內(nèi)容的步驟,所述智能卡利用對(duì)稱密鑰Vl]解密第二驗(yàn)證數(shù)據(jù),得到加密值Y_,替換 況,BJ為{Y_,BJ,并存入智能卡。
[0012] 進(jìn)一步地,一種基于智能卡的雙因素遠(yuǎn)程身份認(rèn)證方法,服務(wù)器注冊的步驟進(jìn)一 步包括:所述服務(wù)器將其身份標(biāo)識(shí)310 ]通過安全信道提交給注冊中心,注冊中心使用密鑰 X加密服務(wù)器身份標(biāo)識(shí)SIDj,得哈希值Wj=h(x,SID_j),并將加密值Wj和用于計(jì)算用戶身份 標(biāo)識(shí)的密鑰y存入服務(wù)器。
[0013] 進(jìn)一步地,一種基于智能卡的雙因素遠(yuǎn)程身份認(rèn)證方法,服務(wù)器驗(yàn)證智能卡 身份合法性前的步驟進(jìn)一步包括:所述服務(wù)器對(duì)用戶身份標(biāo)識(shí)的格式和服務(wù)時(shí)間進(jìn)行 核對(duì);所述服務(wù)器計(jì)算,還原得到式m 進(jìn)而計(jì)算用戶身份標(biāo)識(shí) L/D,=見,然后服務(wù)器驗(yàn)證用戶身份UIDi的格式是否符合規(guī)范,并核對(duì)當(dāng)前時(shí)間是 否在服務(wù)有效時(shí)間£_1'1]范圍內(nèi);若通過了兩項(xiàng)驗(yàn)證,則進(jìn)行智能卡身份合法性驗(yàn)證;否則 終止此次會(huì)話,并返回終止會(huì)話的原因。
[0014] 進(jìn)一步地,一種基于智能卡的雙因素遠(yuǎn)程身份認(rèn)證方法,智能卡根據(jù)第二驗(yàn)證數(shù) 據(jù)驗(yàn)證服務(wù)器身份合法性的步驟進(jìn)一步包括:所述智能卡利用對(duì)稱密鑰Vl]解密第二驗(yàn)證 數(shù)據(jù),驗(yàn)證解密獲得的^^是否為此次登錄智能卡生成的隨機(jī)數(shù),若是,則服務(wù)器身份的合 法性通過驗(yàn)證,其中,第二驗(yàn)證數(shù)據(jù)為%(%,,^^):,其由服務(wù)器生成并發(fā)送到智能卡, 其中,rsk為服務(wù)器生成的隨機(jī)數(shù)。
[0015] 進(jìn)一步地,一種基于智能卡的雙因素遠(yuǎn)程身份認(rèn)證方法,服務(wù)器對(duì)用戶身份進(jìn)行 二次驗(yàn)證的步驟包括:所述服務(wù)器生成服務(wù)器端會(huì)話密鑰skk=h(rsk,ruk,Vl