[0029] 進(jìn)一步地,登錄步驟進(jìn)一步包括:所述用戶將智能卡插入讀卡器,輸入密碼和 所登錄服務(wù)器的身份標(biāo)識SID,,智能卡計(jì)算if= ,并驗(yàn)證?1與if是否相等。若二 者相等,則證明用戶輸入正確密碼。
[0030] 進(jìn)一步地,智能卡生成并發(fā)送第一驗(yàn)證數(shù)據(jù)的步驟進(jìn)一步包括:所述智能卡 生成加密身份標(biāo)識和計(jì)算會話密鑰所需的隨機(jī)數(shù)13_和ruk,并計(jì)算還原用戶身份標(biāo)識 lvd, =q@m,進(jìn)而用隨機(jī)數(shù)加密身份標(biāo)識得到氧_=?輯:和a=我_ 、所 述智能卡通過計(jì)算還原X ):,并計(jì)算與服務(wù)器的對稱密鑰Vi_j=h(v;,SIDj)。然 后智能卡用對稱密鑰Vl]加密IrUbhOJIDi)}得到第一驗(yàn)證數(shù)據(jù),并將其與 輔助驗(yàn)證數(shù)據(jù)發(fā)送給服務(wù)器。
[0031] 進(jìn)一步地,服務(wù)器驗(yàn)證智能卡身份合法性前的步驟進(jìn)一步包括:所述服務(wù)器 對用戶身份標(biāo)識的格式和服務(wù)時(shí)間進(jìn)行核對;所述服務(wù)器計(jì)算¥ =M盡?>'),還原得到 式", =G?L進(jìn)而計(jì)算用戶身份標(biāo)識,然后服務(wù)器驗(yàn)證用戶身份UIDi的 格式是否符合規(guī)范,并核對當(dāng)前時(shí)間是否在服務(wù)有效時(shí)間E+IV,范圍內(nèi)。如果通過兩項(xiàng)驗(yàn) 證,則繼續(xù)智能卡身份合法性驗(yàn)證,否則終止此次會話,并返回終止原因。該步驟中的時(shí)間 驗(yàn)證,可以起到抗重放攻擊的技術(shù)效果。
[0032] 進(jìn)一步地,服務(wù)器驗(yàn)證智能卡身份合法性的步驟進(jìn)一步包括:所述服務(wù)器對智 能卡發(fā)送的驗(yàn)證數(shù)據(jù)進(jìn)行驗(yàn)證;所述服務(wù)器計(jì)算和與用戶的共同密鑰 v# 嚴(yán),并利用~解密巧(r^AOZ/A))以獲得叫和h(UIDJ。然后,服務(wù)器驗(yàn) 證解密獲得的hOJIDi)和計(jì)算得到的hOJIDi)是否相等,若相等,則智能卡通過了身份驗(yàn)證。
[0033] 進(jìn)一步地,服務(wù)器生成并發(fā)送第二驗(yàn)證數(shù)據(jù)的步驟進(jìn)一步包括:所述服務(wù)器獲取 當(dāng)前的時(shí)間戳T,計(jì)算第二驗(yàn)證數(shù)據(jù),并將其發(fā)送回智能卡,其中,rSk是服 務(wù)器生成的隨機(jī)數(shù)。
[0034] 進(jìn)一步地,智能卡驗(yàn)證服務(wù)器身份合法性的步驟進(jìn)一步包括:所述智能卡接收到 服務(wù)器發(fā)送的第二驗(yàn)證數(shù)據(jù)后,對其進(jìn)行驗(yàn)證;所述智能卡利用對稱密鑰 Vl]解密第二驗(yàn)證 數(shù)據(jù),驗(yàn)證解密獲得的^^是否為此次登錄智能卡生成的隨機(jī)數(shù),如果是,則證明服務(wù)器能 夠使用其獨(dú)有的加密信息正確地對ruk進(jìn)行加解密,從而證明了服務(wù)器身份的合法性。
[0035] 進(jìn)一步地,智能卡驗(yàn)證服務(wù)器身份合法后還包括:所述智能卡更新其存儲內(nèi) 容;所述智能卡利用對稱密鑰',解密第二驗(yàn)證數(shù)據(jù),得到加密值Y_,并替換為 后存入智能卡。隨機(jī)數(shù)加密可以使用戶的每一次登錄信息都不同,無法被跟蹤, 為了能夠?qū)崿F(xiàn)下一次通過隨機(jī)數(shù)加密傳輸信息,需要智能卡端進(jìn)行加密信息的更新。無法 被跟蹤,意味著能夠抵抗匿名性攻擊,良好地保護(hù)了用戶隱私。第一驗(yàn)證數(shù)據(jù)采用的隨機(jī)數(shù) 加密和智能卡更新存儲的方法實(shí)現(xiàn)了用戶匿名登錄的安全目標(biāo)。
[0036] 進(jìn)一步地,該方法除了相互驗(yàn)證步驟還包括二次驗(yàn)證步驟:所述智能卡計(jì)算智能 卡端會話密鑰skk=h(rsk,ruk,vj,進(jìn)而計(jì)算第三驗(yàn)證數(shù)據(jù)(?< ),并將其發(fā)給服務(wù) 器;所述服務(wù)器計(jì)算服務(wù)器端會話密鑰skk=h(rsk,ruk,Vl]),并用skk解密第三驗(yàn)證數(shù)據(jù) ,進(jìn)而驗(yàn)證智能卡端會話密鑰和服務(wù)器端會話密鑰的一致性。
[0037] 進(jìn)一步地,服務(wù)器二次驗(yàn)證步驟前還包括:所述服務(wù)器檢驗(yàn)第三驗(yàn)證數(shù)據(jù)的時(shí)效 性;所述服務(wù)器檢驗(yàn)時(shí)間差t_-T是否大于正常情況下驗(yàn)證消息從服務(wù)器到智能卡再到服 務(wù)器的延時(shí)AT,其中丨_為當(dāng)前時(shí)間。若不等式成立,則第三驗(yàn)證數(shù)據(jù)無效,否則進(jìn)行二次 驗(yàn)證。
[0038] 進(jìn)一步地,智能卡和服務(wù)器在身份驗(yàn)證過程中還包括:智能卡根據(jù)公式skk = h(rsk, ruk, vj計(jì)算智能卡端會話密鑰;服務(wù)器根據(jù)公式skk= h(rsk,ruk, vj計(jì)算服務(wù)器 端會話密鑰。
[0039] 作為本發(fā)明的另外一個(gè)更加接近實(shí)際應(yīng)用的具體實(shí)施例,注冊階段完成服務(wù)器和 用戶在注冊中心的注冊工作,通信在安全信道中進(jìn)行。具體步驟如下所述:
[0040] 合法服務(wù)器將其身份標(biāo)識510]通過安全信道提交給注冊中心,注冊中心計(jì)算w,= hUSID,),并將{W],y}存入服務(wù)器。
[0041] 合法用戶向注冊中心提交身份標(biāo)識和密碼{UIDbPWj,注冊中心收到用戶的申請 信息后,將進(jìn)行以下步驟:
[0042]Step1.注冊中心計(jì)算用戶密碼的兩次哈希值Pi=h(h(PW;))、用戶標(biāo)識加密值 A=0?,_?/?(/^)、用戶的加密信息Vi=h(x+l,UIDJ和=v;十MPR)、用戶和服務(wù)器 的私有密鑰vlS=h(vi,SID)以及加密值4 =\郵3 (心)。
[0043] Step 2?智能卡生成一個(gè)隨機(jī)數(shù)b。
[0044] Step 3.注冊中心計(jì)算使用隨機(jī)數(shù)的加密信息盡和》;=/?(/:?,十>?)。
[0045] St印4?注冊中心將{P^Dbi^EJ^AuYDBbhO}存儲到智能卡中,并將智能卡 發(fā)給用戶。
[0046] 登錄和驗(yàn)證階段將完成本地驗(yàn)證、用戶與服務(wù)器的雙向驗(yàn)證和二次驗(yàn)證。具體步 驟如下:
[0047] St印L用戶希望登錄服務(wù)器時(shí),需要將智能卡插入讀卡器,并輸入密碼'和需 要登錄服務(wù)器的身份標(biāo)識SID,。
[0048] St印2.智能卡計(jì)算/f=/辦W)),并驗(yàn)證P#if是否相等,如果相等,則證 明用戶輸入正確密碼;智能卡生成隨機(jī)數(shù)b_和ruk,以備計(jì)算使用;智能卡通過計(jì)算還原K=,?//(/>< ),并計(jì)算與服務(wù)器的對稱密鑰Vi]=h(vi,SID,);智能卡計(jì)算用戶身份標(biāo)識 f//D, =/>,十蚵/^f),進(jìn)而計(jì)算5;,,,,=tZ/峨46和0, 智能卡計(jì)算第一驗(yàn)證數(shù)據(jù) ~(%,A(Mq)),并將登錄信息壚―%烏屬,我,,巧(r%,/⑷)}發(fā)送給服務(wù)器。
[0049] st印3.服務(wù)器收到用戶的登錄請求消息后,計(jì)算¥ = A〇e,?.y),還原得到 =a ,進(jìn)而計(jì)算用戶身份標(biāo)識=我_06_;服務(wù)器驗(yàn)證用戶身份UIDi的格式 是否符合規(guī)范,并核對當(dāng)前時(shí)間是否在服務(wù)有效時(shí)間Eju范圍內(nèi)。如果通過兩項(xiàng)驗(yàn)證,則 繼續(xù)下面的步驟;否則終止此次會話,并返回終止原因。
[0050] 3七印4.服務(wù)器計(jì)算1;",. = /^_.?少)和與用戶的對稱密鑰4=1)^五-7;,(4/), 并利用Vl]解密第一驗(yàn)證數(shù)據(jù)&(%,¥〃0))以獲得ru#h(UIDJ;服務(wù)器驗(yàn)證解密獲得 的hOJIDi)和計(jì)算得到的hOJIDi)是否相等,若不相等,則用戶為非法用戶,并終止會話。否 貝1J,繼續(xù)以下步驟。
[0051] St印5.服務(wù)器完成對用戶身份的認(rèn)證后,計(jì)算此次會話密鑰skk = h(rsk,ruk,Vl]),并獲取當(dāng)前的時(shí)間戳T,然后計(jì)算第二驗(yàn)證數(shù)據(jù)&(A,%,1.),并將其發(fā) 送回智能卡。
[0052] Step 6?智能卡利用之前計(jì)算的Vg解密第二驗(yàn)證數(shù)據(jù),驗(yàn)證解密獲得的ru k是否 為此次登錄智能卡生成的隨機(jī)數(shù)。如果不是,則證明服務(wù)器無法對rUlji行正確加解密,月艮 務(wù)器的身份不合法,智能卡終止此次會話;否則進(jìn)行以下步驟。
[0053]St印7?智能卡替換{YJJ為{Ynew,Bnew},并存入智能卡中,以備下一次登錄使 用。計(jì)算此次登錄的會話密鑰skk=h(rsk,ruk,vj,然后計(jì)算第三驗(yàn)證數(shù)據(jù),并將其返回給 服務(wù)器進(jìn)行二次驗(yàn)證。
[0054] St印8.服務(wù)器收到智能卡發(fā)送的第三驗(yàn)證數(shù)據(jù)后,檢驗(yàn)時(shí)間差丨