專利名稱:基于智能卡的口令遠程認證方法、智能卡、服務器和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及遠程認證,具體地說涉及基于智能卡的口令遠程認證方法和系統(tǒng),以及口令改變方法和系統(tǒng)。
背景技術:
隨著計算機網(wǎng)絡的迅速發(fā)展,用戶可以很方便地利用網(wǎng)絡訪問遠程系統(tǒng)中的資源,比如家中辦公需要訪問公司文件,或者注冊用戶訪問網(wǎng)上資源等等。在用戶享有方便快捷的同時,遠程訪問的安全及高效性成為整個系統(tǒng)設計關鍵。
認證是為了防止假冒和未授權的網(wǎng)絡訪問,從而保護遠程系統(tǒng)中的信息不被非法獲得。在計算機網(wǎng)絡系統(tǒng)中,口令認證是用來解決系統(tǒng)的保密性和安全性問題最流行的證實方法之一。但是傳統(tǒng)的單依靠用戶名和口令進行認證的方式已經(jīng)暴露出很多安全缺陷,并不能用于對安全性要求高的場合。智能卡由于其攜帶方便,具有一定的計算能力而被廣泛應用于認證系統(tǒng)中。因此,利用智能卡和口令的雙因素遠程用戶認證方案已被接受為一種更加合理且安全的遠程認證的解決方案。這類方案的每一個合法用戶均持有一個內(nèi)含用戶身份相關信息的智能卡。當用戶需要遠程認證時,用戶將該智能卡插入連接到計算機終端的讀卡器中(或者是將卡與讀卡器一體的USB設備插入終端),然后輸入口令。智能卡根據(jù)輸入的口令,生成訪問請求。遠程系統(tǒng)根據(jù)該用戶請求,確定用戶的合法性。
1981年,Lamport首先提出了基于口令的遠程認證方案。該方案利用在遠程服務器端存放的用戶口令表來實現(xiàn)對用戶身份的認證。但是在服務器端維護及保障不斷增長的口令表的安全性需要很高的代價,并且該口令表容易遭到黑客的攻擊。
為了克服口令表的缺陷,Hwang和Li在2000年提出了一個新的遠程認證方案(H-L方案)。在該方案中,遠程服務器只需保護唯一一個密鑰xs,該密鑰用于為用戶生成密碼。關于H-L方案的安全性討論以及增強的方案都只要求在服務器端維護唯一密鑰,而不需要有用戶密碼表。但是,這類方案并不允許用戶自由選擇口令,用戶的口令是由遠程服務器根據(jù)密鑰xs以及用戶身份生成的強口令(更確切的說是1024位的密鑰)。這就限制了該方案的實用性。
1999年,Yang和Shieh提出了基于時間戳的遠程口令認證方案(Y-S方案),該方案在服務器端不需維護用戶密碼表的同時,允許用戶自己選擇口令。類似的方案還有Chieu,Jan,和Tseng在2002年提出的C-J-T方案,Chieu和Wu在2003年提出的C-W方案。該類方案的共同特點是用戶可以自己選擇口令,并且服務器端不需維護口令表,認證是非交互方式下完成的(在用戶注冊后,每次登陸都只需一次信息傳輸便可以完成服務器對用戶身份的認證)。但是,由于用戶往往會選擇短小易記的口令(通常6-10個可打印字符),而不是隨機密鑰(1024比特的隨機數(shù)字串),因此這類遠程口令認證方案都容易受到字典攻擊。對于C-W方案的字典攻擊已經(jīng)在文獻中被指出。而Y-S方案和C-J-T方案以及它們的改進方案都不能抵御這種強力的攻擊。
一般而言,字典攻擊可以分為在線和離線攻擊。在在線字典攻擊中,攻擊者窮盡所有可能口令嘗試登陸遠程服務器。對于這種攻擊,往往可以采用如下抵抗手段1)延遲響應服務器對請求做出較為遲緩的響應,這樣使得攻擊者無法在有限時間內(nèi)窮盡所有口令。2)帳戶鎖定當針對一個帳戶有若干次口令登陸失敗后,服務器鎖定該帳戶,使得該帳戶暫時無法使用。該方法同樣使得攻擊者無法在有限時間內(nèi)窮盡所以口令。離線字典攻擊是更強的一種攻擊手段,攻擊者可能首先截獲用戶的正確登陸請求信息,然后非法分析獲取智能卡中的信息,通過測試所有可能口令,計算并比較獲取的信息來猜測用戶的口令。由于不需要與遠程服務器交互,這種攻擊十分有效。
由于多種因素的關系,基于智能卡的口令認證方案往往容易受到離線字典攻擊。首先,用戶往往選擇有助于記憶的弱口令,而不是可以抵抗字典攻擊的強口令。其次,智能卡有著方便及可攜帶性,但隨之而來的是易丟失的問題。雖然目前很多文獻都假設智能卡是不可拆卸的(tamperproof),但是在實際應用中,智能卡面臨多種探測攻擊??ㄖ械男畔⒁彩强梢员环欠ǐ@取的。特別是在一些應用中,用戶信息只是簡單地保存在智能卡中,這就更加使得攻擊者容易通過字典攻擊獲得用戶口令,進而冒充用戶獲取資源。
在Y-S方案中,系統(tǒng)維護的參數(shù)有(n,e,d,g)。其中,n,e,d,g是公開的參數(shù),d是服務器的私鑰,滿足n=pq(p,q均是大素數(shù)),ed≡1modφ(n)。g是GF(q)和GF(p)上的本原元。
注冊階段當一新用戶U向服務器注冊時,U提交其身份ID和口令PW。在收到注冊請求后,服務器首先核實該身份ID。若核實通過,服務器為該用戶生成一個智能卡編號CID,并計算S=IDdmod nh=gPW·dmod n然后將(n,e,g,CID,S,h)寫入智能卡,并發(fā)給用戶U。
登陸階段當用戶U想登陸遠程服務器時,將智能卡插入終端,輸入其身份標識ID和口令PW。智能卡將計算如下參數(shù)X=gr·PWmod nY=S·hr·f(CID,T)mod n其中,r是隨機數(shù),T是智能卡獲取的終端的時間戳,f(x,y)是一個單向函數(shù)。智能卡發(fā)出的登陸請求消息M=(ID,CID,X,Y,n,e,g,T)。
認證階段收到登陸請求消息M=(ID,CID,X,Y,n,e,g,T)后,遠程服務器首先檢查ID和T的有效性。若ID和T均有效,服務器檢查等式Y(jié)e=ID·Xn(CID,T)mod n是否成立,若成立,通過認證;否則拒絕請求。
Y-S方案及其后續(xù)的改進方案均不能抵抗離線字典攻擊。若攻擊者獲得某用戶的智能卡,并得到卡內(nèi)的信息h=gPW·dmod n,那么該攻擊者可以窮舉所有口令,找到一個口令PW*,滿足gPW*≡hemodn,]]>那么該PW*就是用戶的口令。
在C-J-T方案中,遠程服務器只需維護一個系統(tǒng)密鑰x,和一個公開的安全哈希函數(shù)。
注冊階段當一新用戶U向服務器注冊時,U提交其身份ID和口令PW。在收到注冊請求后,服務器首先核實該身份ID。若核實通過,服務器計算R=h(IDx)PW然后將(R,h(·))寫入智能卡,將智能卡發(fā)給用戶。
登陸階段
當用戶U想登陸遠程服務器時,將智能卡插入終端,輸入其身份標識ID和口令PW。智能卡將計算如下參數(shù)K=RPWC=h(cT)其中,T是從終端獲得的時間戳。智能卡發(fā)出的登陸請求消息M=(ID,T,C)。
認證階段收到登陸請求消息M=(ID,T,C)后,遠程服務器首先檢查ID和T的有效性。若ID和T均有效,服務器檢查等式C=h(h(IDx)T)是否成立,若成立,通過認證;否則拒絕請求。
C-J-T方案及其后續(xù)的改進方案均不能抵抗離線字典攻擊。攻擊者將1)截獲一個來自用戶U的有效登陸請求M=(ID,T,C)。2)設法獲取U的智能卡,并讀取其中信息R。3)窮舉所有口令,找到一個口令PW*,滿足C=h(RPW*T),那么該PW*就是用戶的口令。
這就需要設計一種能夠允許用戶隨意選取口令(包括弱口令)的基于智能卡的口令遠程認證方案,其安全性等同于長密鑰提供的安全性,并且其安全性并不依賴于智能卡的物理安全。這樣,即使智能卡中的信息被攻擊者獲取,攻擊者也無法通過離線字典攻擊的方法獲得用戶口令。
發(fā)明內(nèi)容
本發(fā)明的目的是提出能夠允許用戶隨意選取口令(包括弱口令)的基于智能卡的口令遠程認證方法、采用該方法的智能卡、服務器和認證系統(tǒng)。
本發(fā)明的另一目的是提出能夠允許改變口令的口令修改方法和采用該方法的智能卡。
根據(jù)第一方面,本發(fā)明提供一種基于智能卡的口令遠程認證方法,包括服務器利用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和以用戶口令為輸入的第二哈希函數(shù)逆函數(shù)值產(chǎn)生加密用戶信息,并且將該加密用戶信息存入智能卡;當遠程登陸服務器時,智能卡利用用戶口令為輸入的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,得到第二加密用戶信息,計算以該第二加密用戶信息為輸入的第三哈希函數(shù)值并且將包括第三哈希函數(shù)值的登陸請求消息發(fā)送給服務器;服務器以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和第三哈希函數(shù),驗證所接收的第三哈希函數(shù)值,從而實現(xiàn)口令認證的目的。
根據(jù)第二方面,提供一種智能卡的口令改變方法,包括智能卡接收當前口令和新口令,其中智能卡存儲有加密用戶信息,該加密用戶信息由服務器利用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和以當前口令為輸入的第二哈希函數(shù)逆函數(shù)值產(chǎn)生;智能卡在遠程登陸服務器時,智能卡利用當前口令為輸入的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,得到第二加密用戶信息,計算以該第二加密用戶信息為輸入的第三哈希函數(shù)值并且將包括第三哈希函數(shù)值的口令更新請求消息發(fā)送給服務器;服務器采用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和第三哈希函數(shù),驗證所接收的第三哈希函數(shù)值;當?shù)谌:瘮?shù)值得到證實時,服務器以系統(tǒng)密鑰為輸入計算第一哈希函數(shù)值,進而以該計算的第一哈希函數(shù)值為輸入計算第三哈希函數(shù)值,并且將該第三哈希函數(shù)值發(fā)送給智能卡;智能卡利用當前口令的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,從而驗證所接收的第一哈希函數(shù)值;并且在驗證為正確的情況下,利用當前口令為輸入的第二哈希函數(shù)值和新口令為輸入的第二哈希函數(shù)值更新加密用戶信息。
根據(jù)第三方面,提供一種在口令遠程認證系統(tǒng)中的服務器,所述口令遠程認證系統(tǒng)包括可通過網(wǎng)絡和服務器相連的智能卡,其中服務器包括處理器;處理器利用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和以用戶口令為輸入的第二哈希函數(shù)逆函數(shù)值而產(chǎn)生加密用戶信息,并且存入智能卡中;當智能卡遠程登陸服務器時,接收來自智能卡的第三哈希函數(shù)值的裝置,其中所述第三哈希函數(shù)值由智能卡利用用戶口令為輸入的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,得到第二加密用戶信息,和計算以該第二加密用戶信息為輸入的第三哈希函數(shù)值而得到;處理器以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和第三哈希函數(shù),驗證所接收的第三哈希函數(shù)值,從而實現(xiàn)口令認證的目的。
根據(jù)第四方面,提供一種在口令遠程認證系統(tǒng)中的智能卡,所述口令遠程認證系統(tǒng)包括可通過網(wǎng)絡和智能卡相連的服務器,其中智能卡包括存儲器和處理器;所述存儲器存儲有加密用戶信息,其中所述加密用戶信息由服務器利用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和以用戶口令為輸入的第二哈希函數(shù)逆函數(shù)值而產(chǎn)生;當遠程登陸服務器時,處理器利用用戶口令為輸入的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,得到第二加密用戶信息,和計算以該第二加密用戶信息為輸入的第三哈希函數(shù)值,智能卡將包括第三哈希函數(shù)值的登陸請求消息發(fā)送給服務器,以便服務器驗證所接收的第三哈希函數(shù)值,從而實現(xiàn)口令認證的目的。
根據(jù)第五方面,提供一種口令遠程認證系統(tǒng),包括如第三方面所述的服務器和如第四方面所述的智能卡。
根據(jù)第六方面,提供一種在口令遠程認證系統(tǒng)中的智能卡,所述口令遠程認證系統(tǒng)包括可通過網(wǎng)絡和智能卡相連的服務器,其中智能卡包括存儲器和處理器,所述智能卡包括所述存儲器存儲有加密用戶信息,其中所述加密用戶信息由服務器利用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和以用戶口令為輸入的第二哈希函數(shù)逆函數(shù)值而產(chǎn)生;智能卡接收當前口令和新口令;利用當前口令為輸入的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,得到第二加密用戶信息,計算以該第二加密用戶信息為輸入的第三哈希函數(shù)值并且將包括第三哈希函數(shù)值的口令更新請求消息發(fā)送給服務器;接收來自服務器的另一第三哈希函數(shù)值,其中所述另一第三哈希函數(shù)值是服務器驗證所接收的第三哈希函數(shù)值通過時,以系統(tǒng)密鑰為輸入計算第一哈希函數(shù)值,進而以該計算的第一哈希函數(shù)值為輸入計算得到;智能卡利用當前口令的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,從而驗證所接收的第一哈希函數(shù)值;并且在驗證為正確的情況下,利用當前口令為輸入的第二哈希函數(shù)值和新口令為輸入的第二哈希函數(shù)逆函數(shù)值更新加密用戶信息。
本發(fā)明能夠允許用戶隨意選取口令(包括弱口令),其安全性等同于長密鑰提供的安全性,并且其安全性并不依賴于智能卡的物理安全。這樣,即使智能卡中的信息被攻擊者獲取,攻擊者也無法通過離線字典攻擊的方法獲得用戶口令。而且,在服務器端不需要保存用戶密碼表。服務器對用戶的認證只需一步完成,同時服務器也可以向用戶發(fā)回響應實現(xiàn)雙向認證。
具體實施例方式
本發(fā)明的認證方案主要分四個階段注冊階段,登陸階段,認證階段段。其中,雙向認證階段是可選的。在注冊階段,新用戶向服務器提交其身份ID和口令PW。在收到注冊請求后,服務器首先核實該身份ID。若身份核實通過,用戶將收到內(nèi)含用戶信息的智能卡。在登陸階段,用戶將智能卡插入終端,輸入其身份標識ID和口令PW。由智能卡完成登陸請求的計算,該登陸請求發(fā)送到遠程服務器。在認證階段,收到登陸請求后,遠程服務器將完成認證操作。在一個優(yōu)選實施方案中,為了實施雙向認證,服務器繼續(xù)產(chǎn)生響應并發(fā)回給用戶。在最后的雙向認證階段,智能卡收到服務器的響應,完成對服務器的認證操作。
下文對本發(fā)明的具體實施方案進行說明。
在本發(fā)明的方案中,主要參與者為遠程服務器和持有智能卡的用戶。存在如下系統(tǒng)參數(shù)p大素數(shù)(>=1024比特),滿足p=2q+1,其中q也是大素數(shù)。
gGF(p)上的本原元。
x遠程服務器維護的系統(tǒng)密鑰(>=1024比特)。
h1(·),h2(·),H(·)三個公開的安全哈希函數(shù)。這三個哈希函數(shù)可以用MD5或SHA-1實現(xiàn)。其中,h2(·)和H(·)被智能卡密碼協(xié)處理器支持。
注冊階段當一新用戶U向服務器注冊時,U提交其身份ID和用戶口令PW。在收到注冊請求后,服務器首先核實該身份ID。若核實通過,服務器利用以系統(tǒng)密鑰x為輸入的h1(·)哈希函數(shù)值和以用戶口令PW為輸入的h2(·)哈希函數(shù)逆函數(shù)值計算加密用戶信息,例如如下gID|PW=gh1(ID||x)·h2-1(PW)modp]]>其中,‖表示連接符號。
這里,身份ID和系統(tǒng)密鑰x也可以采用非連接的其它方式。身份ID作為h1(·)的輸入增強了系統(tǒng)密鑰x的安全性。
然后將(gID\PW,g,p)寫入智能卡,將智能卡發(fā)給用戶。該智能卡支持h2(·),H(·)的運算操作。
登陸階段當用戶U想登陸遠程服務器時,將智能卡插入終端,輸入其身份標識ID和口令PW。智能卡將利用口令PW為輸入的h2(·)函數(shù)值以與h2(·)逆函數(shù)值相同的方式作用于加密用戶信息gID\PW,得到第二加密用戶信息k,進而計算以該第二加密用戶信息k為輸入的哈希函數(shù)H(·)值C2并且將包括哈希函數(shù)H(·)值的登陸請求消息發(fā)送給服務器。
具體操作例如如下1)隨機選取r∈[1…p-1],計算ε=r·h2(PW)mod(p-1)2)計算C1=grmod p,k=gID|PWϵ=gID|PWr·h2(PW)modp]]>3)獲取終端的當前時間戳T,計算C2=H(ID,T,k)mod p4)發(fā)送登陸請求消息M=(C1,C2,T,ID)至遠程服務器。
需要說明,登陸請求消息優(yōu)選包含用戶身份標識ID和/或時間戳T。此外,C2也可僅以T和k作為輸入而計算。
另外,C2的計算過程中采用了一個隨機數(shù)r,有助于增強C2的安全性。
認證階段若服務器在時刻T′(服務器的時間戳)收到登陸請求M,那么服務器以系統(tǒng)密鑰x為輸入的哈希函數(shù)h1(·)值和哈希函數(shù)H(·),驗證所接收的哈希函數(shù)H(·)值,從而實現(xiàn)口令認證的目的。
具體而言,服務器將執(zhí)行例如以下操作對用戶進行身份驗證1)檢查ID是否有效并符合正常的編碼格式,若無效,拒絕該登陸。
2)檢查消息M發(fā)出時間T和收到時間T′之間的間隔是否在合理的時間間隔ΔT內(nèi)。即檢查T′-T≤ΔT是否成立,若不成立,拒絕該登陸。
3)檢查等式H(ID,T,C1h1(ID||x))=C2modp]]>是否成立。若等式成立,登陸成功。
若系統(tǒng)實施只需要服務器對用戶的認證,認證過程結(jié)束。當需要完成雙向認證過程時,繼續(xù)執(zhí)行步驟4)。
4)獲取服務器時間Tserver,計算以服務器時間Tserver和h1(·)函數(shù)值為輸入的H(·)函數(shù)值,即θ=H(Tserver,ID,C1h1(ID||x)),]]>發(fā)給用戶認證響應消息M′=(θ,ID,Tserver)。
這里,身份ID和系統(tǒng)密鑰x也可以采用非連接的其它方式。身份ID作為h1(·)的輸入增強了系統(tǒng)密鑰x的安全性。
接收到服務器發(fā)回的認證響應消息M′后,智能卡首先檢查ID和Tserver的有效性。若ID和Tserver均有效,智能卡檢查等式θ=H(Tserver,ID,k)是否成立,其中k是在登陸階段計算的值。若成立,智能卡完成對服務器的認證,否則斷開連接或發(fā)起新一輪請求。
在另一個實施方案中,采用用戶改變口令的協(xié)議。在該方案中,可以允許用戶隨意改變口令而不用重新注冊。該協(xié)議如下1)用戶輸入身份ID,當前口令PW和新口令PW*。
2)和生成登陸請求一樣,智能卡生成口令更新請求M=(C1,C2,T,ID,REQ),其中C1=gr,C2=H(ID,T,REQ,gID|PWr·h2(PW)),]]>r是隨機數(shù),REQ是表明該請求類型的標志。智能卡將M發(fā)送到服務器。
3)服務器接受到含有REQ標志的請求后,將同前所述驗證M的正確性,若M正確,服務器將類似產(chǎn)生雙向認證的響應一樣,計算θ=H(Tserver,ID,REP,C1h1(ID||x))]]>并發(fā)送M′=(θ,Tserver,ID,REP)作為響應。若M不正確,發(fā)送M′=(NULL,Tserver,ID,REP)作為響應。其中REP表明該響應類型的標志。
4)收到M′后,智能卡首先檢查ID和Tserver的有效性,若ID和Tserver均有效,則繼續(xù)檢查等式θ=H(Tserver,ID,REP,gID|PWr·h2(PW))]]>是否成立,若成立,說明用戶輸入的口令正確,智能卡執(zhí)行如下的口令更新操作計算gID|PW*=gID|PWh2(PW)·h2(PW*)-1modp]]>將卡內(nèi)的gID\PW重寫為gID\PW*首先,本發(fā)明具有非常高的安全性和實用性。從用戶端來看安全性,即使智能卡丟失,其中的信息被攻擊者獲取,攻擊者還是無法通過離線字典攻擊的方法獲取用戶口令或冒充用戶登陸。從服務器端分析安全性,本發(fā)明不需要服務器維護用戶的口令表,而只需保護唯一的一個1024比特的密鑰,維護量小而且安全。此外,本發(fā)明可以實現(xiàn)雙向認證,不僅防止服務器被非授權用戶訪問,而且可以讓用戶對欲訪問服務器的真實性進行驗證。本方案允許用戶自行選擇口令,界面方便友好。
其次,降低了生產(chǎn)成本和提高了使用效率。在本發(fā)明中,智能卡內(nèi)的消息即使被泄漏,也不會產(chǎn)生安全問題。這就不需要物理安全要求高的智能卡。一個普通具有計算和存貯功能的智能卡就能達到應用要求。給用戶發(fā)卡的過程,也就僅需往卡中存儲一些注冊信息,而且該卡回收后可重復利用。
再次,用途廣泛。由于用戶私有信息不需借助于存儲媒體的物理安全性,這就使得本發(fā)明更加適用于一些非存儲安全的用戶端設備上,比如移動手持終端。在移動終端上,用戶的信息不再存儲在智能卡上,而是在移動終端的普通不受保護的存貯器中。當移動終端被攻擊者獲得,其中的信息可輕而易舉的被攻擊者截取的情況下,本方案的安全性優(yōu)點就更顯突出。
顯而易見,在此描述的本發(fā)明可以有許多變化,這種變化不能認為偏離本發(fā)明的精神和范圍。因此,所有對本領域技術人員顯而易見的改變,都包括在本權利要求書的涵蓋范圍之內(nèi)。
權利要求
1.一種基于智能卡的口令遠程認證方法,包括服務器利用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和以用戶口令為輸入的第二哈希函數(shù)逆函數(shù)值產(chǎn)生加密用戶信息,并且將該加密用戶信息存入智能卡;當遠程登陸服務器時,智能卡利用用戶口令為輸入的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,得到第二加密用戶信息,計算以該第二加密用戶信息為輸入的第三哈希函數(shù)值并且將包括第三哈希函數(shù)值的登陸請求消息發(fā)送給服務器;服務器以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和第三哈希函數(shù),驗證所接收的第三哈希函數(shù)值,從而實現(xiàn)口令認證的目的。
2.如權利要求1所述的基于智能卡的口令遠程認證方法,其特征在于所述登陸請求消息包括用戶身份標識。
3.如權利要求2所述的基于智能卡的口令遠程認證方法,其特征在于所述第一哈希函數(shù)還以系統(tǒng)密鑰和用戶身份標識的組合為輸入。
4.如權利要求3所述的基于智能卡的口令遠程認證方法,其特征在于所述用戶身份標識和系統(tǒng)密鑰的組合是指用戶身份標識和系統(tǒng)密鑰相連接。
5.如權利要求2所述的基于智能卡的口令遠程認證方法,其特征在于第三哈希函數(shù)還以用戶身份標識為輸入。
6.如權利要求1所述的基于智能卡的口令遠程認證方法,其特征在于所述登陸請求消息包括當前時間戳;所述方法包括服務器核查登陸請求消息中的當前時間戳與登陸請求消息收到時間之間的間隔是否在合理時間間隔內(nèi)的步驟。
7.如權利要求6所述的基于智能卡的口令遠程認證方法,其特征在于第三哈希函數(shù)還以當前時間戳為輸入。
8.如權利要求1所述的基于智能卡的口令遠程認證方法,其特征在于所述得到第二加密用戶信息的步驟包括采用一個隨機數(shù)以標量乘的方式作用在第二哈希函數(shù)值上。
9.如權利要求1所述的基于智能卡的口令遠程認證方法,其特征在于包括服務器獲取服務器時間,計算以服務器時間和第一哈希函數(shù)值為輸入的第三哈希函數(shù)的值,將該第三哈希函數(shù)值通過登陸響應消息發(fā)送給智能卡,以便智能卡核實;其中所述第一哈希函數(shù)值以系統(tǒng)密鑰為輸入而得到。
10.如權利要求9所述的基于智能卡的口令遠程認證方法,其特征在于所述登陸響應消息包括用戶身份標識。
11.如權利要求10所述的基于智能卡的口令遠程認證方法,其特征在于所述第一哈希函數(shù)值由系統(tǒng)密鑰和用戶身份標識的組合為輸入的第一哈希函數(shù)得到。
12.一種智能卡的口令改變方法,包括智能卡接收當前口令和新口令,其中智能卡存儲有加密用戶信息,該加密用戶信息由服務器利用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和以當前口令為輸入的第二哈希函數(shù)逆函數(shù)值產(chǎn)生;智能卡在遠程登陸服務器時,智能卡利用當前口令為輸入的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,得到第二加密用戶信息,計算以該第二加密用戶信息為輸入的第三哈希函數(shù)值并且將包括第三哈希函數(shù)值的口令更新請求消息發(fā)送給服務器;服務器采用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和第三哈希函數(shù),驗證所接收的第三哈希函數(shù)值;當?shù)谌:瘮?shù)值得到證實時,服務器以系統(tǒng)密鑰為輸入計算第一哈希函數(shù)值,進而以該計算的第一哈希函數(shù)值為輸入計算第三哈希函數(shù)值,并且將該第三哈希函數(shù)值發(fā)送給智能卡;智能卡利用當前口令的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,從而驗證所接收的第一哈希函數(shù)值;并且在驗證為正確的情況下,利用當前口令為輸入的第二哈希函數(shù)值和新口令為輸入的第二哈希函數(shù)值更新加密用戶信息。
13.一種在口令遠程認證系統(tǒng)中的服務器,所述口令遠程認證系統(tǒng)包括可通過網(wǎng)絡和服務器相連的智能卡,其中服務器包括處理器;處理器利用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和以用戶口令為輸入的第二哈希函數(shù)逆函數(shù)值而產(chǎn)生加密用戶信息,并且存入智能卡中;當智能卡遠程登陸服務器時,接收來自智能卡的第三哈希函數(shù)值的裝置,其中所述第三哈希函數(shù)值由智能卡利用用戶口令為輸入的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,得到第二加密用戶信息,和計算以該第二加密用戶信息為輸入的第三哈希函數(shù)值而得到;處理器以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和第三哈希函數(shù),驗證所接收的第三哈希函數(shù)值,從而實現(xiàn)口令認證的目的。
14.一種在口令遠程認證系統(tǒng)中的智能卡,所述口令遠程認證系統(tǒng)包括可通過網(wǎng)絡和智能卡相連的服務器,其中智能卡包括存儲器和處理器;所述存儲器存儲有加密用戶信息,其中所述加密用戶信息由服務器利用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和以用戶口令為輸入的第二哈希函數(shù)逆函數(shù)值而產(chǎn)生;當遠程登陸服務器時,處理器利用用戶口令為輸入的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,得到第二加密用戶信息,和計算以該第二加密用戶信息為輸入的第三哈希函數(shù)值,智能卡將包括第三哈希函數(shù)值的登陸請求消息發(fā)送給服務器,以便服務器驗證所接收的第三哈希函數(shù)值,從而實現(xiàn)口令認證的目的。
15.一種口令遠程認證系統(tǒng),包括如權利要求13所述的服務器和如權利要求14所述的智能卡。
16.一種在口令遠程認證系統(tǒng)中的智能卡,所述口令遠程認證系統(tǒng)包括可通過網(wǎng)絡和智能卡相連的服務器,其中智能卡包括存儲器和處理器,所述智能卡包括所述存儲器存儲有加密用戶信息,其中所述加密用戶信息由服務器利用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和以用戶口令為輸入的第二哈希函數(shù)逆函數(shù)值而產(chǎn)生;智能卡接收當前口令和新口令;利用當前口令為輸入的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,得到第二加密用戶信息,計算以該第二加密用戶信息為輸入的第三哈希函數(shù)值并且將包括第三哈希函數(shù)值的口令更新請求消息發(fā)送給服務器;接收來自服務器的另一第三哈希函數(shù)值,其中所述另一第三哈希函數(shù)值是服務器驗證所接收的第三哈希函數(shù)值通過時,以系統(tǒng)密鑰為輸入計算第一哈希函數(shù)值,進而以該計算的第一哈希函數(shù)值為輸入計算得到;智能卡利用當前口令的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,從而驗證所接收的第一哈希函數(shù)值;并且在驗證為正確的情況下,利用當前口令為輸入的第二哈希函數(shù)值和新口令為輸入的第二哈希函數(shù)逆函數(shù)值更新加密用戶信息。
全文摘要
本發(fā)明提供一種基于智能卡的口令遠程認證方法,采用該方法的智能卡、服務器和系統(tǒng),以及口令改變方法和系統(tǒng)。所述口令遠程認證方法包括服務器利用以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和以用戶口令為輸入的第二哈希函數(shù)逆函數(shù)值產(chǎn)生加密用戶信息,并且將該加密用戶信息存入智能卡;當遠程登陸服務器時,智能卡利用用戶口令為輸入的第二哈希函數(shù)值以與第二哈希函數(shù)逆函數(shù)值相同的方式作用于加密用戶信息,得到第二加密用戶信息,計算以該第二加密用戶信息為輸入的第三哈希函數(shù)值并且將包括第三哈希函數(shù)值的登陸請求消息發(fā)送給服務器;服務器以系統(tǒng)密鑰為輸入的第一哈希函數(shù)值和第三哈希函數(shù),驗證所接收的第三哈希函數(shù)值,從而實現(xiàn)口令認證的目的。
文檔編號H04L9/10GK1889432SQ200610098850
公開日2007年1月3日 申請日期2006年7月13日 優(yōu)先權日2006年7月13日
發(fā)明者曹珍富, 董曉蕾, 柴震川, 鄭志彬, 位繼偉 申請人:上海交通大學, 華為技術有限公司