專利名稱:一種動(dòng)態(tài)密碼認(rèn)證方法、系統(tǒng)及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及身份認(rèn)證領(lǐng)域,特別是涉及一種動(dòng)態(tài)密碼認(rèn)證方法、系統(tǒng)及裝置。
背景技術(shù):
在現(xiàn)實(shí)生活中,我們個(gè)人的身份主要通過(guò)各種證件來(lái)確認(rèn),比如身份證、戶口本等,計(jì)算機(jī)的各種系統(tǒng)資源(如文件、數(shù)據(jù)庫(kù)和應(yīng)用系統(tǒng)等)也需要認(rèn)證機(jī)制的保護(hù),從而確保這些資源被合法的用戶使用。
目前各類計(jì)算資源主要通過(guò)密碼認(rèn)證方式進(jìn)行保護(hù),一般使用靜態(tài)密碼認(rèn)證和動(dòng)態(tài)密碼認(rèn)證兩種方式。
靜態(tài)密碼認(rèn)證方式采用的是“用戶名+口令”的認(rèn)證方式。用戶登錄時(shí),應(yīng)用服務(wù)器通過(guò)靜態(tài)密碼進(jìn)行身份認(rèn)證,確認(rèn)是否為合法的授權(quán)用戶。這種認(rèn)證的缺點(diǎn)在于由于用戶的帳號(hào)是固定的明文,密碼是靜態(tài)的,用戶在很長(zhǎng)時(shí)間內(nèi)不會(huì)更改密碼,造成這種密碼很容易被竊??;對(duì)這種認(rèn)證方式常用的攻擊方式有網(wǎng)絡(luò)數(shù)據(jù)流竊聽、認(rèn)證信息截取/重放、字典攻擊、窮舉嘗試、窺探、社交工程等方式;由于這種認(rèn)證方式存在較多的安全漏洞,對(duì)客戶的身份進(jìn)行確認(rèn)的安全強(qiáng)度已經(jīng)不能滿足現(xiàn)代各類應(yīng)用系統(tǒng)的要求。
針對(duì)靜態(tài)密碼認(rèn)證的缺點(diǎn),動(dòng)態(tài)密碼認(rèn)證可以提高認(rèn)證的安全強(qiáng)度。動(dòng)態(tài)密碼也稱一次密碼OTP(One-time Password),其動(dòng)態(tài)來(lái)源于產(chǎn)生密碼的運(yùn)算因子隨時(shí)間變化。如中國(guó)專利第200410084210.X號(hào)專利申請(qǐng)文件就公開了一種動(dòng)態(tài)密碼認(rèn)證的系統(tǒng)和方法,它的認(rèn)證系統(tǒng)主要有動(dòng)態(tài)密碼生成器、認(rèn)證服務(wù)器和客戶端等構(gòu)成,客戶登錄時(shí)輸入用戶名、靜態(tài)口令和動(dòng)態(tài)密碼生成器產(chǎn)生的隨機(jī)動(dòng)態(tài)密碼,經(jīng)應(yīng)用服務(wù)器驗(yàn)證后,決定是否允許用戶登錄,這種方法解決了靜態(tài)密碼容易被攻擊的問(wèn)題。但動(dòng)態(tài)密碼認(rèn)證方法也存在一定的問(wèn)題在不安全的環(huán)境中,用戶在輸入OTP的時(shí)候,OTP就可能被竊取,如果竊取者還阻止了OTP被服務(wù)器認(rèn)證,那么竊取者就可以獲得一個(gè)有效的OTP,從而能夠在短時(shí)間內(nèi)進(jìn)入用戶的帳號(hào)。例如攻擊者可以設(shè)置一個(gè)假冒的登錄服務(wù)器,引導(dǎo)用戶進(jìn)行登錄,騙取用戶的用戶名、靜態(tài)密碼和此時(shí)的動(dòng)態(tài)密碼,如果攻擊者能夠阻止OTP被服務(wù)器認(rèn)證,則在動(dòng)態(tài)密碼有效的時(shí)間內(nèi),攻擊者就可以登錄真正服務(wù)器的用戶賬戶。
總之,現(xiàn)有的密碼認(rèn)證方法都存在一些缺陷,難以有效防止中間人攻擊。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種更安全的動(dòng)態(tài)密碼認(rèn)證的方法,以解決現(xiàn)有技術(shù)不能有效阻止假冒攻擊的問(wèn)題。
為了解決上述問(wèn)題,本發(fā)明公開了一種動(dòng)態(tài)密碼認(rèn)證方法,包括下列步驟存儲(chǔ)動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系,以及該動(dòng)態(tài)密碼生成器中的預(yù)置算法;用戶終端向認(rèn)證服務(wù)器發(fā)出認(rèn)證請(qǐng)求;所述認(rèn)證服務(wù)器返回生成的挑戰(zhàn)碼;所述動(dòng)態(tài)密碼生成器根據(jù)所述挑戰(zhàn)碼,采用預(yù)置算法生成第一動(dòng)態(tài)密碼;所述用戶終端發(fā)送認(rèn)證信息至認(rèn)證服務(wù)器,所述認(rèn)證信息包括用戶帳號(hào)和第一動(dòng)態(tài)密碼;所述認(rèn)證服務(wù)器根據(jù)用戶帳號(hào)確定相應(yīng)的動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息,得到該動(dòng)態(tài)密碼生成器的預(yù)置算法,根據(jù)所述挑戰(zhàn)碼以及預(yù)置算法計(jì)算得到第二動(dòng)態(tài)密碼;比對(duì)第一動(dòng)態(tài)密碼和第二動(dòng)態(tài)密碼,如果一致,則認(rèn)證通過(guò)。
優(yōu)選的,所述預(yù)置算法中還包括時(shí)間參數(shù),所述時(shí)間參數(shù)由動(dòng)態(tài)密碼生成器硬件產(chǎn)生或者認(rèn)證服務(wù)器時(shí)鐘獲得。
優(yōu)選的,所述認(rèn)證服務(wù)器對(duì)動(dòng)態(tài)密碼的驗(yàn)證采用時(shí)間窗口認(rèn)證策略,允許該時(shí)間窗口內(nèi)的動(dòng)態(tài)密碼通過(guò)認(rèn)證,所述時(shí)間窗口根據(jù)用戶登錄的時(shí)間間隔和動(dòng)態(tài)密碼生成器的時(shí)鐘累計(jì)誤差進(jìn)行動(dòng)態(tài)調(diào)整。
優(yōu)選的,所述認(rèn)證信息還包括靜態(tài)密碼,所述認(rèn)證服務(wù)器對(duì)所述靜態(tài)密碼進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò),則繼續(xù)進(jìn)行動(dòng)態(tài)密碼的驗(yàn)證,否則,驗(yàn)證失敗。
優(yōu)選的,所述的方法還包括在建立所述動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系時(shí),設(shè)定確認(rèn)期,所述確認(rèn)期用于提示用戶是否確認(rèn)已建立的對(duì)應(yīng)關(guān)系。優(yōu)選的,所述對(duì)應(yīng)關(guān)系為一對(duì)一、多對(duì)一或者一對(duì)多。
本發(fā)明還提供了一種動(dòng)態(tài)密碼認(rèn)證系統(tǒng),包括,用戶終端,用于向認(rèn)證服務(wù)器發(fā)送認(rèn)證請(qǐng)求,接收返回的挑戰(zhàn)碼;以及向認(rèn)證服務(wù)器發(fā)送包括用戶帳號(hào)和第一動(dòng)態(tài)密碼的認(rèn)證信息;動(dòng)態(tài)密碼生成器,用于根據(jù)所述挑戰(zhàn)碼,采用預(yù)置算法生成第一動(dòng)態(tài)密碼;
認(rèn)證服務(wù)器,包括以下部件接口單元,用于接收用戶終端發(fā)送的認(rèn)證請(qǐng)求、認(rèn)證信息,以及返回相應(yīng)信息;挑戰(zhàn)碼生成單元,用于生成挑戰(zhàn)碼;第一數(shù)據(jù)庫(kù),用于存儲(chǔ)動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系,以及該動(dòng)態(tài)密碼生成器的預(yù)置算法;動(dòng)態(tài)密碼驗(yàn)證服務(wù)器,與第一數(shù)據(jù)庫(kù)相連,用于根據(jù)用戶帳號(hào)確定相應(yīng)的動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息,得到該動(dòng)態(tài)密碼生成器的預(yù)置算法,根據(jù)所述挑戰(zhàn)碼以及預(yù)置算法計(jì)算得到第二動(dòng)態(tài)密碼;以及比對(duì)第一動(dòng)態(tài)密碼和第二動(dòng)態(tài)密碼,如果一致,則認(rèn)證通過(guò)。
優(yōu)選的,所述預(yù)置算法中還包括時(shí)間參數(shù),所述時(shí)間參數(shù)由動(dòng)態(tài)密碼生成器硬件產(chǎn)生或者認(rèn)證服務(wù)器時(shí)鐘獲得。
優(yōu)選的,所述動(dòng)態(tài)密碼驗(yàn)證服務(wù)器對(duì)動(dòng)態(tài)密碼的驗(yàn)證采用時(shí)間窗口認(rèn)證策略,允許該時(shí)間窗口內(nèi)的動(dòng)態(tài)密碼通過(guò)認(rèn)證,所述時(shí)間窗口根據(jù)用戶登錄的時(shí)間間隔和動(dòng)態(tài)密碼生成器的時(shí)鐘累計(jì)誤差進(jìn)行動(dòng)態(tài)調(diào)整。
優(yōu)選的,當(dāng)所述用戶終端發(fā)送的認(rèn)證信息還包括靜態(tài)密碼時(shí),所述認(rèn)證服務(wù)器還包括第二數(shù)據(jù)庫(kù),用于存儲(chǔ)用戶帳號(hào)以及相應(yīng)的靜態(tài)密碼;靜態(tài)密碼驗(yàn)證服務(wù)器,與第二數(shù)據(jù)庫(kù)和動(dòng)態(tài)密碼驗(yàn)證服務(wù)器相連,用于驗(yàn)證用戶輸入的靜態(tài)密碼。
優(yōu)選的,所述認(rèn)證服務(wù)器還包括綁定確認(rèn)單元,用于在建立所述動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系時(shí),設(shè)定確認(rèn)期,所述確認(rèn)期用于提示用戶是否確認(rèn)已建立的對(duì)應(yīng)關(guān)系。
本發(fā)明還要求保護(hù)一種動(dòng)態(tài)密碼生成裝置,包括輸入單元,用于接收挑戰(zhàn)碼,所述挑戰(zhàn)碼是由認(rèn)證服務(wù)器根據(jù)用戶認(rèn)證請(qǐng)求而生成的;運(yùn)算處理單元,用于根據(jù)所述挑戰(zhàn)碼和當(dāng)前時(shí)鐘數(shù)據(jù),采用預(yù)置算法計(jì)算動(dòng)態(tài)密碼;時(shí)鐘單元,用于提供當(dāng)前時(shí)鐘數(shù)據(jù);輸出單元,用于輸出所述動(dòng)態(tài)密碼。
本發(fā)明還要求保護(hù)另一種動(dòng)態(tài)密碼生成裝置,包括輸入單元,用于接收挑戰(zhàn)碼,所述挑戰(zhàn)碼是由認(rèn)證服務(wù)器根據(jù)用戶認(rèn)證請(qǐng)求而生成的;運(yùn)算處理單元,用于根據(jù)所述挑戰(zhàn)碼采用預(yù)置算法計(jì)算動(dòng)態(tài)密碼;輸出單元,用于輸出所述動(dòng)態(tài)密碼。
與現(xiàn)有技術(shù)相比,本發(fā)明能有效防止中間人攻擊。在本發(fā)明方法中,用戶每次登錄時(shí)由應(yīng)用服務(wù)器隨機(jī)生成并發(fā)出一個(gè)新的挑戰(zhàn)碼,密碼生成器根據(jù)此挑戰(zhàn)碼生成本次登錄的動(dòng)態(tài)密碼,挑戰(zhàn)碼和動(dòng)態(tài)密碼只在本次登錄中有效,當(dāng)攻擊者竊取了動(dòng)態(tài)密碼而進(jìn)行登錄時(shí),服務(wù)器會(huì)生成另一個(gè)挑戰(zhàn)碼,使攻擊者不能使用竊取的動(dòng)態(tài)密碼登錄,從而有效的防止了網(wǎng)絡(luò)偵聽、窺探、社交工程等類型的攻擊造成密碼泄露。
圖1是本發(fā)明的方法的流程圖;圖2是本發(fā)明的方法實(shí)施例運(yùn)行環(huán)境框圖;圖3是本發(fā)明的方法實(shí)施例的動(dòng)態(tài)密碼生成器綁定過(guò)程框圖;圖4是本發(fā)明的方法實(shí)施例的認(rèn)證過(guò)程框圖;圖5是本發(fā)明的方法實(shí)施例的動(dòng)態(tài)密碼生成器解綁過(guò)程框圖;圖6是本發(fā)明的系統(tǒng)框圖;圖7是本發(fā)明的動(dòng)態(tài)密碼生成裝置實(shí)施例1框圖;圖8是本發(fā)明的動(dòng)態(tài)密碼生成裝置實(shí)施例2框圖。
具體實(shí)施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
參照?qǐng)D1,是本發(fā)明的方法的流程圖。該方法涉及的設(shè)備有與認(rèn)證服務(wù)器通過(guò)網(wǎng)絡(luò)相連接的用戶終端,離線可移動(dòng)的動(dòng)態(tài)密碼生成器等。
具體步驟包括步驟101,在服務(wù)器端存儲(chǔ)動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系,以及該動(dòng)態(tài)密碼生成器中的預(yù)置算法。
對(duì)于每一個(gè)動(dòng)態(tài)密碼生成器,其內(nèi)部包含唯一的標(biāo)識(shí)信息,用以區(qū)分不同的動(dòng)態(tài)密碼生成器,這個(gè)唯一的標(biāo)識(shí)信息一般采用由硬件固化的不可改寫的出廠序列號(hào),也采用可改寫的方式存放標(biāo)識(shí)信息,例如,可以由動(dòng)態(tài)密碼生成器的發(fā)行者寫入號(hào)碼作為標(biāo)識(shí)信息。當(dāng)要使用動(dòng)態(tài)密碼生成器進(jìn)行身份認(rèn)證時(shí),須先把用戶賬號(hào)和動(dòng)態(tài)密碼生成器進(jìn)行綁定,綁定可以由用戶進(jìn)行,進(jìn)行綁定時(shí),用戶首先得到動(dòng)態(tài)密碼生成器,用戶通過(guò)用戶終端連接到服務(wù)端,輸入個(gè)人信息和動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息,申請(qǐng)進(jìn)行綁定,綁定完成后,服務(wù)器端把動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息和用戶賬號(hào)的對(duì)應(yīng)關(guān)系記錄在數(shù)據(jù)庫(kù)中。
服務(wù)器端也預(yù)先保存有每一個(gè)動(dòng)態(tài)密碼生成器的算法,以備計(jì)算出動(dòng)態(tài)密碼,并和用戶輸入的動(dòng)態(tài)密碼進(jìn)行比對(duì)之用。
優(yōu)選的,可以只把一個(gè)動(dòng)態(tài)密碼生成器綁定到一個(gè)用戶賬號(hào)上,也可以把多個(gè)動(dòng)態(tài)密碼生成器綁定到一個(gè)用戶賬號(hào)上,也可以把一個(gè)動(dòng)態(tài)密碼生成器綁定到多個(gè)用戶賬號(hào)上。
當(dāng)多個(gè)動(dòng)態(tài)密碼生成器綁定到一個(gè)用戶帳號(hào)上時(shí),可以由多人使用各自的動(dòng)態(tài)密碼生成器和同一個(gè)用戶帳號(hào)進(jìn)行身份認(rèn)證,但他們不能同時(shí)使用,這種方式方便了多人使用同一個(gè)用戶帳號(hào)時(shí)的安全性和方便性問(wèn)題。
當(dāng)一個(gè)動(dòng)態(tài)密碼綁定到多個(gè)用戶帳號(hào)上時(shí),多個(gè)用戶帳號(hào)不能是同一應(yīng)用系統(tǒng)中的,即用戶可以使用同一動(dòng)態(tài)密碼生成器綁定到同一服務(wù)提供商提供的不同的應(yīng)用系統(tǒng)的帳號(hào)上,例如,可以使用同一動(dòng)態(tài)密碼生成器綁定同一服務(wù)商提供的網(wǎng)站、郵箱、游戲或者論壇等應(yīng)用系統(tǒng)的用戶帳號(hào)上。
優(yōu)選的,動(dòng)態(tài)密碼生成器和用戶賬號(hào)綁定時(shí)可以設(shè)定一個(gè)確認(rèn)期,如可以設(shè)定為6天,用于提示用戶是否確認(rèn)已建立的對(duì)應(yīng)關(guān)系。只有用戶在確認(rèn)期內(nèi)確認(rèn)綁定后,本次綁定才能生效。當(dāng)用戶的靜態(tài)密碼泄漏的情況下,其他的惡意用戶可能會(huì)使用動(dòng)態(tài)密碼生成器進(jìn)行用戶賬號(hào)的綁定,如果綁定成功,惡意用戶就可以通過(guò)身份認(rèn)證,而設(shè)定了確認(rèn)期后,正常的用戶登錄時(shí)就會(huì)提示有動(dòng)態(tài)密碼生成器正在綁定、需要用戶確認(rèn)的信息提示,如果不是自己進(jìn)行的綁定,可以采取更改靜態(tài)密碼、取消綁定等方式避免惡意用戶的綁定。還可以對(duì)于新注冊(cè)的用戶申請(qǐng)綁定的,不需要設(shè)定確認(rèn)期,綁定立即生效。
優(yōu)選的,動(dòng)態(tài)密碼生成器內(nèi)部預(yù)置的動(dòng)態(tài)密碼算法可以采用哈希等離散函數(shù)算法,所述動(dòng)態(tài)密碼算法的參數(shù)中還可以包括時(shí)間參數(shù),所述時(shí)間參數(shù)可以由動(dòng)態(tài)密碼生成器的硬件產(chǎn)生。例如,時(shí)間參數(shù)可以由內(nèi)置的時(shí)鐘單元產(chǎn)生,時(shí)鐘單元和標(biāo)準(zhǔn)時(shí)間保持同步。當(dāng)輸入不同的挑戰(zhàn)碼時(shí),生成的動(dòng)態(tài)密碼也是不同的,同一挑戰(zhàn)碼在不同的時(shí)間輸入以及在不同的動(dòng)態(tài)密碼生成器上輸入時(shí),都會(huì)生成不同的動(dòng)態(tài)密碼。當(dāng)然這里也可以采用其他的算法產(chǎn)生動(dòng)態(tài)密碼。
步驟102,用戶終端向認(rèn)證服務(wù)器發(fā)出認(rèn)證請(qǐng)求。
當(dāng)用戶需要認(rèn)證自己的身份時(shí),用戶可以操作用戶終端直接連接或間接連接認(rèn)證服務(wù)器,并發(fā)出身認(rèn)證請(qǐng)求。申請(qǐng)可以包含用戶終端的信息,還可以包含用戶賬號(hào)信息。
步驟103,所述認(rèn)證服務(wù)器返回隨機(jī)生成的挑戰(zhàn)碼。
認(rèn)證服務(wù)器接收到用戶發(fā)出的認(rèn)證請(qǐng)求后,生成隨機(jī)的挑戰(zhàn)碼,并在認(rèn)證服務(wù)器保存生成的挑戰(zhàn)碼。挑戰(zhàn)碼可以采用偽隨機(jī)數(shù)或真隨機(jī)數(shù)的方式生成,從而保證生成的挑戰(zhàn)碼不會(huì)重復(fù)。當(dāng)然,也可以采用本領(lǐng)域技術(shù)人員熟知的其他算法獲得在一定范圍內(nèi)不會(huì)重復(fù)的挑戰(zhàn)碼,本發(fā)明并不僅僅限制于隨機(jī)生成。
認(rèn)證服務(wù)器將生成的挑戰(zhàn)碼發(fā)送給用戶終端作為對(duì)認(rèn)證請(qǐng)求的回復(fù)信息;用戶終端接收到挑戰(zhàn)碼后,顯示出來(lái)。
步驟105,所述動(dòng)態(tài)密碼生成器接收用戶輸入的挑戰(zhàn)碼,采用預(yù)置算法生成第一動(dòng)態(tài)密碼。
用戶開啟動(dòng)態(tài)密碼生成器,把所述用戶終端上顯示出來(lái)的挑戰(zhàn)碼輸入動(dòng)態(tài)秘碼生成器,動(dòng)態(tài)密碼生成器根據(jù)輸入的挑戰(zhàn)碼,按照預(yù)置算法生成第一動(dòng)態(tài)密碼,呈現(xiàn)在顯示器上。
步驟106,用戶通過(guò)所述用戶終端發(fā)送認(rèn)證信息至認(rèn)證服務(wù)器,所述認(rèn)證信息包括用戶帳號(hào)和動(dòng)態(tài)密碼生成器生成的第一動(dòng)態(tài)密碼;所述認(rèn)證服務(wù)器根據(jù)用戶帳號(hào)確定相應(yīng)的動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息,得到該動(dòng)態(tài)密碼生成器的預(yù)置算法,根據(jù)所述挑戰(zhàn)碼以及預(yù)置算法計(jì)算得到第二動(dòng)態(tài)密碼。
優(yōu)選的,在認(rèn)證服務(wù)器計(jì)算動(dòng)態(tài)密碼時(shí),所述的時(shí)間參數(shù)從認(rèn)證服務(wù)器時(shí)鐘獲得,服務(wù)器時(shí)鐘和標(biāo)準(zhǔn)時(shí)鐘保持同步。
步驟107,比對(duì)第一動(dòng)態(tài)密碼和第二動(dòng)態(tài)密碼,如果兩者一致,則認(rèn)證通過(guò)。
優(yōu)選的,為避免由于動(dòng)態(tài)密碼生成器和認(rèn)證服務(wù)器的時(shí)間誤差造成的認(rèn)證不通過(guò),在動(dòng)態(tài)密碼驗(yàn)證時(shí),由認(rèn)證服務(wù)器,計(jì)算當(dāng)前時(shí)間前后一定時(shí)間窗內(nèi)的動(dòng)態(tài)密碼,例如,設(shè)定允許登錄時(shí)的前1分鐘和后2分鐘的動(dòng)態(tài)密碼可以登錄,當(dāng)用戶輸入的動(dòng)態(tài)密碼在時(shí)間窗內(nèi)時(shí),認(rèn)為用戶認(rèn)證通過(guò),并且,認(rèn)證服務(wù)器記錄動(dòng)態(tài)密碼生成器和認(rèn)證服務(wù)器的時(shí)間誤差,作為下次認(rèn)證時(shí)調(diào)整參與密碼計(jì)算的時(shí)間的參數(shù);為避免用戶長(zhǎng)時(shí)間未登錄的情況下,累計(jì)的時(shí)間誤差較大,超出了時(shí)間窗口的調(diào)節(jié)的范圍,引起用戶不能通過(guò)認(rèn)證的問(wèn)題,當(dāng)用戶未登錄時(shí)間越長(zhǎng),則設(shè)定時(shí)間窗口的范圍越寬,例如,當(dāng)用戶一周未登錄時(shí),可以在時(shí)間窗口上前后加1分鐘,兩周未登錄時(shí)可以在時(shí)間窗口上前后加2分鐘。
優(yōu)選的,上述步驟還包括,用戶通過(guò)用戶終端向認(rèn)證服務(wù)器發(fā)送的認(rèn)證信息中還包括預(yù)先設(shè)定的靜態(tài)密碼,用戶終端把靜態(tài)密碼和用戶信息發(fā)送給認(rèn)證服務(wù)器,經(jīng)過(guò)和保存的用戶設(shè)定的靜態(tài)密碼比對(duì)后,確定用戶靜態(tài)密碼是否驗(yàn)證通過(guò),如果驗(yàn)證通過(guò),則繼續(xù)進(jìn)行動(dòng)態(tài)密碼的驗(yàn)證,如果驗(yàn)證未通過(guò)。也可以采用動(dòng)態(tài)密碼和靜態(tài)密碼同時(shí)驗(yàn)證的方式,當(dāng)兩者驗(yàn)證都通過(guò)時(shí)認(rèn)為用戶賬號(hào)認(rèn)證通過(guò),有項(xiàng)未通過(guò)時(shí),驗(yàn)證失敗。
優(yōu)選的,當(dāng)用戶賬號(hào)綁定多個(gè)動(dòng)態(tài)密碼生成器時(shí),認(rèn)證服務(wù)器根據(jù)挑戰(zhàn)碼、用戶綁定的多個(gè)動(dòng)態(tài)密碼生成器的序列號(hào)計(jì)算出多個(gè)第二動(dòng)態(tài)密碼,然后和用戶輸入的第一動(dòng)態(tài)密碼進(jìn)行比對(duì),如果有符合的,則認(rèn)為驗(yàn)證通過(guò),在這種情況下,不需要用戶輸入本次登錄使用的動(dòng)態(tài)密碼生成器的序列號(hào),方便了用戶使用,并可以滿足多人使用同一用戶帳戶的需求。
圖1中所述的動(dòng)態(tài)密碼生成器為離線裝置,因此挑戰(zhàn)碼需要用戶手工輸入,這樣可以避免連線時(shí)病毒、密碼或者算法竊取行為的發(fā)生,進(jìn)一步保證動(dòng)態(tài)密碼生成器的安全。當(dāng)然,將動(dòng)態(tài)密碼生成器設(shè)計(jì)為能夠與用戶終端或者服務(wù)器傳輸數(shù)據(jù),也是本領(lǐng)域技術(shù)人員完全可以實(shí)現(xiàn)的,本發(fā)明對(duì)此并不需要加以限制。
下面以用戶登錄游戲服務(wù)器的認(rèn)證過(guò)程為例進(jìn)一步介紹本發(fā)明的方法。圖2-圖5完整的示出了該具體實(shí)施例的詳細(xì)信息。
參照?qǐng)D2,是本發(fā)明的方法實(shí)施例運(yùn)行環(huán)境框圖,包括,通過(guò)網(wǎng)絡(luò)相連接的游戲服務(wù)器201、游戲認(rèn)證服務(wù)器202(即靜態(tài)密碼認(rèn)證服務(wù)器)、游戲數(shù)據(jù)庫(kù)服務(wù)器203、令牌認(rèn)證服務(wù)器204(即動(dòng)態(tài)密碼認(rèn)證服務(wù)器)、令牌數(shù)據(jù)庫(kù)服務(wù)器205和用戶終端206,以及可移動(dòng)的離線動(dòng)態(tài)密碼生成器207。
在本實(shí)施例中,一個(gè)用戶帳號(hào)可以綁定多個(gè)動(dòng)態(tài)密碼生成器,方便不同的用戶用各自動(dòng)態(tài)密碼生成器使用同一用戶帳號(hào)登錄游戲。
參照?qǐng)D3,是本發(fā)明的實(shí)施例的動(dòng)態(tài)密碼生成器綁定過(guò)程框圖,具體包括下列步驟步驟301,用戶在用戶終端206通過(guò)網(wǎng)絡(luò)向游戲服務(wù)器201發(fā)送動(dòng)態(tài)密碼生成器綁定申請(qǐng)。
步驟302,游戲服務(wù)器201接收到綁定申請(qǐng),生成隨機(jī)的挑戰(zhàn)碼,向用戶終端206發(fā)送挑戰(zhàn)碼。
步驟303,用戶終端206接收挑戰(zhàn)碼,并顯示出來(lái),用戶把挑戰(zhàn)碼輸入到動(dòng)態(tài)密碼生成器207,動(dòng)態(tài)密碼生成器207通過(guò)一定的算法得到動(dòng)態(tài)密碼,用戶在用戶終端206上輸入賬號(hào)、靜態(tài)密碼、動(dòng)態(tài)密碼和動(dòng)態(tài)密碼生成器的序列號(hào),提交給游戲服務(wù)器201。
步驟204,游戲服務(wù)器201對(duì)用戶賬號(hào)和靜態(tài)密碼進(jìn)行認(rèn)證,如果靜態(tài)密碼認(rèn)證為通過(guò)執(zhí)行步驟305,如果認(rèn)證通過(guò),執(zhí)行步驟306。靜態(tài)密碼認(rèn)證過(guò)程由游戲認(rèn)證服務(wù)器202完成,游戲認(rèn)證服務(wù)器202根據(jù)游戲數(shù)據(jù)庫(kù)服務(wù)器203中保存的用戶的靜態(tài)密碼對(duì)用戶輸入的靜態(tài)密碼進(jìn)行比對(duì),確認(rèn)用戶靜態(tài)密碼認(rèn)證是否通過(guò)。
步驟305,游戲服務(wù)器201發(fā)送信息提示給用戶終端,提示用戶賬號(hào)靜態(tài)密碼錯(cuò)誤,綁定動(dòng)態(tài)密碼生成器失敗。
步驟306,判斷動(dòng)態(tài)密碼生成器是否綁定了用戶帳號(hào),即檢查動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息是否有和用戶賬號(hào)的對(duì)應(yīng)關(guān)系,申請(qǐng)綁定的動(dòng)態(tài)密碼生成器不能是已經(jīng)被綁定到所請(qǐng)求綁定的用戶帳號(hào)的,如果動(dòng)態(tài)密碼生成器已經(jīng)被綁定,執(zhí)行步驟307,如果未被綁定,執(zhí)行步驟308。
步驟307,游戲服務(wù)器201發(fā)送信息提示給用戶終端206,提示用戶動(dòng)態(tài)密碼生成器已經(jīng)被綁定,本次綁定失敗。
步驟308,游戲服務(wù)器201將動(dòng)態(tài)密碼生成器的序列號(hào)、挑戰(zhàn)碼和動(dòng)態(tài)密碼發(fā)送給令牌認(rèn)證服務(wù)器204。
步驟309,令牌認(rèn)證服務(wù)器204在令牌數(shù)據(jù)庫(kù)服務(wù)器205中進(jìn)行查詢,根據(jù)動(dòng)態(tài)密碼生成器序列號(hào)和挑戰(zhàn)碼,按照在令牌數(shù)據(jù)庫(kù)服務(wù)器中存儲(chǔ)的該序列號(hào)對(duì)應(yīng)的預(yù)置算法得到動(dòng)態(tài)密碼,并和用戶輸入的動(dòng)態(tài)密碼相比較,如果相同則認(rèn)為認(rèn)證成功,執(zhí)行步驟311,如果認(rèn)證失敗,執(zhí)行步驟310。
步驟310,通知用戶終端206,動(dòng)態(tài)密碼認(rèn)證失敗,不能綁定動(dòng)態(tài)密碼生成器。
步驟311,游戲服務(wù)器201記錄綁定信息,并通知用戶終端,綁定成功。
綁定后游戲服務(wù)器會(huì)設(shè)置一個(gè)驗(yàn)證期,一般為6天左右,在這期間,用戶不進(jìn)行解綁即認(rèn)為用戶確認(rèn)綁定。在申請(qǐng)綁定期間帳號(hào)仍可以使用,在登錄時(shí)系統(tǒng)會(huì)提示正在申請(qǐng)綁定帳號(hào)。還可以在驗(yàn)證期后設(shè)置一個(gè)確認(rèn)期,由用戶進(jìn)行最后的確認(rèn),只有經(jīng)過(guò)用戶確認(rèn)后,綁定才生效。實(shí)際使用中可以根據(jù)情況設(shè)定二者的時(shí)間,如可以將驗(yàn)證期設(shè)為0天,確認(rèn)期設(shè)為6天,這樣用戶申請(qǐng)綁定后,可以馬上確認(rèn)綁定,從而使用戶帳號(hào)馬上得到動(dòng)態(tài)密碼的保護(hù)。
參照?qǐng)D4,是本發(fā)明的方法實(shí)施例的認(rèn)證過(guò)程框圖,具體包括下列步驟步驟401,用戶在用戶終端206向游戲服務(wù)器201發(fā)出認(rèn)證申請(qǐng)。
步驟402,游戲服務(wù)器201接收到認(rèn)證申請(qǐng),采用隨機(jī)算法生成挑戰(zhàn)碼,并向用戶終端發(fā)送挑戰(zhàn)碼。
步驟403,用戶終端接206收挑戰(zhàn)碼,并顯示出來(lái),用戶把挑戰(zhàn)碼輸入到動(dòng)態(tài)密碼生成器207,動(dòng)態(tài)密碼生成器207通過(guò)預(yù)置的算法得到動(dòng)態(tài)密碼,用戶在用戶終端上輸入用戶賬號(hào)、靜態(tài)密碼、動(dòng)態(tài)密碼,提交給游戲服務(wù)器。
步驟404,游戲服務(wù)器201通過(guò)游戲認(rèn)證服務(wù)器202對(duì)用戶賬號(hào)和靜態(tài)密碼進(jìn)行驗(yàn)證,如果靜態(tài)密碼驗(yàn)證未通過(guò),執(zhí)行步驟405,如果認(rèn)證通過(guò),執(zhí)行步驟406。
步驟405,通知用戶終端,靜態(tài)密碼錯(cuò)誤,拒絕用戶登錄。
步驟406,判斷用戶賬戶是否綁定了動(dòng)態(tài)密碼生成器,如果未綁定,執(zhí)行步驟407,如果已經(jīng)綁定,執(zhí)行步驟410。
步驟407,判斷用戶是否輸入了動(dòng)態(tài)密碼,如果未輸入,執(zhí)行步驟408,如果輸入了動(dòng)態(tài)密碼,執(zhí)行步驟409。
步驟408,認(rèn)證通過(guò),使用戶登錄游戲服務(wù)器。
步驟409,提示用戶未綁定。
步驟410,游戲服務(wù)器201將用戶賬號(hào)、用戶綁定的動(dòng)態(tài)密碼生成器的序列號(hào)、挑戰(zhàn)碼和用戶輸入的動(dòng)態(tài)密碼發(fā)送給令牌認(rèn)證服務(wù)器204。
步驟411,令牌認(rèn)證服務(wù)器204判斷動(dòng)態(tài)密碼生成器是否已經(jīng)停用,如停用,執(zhí)行步驟412,如未停用,執(zhí)行步驟413。
步驟412,通知用戶終端206,動(dòng)態(tài)密碼生成器已停用,更改數(shù)據(jù)庫(kù)中的綁定數(shù)據(jù),置用戶賬號(hào)為未綁定狀態(tài),并使用戶登錄游戲服務(wù)器,給出提示用戶賬戶未綁定的提示信息。
步驟413,判斷動(dòng)態(tài)密碼生成器是否已掛失,如已掛失,執(zhí)行步驟414,如未掛失,執(zhí)行步驟416。
步驟414,判斷動(dòng)態(tài)密碼生成器掛失后是否允許用戶登錄,如果允許,執(zhí)行步驟408,如果不允許登錄,執(zhí)行步驟415。
步驟415,通知用戶動(dòng)態(tài)密碼生成器已掛失,禁止用戶登錄。
步驟416,令牌認(rèn)證服務(wù)器204根據(jù)動(dòng)態(tài)密碼生成器的序列號(hào)和挑戰(zhàn)碼以及該序列號(hào)對(duì)應(yīng)的預(yù)置算法計(jì)算出認(rèn)證密碼(即第二動(dòng)態(tài)密碼),與用戶輸入的動(dòng)態(tài)密碼相比較,并返回認(rèn)證結(jié)果,如果認(rèn)證通過(guò),執(zhí)行步驟408,如果認(rèn)證未通過(guò),執(zhí)行步驟417。
步驟417,通知用戶終端動(dòng)態(tài)密碼錯(cuò)誤,禁止用戶登錄。
參照?qǐng)D5,是本發(fā)明的方法實(shí)施例的動(dòng)態(tài)密碼生成器解綁過(guò)程框圖,具體包括下列步驟。
步驟501,用戶在用戶終端206發(fā)出解除動(dòng)態(tài)密碼生成器的綁定申請(qǐng)。
步驟502,游戲服務(wù)器201接收到解綁申請(qǐng),生成隨機(jī)的挑戰(zhàn)碼,并向用戶終端206發(fā)送挑戰(zhàn)碼。
步驟503,用戶終端206接收挑戰(zhàn)碼,并顯示出來(lái),用戶把挑戰(zhàn)碼輸入到動(dòng)態(tài)密碼生成器207,動(dòng)態(tài)密碼生成器207通過(guò)預(yù)置的算法得到動(dòng)態(tài)密碼,用戶在用戶終端上輸入賬號(hào)、靜態(tài)密碼、動(dòng)態(tài)密碼,提交給游戲服務(wù)器201。
步驟504,游戲服務(wù)器201對(duì)用戶賬號(hào)和靜態(tài)密碼進(jìn)行驗(yàn)證,如果靜態(tài)密碼驗(yàn)證未通過(guò),執(zhí)行步驟505,如果認(rèn)證通過(guò),執(zhí)行步驟506。
步驟505,通知用戶終端206,靜態(tài)密碼錯(cuò)誤,解綁失敗。
步驟506,判斷用戶賬號(hào)是否綁定了動(dòng)態(tài)密碼生成器,如果未綁定,執(zhí)行步驟507,如果已經(jīng)綁定,執(zhí)行步驟508。
步驟507,通知用戶終端206,本用戶賬號(hào)沒(méi)有綁定動(dòng)態(tài)密碼生成器,解綁失敗步驟508,將動(dòng)態(tài)密碼生成器的序列號(hào)、隨機(jī)數(shù)和動(dòng)態(tài)密碼提交給令牌認(rèn)證服務(wù)器204。
步驟509,令牌認(rèn)證服務(wù)器204根據(jù)動(dòng)態(tài)密碼生成器的序列號(hào)和挑戰(zhàn)碼以及該序列號(hào)對(duì)應(yīng)的預(yù)置算法計(jì)算出認(rèn)證密碼(即第二動(dòng)態(tài)密碼),與用戶輸入的動(dòng)態(tài)密碼相比較,并返回認(rèn)證結(jié)果,如果認(rèn)證通過(guò),執(zhí)行步驟511,如果認(rèn)證未通過(guò),執(zhí)行步驟510。
步驟510,通知用戶終端206,動(dòng)態(tài)密碼錯(cuò)誤,解綁失敗。
步驟511,解除用戶賬號(hào)和動(dòng)態(tài)密碼生成器間的綁定關(guān)系,記錄在數(shù)據(jù)庫(kù)中,并發(fā)給解綁成功的提示信息。
上述實(shí)施例中認(rèn)證服務(wù)器采用了分布式,分別由靜態(tài)密碼認(rèn)證服務(wù)器完成靜態(tài)密碼的認(rèn)證和動(dòng)態(tài)密碼認(rèn)證服務(wù)器完成動(dòng)態(tài)密碼的認(rèn)證,并將結(jié)果返回給應(yīng)用系統(tǒng)服務(wù)器。動(dòng)態(tài)密碼認(rèn)證服務(wù)器對(duì)一定時(shí)間窗口內(nèi)的動(dòng)態(tài)密碼進(jìn)行驗(yàn)證,由于服務(wù)器的時(shí)間和動(dòng)態(tài)密碼生成器的時(shí)間會(huì)出現(xiàn)差異,所以在服務(wù)器端采用窗口認(rèn)證的策略,而且這個(gè)窗口可以根據(jù)登錄時(shí)間的間隔和時(shí)鐘累計(jì)誤差進(jìn)行動(dòng)態(tài)調(diào)整。
如果用遺失動(dòng)態(tài)密碼生成器可以向系統(tǒng)申請(qǐng)掛失,申請(qǐng)掛失時(shí),用戶帳號(hào)可選擇進(jìn)入兩種狀態(tài)的一種,如果選擇掛失后禁止登錄游戲,則在解除掛失前都無(wú)法進(jìn)入游戲;如果選擇掛失后動(dòng)態(tài)密碼生成器失效,則帳號(hào)失去動(dòng)態(tài)密碼生成器保護(hù),無(wú)須動(dòng)態(tài)密碼即可登錄游戲。
如果用戶申請(qǐng)掛失后找到動(dòng)態(tài)密碼生成器,可以向系統(tǒng)申請(qǐng)解除掛失,解除掛失后自動(dòng)恢復(fù)為綁定狀態(tài)。
用戶還可以申請(qǐng)動(dòng)態(tài)密碼生成器停用,停用后,帳號(hào)失去動(dòng)態(tài)密碼保護(hù),動(dòng)態(tài)密碼生成器也無(wú)法再次使用。
若用戶想用新的動(dòng)態(tài)密碼生成器代替舊的,可以申請(qǐng)更換動(dòng)態(tài)密碼生成器。更換新的動(dòng)態(tài)密碼生成器必須使用另一未啟用的動(dòng)態(tài)密碼生成器,更換以后對(duì)原有密碼生成器的認(rèn)證全部轉(zhuǎn)移到新的上面。
優(yōu)選的,為了防止動(dòng)態(tài)密碼和帳戶的混亂,在同一時(shí)間同一帳戶只能由一個(gè)用戶登錄使用。
參照?qǐng)D6,是本發(fā)明的系統(tǒng)框圖,具體包括,用戶終端601,用于向認(rèn)證服務(wù)器發(fā)送認(rèn)證請(qǐng)求,接收返回的挑戰(zhàn)碼;以及向認(rèn)證服務(wù)器發(fā)送包括用戶帳號(hào)和第一動(dòng)態(tài)密碼的認(rèn)證信息;動(dòng)態(tài)密碼生成器602,用于接收用戶輸入的挑戰(zhàn)碼,采用預(yù)置算法生成第一動(dòng)態(tài)密碼;認(rèn)證服務(wù)器603,包括以下部件接口單元6031,用于接收用戶終端601發(fā)送的認(rèn)證請(qǐng)求、認(rèn)證信息,以及返回相應(yīng)信息;挑戰(zhàn)碼生成單元6031,用于生成隨機(jī)的挑戰(zhàn)碼;第一數(shù)據(jù)庫(kù)6032,用于存儲(chǔ)動(dòng)態(tài)密碼生成器602的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系,以及動(dòng)態(tài)密碼生成器602的預(yù)置算法;動(dòng)態(tài)密碼驗(yàn)證服務(wù)器6033,與第一數(shù)據(jù)庫(kù)6032和接口單元6013相連,用于根據(jù)用戶帳號(hào)確定相應(yīng)的動(dòng)態(tài)密碼生成器602的標(biāo)識(shí)信息,從而得到該動(dòng)態(tài)密碼生成器602的預(yù)置算法,根據(jù)所述挑戰(zhàn)碼以及預(yù)置算法計(jì)算得到第二動(dòng)態(tài)密碼;以及比對(duì)第一動(dòng)態(tài)密碼和第二動(dòng)態(tài)密碼,如果一致,則認(rèn)證通過(guò)。
用戶終端601通過(guò)網(wǎng)絡(luò)和認(rèn)證服務(wù)器603相連接,動(dòng)態(tài)密碼生成器602離線運(yùn)行。當(dāng)然,如前所述,采用動(dòng)態(tài)密碼生成器602連線方式也是可行的。所以在圖6中采用了虛線進(jìn)行標(biāo)識(shí)。
用戶終端601向認(rèn)證服務(wù)器603發(fā)出認(rèn)證請(qǐng)求,認(rèn)證服務(wù)器603的接口單元6031接收到認(rèn)證請(qǐng)求,挑戰(zhàn)碼生成單元6031生成隨機(jī)的挑戰(zhàn)碼,并通過(guò)接口單元6031發(fā)送給所述用戶終端601,用戶將所述挑戰(zhàn)碼輸入到動(dòng)態(tài)密碼生成器602上,根據(jù)預(yù)置的算法生成第一動(dòng)態(tài)密碼,用戶將用戶認(rèn)證信息和第一動(dòng)態(tài)密碼通過(guò)用戶終端601發(fā)送給認(rèn)證服務(wù)器603,認(rèn)證服務(wù)器603的接口單元6031把認(rèn)證信息和第一動(dòng)態(tài)密碼發(fā)送給動(dòng)態(tài)密碼驗(yàn)證服務(wù)器6033,動(dòng)態(tài)密碼驗(yàn)證服務(wù)器6033根據(jù)用戶認(rèn)證信息中的用戶帳號(hào)確定相應(yīng)的動(dòng)態(tài)密碼生成器602的標(biāo)識(shí)信息,得到該動(dòng)態(tài)密碼生成器602的預(yù)置算法,根據(jù)所述挑戰(zhàn)碼以及預(yù)置算法計(jì)算得到第二動(dòng)態(tài)密碼;以及比對(duì)第一動(dòng)態(tài)密碼和第二動(dòng)態(tài)密碼,如果一致,則認(rèn)證通過(guò)。
優(yōu)選的,所述預(yù)置算法中還包括時(shí)間參數(shù),所述時(shí)間參數(shù)由動(dòng)態(tài)密碼生成器502硬件產(chǎn)生或者認(rèn)證服務(wù)器503時(shí)鐘獲得。
優(yōu)選的,為避免由于動(dòng)態(tài)密碼生成器602和認(rèn)證服務(wù)器603的時(shí)間誤差造成的認(rèn)證不通過(guò),在動(dòng)態(tài)密碼驗(yàn)證時(shí),由動(dòng)態(tài)密碼生成器602計(jì)算當(dāng)前時(shí)間前后一定時(shí)間窗內(nèi)的第二動(dòng)態(tài)密碼,例如,設(shè)定允許登錄的前1分鐘和后2分鐘的動(dòng)態(tài)密碼可以登錄,當(dāng)用戶輸入的動(dòng)態(tài)密碼在時(shí)間窗內(nèi)時(shí),認(rèn)為用戶認(rèn)證通過(guò),并且,認(rèn)證服務(wù)器603記錄動(dòng)態(tài)密碼生成器602的時(shí)間誤差,作為下次認(rèn)證時(shí)調(diào)整參與密碼計(jì)算的時(shí)間的參數(shù);為避免用戶長(zhǎng)時(shí)間未登錄的情況下,累計(jì)的時(shí)間誤差較大,超出了時(shí)間窗口的調(diào)節(jié)的范圍,引起用戶不能通過(guò)認(rèn)證的問(wèn)題,當(dāng)用戶未登錄時(shí)間越長(zhǎng),則設(shè)定時(shí)間窗口的范圍越寬,例如,當(dāng)用戶一周未登錄時(shí),可以在時(shí)間窗口上前后加1分鐘,兩周未登錄時(shí)可以在時(shí)間窗口上前后加2分鐘。
優(yōu)選的,所述認(rèn)證服務(wù)器還包括第二數(shù)據(jù)庫(kù)6034,用于存儲(chǔ)用戶帳號(hào)以及相應(yīng)的靜態(tài)密碼;靜態(tài)密碼驗(yàn)證服務(wù)器6035,與第二數(shù)據(jù)庫(kù)和動(dòng)態(tài)密碼驗(yàn)證服務(wù)器相連,用于驗(yàn)證用戶輸入的靜態(tài)密碼。
優(yōu)選的,還包括綁定確認(rèn)單元6037,用于在建立所述動(dòng)態(tài)密碼生成器602的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系時(shí),設(shè)定確認(rèn)期,所述確認(rèn)期用于提示用戶是否確認(rèn)已建立的對(duì)應(yīng)關(guān)系。
參照?qǐng)D7,是本發(fā)明的動(dòng)態(tài)密碼生成裝置實(shí)施例1框圖,具體包括輸入單元701,用于接收挑戰(zhàn)碼,所述挑戰(zhàn)碼是由認(rèn)證服務(wù)器根據(jù)用戶認(rèn)證請(qǐng)求而隨機(jī)生成的,所述挑戰(zhàn)碼可以為用戶輸入的;運(yùn)算處理單元702,用于根據(jù)所述挑戰(zhàn)碼和當(dāng)前時(shí)鐘數(shù)據(jù)采用預(yù)置算法計(jì)算動(dòng)態(tài)密碼;時(shí)鐘單元703,用于提供當(dāng)前時(shí)鐘數(shù)據(jù);輸出單元704,用于輸出所述動(dòng)態(tài)密碼,所述輸出可以為直接顯示。
用戶開啟動(dòng)態(tài)密碼生成裝置后,把服務(wù)器端返回的挑戰(zhàn)碼通過(guò)輸入單元701輸入動(dòng)態(tài)秘碼生成器,運(yùn)算處理單元702根據(jù)輸入的挑戰(zhàn)碼和時(shí)鐘單元703提供的當(dāng)前的時(shí)間參數(shù)按照預(yù)置算法計(jì)算動(dòng)態(tài)密碼,呈現(xiàn)在輸出單元704上。
優(yōu)選的,輸入單元701可以是鍵盤,輸出單元704可以是數(shù)碼顯示器。
參照?qǐng)D8,是本發(fā)明的動(dòng)態(tài)密碼生成裝置實(shí)施例2框圖,具體包括輸入單元801,用于接收挑戰(zhàn)碼,所述挑戰(zhàn)碼是由認(rèn)證服務(wù)器根據(jù)用戶認(rèn)證請(qǐng)求而隨機(jī)生成的,所述挑戰(zhàn)碼可以為用戶輸入的;運(yùn)算處理單元802,用于根據(jù)所述挑戰(zhàn)碼,采用預(yù)置算法計(jì)算動(dòng)態(tài)密碼;輸出單元803,用于輸出所述動(dòng)態(tài)密碼,所述輸出可以為直接顯示。
本實(shí)施例和圖7的區(qū)別在于,計(jì)算動(dòng)態(tài)密碼時(shí)不采用當(dāng)前時(shí)間作為計(jì)算參數(shù),這樣生成的動(dòng)態(tài)密碼和當(dāng)前的時(shí)間無(wú)關(guān)??梢苑乐巩?dāng)用戶在認(rèn)證過(guò)程中長(zhǎng)時(shí)間未操作時(shí),用戶驗(yàn)證失敗的問(wèn)題,便于用戶使用。
本發(fā)明的基于挑戰(zhàn)碼的動(dòng)態(tài)密碼認(rèn)證系統(tǒng)和方法可用于游戲、金融、證券、商業(yè)、政府、學(xué)術(shù)、企業(yè)計(jì)算機(jī)系統(tǒng)登錄以及企業(yè)虛擬專用網(wǎng)。
以上對(duì)本發(fā)明所提供的一種動(dòng)態(tài)密碼認(rèn)證方法、系統(tǒng)及裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種動(dòng)態(tài)密碼認(rèn)證方法,其特征在于,包括下列步驟存儲(chǔ)動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系,以及該動(dòng)態(tài)密碼生成器中的預(yù)置算法;用戶終端向認(rèn)證服務(wù)器發(fā)出認(rèn)證請(qǐng)求;所述認(rèn)證服務(wù)器返回生成的挑戰(zhàn)碼;所述動(dòng)態(tài)密碼生成器根據(jù)所述挑戰(zhàn)碼,采用預(yù)置算法生成第一動(dòng)態(tài)密碼;所述用戶終端發(fā)送認(rèn)證信息至認(rèn)證服務(wù)器,所述認(rèn)證信息包括用戶帳號(hào)和第一動(dòng)態(tài)密碼;所述認(rèn)證服務(wù)器根據(jù)用戶帳號(hào)確定相應(yīng)的動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息,得到該動(dòng)態(tài)密碼生成器的預(yù)置算法,根據(jù)所述挑戰(zhàn)碼以及預(yù)置算法計(jì)算得到第二動(dòng)態(tài)密碼;比對(duì)第一動(dòng)態(tài)密碼和第二動(dòng)態(tài)密碼,如果一致,則認(rèn)證通過(guò)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)置算法中還包括時(shí)間參數(shù),所述時(shí)間參數(shù)由動(dòng)態(tài)密碼生成器硬件產(chǎn)生或者認(rèn)證服務(wù)器時(shí)鐘獲得。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述認(rèn)證服務(wù)器對(duì)動(dòng)態(tài)密碼的驗(yàn)證采用時(shí)間窗口認(rèn)證策略,允許該時(shí)間窗口內(nèi)的動(dòng)態(tài)密碼通過(guò)認(rèn)證,所述時(shí)間窗口根據(jù)用戶登錄的時(shí)間間隔和動(dòng)態(tài)密碼生成器的時(shí)鐘累計(jì)誤差進(jìn)行動(dòng)態(tài)調(diào)整。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述認(rèn)證信息還包括靜態(tài)密碼,所述認(rèn)證服務(wù)器對(duì)所述靜態(tài)密碼進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò),則繼續(xù)進(jìn)行動(dòng)態(tài)密碼的驗(yàn)證,否則,驗(yàn)證失敗。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括在建立所述動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系時(shí),設(shè)定確認(rèn)期,所述確認(rèn)期用于提示用戶是否確認(rèn)已建立的對(duì)應(yīng)關(guān)系。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)應(yīng)關(guān)系為一對(duì)一、多對(duì)一或者一對(duì)多。
7.一種動(dòng)態(tài)密碼認(rèn)證系統(tǒng),其特征在于,包括用戶終端,用于向認(rèn)證服務(wù)器發(fā)送認(rèn)證請(qǐng)求,接收返回的挑戰(zhàn)碼;以及向認(rèn)證服務(wù)器發(fā)送包括用戶帳號(hào)和第一動(dòng)態(tài)密碼的認(rèn)證信息;動(dòng)態(tài)密碼生成器,用于根據(jù)所述挑戰(zhàn)碼,采用預(yù)置算法生成第一動(dòng)態(tài)密碼;認(rèn)證服務(wù)器,包括以下部件接口單元,用于接收用戶終端發(fā)送的認(rèn)證請(qǐng)求、認(rèn)證信息,以及返回相應(yīng)信息;挑戰(zhàn)碼生成單元,用于生成挑戰(zhàn)碼;第一數(shù)據(jù)庫(kù),用于存儲(chǔ)動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系,以及該動(dòng)態(tài)密碼生成器的預(yù)置算法;動(dòng)態(tài)密碼驗(yàn)證服務(wù)器,與第一數(shù)據(jù)庫(kù)相連,用于根據(jù)用戶帳號(hào)確定相應(yīng)的動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息,得到該動(dòng)態(tài)密碼生成器的預(yù)置算法,根據(jù)所述挑戰(zhàn)碼以及預(yù)置算法計(jì)算得到第二動(dòng)態(tài)密碼;以及比對(duì)第一動(dòng)態(tài)密碼和第二動(dòng)態(tài)密碼,如果一致,則認(rèn)證通過(guò)。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述預(yù)置算法中還包括時(shí)間參數(shù),所述時(shí)間參數(shù)由動(dòng)態(tài)密碼生成器硬件產(chǎn)生或者認(rèn)證服務(wù)器時(shí)鐘獲得。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述動(dòng)態(tài)密碼驗(yàn)證服務(wù)器對(duì)動(dòng)態(tài)密碼的驗(yàn)證采用時(shí)間窗口認(rèn)證策略,允許該時(shí)間窗口內(nèi)的動(dòng)態(tài)密碼通過(guò)認(rèn)證,所述時(shí)間窗口根據(jù)用戶登錄的時(shí)間間隔和動(dòng)態(tài)密碼生成器的時(shí)鐘累計(jì)誤差進(jìn)行動(dòng)態(tài)調(diào)整。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,當(dāng)所述用戶終端發(fā)送的認(rèn)證信息還包括靜態(tài)密碼時(shí),所述認(rèn)證服務(wù)器還包括第二數(shù)據(jù)庫(kù),用于存儲(chǔ)用戶帳號(hào)以及相應(yīng)的靜態(tài)密碼;靜態(tài)密碼驗(yàn)證服務(wù)器,與第二數(shù)據(jù)庫(kù)和動(dòng)態(tài)密碼驗(yàn)證服務(wù)器相連,用于驗(yàn)證用戶輸入的靜態(tài)密碼。
11.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述認(rèn)證服務(wù)器還包括綁定確認(rèn)單元,用于在建立所述動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系時(shí),設(shè)定確認(rèn)期,所述確認(rèn)期用于提示用戶是否確認(rèn)已建立的對(duì)應(yīng)關(guān)系。
12.一種動(dòng)態(tài)密碼生成裝置,其特征在于,包括輸入單元,用于接收挑戰(zhàn)碼,所述挑戰(zhàn)碼是由認(rèn)證服務(wù)器根據(jù)用戶認(rèn)證請(qǐng)求而生成的;運(yùn)算處理單元,用于根據(jù)所述挑戰(zhàn)碼和當(dāng)前時(shí)鐘數(shù)據(jù),采用預(yù)置算法計(jì)算動(dòng)態(tài)密碼;時(shí)鐘單元,用于提供當(dāng)前時(shí)鐘數(shù)據(jù);輸出單元,用于輸出所述動(dòng)態(tài)密碼。
13.一種動(dòng)態(tài)密碼生成裝置,其特征在于,包括輸入單元,用于接收挑戰(zhàn)碼,所述挑戰(zhàn)碼是由認(rèn)證服務(wù)器根據(jù)用戶認(rèn)證請(qǐng)求而生成的;運(yùn)算處理單元,用于根據(jù)所述挑戰(zhàn)碼采用預(yù)置算法計(jì)算動(dòng)態(tài)密碼;輸出單元,用于輸出所述動(dòng)態(tài)密碼。
全文摘要
本發(fā)明提供了一種動(dòng)態(tài)密碼認(rèn)證方法,包括存儲(chǔ)動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息與用戶帳號(hào)的對(duì)應(yīng)關(guān)系,以及該動(dòng)態(tài)密碼生成器中的預(yù)置算法;用戶終端向認(rèn)證服務(wù)器發(fā)出認(rèn)證請(qǐng)求;所述認(rèn)證服務(wù)器返回生成的挑戰(zhàn)碼;所述動(dòng)態(tài)密碼生成器根據(jù)所述挑戰(zhàn)碼,采用預(yù)置算法生成第一動(dòng)態(tài)密碼;所述用戶終端發(fā)送認(rèn)證信息至認(rèn)證服務(wù)器,所述認(rèn)證信息包括用戶帳號(hào)和第一動(dòng)態(tài)密碼;所述認(rèn)證服務(wù)器根據(jù)用戶帳號(hào)確定相應(yīng)的動(dòng)態(tài)密碼生成器的標(biāo)識(shí)信息,得到該動(dòng)態(tài)密碼生成器的預(yù)置算法,根據(jù)所述挑戰(zhàn)碼以及預(yù)置算法計(jì)算得到第二動(dòng)態(tài)密碼;比對(duì)第一動(dòng)態(tài)密碼和第二動(dòng)態(tài)密碼,如果一致,則認(rèn)證通過(guò)。本發(fā)明可以有效防止網(wǎng)絡(luò)偵聽、窺探、社交工程等類型的攻擊造成密碼泄露。
文檔編號(hào)H04L9/16GK1937498SQ200610113609
公開日2007年3月28日 申請(qǐng)日期2006年10月9日 優(yōu)先權(quán)日2006年10月9日
發(fā)明者段克強(qiáng), 林一樹, 王焱, 吳迎暉, 周楓, 莊莉 申請(qǐng)人:網(wǎng)之易信息技術(shù)(北京)有限公司