專利名稱:基于動態(tài)口令的認(rèn)證方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體而言,涉及一種基于動態(tài)口令的認(rèn)證方法和
裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)在人們?nèi)粘I钪械膽?yīng)用越來越廣泛,人們已經(jīng)越來越依賴于網(wǎng)絡(luò) 進(jìn)行更多的日?;顒樱缋镁W(wǎng)絡(luò)進(jìn)行購物、辦公、娛樂等。也正是由于網(wǎng)絡(luò)應(yīng)用的加強, 各種提供便捷服務(wù)的網(wǎng)站也應(yīng)運而生,使得網(wǎng)站的數(shù)量不斷增加,同時對網(wǎng)絡(luò)的安全性要 求也越來越高,尤其是網(wǎng)絡(luò)銀行、政府辦公相關(guān)的網(wǎng)站,要求合法用戶登陸絕對安全。由于 黑客技術(shù)的發(fā)展,傳統(tǒng)的用戶名加靜態(tài)密碼的驗證方式已經(jīng)不能滿足現(xiàn)有的安全性要求。
近年來,認(rèn)證領(lǐng)域提出了動態(tài)口令的認(rèn)證方式,在對靜態(tài)密碼進(jìn)行驗證的基礎(chǔ)上 增加了動態(tài)密碼的驗證,使得用戶口令多了一層保護,大大增加了安全性。在現(xiàn)有技術(shù)中, 動態(tài)口令的認(rèn)證通常為如下方式 服務(wù)方向用戶發(fā)放動態(tài)口令令牌,這種令牌是一種自帶有處理器的電子設(shè)備,其
大小如同U盤,在裝有電池或接電的情況下可以獨立運行。通常在動態(tài)口令令牌內(nèi)部安全
的存儲有與其對應(yīng)的種子,也稱為靜態(tài)因子,該種子為一個長字符串或數(shù)據(jù); 動態(tài)口令令牌可以根據(jù)內(nèi)置的動態(tài)口令算法利用種子和動態(tài)因子生成動態(tài)口
令; 用戶使用動態(tài)口令令牌生成的動態(tài)口令登陸服務(wù)方,因為動態(tài)因子通常與時間或 事件因素相關(guān)聯(lián),因此每次生成的動態(tài)口令會不同,用戶使用該動態(tài)口令登陸服務(wù)方可以 達(dá)到一次一密的效果,安全性比較高。 釣魚網(wǎng)站是一種假冒網(wǎng)站,其完全模仿真網(wǎng)站的界面,只是在URL上與真網(wǎng)站有
細(xì)微差別,普通用戶在不仔細(xì)查看的情況下很容易混淆釣魚網(wǎng)站與真網(wǎng)站,釣魚網(wǎng)站冒充
真網(wǎng)站,如果用戶打開了釣魚網(wǎng)站并進(jìn)行登陸,釣魚網(wǎng)站會記錄用戶所輸入的登陸信息,并
使用這些信息冒充用戶在真網(wǎng)站上進(jìn)行登陸,造成用戶信息和財產(chǎn)的損失。 現(xiàn)有技術(shù)中的動態(tài)口令雖然安全性較高,不易破解,但是卻無法防止惡意網(wǎng)站
(例如釣魚網(wǎng)站)的攻擊。 針對相關(guān)技術(shù)中動態(tài)口令認(rèn)證方法安全性較低的問題,目前尚未提出有效的解決 方案。
發(fā)明內(nèi)容
本發(fā)明旨在提供一種基于動態(tài)口令的認(rèn)證方法和裝置,能夠解決現(xiàn)有認(rèn)證方法安
全性較低,不能防止惡意網(wǎng)站攻擊等問題。 根據(jù)本發(fā)明的一個方面,本發(fā)明實施例提供了一種基于動態(tài)口令的認(rèn)證方法,所 述方法包括 服務(wù)端接收用戶發(fā)送的用戶名和第一動態(tài)口令;
所述服務(wù)端根據(jù)所述用戶名查找對應(yīng)的種子和動態(tài)因子,根據(jù)所述種子和動態(tài)因 子生成第一驗證動態(tài)口令; 所述服務(wù)端使用所述第一驗證動態(tài)口令驗證所述第一動態(tài)口令,驗證通過后,生 成第二驗證動態(tài)口令; 所述服務(wù)端按照預(yù)設(shè)規(guī)則將所述第二驗證動態(tài)口令拆分為第一口令和第二口令, 將所述第一口令返回給所述用戶; 所述服務(wù)端若在預(yù)定的時間內(nèi)接收到所述用戶返回的第二驗證口令,則使用所述 第二 口令對所述第二驗證口令進(jìn)行驗證,驗證通過,確認(rèn)所述用戶合法。
根據(jù)本發(fā)明的另一方面,本發(fā)明實施例還提供了一種基于動態(tài)口令的認(rèn)證裝置, 所述裝置包括 第一生成模塊,用于接收用戶發(fā)送的用戶名和第一動態(tài)口令,并根據(jù)所述用戶名
查找對應(yīng)的種子和動態(tài)因子,根據(jù)所述種子和動態(tài)因子生成第一驗證動態(tài)口令; 第一驗證模塊,用于使用所述第一生成模塊生成的第一驗證動態(tài)口令驗證所述第
一動態(tài)口令; 第二生成模塊,用于所述第一驗證模塊驗證所述第一動態(tài)口令通過后,生成第二 驗證動態(tài)口令; 拆分與發(fā)送模塊,用于按照預(yù)設(shè)規(guī)則將所述第二生成模塊生成的第二驗證動態(tài)口 令拆分為第一口令和第二口令,將所述第一口令返回給所述用戶; 第二驗證模塊,用于在預(yù)定的時間內(nèi)接收到所述用戶返回的第二驗證口令后,使 用所述拆分與發(fā)送模塊拆分的第二 口令對所述第二驗證口令進(jìn)行驗證,驗證通過,確認(rèn)所 述用戶合法。 本發(fā)明實施例采用將生成的動態(tài)口令拆分為兩個口令,將其中一個口令發(fā)送給用 戶,用以用戶驗證其是否合法,使用另一個口令再次驗證用戶是否合法,有效地防止了釣魚 網(wǎng)站等惡意網(wǎng)站利用截獲的用戶密碼進(jìn)行登陸,進(jìn)而增強了系統(tǒng)的安全性,保證了用戶的 信息安全。
附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實
施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中 圖1示出了實施例1提供的基于動態(tài)口令的認(rèn)證方法流程圖; 圖2示出了實施例2提供的基于動態(tài)口令的認(rèn)證方法流程圖; 圖3示出了實施例3提供的基于動態(tài)口令的認(rèn)證方法流程圖; 圖4示出了實施例4提供的基于動態(tài)口令的認(rèn)證裝置的結(jié)構(gòu)框圖。
具體實施例方式
下面將參考附圖并結(jié)合實施例,來詳細(xì)說明本發(fā)明。
實施例1 本實施例提供了一種基于動態(tài)口令的認(rèn)證方法,參見圖l,該方法包括
步驟101,服務(wù)端接收用戶發(fā)送的用戶名和第一動態(tài)口令;
5
其中,第一動態(tài)口令是用戶使用動態(tài)口令令牌生成的,動態(tài)口令令牌與用戶的用 戶名是關(guān)聯(lián)的,該動態(tài)口令令牌具有唯一的編號,該編號、生成動態(tài)口令使用的種子與算法 預(yù)先都存儲在服務(wù)端上,并與其用戶的用戶名相關(guān)聯(lián); 其中,用戶名可以是用戶的身份證號,也可以是用戶的郵箱,或者是用戶的銀行賬 號,只要能標(biāo)識用戶身份的信息均可以作為該用戶的用戶名; 步驟102,該服務(wù)端根據(jù)上述用戶名查找對應(yīng)的種子和動態(tài)因子,根據(jù)該種子和動 態(tài)因子生成第一驗證動態(tài)口令; 步驟103,該服務(wù)端使用上述第一驗證動態(tài)口令驗證第一動態(tài)口令,驗證通過后, 生成第二驗證動態(tài)口令; 步驟104,該服務(wù)端按照預(yù)設(shè)規(guī)則將上述第二驗證動態(tài)口令拆分為第一口令和第 二口令,將第一口令返回給上述用戶; 具體的,上述服務(wù)端將第一口令發(fā)送給客戶端,客戶端通過顯示輸出或音頻播放 的方式將第一口令輸出給用戶,上述用戶收到第一口令后,通過動態(tài)口令令牌生成第二動 態(tài)口令,并按照上述預(yù)設(shè)規(guī)則將第二動態(tài)口令拆分為第一驗證口令和第二驗證口令;
上述用戶使用第一驗證口令驗證上述第一口令通過后,確認(rèn)此服務(wù)端合法,客戶 端接收用戶輸入的第二驗證口令,并轉(zhuǎn)發(fā)給服務(wù)端。 步驟105,該服務(wù)端若在預(yù)定的時間內(nèi)接收到上述用戶返回的第二驗證口令,則使
用上述第二 口令對該第二驗證口令進(jìn)行驗證,驗證通過,確認(rèn)上述用戶合法。 當(dāng)此服務(wù)端為釣魚網(wǎng)站時,用戶使用第一驗證口令對該服務(wù)端返回的第一口令驗
證時,將會驗證失敗,此時,用戶將不會把第二驗證口令返回給該服務(wù)端,這樣,該服務(wù)端將
不能得到上述第二驗證口令;即使該服務(wù)端使用步驟101截獲的用戶名和第一動態(tài)口令假
冒該用戶去訪問真正的網(wǎng)站,也不能向該網(wǎng)站提供上述第二驗證口令,進(jìn)而會被真正的網(wǎng)
站拒絕登陸,保證了合法用戶的利益;同時,服務(wù)端利用將第二驗證動態(tài)口令拆分為第一 口
令和第二口令的方法,可以減少服務(wù)端和用戶端生成動態(tài)口令的次數(shù),在保證安全性的前
提下簡化了認(rèn)證過程。 本實施例的服務(wù)端通過將生成的動態(tài)口令拆分為兩個口令,將其中一個口令發(fā)送
給用戶,用以用戶驗證其是否合法,使用另一個口令再次驗證用戶是否合法,有效地防止了
釣魚網(wǎng)站等惡意網(wǎng)站利用截獲的用戶密碼進(jìn)行登陸,進(jìn)而增強了系統(tǒng)的安全性,保證了用
戶的信息安全。 實施例2 本實施例提供了一種基于動態(tài)口令的認(rèn)證方法,本實施例以用戶通過動態(tài)口令的 認(rèn)證方式登陸網(wǎng)上銀行為例進(jìn)行說明,具體描述在用戶登陸的過程中動態(tài)口令服務(wù)端的認(rèn) 證流程,其中,在本實施例中,以生成動態(tài)口令時采用計次的方法為例進(jìn)行說明,參見圖2, 該方法包括 步驟201,服務(wù)端接收用戶輸入的用戶名、第一動態(tài)口令; 在本實施例中,在登陸認(rèn)證流程開始前,用戶所持動態(tài)口令令牌已經(jīng)與該用戶的 用戶名進(jìn)行了綁定,上述動態(tài)口令令牌具有唯一的編號,并且在服務(wù)端內(nèi)部存儲有唯一的 與編號對應(yīng)的種子,動態(tài)口令令牌可以根據(jù)內(nèi)置的動態(tài)口令算法生成動態(tài)口令,該動態(tài)口 令算法與服務(wù)端生成動態(tài)口令的算法相同;
6
在本實施例中,所使用的動態(tài)口令令牌帶有按鍵,當(dāng)用戶第一次按下該按鍵生成 的動態(tài)口令為第一動態(tài)口令; 用戶通過客戶端輸入用戶名、第一動態(tài)口令,并由客戶端發(fā)送給服務(wù)端; 在生成動態(tài)口令時對動態(tài)因子的選擇可以采用基于時間或事件的方式,在本實施
例中,以采用基于事件的方式生成動態(tài)口令進(jìn)行說明,優(yōu)選地,在本實施例中采用計次的方
法,該計次指的是生成動態(tài)口令的次數(shù)。 步驟202,服務(wù)端根據(jù)接收的用戶名查找動態(tài)口令令牌的編號和種子,以及動態(tài)因 子,根據(jù)查找到的種子和動態(tài)因子生成第一驗證動態(tài)口令0TP1 ; 其中,服務(wù)端生成0TP1與動態(tài)口令令牌生成第一動態(tài)口令算法相同,采用計次的 方式,并使用相同的算法生成動態(tài)口令,其中,使用的算法可以是HMAC-SHA1、MD5、 SHA-1 或SHA-2等。 步驟203,服務(wù)端驗證第一動態(tài)口令是否正確,如果正確,執(zhí)行步驟204,如果不正 確,執(zhí)行步驟209 ; 其中,在步驟202中,服務(wù)端生成0TP1時,可以生成一個或一組動態(tài)口令作為 0TP1,即0TP1也可以為一組動態(tài)口令,這組動態(tài)口令是使用連續(xù)遞增的動態(tài)因子計算的;
根據(jù)0TP1中動態(tài)口令的個數(shù)不同,服務(wù)端驗證第一動態(tài)口令是否正確的方法也 不同,具體如下 當(dāng)0TP1為一個動態(tài)口令時,服務(wù)端將第一動態(tài)口令與0TP1進(jìn)行比對,如果相同, 則認(rèn)為第一動態(tài)口令正確,如果不相同,則認(rèn)為第一動態(tài)口令不正確; 當(dāng)0TP1為一組動態(tài)口令時,服務(wù)端將這一組動態(tài)口令中的每個動態(tài)口令分別與 第一動態(tài)口令進(jìn)行比對,當(dāng)OTP 1中有一個動態(tài)口令與第一動態(tài)口令比對相同時,則認(rèn)為 比對成功,第一動態(tài)口令正確,如果0TP1中任一個動態(tài)口令都與第一動態(tài)口令不相同,則 認(rèn)為驗證失敗,第一動態(tài)口令不正確; 在服務(wù)端驗證第一動態(tài)口令是否正確前,還可以包括 服務(wù)端判斷第一動態(tài)口令是否使用過,如果沒有使用過,驗證第一動態(tài)口令是否
正確,如果使用過,向用戶返回錯誤報告; 當(dāng)服務(wù)端驗證第一動態(tài)口令正確后,還可以包括 對服務(wù)端保存的動態(tài)因子進(jìn)行修正(即更新動態(tài)因子)。下面以本實施例采用計 次的方式生成動態(tài)口令為例,說明動態(tài)因子的修正過程 使用計次的方法生成動態(tài)口令,即在生成動態(tài)口令時將設(shè)備(動態(tài)口令令牌或服 務(wù)端)生成動態(tài)口令的次數(shù)作為動態(tài)因子,第一次生成動態(tài)口令時動態(tài)因子為計數(shù)值1、第 二次生成動態(tài)口令時動態(tài)因子為計數(shù)值2,以此類推,每生成一次動態(tài)口令計數(shù)值增加1, 也可以為增加一個預(yù)設(shè)步長。由于動態(tài)口令令牌和服務(wù)端是單獨計次的,很容易產(chǎn)生計次 不一致的現(xiàn)象,因此需要對服務(wù)端所存儲的計次值進(jìn)行修正; 設(shè)定在動態(tài)口令令牌生成第一動態(tài)口令時使用的動態(tài)因子為計數(shù)值IOO,此時在 服務(wù)端中保存的動態(tài)因子為計數(shù)值95,在服務(wù)端計算0TP1時設(shè)定計數(shù)值浮動范圍為10, 計算95作為動態(tài)因子對應(yīng)的動態(tài)口令,并將計數(shù)值逐漸增加到95+10,并同時進(jìn)行0TP1的 計算,每計算出一個0TP1,即與第一動態(tài)口令進(jìn)行比對,如不相同則增加計算值繼續(xù)進(jìn)行 0TP1的計算。由上可知,服務(wù)端生成0TP1時,分別以計數(shù)值95、96...... 104、105作為動態(tài)因子,生成一組最多11個動態(tài)口令,服務(wù)端將接收到的第一動態(tài)口令與上述11個動態(tài)口
令進(jìn)行比對,當(dāng)服務(wù)端以計數(shù)值ioo作為動態(tài)因子生成的動態(tài)口令時比對成功,則認(rèn)為第
一動態(tài)口令正確,并停止0TP1的計算,這時還要對服務(wù)端存儲的計數(shù)值進(jìn)行修正,將100作 為正確的計數(shù)值,使得動態(tài)口令令牌與服務(wù)端的計數(shù)值保持同步,同時服務(wù)端將計數(shù)值100 增加l(或預(yù)定的步長)保存,作為下次計算動態(tài)口令的動態(tài)因子,如果上述一組11個0TP1 中沒有與第一動態(tài)口令相同的,則認(rèn)為第一動態(tài)口令不正確。 步驟204,服務(wù)端生成第二驗證動態(tài)口令0TP2,并將0TP2拆分為第一口令和第二 口令; 在本實施例中,由于步驟203中對動態(tài)因子進(jìn)行了修正,因此本步驟中服務(wù)端生
成的第二驗證動態(tài)口令0TP2為一個動態(tài)口令,即該口令與0TP1不同。 服務(wù)端將0TP2拆分為第一口令和第二口令具體包括 服務(wù)端將0TP2中約定的部分作為第一口令,剩余的部分作為第二口令; 在本實施例中,優(yōu)選地,0TP2為八位的數(shù)字,將前三位取出作為第一口令,后五位
作為第二口令; 步驟205,服務(wù)端將第一口令返回給客戶端,客戶端輸出第一口令; 當(dāng)客戶端接收到第一口令后,利用動態(tài)口令令牌生成第二動態(tài)口令,用戶將該第
二動態(tài)口令劃分為第一驗證口令和第二驗證口令,本實施例的劃分規(guī)則與步驟204中服務(wù)
端的拆分規(guī)則相同,該規(guī)則為服務(wù)端預(yù)先與用戶協(xié)商確定的,因此,本實施例的用戶將第二
動態(tài)口令中的前三位作為第一驗證口令,剩余的后五位作為第二驗證口令; 用戶將第一口令與第一驗證口令進(jìn)行比對,如果相同,則認(rèn)為比對成功,將第二驗
證口令發(fā)送給服務(wù)端,如果不相同,則認(rèn)為比對失敗,用戶可以認(rèn)為服務(wù)端不合法,停止登
陸操作; 步驟206,服務(wù)端判斷是否在預(yù)定的時間內(nèi)接收到第二驗證口令,如果是,執(zhí)行步 驟207,否則,執(zhí)行步驟209 ; 在本實施例中,預(yù)定的時間為服務(wù)端接收第二驗證口令的有效時間,服務(wù)端對在 有效時間內(nèi)接收的第二驗證口令進(jìn)行驗證,對沒有在約定的時間內(nèi)發(fā)送的第二驗證口令丟 棄,不進(jìn)行第二驗證口令的驗證,對時間進(jìn)行限制可以在一定程度上的防止黑客的攻擊。
步驟207,服務(wù)端對第二驗證口令進(jìn)行驗證,如果正確,執(zhí)行步驟208,如果不正 確,執(zhí)行步驟209 ; 在本實施例中,服務(wù)端對第二驗證口令驗證的方法為服務(wù)端使用第二口令與第 二驗證口令進(jìn)行比對,如果相同,則認(rèn)為比對成功,執(zhí)行步驟208,如果不相同,則比對失敗, 執(zhí)行步驟209 ; 在本實施例中,還可以加入對靜態(tài)密碼的驗證過程,防止動態(tài)口令令牌丟失或被
盜導(dǎo)致的非合法用戶登入,使得登陸過程更加安全,具體為服務(wù)端在預(yù)先約定的時間內(nèi)接
收到用戶發(fā)送的第二驗證口令和靜態(tài)密碼,服務(wù)端對靜態(tài)密碼和第二驗證口令分別進(jìn)行驗
證,如果全部正確,則執(zhí)行步驟208,否則,執(zhí)行步驟209。 步驟208,用戶身份合法,允許其登陸,可以開始進(jìn)行網(wǎng)上交易; 步驟209,返回錯誤報告; 在本實施例中,上述返回錯誤報告包括如下情況
在步驟203中服務(wù)端判斷第一動態(tài)口令不正確時,返回第一動態(tài)口令錯誤報告, 報告中指明動態(tài)口令令牌不合法或動態(tài)因子誤差過大的信息; 在步驟205中未在預(yù)先約定的時間內(nèi)接收到第二驗證口令時,返回接收第二驗證 口令超時的報告信息; 在步驟207中服務(wù)端判斷第二驗證口令不正確時,返回登陸失敗的報告信息。
在本實施例中,生成動態(tài)口令可以采用如下算法HMAC-SHA1、MD5、SHA-1或SHA-2 等,其中,服務(wù)端生成0TP1與動態(tài)口令令牌生成第一動態(tài)口令、服務(wù)端生成0TP2與動態(tài)口 令令牌生成第二動態(tài)口令的算法相同。 本實施例的服務(wù)端以計次的方式生成動態(tài)因子,并基于該動態(tài)因子生成動態(tài)口 令,通過將生成的動態(tài)口令拆分為兩個口令,將其中一個口令發(fā)送給用戶,用以用戶驗證其 是否合法,使用另一個口令再次驗證用戶是否合法,有效地防止了釣魚網(wǎng)站等惡意網(wǎng)站利 用截獲的用戶密碼進(jìn)行登陸,進(jìn)而增強了系統(tǒng)的安全性,保證了用戶的信息安全;同時,本 實施例通過對服務(wù)端的改進(jìn),使得普通的動態(tài)口令令牌仍適用,用戶通過該動態(tài)口令令牌 可以對服務(wù)端的合法性進(jìn)行驗證,防止用戶誤入釣魚網(wǎng)站而遭受損失,增加了動態(tài)口令的 安全性。 實施例3 本實施例提供了一種基于動態(tài)口令的認(rèn)證方法,本實施例以用戶通過動態(tài)口令的 認(rèn)證方式登陸網(wǎng)上銀行為例進(jìn)行說明,具體描述在用戶登陸的過程中動態(tài)口令服務(wù)端的認(rèn) 證流程,其中,在本實施例以生成動態(tài)口令時采用計時的方法為例進(jìn)行說明,參見圖3,該方 法包括 步驟301,服務(wù)端接收用戶輸入的用戶名、第一動態(tài)口令; 在本實施例中,在登陸認(rèn)證流程開始前,用戶所持動態(tài)口令令牌已經(jīng)與該用戶的 用戶名進(jìn)行了綁定,上述動態(tài)口令令牌具有唯一的編號,并且在服務(wù)端內(nèi)部存儲有唯一的 與編號對應(yīng)的種子,動態(tài)口令令牌可以根據(jù)內(nèi)置的動態(tài)口令算法生成動態(tài)口令,該動態(tài)口 令算法與服務(wù)端生成動態(tài)口令的算法相同; 在本實施例中,所使用的動態(tài)口令令牌帶有按鍵,當(dāng)用戶第一次按下按鍵生成的 動態(tài)口令為第一動態(tài)口令; 用戶通過客戶端輸入用戶名和第一動態(tài)口令,并由客戶端發(fā)送給服務(wù)端; 在生成動態(tài)口令時對動態(tài)因子的選擇可以采用基于時間或事件的方式,在本實施
例中,以采用基于時間的方式生成動態(tài)口令進(jìn)行說明。 步驟302,服務(wù)端根據(jù)接收的用戶名查找動態(tài)口令令牌的編號和種子,以及動態(tài)因 子,生成第一驗證動態(tài)口令0TP1 ; 其中,服務(wù)端生成0TP1與動態(tài)口令令牌生成第一動態(tài)口令算法相同,采用計時 的方式,并使用相同的算法生成動態(tài)口令,其中,動態(tài)口令的生成算法可以是HMAC-SHA1、 MD5、SHA-1或SHA-2等。 步驟303,服務(wù)端驗證第一動態(tài)口令是否正確,如果正確,執(zhí)行步驟304,如果不正 確,執(zhí)行步驟309 ; 其中,在步驟302中,服務(wù)端生成0TP1時,可以生成一個或一組動態(tài)口令作為 0TP1,即0TP1也可以為一組動態(tài)口令;
9
服務(wù)端驗證第一動態(tài)口令是否正確,具體的包括 當(dāng)0TP1為一個動態(tài)口令時,服務(wù)端將第一動態(tài)口令與0TP1進(jìn)行比對,如果相同, 則認(rèn)為第一動態(tài)口令正確,如果不相同,則認(rèn)為第一動態(tài)口令不正確; 當(dāng)0TP1為一組動態(tài)口令時,這組動態(tài)口令使用的動態(tài)因子(計時時間)為一個時 間窗(后面將描述具體實現(xiàn)辦法),服務(wù)端將該組動態(tài)口令分別與第一動態(tài)口令進(jìn)行比對, 當(dāng)0TP1中有一個動態(tài)口令與第一動態(tài)口令比對相同時,則認(rèn)為比對成功,第一動態(tài)口令正 確,如果0TP1中任一個動態(tài)口令都與第一動態(tài)口令不相同,則認(rèn)為驗證失敗,第一動態(tài)口 令不正確; 在服務(wù)端驗證第一動態(tài)口令是否正確前,還可以包括 服務(wù)端判斷第一動態(tài)口令是否使用過,如果沒有使用過,驗證第一動態(tài)口令是否 正確,如果使用過,向用戶返回錯誤報告; 當(dāng)服務(wù)端驗證第一動態(tài)口令為正確后,還可以包括 對服務(wù)端保存的動態(tài)因子進(jìn)行修正(即更新動態(tài)因子)。下面以本實施例采用計 時的方式生成動態(tài)口令為例,說明修改動態(tài)因子的過程 使用計時的方法生成動態(tài)口令,即在生成動態(tài)口令時將設(shè)備(動態(tài)口令令牌或服 務(wù)端)生成動態(tài)口令的時間作為動態(tài)因子,本例子中以一分鐘為一個計時單位作為動態(tài)因 子生成動態(tài)口令為例進(jìn)行說明,一般情況下,動態(tài)口令令牌在初始化時設(shè)定一個初始時間, 例如為2000年1月1日00時00分,當(dāng)我們在2000年1月1日01時00分生成動態(tài)口令 時,動態(tài)口令令牌或服務(wù)端使用2000年1月1日01時00分與初始時間2000年1月1日 00時00分相減得到60分,使用60作為動態(tài)因子生成動態(tài)口令,但是由于動態(tài)口令令牌和 服務(wù)端是單獨計時的,經(jīng)常會發(fā)生計時不同步的情況,因此需要對時間因子進(jìn)行修正,上述
修正方法如下 設(shè)定令牌與服務(wù)端設(shè)定的初始時間為2000年1月1日00時00分,在動態(tài)口令令 牌計時時間為2000年1月1日01時00分生成動態(tài)口令,此時動態(tài)口令令牌使用的動態(tài)因 子為60,而服務(wù)端生成0TP1時,由于計時和數(shù)據(jù)傳輸?shù)恼`差,此時服務(wù)端基準(zhǔn)時間為2000 年l月1日01時02分,即動態(tài)因子應(yīng)為62,在服務(wù)端生成動態(tài)口令時對其設(shè)定一個時間 的浮動范圍,例如±2分,這個浮動范圍在本實施例中稱為時間窗,使用62±3生成一組最 多7個0TP1,即服務(wù)端使用的動態(tài)因子分別為59、60、61、62、63、64、65,使用這些動態(tài)因子 逐一的生成0TP1并與第一動態(tài)口令進(jìn)行比對,當(dāng)?shù)谝粋€動態(tài)因子59生成的0TP1比對不成 功時,使用下一個動態(tài)因子60繼續(xù)生成0TP1并與第一動態(tài)口令進(jìn)行比對,本實施例中,當(dāng) 動態(tài)因子為60時,第一動態(tài)口令驗證正確,這時得到正確的動態(tài)因子,則將動態(tài)因子更新 為60,并可以計算出服務(wù)端與動態(tài)口令令牌之間的計時偏移為-2分,在下次對動態(tài)口令計 算時,獲取服務(wù)端的系統(tǒng)時間后,需要加上這個偏移值,以得到與動態(tài)口令令牌同步的時間 作為基準(zhǔn)時間,其中,基準(zhǔn)時間為服務(wù)端系統(tǒng)時間與計時偏移之和,也可成為與動態(tài)口令令 牌同步后的計時時間。 需要說明的是,在利用計時的方式生成動態(tài)口令時,可以以每一分鐘作為一個動 態(tài)因子進(jìn)行動態(tài)口令的計算,也可以為每30秒或每一秒鐘為一個單位進(jìn)行動態(tài)口令的計 算,上述實施例以每一分鐘為一個單位進(jìn)行動態(tài)口令的計算為例進(jìn)行說明,具體應(yīng)用中對 動態(tài)因子時間單位的規(guī)定可以根據(jù)安全性及計算精度進(jìn)行確定。
10
步驟304,服務(wù)端生成第二驗證動態(tài)口令0TP2,并將0TP2拆分為第一口令和第二 口令; 在本實施例中,由于步驟303中對動態(tài)因子進(jìn)行了修正,因此本步驟中服務(wù)端生
成的第二驗證動態(tài)口令0TP2為一個動態(tài)口令。 服務(wù)端將0TP2拆分為第一口令和第二口令具體的包括 服務(wù)端將0TP2中約定的部分作為第一口令,剩余的部分作為第二口令; 在本實施例中,優(yōu)選地,OTP為八位的數(shù)字,將前三位取出作為第一口令,后五位作
為第二口令; 在服務(wù)端生成0TP2時,還需要注意的是,0TP2與0TP1不能相同,避免由于與0TP2 生成時由于時間過近而相同而造成的安全漏洞,如發(fā)生上述時間過近的情況,則可以將時 間因子增加一個步長生成0TP2,避免發(fā)生與0TP1相同的情況。 其中,為了防止下一步服務(wù)端返回第一口令給客戶端時因網(wǎng)絡(luò)延遲造成認(rèn)證失 敗,服務(wù)端生成動態(tài)口令0TP2還包括一種實現(xiàn)方法,服務(wù)端生成的動態(tài)口令0TP2為一組動 態(tài)口令,例如,在步驟303中,校正動態(tài)因子后,確定時間偏移為-2分,則確定生成0TP2的 時間為同步后的服務(wù)端時間再加上一個步長,即為2000年1月1日01時00加上1分鐘, 計算動態(tài)因子應(yīng)為61,為了能夠生成一組動態(tài)口令,增加一個向后偏移的時間窗為+5,則 利用61、62、63、64、65、66,生成一組共6個動態(tài)口令0TP2 ; 如上述方法生成一組共6個0TP2,還需將上述一組6個動態(tài)口令0TP2中的每一 個0TP2拆分為一個第一 口令和一個第二 口令,共可以得到6組第一 口令和第二 口令,拆分 方法與上述拆分方法相同,這里不再贅述; 步驟305 ,服務(wù)端將第一 口令返回給客戶端,客戶端輸出第一 口令; 客戶端接收到0TP2后,利用動態(tài)口令令牌生成第二動態(tài)口令,用戶將該第二動態(tài)
口令劃分為第一驗證口令和第二驗證口令,本實施例的劃分規(guī)則與步驟304中服務(wù)端的拆
分規(guī)則相同,該規(guī)則為服務(wù)端預(yù)先與用戶協(xié)商確定的,因此,本實施例的用戶將第二動態(tài)口
令中的前三位作為第一驗證口令,剩余的后五位作為第二驗證口令; 用戶將第一口令與第一驗證口令進(jìn)行比對,如果相同,則認(rèn)為比對成功,將第二驗 證口令發(fā)送給服務(wù)端,如果不相同,則認(rèn)為比對失敗,用戶可以認(rèn)為服務(wù)端不合法,停止登 陸操作; 其中,還需要說明的是,當(dāng)使用計時的方法生成動態(tài)口令時(使用時間因子作為 動態(tài)因子),用戶接收到服務(wù)端發(fā)送的第一口令時,需在規(guī)定的時間內(nèi)利用動態(tài)口令令牌生 成第二動態(tài)口令,原因如下 動態(tài)口令令牌和服務(wù)端都是采用單獨計時的方式,在認(rèn)證的過程中,服務(wù)端生成 0TP2先于動態(tài)口令令牌生成第二動態(tài)口令,因此服務(wù)端生成0TP2和動態(tài)口令令牌生成第 二動態(tài)口令的時間因子不一樣,致使動態(tài)口令不一樣,因此需使用改進(jìn)辦法在第一動態(tài)口 令比對成功后,對時間進(jìn)行修正以達(dá)到動態(tài)口令令牌和服務(wù)端時間同步,將此時間作為基 準(zhǔn)時間,并設(shè)定一個時間段,例如一分鐘,將基準(zhǔn)時間并延長一分鐘的時間內(nèi)作為時間因子 生成動態(tài)口令0TP2,動態(tài)口令0TP2為一個動態(tài)口令,即在這一分鐘內(nèi)生成的動態(tài)口令是相 同的。服務(wù)端生成0TP2后將其拆分為第一口令和第二口令,并將第一口令返回給用戶,用 戶此時應(yīng)該在規(guī)定的時間內(nèi)利用動態(tài)口令令牌生成第二動態(tài)口令,上述規(guī)定的時間小于一分鐘,則動態(tài)口令令牌生成的第二動態(tài)口令與0TP2應(yīng)相同。 另外,本步驟還可以采取如下的方式服務(wù)端每隔固定的時間生成一個0TP2,并 將0TP2拆分后的第一口令返回給用戶,本實施例以固定的時間為一分鐘為例進(jìn)行說明,例 如 在服務(wù)端接收到第一動態(tài)口令并驗證為正確時,設(shè)定時間為第O分鐘,此時生成 0TP2,優(yōu)選地,為了避免服務(wù)端生成的第一個0TP2由于與用戶使用動態(tài)口令令牌生成第一 動態(tài)口令時間過于接近而相同,服務(wù)端生成第一個0TP2時,使用當(dāng)時時間的下一分鐘作為 動態(tài)因子生成第一個0TP2,并在此后的每一分鐘內(nèi)生成一個0TP2,將0TP2拆分后得到的第 一口令返回給用戶,防止用戶接收或驗證第一口令的延遲,其中,服務(wù)端和動態(tài)口令令牌每 一分鐘時間段內(nèi)生成的動態(tài)口令相同,可以采用一分鐘內(nèi)的中間那一秒作為動態(tài)因子,或 設(shè)定一分鐘內(nèi)其中某一秒作為動態(tài)因子。在返回第一口令時,需要對服務(wù)端返回第一口令 的次數(shù)進(jìn)行限制,即設(shè)定一個返回最大次數(shù),例如當(dāng)返回io次用戶未進(jìn)行操作時,通知用 戶超時未響應(yīng),驗證失?。?其中,上述固定的時間可以為大于O的時間,并應(yīng)該在安全范圍內(nèi); 當(dāng)步驟304中服務(wù)端生成一組多個動態(tài)口令0TP2時,服務(wù)端將拆分得到的多個第
一口令發(fā)送給客戶端,此時,用戶將令牌顯示的第一驗證口令與上述多個第一口令進(jìn)行比
對,如果有一個比對成功,即通過客戶端向服務(wù)端返回第二驗證口令。 步驟306,服務(wù)端是否在約定的時間內(nèi)接收到第二驗證口令,如果是,執(zhí)行步驟 307,否則,執(zhí)行步驟309 ; 在本實施例中,約定的時間為服務(wù)端接收第二驗證口令的有效時間,服務(wù)端對在 有效時間內(nèi)接收的第二驗證口令進(jìn)行驗證,對沒有在約定的時間內(nèi)發(fā)送的第二驗證口令丟 棄,不進(jìn)行第二驗證口令的驗證,對時間進(jìn)行限制可以在一定程度上防止黑客的攻擊。
步驟307,服務(wù)端對第二驗證口令進(jìn)行驗證,如果正確,執(zhí)行步驟308,如果不正 確,執(zhí)行步驟309 ; 在本實施例中,服務(wù)端對第二驗證口令驗證的方法為服務(wù)端使用第二口令與第 二驗證口令進(jìn)行比對,如果相同,則認(rèn)為比對成功,執(zhí)行步驟308,如果不相同,則比對失敗, 執(zhí)行步驟309 ; 當(dāng)服務(wù)端生成一組多個第二驗證動態(tài)口令并拆分得到多個第二口令時,服務(wù)端對 第二驗證口令進(jìn)行驗證具體的為服務(wù)端使用多個第二口令與第二驗證口令進(jìn)行比對,如 果所述第二 口令中有一個與第二驗證口令相同即認(rèn)為驗證成功; 在本實施例中,還可以加入對靜態(tài)密碼的驗證過程,防止動態(tài)口令令牌丟失或被
盜導(dǎo)致的非合法用戶登入,使得登陸過程更加安全,具體為服務(wù)端在預(yù)先約定的時間內(nèi)接
收到用戶發(fā)送的第二驗證口令和靜態(tài)密碼,服務(wù)端對靜態(tài)密碼和第二驗證口令分別進(jìn)行驗
證,如果全部正確,則執(zhí)行步驟308,否則,執(zhí)行步驟309。 步驟308,用戶身份合法,允許其登陸成功,可以開始進(jìn)行網(wǎng)上交易; 步驟309,返回錯誤報告; 在本實施例中,上述返回錯誤報告的情況與實施例2相同,這里不再詳述。在本實施例,生成動態(tài)口令可以采用如下算法HMAC-SHA1、 MD5、 SHA-1或SHA-2
等,其中,服務(wù)端生成0TP1與口令令牌生成第一動態(tài)口令、服務(wù)端生成0TP2與口令令牌生成第二動態(tài)口令的算法相同。 本實施例的服務(wù)端以計時的方式生成動態(tài)因子,基于該動態(tài)因子生成動態(tài)口令, 通過將生成的動態(tài)口令拆分為兩個口令,將其中一個口令發(fā)送給用戶,用以用戶驗證其是 否合法,使用另一個口令再次驗證用戶是否合法,有效地防止了釣魚網(wǎng)站等惡意網(wǎng)站利用 截獲的用戶密碼進(jìn)行登陸,進(jìn)而增強了系統(tǒng)的安全性,保證了用戶的信息安全;同時,本實 施例通過對服務(wù)端的改進(jìn),使得普通的動態(tài)口令令牌仍適用,用戶通過該動態(tài)口令令牌可 以對服務(wù)端的合法性進(jìn)行驗證,防止用戶誤入釣魚網(wǎng)站而遭受損失,增加了動態(tài)口令的安 全性。 實施例4 本實施例提供了一種基于動態(tài)口令的認(rèn)證裝置,參見圖4,該裝置包括 第一生成模塊401,用于接收用戶發(fā)送的用戶名和第一動態(tài)口令,并根據(jù)用戶名查
找對應(yīng)的種子和動態(tài)因子,根據(jù)上述種子和動態(tài)因子生成第一驗證動態(tài)口令; 第一驗證模塊402,用于使用第一生成模塊401生成的第一驗證動態(tài)口令驗證第
一動態(tài)口令; 第二生成模塊403,用于第一驗證模塊402驗證第一動態(tài)口令通過后,生成第二驗 證動態(tài)口令; 拆分與發(fā)送模塊404,用于按照預(yù)設(shè)規(guī)則將第二生成模塊403生成的第二驗證動 態(tài)口令拆分為第一口令和第二口令,將第一口令返回給該用戶; 第二驗證模塊405,用于在預(yù)定的時間內(nèi)接收到用戶返回的第二驗證口令后,使用 拆分與發(fā)送模塊404拆分的第二 口令對第二驗證口令進(jìn)行驗證,驗證通過,確認(rèn)該用戶合 法。 優(yōu)選地,該裝置還包括 第三驗證模塊,用于接收用戶輸入的靜態(tài)密碼,驗證靜態(tài)密碼是否正確,如果正
確,觸發(fā)第二驗證模塊405對第二驗證口令進(jìn)行驗證;否則,拒絕用戶登陸。 其中,本實施例中的認(rèn)證裝置通過客戶端與用戶進(jìn)行交互,該認(rèn)證裝置可以具體
為實施例1、2或3中的服務(wù)端,該認(rèn)證裝置上預(yù)先存儲有用戶名,以及與該用戶名對應(yīng)的動
態(tài)口令令牌的編號、種子和動態(tài)因子,同時還存儲有生成動態(tài)口令的算法,以及將生成的動
態(tài)口令拆分為兩個口令的拆分規(guī)則等,這些信息均可以參考實施例2或3中對應(yīng)的信息實
現(xiàn),這里不再詳述。 第一生成模塊401生成的第一驗證動態(tài)口令可以是一個或一組動態(tài)口令;當(dāng)?shù)谝?生成模塊401生成的是一個動態(tài)口令時,第一驗證模塊402對第一動態(tài)口令進(jìn)行驗證具體 為第一驗證模塊402將第一動態(tài)口令與上述第一生成模塊401生成的動態(tài)口令進(jìn)行比對, 如果相同,則驗證成功,如果不相同,則驗證第一動態(tài)口令不正確; 當(dāng)?shù)谝簧赡K401生成的是一組動態(tài)口令時,第一驗證模塊402對第一動態(tài)口 令進(jìn)行驗證具體的為第一驗證模塊402將第一動態(tài)口令與上述第一生成模塊401生成的 一組動態(tài)口令逐個進(jìn)行比對,如果其中有一個動態(tài)口令與第一動態(tài)口令相同,則認(rèn)為比對 成功,驗證第一動態(tài)口令正確,否則,第一動態(tài)口令不正確; 第一驗證模塊402生成第一驗證動態(tài)口令前,還可以包括,第一驗證模塊402判斷 第一動態(tài)口令是否使用過,如果沒有使用過,驗證第一動態(tài)口令是否正確,如果使用過,向用戶返回錯誤報告; 第一驗證模塊402驗證第一動態(tài)口令正確后,還可以包括,對動態(tài)因子進(jìn)行修正,具體修改方法與實施例2或3中的方法相同,這里不再詳述; 第一生成模塊401生成第一驗證動態(tài)口令和第二生成模塊403生成第二驗證動態(tài)口令的算法可以是HMAC-SHA1、MD5、 SHA-1或SHA-2等; 第二生成模塊403,還可以包括當(dāng)?shù)谝或炞C模塊402驗證第一動態(tài)口令通過后,生成一組多個第二驗證動態(tài)口令; 當(dāng)?shù)诙赡K403生成一組多個第二驗證動態(tài)口令時,拆分與發(fā)送模塊404將
第二驗證動態(tài)口令按預(yù)設(shè)的規(guī)則拆分為第一口令和第二口令具體為拆分與發(fā)送模塊404
將一組多個第二驗證動態(tài)口令按預(yù)設(shè)的規(guī)則拆分為多個第一口令和第二口令; 當(dāng)?shù)诙赡K403生成一組多個第二驗證動態(tài)口令時,第二驗證模塊405對第
二驗證口令進(jìn)行驗證時具體為第二驗證模塊405使用多個第二口令與第二驗證口令進(jìn)行
比對,當(dāng)其中有一個第二口令與第二驗證口令相同時,即認(rèn)為驗證成功。。 本實施例的認(rèn)證裝置通過將生成的動態(tài)口令拆分為兩個口令,將其中 一個口令發(fā)
送給用戶,用以用戶驗證其是否合法,使用另一個口令再次驗證用戶是否合法,有效地防止
了釣魚網(wǎng)站等惡意網(wǎng)站利用截獲的用戶密碼進(jìn)行登陸,進(jìn)而增強了系統(tǒng)的安全性,保證了
用戶的信息安全。 從以上的描述中,可以看出,本發(fā)明上述的實施例實現(xiàn)了如下技術(shù)效果 通過將動態(tài)口令拆分為兩個口令,服務(wù)端和用戶可以進(jìn)行更有保障的雙向認(rèn)證,
認(rèn)證更可靠性,有效地防止了惡意網(wǎng)站的攻擊,以及防止了非法用戶通過截獲的用戶信息
登陸服務(wù)端。 顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。 以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
一種基于動態(tài)口令的認(rèn)證方法,其特征在于,所述方法包括服務(wù)端接收用戶發(fā)送的用戶名和第一動態(tài)口令;所述服務(wù)端根據(jù)所述用戶名查找對應(yīng)的種子和動態(tài)因子,根據(jù)所述種子和動態(tài)因子生成第一驗證動態(tài)口令;所述服務(wù)端使用所述第一驗證動態(tài)口令驗證所述第一動態(tài)口令,驗證通過后,生成第二驗證動態(tài)口令;所述服務(wù)端按照預(yù)設(shè)規(guī)則將所述第二驗證動態(tài)口令拆分為第一口令和第二口令,將所述第一口令返回給所述用戶;所述服務(wù)端若在預(yù)定的時間內(nèi)接收到所述用戶返回的第二驗證口令,則使用所述第二口令對所述第二驗證口令進(jìn)行驗證,驗證通過,確認(rèn)所述用戶合法。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括所述服務(wù)端將所述第一口令發(fā)送給客戶端,所述客戶端輸出所述第一口令供用戶進(jìn)行 確認(rèn),所述客戶端在所述用戶對所述第一口令比對正確后接收所述用戶發(fā)送的所述第二驗 證口令,并轉(zhuǎn)發(fā)給所述服務(wù)端。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述動態(tài)因子為基于時間或事件的動態(tài) 因子。
4. 根據(jù)權(quán)利要求l所述的方法,其特征在于, 所述第一驗證動態(tài)口令為一個動態(tài)口令;相應(yīng)地,所述使用所述第一驗證動態(tài)口令驗證所述第一動態(tài)口令的步驟包括 使用所述第一驗證動態(tài)口令與所述第一動態(tài)口令進(jìn)行比對,如果相同,則所述第一動 態(tài)口令驗證通過;否則,所述第一動態(tài)口令驗證失敗,拒絕所述用戶登錄。
5. 根據(jù)權(quán)利要求l所述的方法,其特征在于, 所述第一驗證動態(tài)口令為一組動態(tài)口令;相應(yīng)地,所述使用所述第一驗證動態(tài)口令驗證所述第一動態(tài)口令的步驟包括 使用所述第一驗證動態(tài)口令與所述第一動態(tài)口令進(jìn)行比對,當(dāng)所述第一驗證動態(tài)口令 中有一個動態(tài)口令與所述第一動態(tài)口令相同時,則所述第一動態(tài)口令驗證通過;如果所述 第一驗證動態(tài)口令中的動態(tài)口令沒有與所述第一動態(tài)口令相同的,則所述第一動態(tài)口令驗 證失敗,拒絕所述用戶登錄。
6. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述服務(wù)端接收用戶發(fā)送的用戶名和第 一動態(tài)口令的步驟之后還包括所述服務(wù)端判斷所述第一動態(tài)口令是否使用過,如果是,向所述用戶返回錯誤報告,如 果不是,執(zhí)行所述根據(jù)所述用戶名查找對應(yīng)的動態(tài)因子的步驟。
7. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述生成第二驗證動態(tài)口令的步驟包括 更新所述動態(tài)因子,根據(jù)所述種子和更新后的動態(tài)因子生成第二驗證動態(tài)口令。
8. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照預(yù)設(shè)規(guī)則將所述第二驗證動態(tài) 口令拆分為第一口令和第二口令具體為 >從所述第二驗證動態(tài)口令中提取約定的部分作為第一口令,剩余的部分作為第二口令。
9. 根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)所述動態(tài)因子為基于時間的動態(tài)因子時,所述服務(wù)端生成第二驗證動態(tài)口令具體為所述服務(wù)端生成一個或一組多個第二驗證動態(tài)口令。
10. 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述服務(wù)端按照預(yù)設(shè)規(guī)則將所述第二驗 證動態(tài)口令拆分為第一口令和第二口令,具體為所述服務(wù)端按照預(yù)設(shè)規(guī)則將所述一組多個第二驗證動態(tài)口令拆分為多個第一口令和 第二口令。
11. 根據(jù)權(quán)利要求io所述的方法,其特征在于,所述服務(wù)端使用所述第二口令對所述第二驗證口令進(jìn)行驗證,具體為所述服務(wù)端使用所述多個第二 口令對所述第二驗證口令進(jìn)行驗證,如果所述多個第二 口令中有一個與所述第二驗證口令相同就認(rèn)為驗證成功。
12. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述服務(wù)端使用所述第二口令對所述第 二驗證口令進(jìn)行驗證前,所述方法還包括所述服務(wù)端接收所述用戶輸入的靜態(tài)密碼;驗證所述靜態(tài)密碼是否正確,如果正確,執(zhí)行所述使用所述第二口令對所述第二驗證 口令進(jìn)行驗證的步驟;否則,拒絕所述用戶登陸。
13. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述服務(wù)端生成第一驗證動態(tài)口令或第 二驗證動態(tài)口令的算法為HMAC-SHA1、MD5、 SHA-1或SHA-2。
14. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括將在所述預(yù)定的時間 后接收到的第二驗證口令丟棄。
15. —種基于動態(tài)口令的認(rèn)證裝置,其特征在于,所述裝置包括第一生成模塊,用于接收用戶發(fā)送的用戶名和第一動態(tài)口令,并根據(jù)所述用戶名查找 對應(yīng)的種子和動態(tài)因子,根據(jù)所述種子和動態(tài)因子生成第一驗證動態(tài)口令;第一驗證模塊,用于使用所述第一生成模塊生成的第一驗證動態(tài)口令驗證所述第一動 態(tài)口令;第二生成模塊,用于所述第一驗證模塊驗證所述第一動態(tài)口令通過后,生成第二驗證 動態(tài)口令;拆分與發(fā)送模塊,用于按照預(yù)設(shè)規(guī)則將所述第二生成模塊生成的第二驗證動態(tài)口令拆 分為第一口令和第二口令,將所述第一口令返回給所述用戶;第二驗證模塊,用于在預(yù)定的時間內(nèi)接收到所述用戶返回的第二驗證口令后,使用所 述拆分與發(fā)送模塊拆分的第二口令對所述第二驗證口令進(jìn)行驗證,驗證通過,確認(rèn)所述用 戶合法。
16. 根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述裝置還包括第三驗證模塊,用于接收所述用戶輸入的靜態(tài)密碼,驗證所述靜態(tài)密碼是否正確,如果 正確,觸發(fā)所述第二驗證模塊對所述第二驗證口令進(jìn)行驗證;否則,拒絕所述用戶登陸。
全文摘要
本發(fā)明提供了一種基于動態(tài)口令的認(rèn)證方法和裝置,屬于信息安全技術(shù)領(lǐng)域。所述認(rèn)證方法包括服務(wù)端接收用戶發(fā)送的用戶名和第一動態(tài)口令,生成第一驗證動態(tài)口令后驗證所述第一動態(tài)口令,驗證通過后,生成第二驗證動態(tài)口令;將第二驗證動態(tài)口令拆分為第一口令和第二口令,將第一口令返回給用戶;使用第二口令對用戶返回的第二驗證口令進(jìn)行驗證,驗證通過,確認(rèn)用戶合法。本發(fā)明有效地防止了惡意網(wǎng)站的攻擊和非法用戶的操作,進(jìn)而提高了用戶信息和財產(chǎn)的安全性。
文檔編號H04L9/32GK101741567SQ200910244640
公開日2010年6月16日 申請日期2009年12月31日 優(yōu)先權(quán)日2009年12月31日
發(fā)明者于華章, 陸舟 申請人:北京飛天誠信科技有限公司