專(zhuān)利名稱(chēng):一種基于時(shí)間和事件的一次性口令生成和驗(yàn)證方法
一種基于時(shí)間和事件的一次性口令生成和驗(yàn)證方法(-)技術(shù)領(lǐng)域
本發(fā)明屬于身份認(rèn)證領(lǐng)域,特別涉及基于時(shí)間和事件的一次性口令生成和驗(yàn)證方法。背景技術(shù):
在傳統(tǒng)的口令認(rèn)證機(jī)制中,用戶(hù)的口令多數(shù)以明文形式在網(wǎng)上傳輸并且固定不 變。這使得攻擊者可以通過(guò)竊聽(tīng)得到這些可重用的口令達(dá)到入侵系統(tǒng)的目的。一次性口令 系統(tǒng)允許用戶(hù)每次登錄時(shí)使用不同的口令,很好地防止了口令重用攻擊,增強(qiáng)了系統(tǒng)的安 全性。
一次性口令認(rèn)證(OTP)系統(tǒng)是為了防止黑客通過(guò)一次成功的口令竊取而永久地 獲得系統(tǒng)訪問(wèn)權(quán)而設(shè)計(jì)的一種認(rèn)證技術(shù).它規(guī)定用戶(hù)每次登錄時(shí)使不同的口令,限制了同 一口令的生存周期。
OTP的主要思路是在登錄過(guò)程中加入不確定因素,使每次登錄過(guò)程中傳送的信 息都不相同,以提高登錄過(guò)程安全性。不確定因子選擇與口令生成這些不確定因子選擇方 式大致有以下幾種
基于時(shí)間的方法以用戶(hù)登錄時(shí)間作為隨機(jī)因素。這種方式對(duì)雙方的時(shí)間準(zhǔn)確度要 求較高,一般采取以分鐘為時(shí)間單位的折中辦法。一般產(chǎn)品對(duì)時(shí)間誤差的容忍可達(dá)士1分 鐘。這種方法的主要缺陷是在窗口期內(nèi),一個(gè)OTP可反復(fù)使用。如果系統(tǒng)容忍士 1分鐘,則 在三分鐘內(nèi),非法用戶(hù)可通過(guò)截獲的OTP登錄。
基于事件的方法以計(jì)數(shù)器值為隨機(jī)因素,生成單向的前后相關(guān)序列作為系統(tǒng)的挑 戰(zhàn)信息,以節(jié)省用戶(hù)每次輸入挑戰(zhàn)信息的麻煩。但當(dāng)用戶(hù)的挑戰(zhàn)序列與服務(wù)器產(chǎn)生偏差后, 需要重新同步。這種方法的主要缺陷是無(wú)法防止非法用戶(hù)記錄令牌生成的一組OTP后,在 任意時(shí)間都可以登錄系統(tǒng)。
本發(fā)明涉及SHA-I摘要算法,Radius協(xié)議。
摘要算法是把任意長(zhǎng)度的輸入(又叫做預(yù)映射,pre-image),通過(guò)散列算法,變 換成固定長(zhǎng)度的輸出,該輸出就是散列值。這種轉(zhuǎn)換是一種壓縮映射,也就是,散列值的空 間通常遠(yuǎn)小于輸入的空間,不同的輸入可能會(huì)散列成相同的輸出,而不可能從散列值來(lái)唯 一的確定輸入值。摘要算法主要用于信息安全領(lǐng)域中加密算法,它把一些不同長(zhǎng)度的信息 轉(zhuǎn)化成雜亂的固定長(zhǎng)度的編碼,這些編碼值叫做摘要值.也可以說(shuō),摘要算法就是找到一 種數(shù)據(jù)內(nèi)容和數(shù)據(jù)存放地址之間的映射關(guān)系。SHA-I就是一種將任意長(zhǎng)度的消息壓縮到 ieobit的消息摘要的函數(shù)。
RADIUS Remote Authentication Dial In User Service,遠(yuǎn)程用戶(hù)撥號(hào)認(rèn)證系 統(tǒng)由RFC2865,RFC2866定義,是目前應(yīng)用最廣泛的AAA協(xié)議。RADIUS是一種C/S結(jié)構(gòu)的協(xié) 議,它的客戶(hù)端最初就是NAS (Net Access Server)服務(wù)器,現(xiàn)在任何運(yùn)行RADIUS客戶(hù)端軟 件的計(jì)算機(jī)都可以成為RADIUS的客戶(hù)端。RADIUS協(xié)議認(rèn)證機(jī)制靈活,可以采用PAP、CHAP 或者Unix登錄認(rèn)證等多種方式。RADIUS是一種可擴(kuò)展的協(xié)議,它進(jìn)行的全部工作都是基于4Attribute-Length-Value的向量進(jìn)行的。RADIUS也支持廠商擴(kuò)充廠家專(zhuān)有屬性。
發(fā)明內(nèi)容
(1)發(fā)明目的
本發(fā)明涉及一種生成和驗(yàn)證一次性口令的新方法。一次性口令主要用于安全登 錄,本發(fā)明涉及的生成方法可在一個(gè)口令中加入時(shí)間和事件兩個(gè)隨機(jī)因素,提高一次性口 令的安全性,并降低服務(wù)器驗(yàn)證一次性口令時(shí)的運(yùn)算開(kāi)銷(xiāo)。
(2)技術(shù)方案
為了達(dá)到上述目的,本發(fā)明的技術(shù)方案如下
用戶(hù)通過(guò)令牌生成一次性口令,將生成的口令輸入認(rèn)證客戶(hù)端,客戶(hù)端將一次性 口令發(fā)送至認(rèn)證服務(wù)器,服務(wù)器驗(yàn)證收到的口令,回傳驗(yàn)證結(jié)果至認(rèn)證客戶(hù)端。用戶(hù)、令 牌、認(rèn)證客戶(hù)端、認(rèn)證服務(wù)器各部分之間的相互關(guān)系如附圖1所示。本發(fā)明所述的一種基于 時(shí)間和事件的一次性口令生成和驗(yàn)證方法,依次按下述三個(gè)階段進(jìn)行,其詳細(xì)步驟詳述如 下
1.初始化階段
系統(tǒng)管理員為用戶(hù)生成共享密鑰Key。管理員先將用戶(hù)ID、共享密鑰(key)、計(jì)數(shù) 器(Counter)初始值寫(xiě)入認(rèn)證服務(wù)器的數(shù)據(jù)庫(kù)中,然后將共享密鑰和計(jì)數(shù)器初始值寫(xiě)入令 牌中并將令牌分發(fā)給對(duì)應(yīng)的用戶(hù)。為了提高系統(tǒng)的可用性,服務(wù)器將計(jì)數(shù)器的窗口設(shè)為為 n,即服務(wù)器認(rèn)為從數(shù)據(jù)庫(kù)記錄的Counter到Counter+(n-1)都是合法的計(jì)數(shù)器值。對(duì)時(shí)間 的窗口設(shè)為m,即服務(wù)器認(rèn)為在服務(wù)器本地時(shí)間time前后m分鐘內(nèi)的時(shí)間值都是合法的。
2. —次性口令生成階段
步驟1 令牌根據(jù)共享密鑰Key和當(dāng)前計(jì)數(shù)器值Counter,并計(jì)算出Digest1 = h(Key Counter), h()為一摘要函數(shù),| |為串接運(yùn)算,即將Key和Counter的二進(jìn)制值收尾 相接,Digest1為步驟1計(jì)算出的摘要值。計(jì)算器Counter值加1。
步驟2 將Digest1截短,作為OTP的后兩位,記為0TP[4_5]。
步驟3 令牌從板載的時(shí)間芯片中獲得當(dāng)前時(shí)間,以分鐘為單位取整,記為T(mén)ime, 讓后計(jì)算 Digest2 = h (Digest11 | Time)。
步驟4 將Digest2截短,作為OTP的前四位,記為OTP
0
步驟5 令牌將步驟4生成的OTP
和步驟2生成的0TP[4_5]拼接,構(gòu)成完整 的六位OTP。認(rèn)證客戶(hù)端用戶(hù)輸入的將用戶(hù)名和OTP安全的發(fā)送至服務(wù)器接受驗(yàn)證,并等待 認(rèn)證結(jié)果。
3. —次性口令驗(yàn)證階段
步驟6 服務(wù)器收到客戶(hù)端傳來(lái)的用戶(hù)名和OTP后,根據(jù)用戶(hù)名檢索認(rèn)證數(shù)據(jù)庫(kù)得 到此用戶(hù)計(jì)數(shù)器的值Counter。。
步驟7 服務(wù)器認(rèn)根據(jù)計(jì)數(shù)器窗口值計(jì)算C0Imterci到Coimtei^ = Counter。+(n-1),分別計(jì)算對(duì)應(yīng)的摘要值η個(gè)摘要值=Digestli = h (Key | Counteri),其中 i e
,Counteri = CounterQ+i,摘要算法與步驟1中的摘要算法相同。
步驟8 服務(wù)器將η個(gè)Digestli逐個(gè)截短,截短算法與步驟2的截短算法相同,得 到 OTP[4-5] i,其中 j e
O5
步驟9 服務(wù)器將η個(gè)OTP [4-5] i與收到的OTP的后兩位比較,如果存在I e
,使0TPW-5L與收到OTP的后兩位相等,則將Coimtei^+l寫(xiě)入數(shù)據(jù)庫(kù)后進(jìn)入步驟10, 否則向客戶(hù)端返回認(rèn)證失敗。若有多個(gè)I滿(mǎn)足上述條件,則請(qǐng)求用戶(hù)再次輸入OTP值。從 步驟1重新開(kāi)始。
步驟10 設(shè)服務(wù)器時(shí)間為T(mén)imes,服務(wù)器逐個(gè)計(jì)算Digest11與時(shí)間窗口 Tin^-m, Times-m+l, ...,Times, Times+1, . . . Times+m,共計(jì) 2m+l 個(gè)時(shí)間值的摘要值 Digest^ = h (Digest11 I Timej),其中 j e [_m, m], Timej = Times+k0
步驟11 服務(wù)器將2m+l個(gè)Digest2j逐個(gè)截短,截短算法與步驟4的截短算法相同, 得到 OTP
i,其中 j e [-m, m]。
步驟12 服務(wù)器將2m+1個(gè)0TPW-3]」與收到的OTP的前四位比較,如果存在」 e [-m, m],使0TP
」與收到OTP的前四位相等,則像客戶(hù)端返回認(rèn)證成功,否則向客戶(hù) 端返回認(rèn)證失敗??蛻?hù)端根據(jù)返回的結(jié)果提示用戶(hù)。
(3)優(yōu)點(diǎn)及功效
本發(fā)明涉及一種生成和驗(yàn)證一次性口令的新方法。
本發(fā)明涉及的生成方法可在一個(gè)口令中整合時(shí)間和事件因素,既能防止非法用戶(hù) 抄錄下一組一次性口令在任意時(shí)間使用,又能防止在時(shí)間窗口期內(nèi)非法用戶(hù)使用同一口令 登錄,克服了單純基于時(shí)間或事件的方法的缺點(diǎn),提高一次性口令的安全性。
服務(wù)器為了提高系統(tǒng)的可用性,會(huì)對(duì)計(jì)數(shù)器和時(shí)間設(shè)置窗口,位于窗口內(nèi)的值均 是合法值,設(shè)計(jì)數(shù)器和時(shí)間的窗口長(zhǎng)度分別為M和N,總共有M*N個(gè)可能的OTP值,對(duì)應(yīng) 2*M*N次摘要計(jì)算,計(jì)算2*M*N次摘要會(huì)給服務(wù)器帶來(lái)巨大的運(yùn)算開(kāi)銷(xiāo)。
本發(fā)明涉及的驗(yàn)證方法只需M+N次摘要運(yùn)算,便可完成認(rèn)證,將運(yùn)算復(fù)雜度從 0(n2)降低到0(n),明顯降低了服務(wù)器運(yùn)算開(kāi)銷(xiāo),降低了認(rèn)證延遲,調(diào)高了服務(wù)器的吞吐量。
本發(fā)明申請(qǐng)書(shū)中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
圖1本發(fā)明所述整體結(jié)構(gòu)圖
圖2本發(fā)明所述初始化流程流程框圖
圖3本發(fā)明所述生成一次性口令的流程框圖
圖4本發(fā)明所述驗(yàn)證一次性口令的流程框圖
圖5本發(fā)明一次性口令生成和驗(yàn)證的流程框圖
圖中符號(hào)說(shuō)明如下
I I 串接運(yùn)算,即將I I運(yùn)算符的左右項(xiàng)首尾相接
Digestn 第η個(gè)摘要值
Countern 窗口期內(nèi)的第η個(gè)計(jì)數(shù)器值
Timen:窗口期內(nèi)的第η個(gè)時(shí)間值
OTP [n-m]_k 第k個(gè)一次性口令的第η到第m位
h ()雜湊運(yùn)算符,如h (a)指求a的摘要值。
具體實(shí)施方式
由于本發(fā)明主要是闡述方法實(shí)現(xiàn)的思想,具體實(shí)現(xiàn)可根據(jù)具體的實(shí)施環(huán)境(網(wǎng)絡(luò) 環(huán)境,硬件類(lèi)型等),采用最合適的實(shí)現(xiàn)方法,下面在介紹本發(fā)明的技術(shù)方案的具體實(shí)施方 式時(shí)會(huì)采用一些具體的方法(如具體的雜湊函數(shù),傳送協(xié)議等),但實(shí)際的實(shí)現(xiàn)并不限于所 述的方法。
本發(fā)明所述的一種一次性口令的生成、驗(yàn)證方法,如圖1所示包括五個(gè)部分用 戶(hù),令牌,認(rèn)證客戶(hù)端,認(rèn)證服務(wù)器,認(rèn)證數(shù)據(jù)庫(kù)。在向用戶(hù)分發(fā)令牌前先進(jìn)入初始化階段, 將初始信息寫(xiě)入令牌和認(rèn)證數(shù)據(jù)庫(kù)。之后用戶(hù)通過(guò)令牌按照本發(fā)明所述的生成方法計(jì)算一 次性口令,并將用戶(hù)名和一次性口令輸入認(rèn)證客戶(hù)端,客戶(hù)端通過(guò)Radius協(xié)議將用戶(hù)名和 一次性口令打包發(fā)送至認(rèn)證服務(wù)器,服務(wù)器根據(jù)用戶(hù)名查詢(xún)數(shù)據(jù)庫(kù),讀取用戶(hù)ID對(duì)應(yīng)的計(jì) 數(shù)器值,按照本發(fā)明所述的驗(yàn)證方法驗(yàn)證收到的口令,將驗(yàn)證結(jié)果按照radius協(xié)議打包驗(yàn) 證結(jié)果,回傳至認(rèn)證客戶(hù)端。下面將結(jié)合附圖直觀的說(shuō)明基于時(shí)間和事件的一次性口令的 生成和驗(yàn)證過(guò)程。
下面將結(jié)合附圖直觀的說(shuō)明如何生成并驗(yàn)證本發(fā)明所述的一次性口令,附圖2為初 始化流程;附圖3為令牌生成一次性口令的流程;附圖4為服務(wù)器驗(yàn)證一次性口令的流程。
本發(fā)明一種基于時(shí)間和事件的一次性口令生成和驗(yàn)證方法,流程框圖見(jiàn)圖5所 示,它依次按下述三個(gè)階段進(jìn)行,其具體實(shí)施過(guò)程如下。
1.初始化階段
系統(tǒng)管理員使用隨機(jī)數(shù)發(fā)生器生成共享密鑰Key。管理員先將用戶(hù)ID、共享密鑰 (key)、計(jì)數(shù)器(Counter)初始值寫(xiě)入認(rèn)證數(shù)據(jù)庫(kù)中,然后將共享密鑰和計(jì)數(shù)器初始值寫(xiě)入 令牌中并將令牌分發(fā)給對(duì)應(yīng)的用戶(hù)。為了提高系統(tǒng)的可用性,服務(wù)器將計(jì)數(shù)器的窗口設(shè)為 為5,即服務(wù)器認(rèn)為從數(shù)據(jù)庫(kù)記錄的Counter到Coimter+4,共5各值都是合法的計(jì)數(shù)器值。 對(duì)時(shí)間的窗口設(shè)為1,即服務(wù)器認(rèn)為在服務(wù)器本地時(shí)間time前后1分鐘內(nèi)的時(shí)間值都是合 法的。
2. —次性口令生成階段
步驟1 令牌根據(jù)共享密鑰Key和當(dāng)前計(jì)數(shù)器值Counter,并計(jì)算出Digest1 = h(Key Counter), h()選為SHA-1摘要函數(shù),| |為串接運(yùn)算,即將Key和Counter的二進(jìn)制 值收尾相接,Digest1為步驟1計(jì)算出的摘要值。計(jì)算器Counter值加1。
步驟2 將Digest1截短,作為OTP的后兩位。因步驟1的摘要算法為SHA-l,則 Digest1 為 160bit,取出第 0、20、40、60、80、100、120、140、160bit 供 8 個(gè)二進(jìn)制數(shù)拼接成一 個(gè)Sbit的二進(jìn)制數(shù),轉(zhuǎn)化為十六進(jìn)制后,正好為兩位,記為0TP[4-5]。
步驟3 令牌從板載的時(shí)間芯片中獲得當(dāng)前時(shí)間,以分鐘為單位取整,記為T(mén)ime, 讓后計(jì)算Digest2 = h (Digest11 | Time)。同樣選擇SHA-I作為摘要算法。
步驟4 將Digest2截短,作為OTP的前四位。因步驟3的摘要算法為SHA-l,則 Digest2 為 160bit,取出第 0、10、20、30、· · ·、140、150、160bit 供 16 個(gè)二進(jìn)制數(shù)拼接成一個(gè) 16bit的二進(jìn)制數(shù),轉(zhuǎn)化為十六進(jìn)制后,正好為四位,記為0TP
。
步驟5 將步驟4生成的OTP
和步驟2生成的0TP[4_5]拼接,構(gòu)成完整的六 位OTP。用戶(hù)將用戶(hù)名和OTP輸入認(rèn)證客戶(hù)端,客戶(hù)端通過(guò)radius協(xié)議將用戶(hù)名和OTP打 包發(fā)送至認(rèn)證服務(wù)器接受驗(yàn)證,并等待認(rèn)證結(jié)果。
3. —次性口令驗(yàn)證階段
步驟6 服務(wù)器收到客戶(hù)端傳來(lái)的用戶(hù)名和OTP后,根據(jù)用戶(hù)名檢索認(rèn)證數(shù)據(jù)庫(kù)得 到此用戶(hù)計(jì)數(shù)器的值Counter。。
步驟7 服務(wù)器認(rèn)根據(jù)計(jì)數(shù)器窗口值計(jì)算Counter。到Counter4 = Counter0+4,分 別計(jì)算窗口內(nèi)的5個(gè)計(jì)數(shù)器值對(duì)應(yīng)的摘要值5個(gè)摘要值=Digestli = h (Key | | Counteri),其 中i E
,Counteri = CounterQ+i,摘要算法與步驟1中的摘要算法相同,均為SHA-1。
步驟8 服務(wù)器將5個(gè)Digestli逐個(gè)截短,截短算法與步驟2的截短算法相同,得 到 OTP[4-5] i,其中 i e
O
步驟9 服務(wù)器將5個(gè)OTP [4-5] i與收到的OTP的后兩位比較,如果存在I e [O, 4],使0TPW-5L與收到OTP的后兩位相等,則將Coimteri+l寫(xiě)入數(shù)據(jù)庫(kù)后進(jìn)入步驟10,否 則向客戶(hù)端返回認(rèn)證失敗。若有多個(gè)I滿(mǎn)足上述條件,則請(qǐng)求用戶(hù)再次輸入OTP值。從步 驟1重新開(kāi)始。
步驟10 設(shè)服務(wù)器時(shí)間為T(mén)imes,服務(wù)器逐個(gè)計(jì)算Digest11與時(shí)間窗口 Times-I, Times, Times+1。共計(jì) 3 個(gè)時(shí)間值的摘要值 Diges、」=h(Digest1 !Time」),其中 j e [-1, 1],Timej = Times+k。本步驟同樣選擇SHA-I為摘要算法。
步驟11 服務(wù)器將3個(gè)Digest2j逐個(gè)截短,截短算法與步驟4的截短算法相同, 得到 OTP
i,其中 j e [-1,1] ο
步驟12 服務(wù)器將3個(gè)0TP
j與收到的OTP的前四位比較,如果存在」e [-1, 1],使0TP
」與收到OTP的前四位相等,則向客戶(hù)端返回認(rèn)證成功,否則向客戶(hù)端返回認(rèn) 證失敗??蛻?hù)端根據(jù)返回的結(jié)果提示用戶(hù)。
權(quán)利要求
1. 一種基于時(shí)間和事件的一次性口令生成和驗(yàn)證方法,其特征在于它是依次按下述 三個(gè)階段進(jìn)行,其步驟如下1.初始化階段系統(tǒng)管理員為用戶(hù)生成共享密鑰Key,管理員先將用戶(hù)ID、共享密鑰、計(jì)數(shù)器初始值寫(xiě) 入認(rèn)證服務(wù)器的數(shù)據(jù)庫(kù)中,然后將共享密鑰和計(jì)數(shù)器初始值寫(xiě)入令牌中并將令牌分發(fā)給對(duì) 應(yīng)的用戶(hù);為了提高系統(tǒng)的可用性,服務(wù)器將計(jì)數(shù)器的窗口設(shè)為為n,即服務(wù)器認(rèn)為從數(shù)據(jù) 庫(kù)記錄的Counter到Counter+(n-1)都是合法的計(jì)數(shù)器值。對(duì)時(shí)間的窗口設(shè)為m,即服務(wù)器 認(rèn)為在服務(wù)器本地時(shí)間time前后m分鐘內(nèi)的時(shí)間值都是合法的;
2.一次性口令生成階段步驟1 令牌根據(jù)共享密鑰Key和當(dāng)前計(jì)數(shù)器值Counter,并計(jì)算出Digest1 = h(Key Counter), h()為一摘要函數(shù),| |為串接運(yùn)算,即將Key和Counter的二進(jìn)制值收尾 相接,Digest1為步驟1計(jì)算出的摘要值。計(jì)算器Counter值加1 ; 步驟2 將Digest1截短,作為OTP的后兩位,記為OTP [4-5];步驟3 令牌從板載的時(shí)間芯片中獲得當(dāng)前時(shí)間,以分鐘為單位取整,記為T(mén)ime,讓后 計(jì)算 Digest2 = I^Digest11 !Time);步驟4 將Digest2截短,作為OTP的前四位,記為OTP
;步驟5:令牌將步驟4生成的OTP
和步驟2生成的OTP [4-5]拼接,構(gòu)成完整的六 位OTP ;認(rèn)證客戶(hù)端用戶(hù)輸入的將用戶(hù)名和OTP安全的發(fā)送至服務(wù)器接受驗(yàn)證,并等待認(rèn)證結(jié)果;
3.一次性口令驗(yàn)證階段步驟6 服務(wù)器收到客戶(hù)端傳來(lái)的用戶(hù)名和OTP后,根據(jù)用戶(hù)名檢索認(rèn)證數(shù)據(jù)庫(kù)得到此 用戶(hù)計(jì)數(shù)器的值Counter。;步驟7 服務(wù)器認(rèn)根據(jù)計(jì)數(shù)器窗口值計(jì)算Counter。到C0Unteivi = Counter0+(n-1), 分別計(jì)算對(duì)應(yīng)的摘要值η個(gè)摘要值Digestli = h (Key I Onmteri),其中i e [O, n-1], Counteri = CounterQ+i,摘要算法與步驟1中的摘要算法相同;步驟8 服務(wù)器將η個(gè)Digestli逐個(gè)截短,截短算法與步驟2的截短算法相同,得到 OTP[4-5] i,其中 i e [O, n-1]; 其中 i e [O, n-1];步驟9:服務(wù)器將η個(gè)0^[4-5\與收到的OTP的后兩位比較,如果存在I e [O,n-1], 使0TPW-5L與收到OTP的后兩位相等,則將Coimteri+l寫(xiě)入數(shù)據(jù)庫(kù)后進(jìn)入步驟10,否則 向客戶(hù)端返回認(rèn)證失??;若有多個(gè)I滿(mǎn)足上述條件,則請(qǐng)求用戶(hù)再次輸入OTP值;從步驟1 重新開(kāi)始;步驟10 設(shè)服務(wù)器時(shí)間為T(mén)imes,服務(wù)器逐個(gè)計(jì)算Digest11與時(shí)間窗口 Tin^-m, Times-m+l, ...,Times, Times+1, . . . Times+m,共計(jì) 2m+l 個(gè)時(shí)間值的摘要值 Digest^ = h (Digest11 I Timej),其中 j e [_m, m], Timej = Times+k ;步驟11 服務(wù)器將2m+l個(gè)Digest”逐個(gè)截短,截短算法與步驟4的截短算法相同,得 到 OTP
i,其中 j e [-m,m]。步驟12:服務(wù)器將2m+l個(gè)0^
」與收到的OTP的前四位比較,如果存在」e [-m, m],使OTP
」與收到OTP的前四位相等,則像客戶(hù)端返回認(rèn)證成功,否則向客戶(hù)端返回認(rèn)證失敗??蛻?hù)端根據(jù)返回的結(jié)果提示用戶(hù)。
全文摘要
一種生成和驗(yàn)證一次性口令的方法,該方法可在一個(gè)口令中整合時(shí)間和事件因素,提高一次性口令的安全性,并降低服務(wù)器驗(yàn)證一次性口令時(shí)的運(yùn)算開(kāi)銷(xiāo)。首先,向令牌和認(rèn)證數(shù)據(jù)庫(kù)寫(xiě)入初始信息;其次,令牌生成一次性口令,先計(jì)算共享密鑰和計(jì)數(shù)器的摘要值,將摘要值截短后為一次性口令的后兩位。將此摘要值和時(shí)間再進(jìn)行一次摘要,將后一次摘要值截短后為一次性口令的前兩位;最后,服務(wù)器驗(yàn)證一次性口令,先逐個(gè)計(jì)算共享密鑰和窗口內(nèi)的計(jì)數(shù)器的摘要值,截短后與收到一次性口令的后兩位比較,確定計(jì)算器的值,否則返回,認(rèn)證失敗,然后逐個(gè)計(jì)算計(jì)數(shù)器對(duì)應(yīng)的摘要值與窗口期內(nèi)時(shí)間的摘要值,截短后與收到一次性口令的前四位比較,向用戶(hù)返回認(rèn)證結(jié)果。
文檔編號(hào)H04L9/08GK102045349SQ20101057221
公開(kāi)日2011年5月4日 申請(qǐng)日期2010年12月3日 優(yōu)先權(quán)日2010年12月3日
發(fā)明者修春娣, 劉建偉, 孫鈺, 尚濤, 毛劍, 鄭志明 申請(qǐng)人:北京航空航天大學(xué)