亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種用于b/s網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng)和認(rèn)證方法

文檔序號:7764900閱讀:839來源:國知局
專利名稱:一種用于b/s網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng)和認(rèn)證方法
技術(shù)領(lǐng)域
本發(fā)明涉及 互聯(lián)網(wǎng)安全身份認(rèn)證技術(shù),具體涉及一種用于B/S(瀏覽器/服務(wù)器) 網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng)和認(rèn)證方法。屬于計(jì)算機(jī)和信息安全技術(shù)領(lǐng)域。
背景技術(shù)
身份認(rèn)證是網(wǎng)絡(luò)應(yīng)用系統(tǒng)中的第一道防線,它可以限制非法用戶訪問網(wǎng)絡(luò)資源。 但通常使用的靜態(tài)口令有許多固有的弱點(diǎn),如易于猜測或竊聽,易受重放攻擊等攻擊手段 的影響,從而給系統(tǒng)的安全性埋下隱患。針對靜態(tài)口令的缺點(diǎn),OTP (One Time Password- 一 次性口令)認(rèn)證技術(shù)使得每次認(rèn)證使用不同口令,即使口令被盜,攻擊者也無法重復(fù)使用。 OTP認(rèn)證已被越來越廣泛的應(yīng)用于電子商務(wù),網(wǎng)絡(luò)游戲,網(wǎng)上銀行等任何一種需要進(jìn)行身份 認(rèn)證的網(wǎng)絡(luò)平臺上?,F(xiàn)有的各種OTP認(rèn)證技術(shù)及方案大多基于C/S(客戶端/服務(wù)器)模式的網(wǎng)絡(luò)架 構(gòu),用戶使用時(shí)需要安裝相應(yīng)插件或客戶端軟件,這種方式一方面使得用戶使用不方便,在 沒有安裝相應(yīng)軟件的終端上則無法使用,另一方面限制了系統(tǒng)的可移植性,也增加了系統(tǒng) 部署、管理和維護(hù)的復(fù)雜程度。其次,現(xiàn)有方案沒有考慮管理系統(tǒng)的設(shè)計(jì)和部署。使用過程 中,系統(tǒng)初始化、用戶使用問題的解決,用戶的添加與刪除,令牌重同步操作都需要管理系 統(tǒng)的參與和統(tǒng)一管理。同時(shí),現(xiàn)有方案的OTP產(chǎn)生方式多是基于時(shí)間的,一方面,對于時(shí)鐘 精度要求很高,同步過程難以把握;另一方面,硬件令牌為了滿足每隔一段時(shí)間產(chǎn)生一個(gè)新 的OTP的需求,必須保證實(shí)時(shí)開機(jī)狀態(tài),耗電量較大。本發(fā)明考慮到各種應(yīng)用場景,在保證系統(tǒng)可靠性,靈活性的基礎(chǔ)上提供完整的OTP 認(rèn)證系統(tǒng)解決方案,主要特點(diǎn)有1.客戶認(rèn)證和管理員操作均面向B/S網(wǎng)絡(luò)架構(gòu),通過瀏覽器頁面即可完成,使用 靈活,應(yīng)用廣泛,可移植性強(qiáng),便于部署和維護(hù)。2. OTP產(chǎn)生方式采用基于事件的方法,也就是每當(dāng)用戶開機(jī)觸發(fā)按鍵時(shí),硬件令牌 才產(chǎn)生新0ΤΡ,平時(shí)處于關(guān)機(jī)狀態(tài)。3.硬件令牌通過指紋識別技術(shù)與用戶唯一綁定,防止令牌丟失后被他人冒用。4.系統(tǒng)結(jié)構(gòu)完整,包含客戶認(rèn)證和系統(tǒng)管理兩個(gè)方面的配套方案。5.系統(tǒng)可以部署在多個(gè)服務(wù)提供商同時(shí)使用的場景中,認(rèn)證服務(wù)器可由第三方維 護(hù),也可由服務(wù)提供商各自維護(hù),使得部署和維護(hù)靈活簡便。

發(fā)明內(nèi)容
1、目的為了彌補(bǔ)現(xiàn)有OTP認(rèn)證系統(tǒng)的不足,并提供一套更為完整可用的解決方 案,本發(fā)明提供了一種用于B/S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng)和認(rèn)證方法,它在保證用 戶身份認(rèn)證可靠性的同時(shí),具有便于維護(hù)及管理,使用方便,可移植,便于部署等優(yōu)點(diǎn)。2、技術(shù)方案所述技術(shù)方案如下(1)本發(fā)明一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng),該系統(tǒng)包括硬件令牌、初始化工具、客戶系統(tǒng)、管理系統(tǒng)和認(rèn)證服務(wù)器。它們相互之間的關(guān)系是初始化工具對剛 出廠的硬件令牌完成初始化流程;硬件令牌為用戶提供認(rèn)證所需的OTP ;用戶通過客戶系 統(tǒng)輸入OTP并由客戶系統(tǒng)將該OTP按照規(guī)定數(shù)據(jù)包格式發(fā)送至認(rèn)證服務(wù)器;認(rèn)證服務(wù)器完 成認(rèn)證過程決定是否認(rèn)證成功并將認(rèn)證結(jié)果返回至客戶系統(tǒng),最終反饋給用戶;管理系統(tǒng) 在管理員的參與下完成系統(tǒng)管理和維護(hù),按照規(guī)定數(shù)據(jù)包格式向認(rèn)證服務(wù)器和客戶端服務(wù) 器發(fā)送管理操作請求,認(rèn)證服務(wù)器和客戶端服務(wù)器接收請求,完成管理操作,并向管理系統(tǒng) 返回操作結(jié)果,具體如圖1所示。
所述硬件令牌包括存儲模塊、OTP生成模塊、指紋模塊、顯示模塊和觸發(fā)模塊。各 部分實(shí)現(xiàn)方式和相互關(guān)系是該存儲模塊,用于存儲OTP生成要素、觸發(fā)次數(shù)、用戶指紋信息。其為硬件設(shè)備,具 體為微控制器S3F8285的內(nèi)置flash存儲器。該OTP生成模塊,用于通過存儲模塊中的OTP生成要素和觸發(fā)次數(shù)計(jì)算生成OTP。 具體的,生成OTP的算法采用HMAC-SHA1算法,由運(yùn)行在微控制器S3F8285中的軟件程序完 成。該指紋模塊,用于在用戶獲得硬件令牌是初始化指紋并將獲得的指紋信息存儲在 存儲模塊中,以及在硬件令牌開啟時(shí)獲取用戶指紋信息,并驗(yàn)證其是否匹配。其是一種硬件 設(shè)備,具體的,可為任意一種指紋采集設(shè)備。該顯示模塊,用于向用戶顯示OTP生成模塊計(jì)算所得的OTP。其為硬件設(shè)備,具體 為東莞市嘉田公司設(shè)計(jì)定制的專用液晶顯示屏。該觸發(fā)模塊,通過此模塊觸發(fā)OTP生成模塊生成OTP。其為硬件設(shè)備,具體為東莞 市嘉田公司開模設(shè)計(jì)定制的按鍵。所述初始化工具包括初始化軟件和令牌燒寫器。各部分實(shí)現(xiàn)方式和相互關(guān)系 是該初始化軟件,用于在令牌初始化時(shí),提供可視化工具。通過此模塊,可輸入令牌 序列號SN及生成因子,并計(jì)算OTP生成要素。具體的,軟件中通過任意一種雜湊算法計(jì)算 OTP生成要素,優(yōu)選的,該雜湊算法為SHAl或MD5算法。該令牌燒寫器,是一套硬件設(shè)備,用于將主機(jī)與硬件令牌相連接,向硬件令牌燒寫 程序、將觸發(fā)次數(shù)初始化為0和注入所述初始化軟件計(jì)算所得的OTP生成要素。具體的, 其結(jié)構(gòu)是與主機(jī)端通過USB連線連接,與硬件令牌通過UART串口線連接,核心部分通過 CH341芯片完成USB信號與UART信號的互相轉(zhuǎn)換。所述客戶系統(tǒng)包括客戶端頁面和客戶端服務(wù)器。其間關(guān)系是客戶端頁面搭建在 客戶端服務(wù)器之上。該客戶端頁面,是認(rèn)證用戶可以通過瀏覽器訪問的TOB登錄頁面,它包括輸入模 塊、通信模塊和顯示模塊。各部分實(shí)現(xiàn)方式和相互關(guān)系是該輸入模塊,用戶登錄認(rèn)證時(shí),通過此模塊輸入用戶名及OTP。具體的,其是通過 web編程提供的用戶輸入框。該通信模塊,用于將用戶輸入的用戶名及用戶OTP發(fā)送至客戶端服務(wù)器,并接收 認(rèn)證結(jié)果及提示信息。具體的,其按照http協(xié)議進(jìn)行數(shù)據(jù)傳輸。該顯示模塊,用于在登錄過程中,向用戶顯示客戶端服務(wù)器返回認(rèn)證結(jié)果及其他提示信息。具體的,其是通過web編程提供的文本顯示框或彈出式提示對話框。該客戶端服務(wù)器包括通信模塊、存儲模塊、用戶有效性驗(yàn)證模塊、綁定和添加處 理模塊。各部分實(shí)現(xiàn)方式和相互關(guān)系是該通信模塊,同時(shí)用于與客戶端頁面和與認(rèn)證服務(wù)器的數(shù)據(jù)交互。一方面用于接 收客戶端頁面發(fā)送來的用戶名和用戶OTP,并向認(rèn)證服務(wù)器發(fā)送認(rèn)證數(shù)據(jù)包,所述認(rèn)證數(shù)據(jù) 包就是具有規(guī)定格式的包含用戶名和用戶OTP的數(shù)據(jù)包。另一方面用于接收并向客戶端頁 面轉(zhuǎn)發(fā)認(rèn)證服務(wù)器發(fā)來的用戶認(rèn)證結(jié)果。具體的,該通信模塊的核心功能在于將用戶名和 OTP按照規(guī)定格式封裝數(shù)據(jù)包,優(yōu)選的,可以為RADIUS數(shù)據(jù)包格式。該存儲模塊,用于存儲用戶名及其他與實(shí)際應(yīng)用場景緊密相關(guān)的用戶信息,所述 用戶名與認(rèn)證服務(wù)器的存儲模塊中存儲的用戶名一一對應(yīng),且每個(gè)用戶之間互不相同。具 體的,其是通過MySql、SqlSever、OraCle等數(shù)據(jù)庫中的任意一種來實(shí)現(xiàn)。該用戶有效性驗(yàn)證模塊用于當(dāng)用戶提交用戶名和OTP后,在所述存儲模塊中查 找用戶提交的用戶名,如未查找到,則向客戶端頁面返回用戶名無效的提示信息。具體的, 其在軟件中通過數(shù)據(jù)庫查找語句找到對應(yīng)用戶信息,判斷其是否有效。該綁定和添加處理模塊,用于處理管理員提出的綁定和添加操作請求。具體的綁 定和添加方法通過軟件編程實(shí)現(xiàn),其方法在后文“一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn) 證方法”中述及。所述管理系統(tǒng)包括管理系統(tǒng)頁面和管理系統(tǒng)服務(wù)器。其間關(guān)系是管理系統(tǒng)頁面 搭建在管理系統(tǒng)服務(wù)器之上。該管理系統(tǒng)頁面,是管理員可以通過瀏覽器訪問的TOB管理頁面,它包括輸入模 塊、通信模塊、添加與綁定模塊、信息修改模塊、日志模塊和重同步模塊。各部分實(shí)現(xiàn)方式和 相互關(guān)系是該輸入模塊,用于管理員登錄時(shí)輸入管理員賬號和密碼,也用于管理員進(jìn)行管理 操作時(shí)輸入必要信息。具體的,其是通過web編程提供的用戶輸入框。該通信模塊,用于將管理員輸入的管理員賬號和密碼傳送至管理系統(tǒng)服務(wù)器,并 接收認(rèn)證結(jié)果及其他提示信息。也用于將管理員操作請求和必要數(shù)據(jù)傳送至管理系統(tǒng)服務(wù) 器。具體的,其按照http協(xié)議進(jìn)行數(shù)據(jù)傳輸。該添加與綁定模塊,用于完成新用戶的添加和令牌與其所有者用戶的綁定操作。 具體的,其是通過web編程提供的用戶輸入框,用于輸入必要信息。該信息修改模塊,用于刪除一個(gè)用戶,也用于修改各種用戶信息。具體的,其是通 過web編程提供的用戶輸入框,用于輸入修改的用戶信息;以及通過web編程提供的文本框 和表格,用于顯示從數(shù)據(jù)庫獲取的現(xiàn)有用戶信息;同時(shí)通過數(shù)據(jù)庫操作完成刪除或信息修 改。該日志模塊,用于查看管理系統(tǒng)的管理員操作記錄。具體的,其是通過web編程提 供的文本框和表格,顯示管理員操作信息。該重同步模塊,用于當(dāng)硬件令牌的觸發(fā)次數(shù)與認(rèn)證服務(wù)器的認(rèn)證成功次數(shù)的差值 超過規(guī)定限度時(shí),由管理員將所述硬件令牌的觸發(fā)次數(shù)與所述認(rèn)證服務(wù)器的認(rèn)證成功次數(shù) 重新設(shè)置為同步。具體的,通過編程實(shí)現(xiàn),核心部分為重同步算法,具體的重同步算法在后 文“一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證方法”中述及。
該管理系統(tǒng)服務(wù)器包括通信模塊、存儲模塊、操作請求處理模塊和管理員登錄模塊。各部分實(shí)現(xiàn)方式和相互關(guān)系是該通信模塊,同時(shí)用于與管理系統(tǒng)頁面、客戶端服務(wù)器和認(rèn)證服務(wù)器的數(shù)據(jù)交互。 一方面用于綁定操作時(shí)向客戶端服務(wù)器和認(rèn)證服務(wù)器發(fā)送用戶信息;另一方面用于向認(rèn)證 服務(wù)器發(fā)送管理操作請求數(shù)據(jù)包,并接收操作處理結(jié)果。也用于接收管理員登錄時(shí)管理系 統(tǒng)頁面發(fā)送來的管理員賬號和密碼,并向管理系統(tǒng)頁面發(fā)送管理員登錄認(rèn)證結(jié)果。具體的, 其通過軟件編程實(shí)現(xiàn),其核心在于其與管理系統(tǒng)頁面的數(shù)據(jù)交互通過http協(xié)議完成,其與 向客戶端服務(wù)器和認(rèn)證服務(wù)器的數(shù)據(jù)交互通過事先規(guī)定的數(shù)據(jù)包格式完成,優(yōu)選的,該數(shù) 據(jù)包格式可為RADIUS數(shù)據(jù)包格式。該存儲模塊,用于存儲管理員賬號、密碼、日志信息及與管理員相關(guān)聯(lián)的必要信 息。具體的,其是通過MySql、SqlSever、OracIe等數(shù)據(jù)庫中的任意一種來實(shí)現(xiàn)。該操作請求處理模塊,用于將通信模塊接收到的,來自管理系統(tǒng)頁面提出的各種 操作請求連同必要信息封裝成規(guī)定格式的認(rèn)證數(shù)據(jù)包,再通過通信模塊發(fā)送出去。具體 的,其通過軟件編程實(shí)現(xiàn),其核心在于將操作請求封裝成為規(guī)定格式數(shù)據(jù)包,優(yōu)選的可為 RADIUS數(shù)據(jù)包格式。該管理員登錄模塊,用于驗(yàn)證通信模塊接收到的管理員賬號和密碼,如果驗(yàn)證成 功,則允許管理員進(jìn)入管理系統(tǒng),并向管理系統(tǒng)頁面返回登錄成功信息;如果認(rèn)證失敗,則 拒絕管理員進(jìn)入管理系統(tǒng),并向管理系統(tǒng)頁面返回登錄失敗信息。具體的,其通過軟件編程 實(shí)現(xiàn),利用數(shù)據(jù)庫查詢語句獲取存儲模塊中的管理員賬戶信息,并驗(yàn)證通信模塊接收到的 管理員賬號和密碼是否與所獲信息匹配。所述認(rèn)證服務(wù)器包括通信模塊、存儲模塊、認(rèn)證處理模塊、綁定和添加處理模塊 和重同步處理模塊。各部分實(shí)現(xiàn)方式和相互關(guān)系是該通信模塊,用于接收客戶端服務(wù)器發(fā)來的認(rèn)證數(shù)據(jù)包并向客戶端服務(wù)器反饋認(rèn) 證結(jié)果,同時(shí)用于接收管理系統(tǒng)服務(wù)器發(fā)送來的管理員操作請求并向管理系統(tǒng)服務(wù)器反饋 操作結(jié)果。具體的,其通過軟件編程實(shí)現(xiàn),其核心在于將發(fā)送來的RADIUS數(shù)據(jù)包拆分,獲得 其中數(shù)據(jù),并將結(jié)果封裝成為RADIUS數(shù)據(jù)包,進(jìn)行反饋。該存儲模塊,用于存儲令牌序列號(SN)以及與其相關(guān)聯(lián)的用戶名(UID),令牌使 用狀態(tài),認(rèn)證次數(shù)(counter)、用戶聯(lián)系方式,OTP生成要素,認(rèn)證次數(shù)。所述用戶名要保證 每個(gè)用戶之間互不相同。具體的,其是通過MySql、SqlSever、OracIe等數(shù)據(jù)庫中的任意一 種來實(shí)現(xiàn)。該認(rèn)證處理模塊,用于處理用戶的登錄認(rèn)證請求。所述認(rèn)證處理模塊從通信模塊 獲得的認(rèn)證數(shù)據(jù)包提取用戶名、用戶OTP,判斷所述用戶名是否存在,如果不存在,則返回認(rèn) 證用戶不存在信息;如果所述用戶名存在,則通過用戶名在存儲模塊中查找對應(yīng)的OTP生 成要素和認(rèn)證次數(shù),計(jì)算臨時(shí)OTP,并將臨時(shí)OTP與從認(rèn)證數(shù)據(jù)包提取的用戶OTP進(jìn)行比較, 如果匹配則通過通信模塊通知用戶認(rèn)證成功;如果不匹配,則通過通信模塊通知客戶端用 戶認(rèn)證失敗。具體的,其通過軟件編程實(shí)現(xiàn),一方面獲取RADIUS數(shù)據(jù)包內(nèi)容,另一方面通過 數(shù)據(jù)庫查詢語句獲取存儲模塊中的必要信息。該綁定和添加處理模塊,用于處理管理員提出的綁定操作請求。該重同步處理模 塊用于硬件令牌的觸發(fā)次數(shù)與認(rèn)證服務(wù)器的認(rèn)證次數(shù)發(fā)生失步,用戶向管理員提出重同步要求是,處理重同步操作請求。具體的,通過編程實(shí)現(xiàn),核心部分為綁定和添加方法,具體 的綁定和添加方法在后文“一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證方法”中述及。(2)本發(fā)明一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證方法,其包括系統(tǒng)初始化,登 錄認(rèn)證,以及系統(tǒng)管理所述系統(tǒng)初始化包括1)硬件令牌初始化。令牌初始化過程由令牌分發(fā)部門完成。每個(gè)硬件令牌出廠后對應(yīng)唯一硬件序列號 SN,主機(jī)運(yùn)行初始化軟件,以“SN+生成因子”為輸入,通過雜湊算法計(jì)算得到OTP生成要素。 然后通過令牌燒寫器將主機(jī)與硬件令牌相連,將OTP生成要素存儲至令牌內(nèi)。并將認(rèn)證次 數(shù)(counter)初始化為0。此處,所述生成因子是指只有系統(tǒng)部署、使用方才能知道的一組 保密信息。所述OTP生成要素要在后續(xù)步驟中存儲在硬件令牌和認(rèn)證服務(wù)器中,是生成OTP 的要素之一。2)用戶申請獲取令牌。用戶向令牌分發(fā)部門填寫注冊表單,申請獲取一個(gè)新令牌,然后用戶通過令牌上 的指紋模塊在硬件令牌中注冊存儲自己的指紋信息。此指紋信息用于確定每個(gè)令牌的所有 者,用戶每次開啟令牌都要提供與此令牌對應(yīng)的指紋信息,否則無法開啟令牌,這樣,可以 防止令牌丟失后被非法用戶冒用。3)添加與綁定。所述綁定是指,每個(gè)硬件令牌只能被唯一用戶擁有,用戶獲得令牌后,認(rèn)證服務(wù)器 應(yīng)當(dāng)將用戶信息與其擁有的令牌進(jìn)行綁定,這樣才能保證在認(rèn)證過程中認(rèn)證服務(wù)器根據(jù)用 戶名查找到的OTP生成要素與該用戶名對應(yīng)的硬件令牌中存儲的OTP生成要素一致。綁定 關(guān)系依賴于將令牌唯一硬件序列號(SN)和用戶唯一用戶名(UID) —一對應(yīng)。由于有管理 員參與,綁定的完成只需要管理員正確輸入令牌序列號SN以及與其相關(guān)聯(lián)的UID,再通過 添加過程添加至認(rèn)證服務(wù)器和客戶端服務(wù)器即可完成。所述添加是指,用戶首次登錄認(rèn)證之前,應(yīng)當(dāng)將其用戶信息和令牌初始信息添加 至客戶端服務(wù)器和認(rèn)證服務(wù)器的存儲模塊中。添加與綁定由管理員統(tǒng)一完成,以增加集中控制,降低綁定復(fù)雜度,減少錯(cuò)誤。 管理員通過管理系統(tǒng)輸入令牌硬件序列號(SN)、用戶名(UID),令牌使用狀態(tài),認(rèn)證次數(shù) (counter)、聯(lián)系方式、OTP生成要素,同時(shí)發(fā)送至“客戶端服務(wù)器”和“認(rèn)證服務(wù)器”并提出 綁定和添加操作請求。此處,所述OTP生成要素應(yīng)與前述硬件令牌初始化中所得的OTP生成要素一致。所 述用戶名(UID)和硬件序列號(SN)用于綁定,必須保證各個(gè)用戶之間互不相同。所述令牌 使用狀態(tài),認(rèn)證次數(shù)(counter)、聯(lián)系方式、OTP生成要素是所應(yīng)添加的必要信息,實(shí)際應(yīng)用 中應(yīng)與場景需求而定,并不僅僅局限于前述內(nèi)容。其中,令牌使用狀態(tài)標(biāo)表示令牌當(dāng)前所處 使用狀態(tài),本發(fā)明建議有三種使用狀態(tài)1.正常,即令牌處于正常使用狀態(tài);2.掛失令牌 丟失后,由用戶在管理員處將令牌設(shè)置為掛失狀態(tài),處于掛失狀態(tài)的令牌不可使用。3.凍 結(jié),為防止攻擊者反復(fù)猜測登錄密碼,如果連續(xù)認(rèn)證失敗次數(shù)達(dá)到規(guī)定限度,系統(tǒng)自動將令 牌設(shè)置為凍結(jié)狀態(tài),處于凍結(jié)狀態(tài)的令牌不可使用。令牌使用狀態(tài)不限于此三種,可根據(jù)具 體應(yīng)用場景設(shè)計(jì)。一般的,添加新用戶時(shí)要將認(rèn)證次數(shù)置為0,將令牌使用狀態(tài)置為正常。
客戶端服務(wù)器和認(rèn)證服務(wù)器收到綁定和添加操作請求后,各自更新數(shù)據(jù)庫,添加 用戶信息,并將認(rèn)證次數(shù)置為0,將令牌使用狀態(tài)置為正常,完成新用戶的添加和綁定。所述登錄認(rèn)證包括1)開啟硬件令牌。用戶點(diǎn)擊硬件令牌上的開機(jī)按鈕,并通過指紋模塊提供指紋信息。如果指紋匹配 則成功開啟硬件令牌;如果指紋不匹配,則令牌自動關(guān)閉。2)觸發(fā)硬件令牌產(chǎn)生用戶OTP。用戶點(diǎn)擊硬件令牌上的動態(tài)口令觸發(fā)按鈕,硬件令牌通過存儲的OTP生成要素和 當(dāng)前觸發(fā)次數(shù)經(jīng)過某種密碼算法計(jì)算得到OTP,然后將觸發(fā)次數(shù)加一。3)用戶輸入用戶名和用戶OTP用戶通過客戶登錄頁面輸入用戶名及所得動態(tài)口令,并傳送至客戶端服務(wù)器。此 處,通過點(diǎn)擊觸發(fā)按鈕獲得OTP的方式即基于事件的方式,只有在用戶需要獲取OTP的時(shí) 候才開啟硬件令牌,不使用時(shí)硬件令牌處于關(guān)機(jī)狀態(tài),進(jìn)而節(jié)省電量,不同于基于時(shí)間的方 式,后者需要實(shí)時(shí)開機(jī)以便每隔一段時(shí)間變化一次0ΤΡ,耗電量較大。4)客戶端服務(wù)器接收用戶名及用戶0ΤΡ,驗(yàn)證用戶名有效性??蛻舳朔?wù)器按照用戶名在存儲模塊中查找用戶相關(guān)信息,如果用戶輸入的用戶 名不存在,則返回用戶名無效信息。5)客戶端服務(wù)器生成認(rèn)證數(shù)據(jù)包發(fā)送至認(rèn)證服務(wù)器。如果該用戶名存在則將用戶名、動態(tài)口令等必要信息按照約定數(shù)據(jù)包格式封裝成 認(rèn)證數(shù)據(jù)包,并傳送至認(rèn)證服務(wù)器。此處的數(shù)據(jù)包格式是指在軟件設(shè)計(jì)時(shí),客戶端服務(wù)器和 認(rèn)證服務(wù)器之間為了完成數(shù)據(jù)交互而規(guī)定的數(shù)據(jù)傳送方式。6)認(rèn)證服務(wù)器進(jìn)行認(rèn)證并返回認(rèn)證結(jié)果。認(rèn)證服務(wù)器處理認(rèn)證數(shù)據(jù)包,獲取用戶名及用戶0ΤΡ,并在存儲模塊中查找所述用 戶及對應(yīng)的令牌使用狀態(tài),如果令牌使用狀態(tài)為掛失或凍結(jié)等非正常狀態(tài),則返回令牌狀 態(tài)不正常信息,如果令牌使用狀態(tài)為正常,則獲取用戶名對應(yīng)的OTP生成要素和認(rèn)證次數(shù) (counter),并以此兩者為基礎(chǔ),通過HMAC-SHA1算法計(jì)算臨時(shí)0ΤΡ,將其與客戶端服務(wù)器傳 來的動態(tài)口令進(jìn)行比較,如果匹配,則返回認(rèn)證成功信息,同時(shí)將認(rèn)證次數(shù)自動加一;如果 不匹配,則返回認(rèn)證失敗信息。所述系統(tǒng)管理包括1)管理員登錄。管理員要進(jìn)入管理系統(tǒng),也要進(jìn)行登錄認(rèn)證。管理員在管理系統(tǒng)頁面輸入管理員 賬號和密碼,傳送至管理系統(tǒng)服務(wù)器。管理系統(tǒng)服務(wù)器查找傳來的管理員賬號,如果不存在 則返回管理員帳號無效信息,如果存在則驗(yàn)證傳來的密碼是否正確,如果正確,則允許管理 員進(jìn)入管理系統(tǒng),如果不正確,則拒絕進(jìn)入管理系統(tǒng)。2)添加與綁定。新用戶獲得令牌后要在管理員處進(jìn)行身份信息與令牌的綁定和添加操作才能正 常使用令牌。管理員按照與之前所述“系統(tǒng)初始化”中的“添加與綁定過程”中一致的方法 完成用戶的添加與綁定操作。管理員通過管理系統(tǒng)輸入令牌硬件序列號(SN),用戶提供的用戶名(UID),令牌使用狀態(tài),認(rèn)證次數(shù)(counter)、聯(lián)系方式、OTP生成要素,同時(shí)發(fā)送至客戶端服務(wù)器和認(rèn)證 服務(wù)器并提出綁定和添加操作請求??蛻舳朔?wù)器和認(rèn)證服務(wù)器收到管理系統(tǒng)發(fā)出的綁定和添加操作請求后,各自更 新存儲模塊,添加新的用戶數(shù)據(jù)項(xiàng),完成新用戶的添加和用戶名與令牌序列號的綁定。3)用戶信息修改。 當(dāng)用戶更改個(gè)人信息時(shí),如聯(lián)系方式、令牌使用狀態(tài)等,應(yīng)當(dāng)通知管理員。管理員 通過管理系統(tǒng)頁面向管理系統(tǒng)服務(wù)器提交更改后的用戶信息,再由管理系統(tǒng)服務(wù)器將更改 信息封裝成約定格式的數(shù)據(jù)包,發(fā)送至客戶端服務(wù)器和認(rèn)證服務(wù)器,最終完成用戶信息的 更改。特別的,令牌使用狀態(tài)的更改關(guān)系到認(rèn)證系統(tǒng)的安全使用,應(yīng)由管理員嚴(yán)格控制。4)令牌重同步。在本發(fā)明所述認(rèn)證系統(tǒng)中,用戶認(rèn)證是否成功,取決于硬件令牌和認(rèn)證服務(wù)器中 計(jì)算所得的兩個(gè)OTP是否匹配。硬件令牌和認(rèn)證服務(wù)器中的OTP生成要素是相同的,因此, 兩者計(jì)算所得的OTP是否匹配就決定于硬件令牌中的觸發(fā)次數(shù)和認(rèn)證服務(wù)器中的認(rèn)證次 數(shù)是否同步。如果由于某種原因,如用戶無意中多次觸發(fā)硬件令牌而并不進(jìn)行認(rèn)證,使得硬 件令牌的觸發(fā)次數(shù)超前于認(rèn)證服務(wù)器的認(rèn)證次數(shù),進(jìn)而導(dǎo)致以后的認(rèn)證均無法成功。因此 本發(fā)明提供小窗口的和大窗口兩種重同步方式。所述小窗口重同步是指硬件令牌觸發(fā)次數(shù)和認(rèn)證服務(wù)器認(rèn)證次數(shù)相差在小窗口 范圍之內(nèi)的重同步,無需管理員直接參與。具體地,管理員通過配置文件等方式預(yù)先設(shè)置 小窗口大小R,當(dāng)進(jìn)行認(rèn)證操作時(shí),如果用戶OTP(也就是硬件令牌計(jì)算得到的OTP)和臨 時(shí)OTP(也就是認(rèn)證服務(wù)器計(jì)算得到的OTP)不匹配,那么認(rèn)證服務(wù)器將認(rèn)證次數(shù)加一后重 新計(jì)算臨時(shí)0ΤΡ,再與用戶OTP進(jìn)行比較,如果匹配,則小窗口重同步成功,同時(shí)返回認(rèn)證成 功,如果不匹配則重復(fù)上述過程,此過程最多重復(fù)R次,如果在R次之內(nèi)未出現(xiàn)兩個(gè)臨時(shí)OTP 和用戶OTP匹配的情況,那么小窗口重同步失敗,需要進(jìn)行大窗口重同步。如上所述,小窗 口重同步對于用戶是透明的,用戶看來,直觀上與做一次普通認(rèn)證沒有區(qū)別,管理員對于小 窗口大小的設(shè)定,要根據(jù)實(shí)際需要設(shè)定。特別的,當(dāng)小窗口大小為0時(shí),只要硬件令牌和認(rèn) 證服務(wù)器發(fā)生失步,就直接進(jìn)入大窗口重同步,此時(shí)的認(rèn)證強(qiáng)度最強(qiáng)。所述大窗口重同步需要有管理員通過管理系統(tǒng)完成。當(dāng)小窗口重同步失敗后,說 明硬件令牌觸發(fā)次數(shù)已超出認(rèn)證服務(wù)器認(rèn)證次數(shù)很多,可能出現(xiàn)了惡意攻擊,因此需要客 戶向管理員申請,在確定身份后由管理員完成大窗口重同步。具體的,管理員通過硬件令牌 讀取兩個(gè)連續(xù)的客戶0TP,按照先后次序輸入管理系統(tǒng),并傳送至認(rèn)證服務(wù)器。認(rèn)證服務(wù)器 重復(fù)計(jì)算臨時(shí)0ΤΡ,并將認(rèn)證次數(shù)加一,反復(fù)執(zhí)行此操作,直到有兩個(gè)連續(xù)的臨時(shí)OTP與管 理員傳來的兩個(gè)客戶OTP均匹配,則大窗口重同步成功。綜上所述本發(fā)明一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證方法,該方法具體步 驟如下步驟一由令牌分發(fā)人員運(yùn)行初始化軟件,以“SN+生成因子”為輸入,通過某種雜 湊算法計(jì)算得到OTP生成要素。然后通過令牌燒寫器將主機(jī)與硬件令牌相連,將OTP生成 要素存儲至令牌內(nèi)。并將認(rèn)證次數(shù)(counter)初始化為0 ;步驟二 用戶向令牌分發(fā)部門填寫注冊表單,申請獲取一個(gè)新令牌,然后用戶通過 令牌上的指紋模塊在硬件令牌中注冊存儲自己的指紋信息;
步驟三用戶獲得令牌后,在管理員處正確輸入令牌序列號以及令牌所有者對應(yīng) 的用戶名,將其用戶信息和令牌初始信息添加至客戶端服務(wù)器和認(rèn)證服務(wù)器的存儲模塊 中,完成綁定和添加過程;步驟四 用戶點(diǎn)擊硬件令牌上的開機(jī)按鈕,并通過指紋模塊提供指紋信息。如果指 紋匹配則成功開啟硬件令牌;如果指紋不匹配,則令牌自動關(guān)閉;步驟五如果步驟四中成功開啟令牌,用戶點(diǎn)擊硬件令牌上的動態(tài)口令觸發(fā)按鈕, 硬件令牌通過存儲的OTP生成要素和當(dāng)前觸發(fā)次數(shù)經(jīng)過HMAC-SHA1算法計(jì)算得到OTP。同 時(shí),用戶通過客戶登錄頁面輸入用戶名及所得動態(tài)口令,并傳送至客戶端服務(wù)器;步驟六客戶端服務(wù)器將用戶名、動態(tài)口令等必要信息按照約定數(shù)據(jù)包格式封裝 成認(rèn)證數(shù)據(jù)包,并傳送至認(rèn)證服務(wù)器。優(yōu)選的,所述數(shù)據(jù)包格式可為RADIUS數(shù)據(jù)包;步驟七認(rèn)證服務(wù)器處理認(rèn)證數(shù)據(jù)包,獲取用戶名及用戶OTP,并在存儲模塊中查 找所述用戶對應(yīng)的令牌使用狀態(tài),如果令牌使用狀態(tài)為掛失或凍結(jié)等非正常狀態(tài),則返回 令牌狀態(tài)不正常信息,如果令牌使用狀態(tài)為正常,則獲取用戶名對應(yīng)的OTP生成要素和認(rèn) 證次數(shù)(counter),并以此兩者為基礎(chǔ),通過某種密碼算法計(jì)算臨時(shí)0ΤΡ,并將其與客戶端 服務(wù)器傳來的動態(tài)口令進(jìn)行比較,如果匹配,則返回認(rèn)證成功信息,同時(shí)將認(rèn)證次數(shù)自動加 一;如果不匹配,則返回認(rèn)證失敗信息;步驟八管理員登錄管理系統(tǒng),根據(jù)具體需求進(jìn)行用戶添加與綁定,用戶信息修 改,令牌重同步等管理操作。所述八個(gè)步驟中,步驟一至步驟三概括了系統(tǒng)初始化過程;步驟四至步驟七概括 了登錄認(rèn)證過程;步驟八概括了系統(tǒng)管理過程。其中,系統(tǒng)初始化過程是登錄認(rèn)證過程的前 提,因此,系統(tǒng)初始化過程必須在登錄認(rèn)證過程之前,即步驟一至步驟七應(yīng)保證嚴(yán)格的先后 順序。系統(tǒng)管理過程,即步驟八,不需要與其他步驟保證先后順序,只在用戶提出相應(yīng)需求 時(shí),才由管理員執(zhí)行該步驟的操作,同時(shí),系統(tǒng)管理過程與系統(tǒng)初始化過程相互交叉,即系 統(tǒng)管理過程要參與系統(tǒng)初始化過程中的用戶添加與綁定操作。3、優(yōu)點(diǎn)和功效本發(fā)明提供的上述技術(shù)方案提高系統(tǒng)登錄認(rèn)證的安全性,為用戶和管理員提供了 通過瀏覽器頁面即可方便使用的一次口令認(rèn)證系統(tǒng),用戶只要手持硬件令牌,能夠上網(wǎng)瀏 覽客戶端頁面即可進(jìn)行登錄認(rèn)證,同樣,管理員只要能夠上網(wǎng)瀏覽管理系統(tǒng)頁面即可進(jìn)行 系統(tǒng)管理,操作方便,使用簡單,成本較低。實(shí)際應(yīng)用時(shí)可將多個(gè)客戶系統(tǒng)和管理系統(tǒng)部署 在不同的服務(wù)提供方,認(rèn)證服務(wù)器可由第三方維護(hù),也可由各服務(wù)提供方各自維護(hù),使得部 署和維護(hù)靈活簡便。


附圖1是本發(fā)明提供的一種可用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng)結(jié)構(gòu)圖。附圖2是本發(fā)明系統(tǒng)初始化流程圖附圖3是本發(fā)明登錄認(rèn)證流程圖附圖4是本發(fā)明系統(tǒng)管理示意圖附圖5是本發(fā)明認(rèn)證服務(wù)器由第三方維護(hù)的系統(tǒng)部署示意圖附圖6是本發(fā)明認(rèn)證服務(wù)器由服務(wù)提供方分別維護(hù)的系統(tǒng)部署示意圖
圖中符號說明如下SN 令牌唯一硬件序列號;UID 用戶名;OTP —次性口令;1硬件令牌;2初始化工具;3客戶系統(tǒng);4管理系統(tǒng);5認(rèn)證服務(wù)器;11存儲模塊;120TP生成模塊;13指紋模塊;14顯示模塊;15觸發(fā)模塊;21初始化軟件;22令牌燒寫器;31客戶端頁面;311輸入模塊;312通信模塊;313 顯示模塊;32客戶端服務(wù)器;321通信模塊;322存儲模塊;323用戶有效性驗(yàn)證模塊;324 綁定和添加處理模塊;41管理系統(tǒng)頁面;411輸入模塊;412通信模塊;413添加與綁定模 塊;414信息修改模塊;415日志模塊;416重同步模塊;42管理系統(tǒng)服務(wù)器;421通信模塊; 422存儲模塊;423操作請求處理模塊;424管理員登陸模塊;51通信模塊;52存儲模塊;53 認(rèn)證處理模塊;54添加與綁定處理模塊;55重同步處理模塊。
具體實(shí)施例方式前文已將本發(fā)明的系統(tǒng)結(jié)構(gòu)和操作方法進(jìn)行了完整、詳細(xì)的介紹,下面,結(jié)合各附 圖,對本發(fā)明的技術(shù)特點(diǎn)和實(shí)施方式作進(jìn)一步的描述。本實(shí)施實(shí)例,提供了完整的用于B/S網(wǎng)絡(luò)架構(gòu)的一次性口令認(rèn)證系統(tǒng),并圍繞系 統(tǒng)架構(gòu),從系統(tǒng)初始化流程、登錄認(rèn)證流程、系統(tǒng)管理流程等方面介紹了系統(tǒng)工作的具體方 式。同時(shí),還提供了兩種用于多服務(wù)提供者使用場景的系統(tǒng)部署方式。本發(fā)明涉及一整套的軟硬件設(shè)備,在完善一次性口令認(rèn)證功能的基礎(chǔ)之上,提供 了初始化工具、管理系統(tǒng),使得系統(tǒng)完整、靈活、便于使用。參見圖1,本發(fā)明實(shí)施例提供了一種用于B/S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng)結(jié) 構(gòu)圖。如圖1所示,該系統(tǒng)分為五個(gè)部分硬件令牌1,初始化工具2,客戶系統(tǒng)3,管理系 統(tǒng)4,認(rèn)證服務(wù)器5。其中客戶系統(tǒng)3又分為客戶端頁面31和客戶端服務(wù)器32,管理系統(tǒng)4 又分為管理系統(tǒng)頁面41和管理系統(tǒng)服務(wù)器42,每個(gè)部分又包括更具體的功能模塊。下面進(jìn) 行詳細(xì)闡述硬件令牌1是提供給用戶,為其提供認(rèn)證時(shí)所需一次性口令的硬件設(shè)備,尺寸較 小,便于用戶隨身攜帶,具體包括存儲模塊11,用于存儲OTP生成要素、觸發(fā)次數(shù)、用戶指紋信息。本實(shí)施例中,該模 塊通過微控制器S3F8285的內(nèi)置flash存儲器來實(shí)現(xiàn)對于各信息的存儲。OTP生成模塊12,用于提取存儲模塊中的OTP生成要素和觸發(fā)次數(shù),并通過這兩者 計(jì)算用戶OTP。本實(shí)施例中,該模塊生成OTP的算法采用HMAC-SHA1算法。指紋模塊13,用于在用戶獲得硬件令牌是注冊指紋信息,以及在硬件令牌開啟時(shí) 獲取用戶指紋信息,并驗(yàn)證其是否匹配。本實(shí)施例中,該模塊選用型號為ZAZ-030的掛擦拭 指紋識別模塊。顯示模塊14,用于向用戶顯示0ΤΡ,具體為液晶顯示屏。觸發(fā)模塊15,通過此模塊觸發(fā)硬件令牌生成0ΤΡ,具體可為鍵盤、按鍵、開關(guān)等。本 實(shí)施例中,該模塊選用專用定制按鍵實(shí)現(xiàn)。初始化工具2是一套為完成系統(tǒng)初始化操作的軟硬件設(shè)備,具體包括初始化軟件21,用于在令牌初始化時(shí),提供可視化軟件工具。通過此模塊,可輸入令牌序列號及生成因子,并計(jì)算OTP生成要素。具體的,軟件中通過任意一種雜湊算法計(jì)算 OTP生成要素,本實(shí)施例中,該雜湊算法為SHAl算法。令牌燒寫器22,用于將硬件令牌與終端機(jī)相連的硬件設(shè)備,該模塊與硬件令牌和 終端機(jī)的連接方式具體為USB接口、并口、串口等有線接口中的一種或者紅外、藍(lán)牙等無線 接口的一種。本實(shí)施例中,令牌燒寫器與主機(jī)端通過USB連線連接,與硬件令牌通過UART 串口線連接,核心部分通過CH341芯片完成USB信號與UART信號的互相轉(zhuǎn)換??蛻粝到y(tǒng)3提供用戶登錄認(rèn)證等用戶操作,包括客戶端頁面31和客戶端服務(wù)器 32,具體的客戶端頁面31,搭建在客戶端服務(wù)器32之上,是認(rèn)證用戶可以通過瀏覽器訪問的 TOB認(rèn)證頁面,具體包括輸入模塊311,用戶登錄認(rèn)證時(shí),通過此模塊輸入用戶名及OTP,本實(shí)施例中,該模 塊是通過web編程提供的用戶輸入框。通信模塊312,用于將用戶輸入的用戶名及OTP傳送至客戶端服務(wù)器,并接收認(rèn)證 結(jié)果及提示信息。本實(shí)施例中,該模塊按照http協(xié)議方式實(shí)現(xiàn),完成數(shù)據(jù)傳輸。顯示模塊313,用于在登錄過程中,向用戶顯示認(rèn)證結(jié)果及提示信息。本實(shí)施例中, 該模塊是通過web編程提供的文本顯示框或彈出式提示對話框??蛻舳朔?wù)器32,具體包括通信模塊321,用于與客戶端頁面和認(rèn)證服務(wù)器的數(shù)據(jù)交互。具體的,一方面用于 接收客戶端頁面31發(fā)送來的用戶名及OTP,并將其封裝成規(guī)定格式的認(rèn)證數(shù)據(jù)包;另一方 面用于將所述認(rèn)證數(shù)據(jù)包發(fā)送至認(rèn)證服務(wù)器5,并接收認(rèn)證服務(wù)器5返回的認(rèn)證結(jié)果,同時(shí) 將認(rèn)證結(jié)果反饋至客戶端頁面31。本實(shí)施例中,該模塊的核心功能在于將用戶名和OTP按 照規(guī)定格式封裝數(shù)據(jù)包,具體選擇RADIUS數(shù)據(jù)包格式。存儲模塊322,用于存儲用戶名及其他用戶信息。具體的,用戶名應(yīng)與認(rèn)證服務(wù)器 存儲的用戶名一一對應(yīng),且每個(gè)用戶之間互不相同;用戶信息包括姓名、聯(lián)系方式、昵稱等, 可根據(jù)實(shí)際應(yīng)用場景選擇。本實(shí)施例中,該模塊是通過MySql、SqlSever、OracIe等現(xiàn)有大 型數(shù)據(jù)庫系統(tǒng)中的任意一種來實(shí)現(xiàn),本實(shí)施例中選擇MySql數(shù)據(jù)庫,在此基礎(chǔ)之上完成對 用戶名及用戶信息的存儲。用戶有效性驗(yàn)證模塊323,用于當(dāng)用戶提交用戶名和OTP后,在所述存儲模塊322 中查找用戶提交的用戶名,如未查找到,則向客戶端頁面31返回用戶名無效的提示信息, 客戶端頁面31再通過顯示模塊313將此提示信息顯示給用戶。本實(shí)施例中,該模塊通過數(shù) 據(jù)庫查找語句找到對應(yīng)用戶信息,判斷其是否有效。綁定和添加處理模塊324 用于處理管理員提出的綁定和添加操作請求。具體的 綁定和添加方法通過軟件編程實(shí)現(xiàn),其方法已在“一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn) 證方法”中述及。管理系統(tǒng)4提供管理員管理操作,包括管理系統(tǒng)頁面41和管理系統(tǒng)服務(wù)器42,具 體的管理系統(tǒng)頁面41,搭建在管理系統(tǒng)服務(wù)器42之上,是管理員可以通過瀏覽器訪問 的TOB管理頁面,具體包括輸入模塊411,用于管理員登錄時(shí)輸入管理員賬號和密碼,也用于管理員進(jìn)行管理操作時(shí)輸入必要信息。本實(shí)施例中,該模塊是通過web編程提供的用戶輸入框。通信模塊412,用于將管理員輸入的管理員賬號傳送至管理系統(tǒng)服務(wù)器,并接收認(rèn) 證結(jié)果及其他提示信息。本實(shí)施例中,該模塊按照http協(xié)議方式實(shí)現(xiàn),完成數(shù)據(jù)傳輸。添加與綁定模塊413,用于完成新用戶的添加和令牌與其所有者用戶的綁定操作。 本實(shí)施例中其是通過web編程提供的用戶輸入框,用于輸入必要信息。
信息修改模塊414,用于刪除一個(gè)用戶,也用于修改用戶信息。具體的,用戶信息包 括令牌使用狀態(tài),認(rèn)證次數(shù)(counter)、用戶聯(lián)系方式,OTP生成要素,認(rèn)證次數(shù)等,可根據(jù) 具體應(yīng)用場景選擇。日志模塊415,用于查看管理系統(tǒng)的管理員操作記錄。本實(shí)施例中,該模塊是通過 web編程提供的文本框和表格,顯示管理員操作信息。重同步模塊416,用于當(dāng)硬件令牌的觸發(fā)次數(shù)與認(rèn)證服務(wù)器的認(rèn)證成功次數(shù)的差 值超過規(guī)定限度時(shí),由管理員將所述硬件令牌的觸發(fā)次數(shù)與所述認(rèn)證服務(wù)器的認(rèn)證成功次 數(shù)重新設(shè)置為相等。具體的包括本發(fā)明技術(shù)方案的系統(tǒng)管理過程中的大窗口重同步和小窗 口重同步,具體實(shí)現(xiàn)方式在技術(shù)方案中已經(jīng)闡述。管理系統(tǒng)服務(wù)器42,具體包括通信模塊421 用于與管理系統(tǒng)頁面和認(rèn)證服務(wù)器進(jìn)行數(shù)據(jù)交互。具體的,一方面 用于綁定操作時(shí)向客戶端服務(wù)器32和認(rèn)證服務(wù)器5發(fā)送用戶信息;另一方面用于向認(rèn)證服 務(wù)器5發(fā)送管理操作請求數(shù)據(jù)包,并接收操作處理結(jié)果。同時(shí),用于接收管理員登錄時(shí)傳來 的管理員用戶名和密碼,并向管理系統(tǒng)頁面41發(fā)送管理員登錄認(rèn)證結(jié)果。本實(shí)施例中,該 模塊核心在于其與管理系統(tǒng)頁面的數(shù)據(jù)交互通過http協(xié)議完成,其與客戶端服務(wù)器和認(rèn) 證服務(wù)器的數(shù)據(jù)交互通過事先規(guī)定的數(shù)據(jù)包格式完成,優(yōu)選的,該數(shù)據(jù)包格式為RADIUS數(shù) 據(jù)包格式。存儲模塊422 用于存儲管理員賬號、密碼及與管理員相關(guān)聯(lián)的必要信息。該模 塊是通過MySql、SqlSever、Oracle等現(xiàn)有大型數(shù)據(jù)庫系統(tǒng)中的任意一種來實(shí)現(xiàn),本實(shí)施例 中,具體選擇MySql數(shù)據(jù)庫,在此基礎(chǔ)之上完成對管理員賬號、密碼及管理員相關(guān)信息的存 儲。操作請求處理模塊423 用于將所述管理系統(tǒng)頁面提出的各種操作請求連同必要 信息封裝成規(guī)定格式的認(rèn)證數(shù)據(jù)包。本實(shí)施例中,該模塊的核心在于將操作請求封裝成為 規(guī)定格式數(shù)據(jù)包,優(yōu)選的,為RADIUS數(shù)據(jù)包格式。管理員登錄模塊424 管理員在進(jìn)行管理操作之前,必須登錄管理系統(tǒng),管理員通 過管理系統(tǒng)頁面41輸入管理員用戶名和管理員密碼,發(fā)送至管理系統(tǒng)服務(wù)器42,然后管理 員登錄模塊424驗(yàn)證管理員登錄時(shí)輸入的賬號和密碼,如果驗(yàn)證成功,則允許管理員進(jìn)入 管理系統(tǒng),并向管理系統(tǒng)頁面返回登錄成功信息;如果認(rèn)證失敗,則拒絕管理員進(jìn)入管理系 統(tǒng),并向管理系統(tǒng)頁面返回登錄失敗信息。本實(shí)施例中,該模塊利用數(shù)據(jù)庫查詢語句獲取存 儲模塊中的管理員賬戶信息,并驗(yàn)證通信模塊接收到的管理員賬號和密碼是否與所獲信息 匹配。認(rèn)證服務(wù)器5是認(rèn)證系統(tǒng)的核心部分,用戶認(rèn)證請求和管理操作請求都要通過認(rèn) 證服務(wù)器的處理才能最終完成。具體包括通信模塊51 用于接收客戶端認(rèn)證數(shù)據(jù)包并向客戶端反饋認(rèn)證結(jié)果,同時(shí)用于接收管理系統(tǒng)的管理員操作請求并向管理系統(tǒng)反饋操作結(jié)果。本實(shí)施例中,該模塊核心在于 將發(fā)送來的RADIUS數(shù)據(jù)包拆分,獲得其中數(shù)據(jù),并將結(jié)果封裝成為RADIUS數(shù)據(jù)包,進(jìn)行反 饋。存儲模塊52 用于存儲令牌序列號以及與其相關(guān)聯(lián)的用戶名(UID),令牌使用狀 態(tài),認(rèn)證次數(shù)(counter)、用戶聯(lián)系方式,OTP生成要素,認(rèn)證次數(shù)等。所述用戶名要保證每 個(gè)用戶之間互不相同。該模塊是通過MySql、SqlSever、OraCle等現(xiàn)有大型數(shù)據(jù)庫系統(tǒng)中的 任意一種來實(shí)現(xiàn),本實(shí)施例中,具體選擇MySql數(shù)據(jù)庫,在此基礎(chǔ)之上完成對令牌序列號及 其他相關(guān)信息的存儲。認(rèn)證處理模塊53 用于處理用戶的登錄認(rèn)證請求。當(dāng)通信模塊51收到客戶端服 務(wù)器32發(fā)來的認(rèn)證數(shù)據(jù)包后,認(rèn)證處理模塊53從認(rèn)證數(shù)據(jù)包提取用戶名、用戶OTP,判斷所 述用戶名是否存在,如果不存在,則返回認(rèn)證用戶不存在;如果所述用戶名存在,則通過用 戶名在存儲模塊52中查找對應(yīng)的OTP生成要素和認(rèn)證次數(shù),計(jì)算臨時(shí)OTP,并將臨時(shí)OTP與 從認(rèn)證數(shù)據(jù)包提取的用戶OTP進(jìn)行比較,如果匹配則通過通信模塊51通知客戶端服務(wù)器32 認(rèn)證成功;如果不匹配,則通過通信模塊51通知客戶端服務(wù)器32用戶認(rèn)證失敗,然后再由 認(rèn)證服務(wù)器32將認(rèn)證結(jié)果反饋至客戶端頁面31。本實(shí)施例中,該模塊一方面獲取RADIUS 數(shù)據(jù)包內(nèi)容,另一方面通過數(shù)據(jù)庫查詢語句獲取存儲模塊中的必要信息。添加與綁定處理模塊54 用于處理管理員提出的綁定和添加操作請求。重同步處理模塊55 用于處理重同步操作請求。具體的,分為小窗口重同步和大 窗口重同步,小窗口重同步無需管理員直接參與,管理員通過配置文件等方式預(yù)先設(shè)置小 窗口大小R,當(dāng)進(jìn)行認(rèn)證操作時(shí),如果用戶OTP(也就是硬件令牌1提供的OTP)和認(rèn)證服務(wù) 器5計(jì)算得到的臨時(shí)OTP不匹配,那么認(rèn)證服務(wù)器5將認(rèn)證次數(shù)加一后重新計(jì)算0ΤΡ,再與 用戶OTP進(jìn)行比較,如果匹配,則小窗口重同步成功,同時(shí)返回認(rèn)證成功,如果不匹配則重 復(fù)上述過程。此過程最多重復(fù)R次,如果在R次之內(nèi)未出現(xiàn)兩個(gè)OTP匹配的情況,那么小窗 口重同步失敗,需要進(jìn)行大窗口重同步。大窗口重同步需要有管理員完成,管理員通過硬件 令牌1讀取兩個(gè)連續(xù)的0ΤΡ,按照先后次序輸入管理系統(tǒng)頁面41,并發(fā)送至管理系統(tǒng)服務(wù)器 42,進(jìn)而傳送至認(rèn)證服務(wù)器5。認(rèn)證服務(wù)器5重復(fù)計(jì)算0ΤΡ,并將認(rèn)證次數(shù)加一,反復(fù)執(zhí)行此 操作,直到有兩個(gè)連續(xù)的OTP與管理員傳來的兩個(gè)OTP均匹配,則大窗口重同步成功。參見圖2、圖3、圖4,本發(fā)明實(shí)施例提供了一種用于B/S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn) 證方法,包括系統(tǒng)初始化、用戶登錄認(rèn)證及系統(tǒng)管理。下面一一進(jìn)行闡述參見圖2,是系統(tǒng)初始化流程圖,具體包括步驟201,硬件令牌在出廠后,由廠家為每個(gè)硬件令牌分配唯一的硬件序列號 (SN),用于標(biāo)識不同的硬件令牌。步驟202,由令牌分發(fā)人員在終端機(jī)上運(yùn)行初始化軟件,輸入“SN”和“生成因子”, 初始化軟件通過此兩者計(jì)算出OTP生成要素。其中,令牌分發(fā)人員可以是專門的令牌分發(fā)機(jī)構(gòu)成員,也可以是認(rèn)證系統(tǒng)使用方 的管理員,根據(jù)具體應(yīng)用場景選擇。步驟203,通過令牌燒寫器將硬件令牌和終端機(jī)相連,并借助于初始化軟件將步驟 202中所得的OTP生成要素存儲至硬件令牌中,同時(shí)將硬件令牌中的觸發(fā)次數(shù)設(shè)置為0。其中,觸發(fā)次數(shù)預(yù)先存儲在硬件令牌內(nèi)。
步驟204,用戶向令牌分發(fā)人員申請獲取硬件令牌,得到新的硬件令牌后通過指紋 模塊將用戶指紋信息存儲至硬件令牌,將用戶與其所有的令牌唯一對應(yīng),不能提供正確指 紋則不能開啟硬件令牌,防止令牌丟失后被他人冒用。步驟205,管理員通過管理系統(tǒng)輸入SN、用戶名(UID)、OTP生成要素等必要信息, 發(fā)送至客戶端服務(wù)器和認(rèn)證服務(wù)器,并提出綁定和添加操作請求。 其中每個(gè)硬件令牌的SN各不相同,每個(gè)用戶的UID也各不相同,因此SN和UID的 一一對應(yīng)關(guān)系將用戶名和硬件令牌綁定,同時(shí)OTP生成要素通過SN得到,因此保證每個(gè)硬 件令牌和用戶對應(yīng)的OTP生成要素也各不相同。必要信息是指令牌使用狀態(tài)及用戶聯(lián)系方 式等個(gè)人信息,根據(jù)實(shí)際應(yīng)用場景選擇。步驟206,客戶端服務(wù)器和認(rèn)證服務(wù)器收到綁定和添加操作請求后,分別在各自的 存儲模塊中添加新用戶信息,按照SN和UID的對應(yīng)關(guān)系完成綁定和添加操作,認(rèn)證次數(shù)置 為0,將令牌使用狀態(tài)置為正常。其中認(rèn)證次數(shù)是認(rèn)證服務(wù)器端用于計(jì)算臨時(shí)OTP所用的一個(gè)數(shù)據(jù),每認(rèn)證成功一 次,其值自動加一,具體意義在認(rèn)證流程中再做詳細(xì)解釋。至此,初始化工作完成。參見圖3,,是用戶登錄認(rèn)證流程圖,具體包括步驟301,用戶點(diǎn)擊硬件令牌上的開機(jī)按鈕,硬件令牌顯示屏?xí)崾居脩籼峁┲讣y 信息,然后用戶通過指紋模塊提供自己的指紋信息,以用硬件令牌驗(yàn)證。步驟302,硬件令牌驗(yàn)證用戶提供的指紋信息與初始化階段注冊的指紋信息是否 匹配。步驟303,如果步驟302中的指紋驗(yàn)證結(jié)果為不匹配,則進(jìn)入步驟303,自動關(guān)閉硬 件令牌,用戶無法繼續(xù)使用。步驟304,如果步驟302中的指紋驗(yàn)證結(jié)果為匹配,則進(jìn)入步驟304,令牌成功開 啟,同時(shí),硬件令牌的顯示屏上提示用戶觸發(fā)生成OTP。步驟305,用戶點(diǎn)擊硬件令牌上的觸發(fā)按鈕,以便獲得登錄認(rèn)證時(shí)所用的用戶 OTP。步驟306,硬件令牌在存儲模塊中獲得“OTP生成要素”和“當(dāng)前觸發(fā)此處”,通過這 兩者計(jì)算用戶0ΤΡ,并通過顯示屏向用戶展示本次計(jì)算所得的用戶OTP。步驟307,用戶讀取OTP,并通過客戶端頁面輸入用戶名和讀取的用戶0ΤΡ,發(fā)送至 客戶端服務(wù)器。步驟308,客戶端服務(wù)器接收到用戶輸入的用戶名和用戶OTP后,在存儲模塊中查 找接收到的用戶名,判斷其是否存在。步驟309,如果步驟308中的判斷結(jié)果是用戶名不存在,則進(jìn)入步驟309,返回用戶 名錯(cuò)誤信息,本次操作結(jié)束。步驟310,如果步驟308中的判斷結(jié)果是用戶名存在,則進(jìn)入步驟310,客戶端服務(wù) 器將接收到的用戶名和用戶OTP按照預(yù)先規(guī)定的認(rèn)證數(shù)據(jù)包格式封裝,并傳送至認(rèn)證服務(wù)
O其中,所述預(yù)先規(guī)定的認(rèn)證數(shù)據(jù)包格式是指在系統(tǒng)設(shè)計(jì)階段,在客戶端服務(wù)器和 認(rèn)證服務(wù)期間協(xié)商的數(shù)據(jù)傳輸規(guī)則,在這種規(guī)則的約束下,數(shù)據(jù)傳輸雙方才能夠從數(shù)據(jù)包的特定部分獲得所需信息。具體可選用RADIUS協(xié)議數(shù)據(jù)包格式等。步驟311,認(rèn)證服務(wù)器受到認(rèn)證數(shù)據(jù)包后,對其進(jìn)行解析,獲得用戶名及用戶OTP, 同時(shí)查找用戶令牌使用狀態(tài),判斷此狀態(tài)是否處于正常。步驟312,如果步驟311中的判斷結(jié)果為令牌使用狀態(tài)是掛失、凍結(jié)等非正常狀 態(tài),則返回令牌使用狀態(tài)不正常,同時(shí)提示用戶通過管理員進(jìn)行必要處理。本次操作結(jié)束。步驟313,如果步驟311中的判斷結(jié)果為令牌使用狀態(tài)正常,則認(rèn)證服務(wù)器獲取該 用戶名對應(yīng)的認(rèn)證次數(shù)和OTP生成要素,計(jì)算臨時(shí)OTP。其中認(rèn)證次數(shù),應(yīng)當(dāng)與硬件令牌中的觸發(fā)次數(shù)在一定范圍內(nèi)同步,如前所述,用戶 認(rèn)證是否通過,決定于硬件令牌計(jì)算所得的用戶OTP和認(rèn)證服務(wù)器計(jì)算所得的臨時(shí)OTP是 否匹配,硬件令牌和認(rèn)證服務(wù)器中的OTP生成要素是相同的,因此,兩者計(jì)算所得的OTP是 否匹配就決定于硬件令牌中的觸發(fā)次數(shù)和認(rèn)證服務(wù)器中的認(rèn)證次數(shù)是否同步,因此,硬件 令牌每計(jì)算一次客戶0ΤΡ,其內(nèi)的觸發(fā)次數(shù)就加一,同樣,認(rèn)證服務(wù)器每認(rèn)證成功一次其內(nèi) 的認(rèn)證次數(shù)就加一。步驟314,認(rèn)證服務(wù)器判斷臨時(shí)OTP與用戶OTP是否匹配。步驟315,如果步驟314的判斷結(jié)果為匹配,則返回認(rèn)證成功。認(rèn)證操作結(jié)束。步驟316,如果步驟314中的判斷結(jié)果為不匹配,那么則進(jìn)行小窗口重同步。其中小窗口重同步是是指硬件令牌觸發(fā)次數(shù)和認(rèn)證服務(wù)器認(rèn)證次數(shù)相差在小窗 口范圍之內(nèi)的重同步。具體地,管理員通過配置文件等方式預(yù)先設(shè)置小窗口大小R,當(dāng)進(jìn)行 認(rèn)證操作時(shí),如果用戶OTP (也就是硬件令牌提供的OTP)和臨時(shí)OTP (也就是認(rèn)證服務(wù)器計(jì) 算得到的OTP)不匹配,那么認(rèn)證服務(wù)器將認(rèn)證次數(shù)加一后重新計(jì)算臨時(shí)OTP,再與用戶OTP 進(jìn)行比較,如果匹配,則小窗口重同步成功,同時(shí)返回認(rèn)證成功,如果不匹配則重復(fù)上述過 程。此過程最多重復(fù)R次,如果在R次之內(nèi)未出現(xiàn)兩個(gè)OTP匹配的情況,那么小窗口重同步 失敗,需要進(jìn)行大窗口重同步。步驟317,判斷小窗口重同步是否成功。步驟318,如果步驟316中的判斷結(jié)果為不成功,則進(jìn)入步驟317,認(rèn)證服務(wù)器返回 認(rèn)證失敗信息,并通知用戶到管理員處進(jìn)行大窗口重同步。認(rèn)證操作結(jié)束。步驟319,如果步驟316中的判斷結(jié)果為小窗口重同步成功,則返回認(rèn)證成功,認(rèn) 證操作結(jié)束。至此,用戶登錄認(rèn)證流程結(jié)束。參見圖4,是系統(tǒng)管理流程圖,系統(tǒng)管理由管理員完成,具體包括步驟401,管理員進(jìn)行管理操作之前,通過管理系統(tǒng)頁面輸入管理員賬號和密碼, 發(fā)送至管理系統(tǒng)服務(wù)器。步驟402,管理系統(tǒng)服務(wù)器判斷管理員密碼是否正確。步驟403,如果步驟402中的判斷結(jié)果為管理員密碼錯(cuò)誤,則提示管理員登錄失 敗。步驟404,如果步驟402中的判斷結(jié)果為管理員密碼正確,則允許管理員進(jìn)入管理 系統(tǒng),執(zhí)行管理操作。步驟405,管理員按照用戶和系統(tǒng)的需求完成各種管理操作,并向客戶端服務(wù)器和 認(rèn)證服務(wù)器發(fā)送管理操作請求。
其中,管理操作包括,新用戶到來時(shí)的添加與綁定操作,用戶提出的信息修改操 作,令牌丟失時(shí)的掛失操作,硬件令牌的觸發(fā)次數(shù)和認(rèn)證服務(wù)器的認(rèn)證次數(shù)失步后的重同 步操作等,可根據(jù)具體應(yīng)用場景進(jìn)行具體設(shè)計(jì)。步驟406,客戶端服務(wù)器和認(rèn)證服務(wù)器收到管理操作請求后,按照具體要求完成步 驟405中提到的各種管理操作,并返回操作結(jié)果。至此,系統(tǒng)管理過程結(jié)束。 圖2,圖3,圖4展示的三種操作流程并不互相獨(dú)立存在。圖2初始化過程中的添 加與綁定操作和圖3登錄認(rèn)證過程中的大窗口重同步都需要用戶在管理員處通過圖4中的 步驟405和步驟406來完成。此處將三種操作流程分開陳述,更能反映出系統(tǒng)的總體結(jié)構(gòu), 能夠清晰明了的反應(yīng)系統(tǒng)各部分的具體工作方式,實(shí)際應(yīng)用中應(yīng)當(dāng)將這三者結(jié)合考慮。本實(shí)施例中,系統(tǒng)初始化過程、登錄認(rèn)證過程和系統(tǒng)管理過程的相互關(guān)系及具體 使用方式為所述系統(tǒng)初始化過程是登錄認(rèn)證過程的前提,因此,系統(tǒng)初始化過程中的各步驟 必須在登錄認(rèn)證過程之前完成且保證各步驟執(zhí)行的先后順序;系統(tǒng)管理過程不需要與系 統(tǒng)初始化過程和登錄認(rèn)證過程保證先后順序,其是在系統(tǒng)運(yùn)行過程中,由用戶針對使用過 程中遇到的各種問題和系統(tǒng)維護(hù)要求提出操作需求,并由管理員按照用戶需求執(zhí)行相應(yīng)操 作,同時(shí),系統(tǒng)管理過程與系統(tǒng)初始化過程相互交叉,即系統(tǒng)管理過程要參與系統(tǒng)初始化過 程中的用戶添加與綁定操作。參見圖5,圖6是本發(fā)明提供的兩種系統(tǒng)部署示意圖,均可用于多服務(wù)提供方共同 使用的場景。參見圖5,是認(rèn)證服務(wù)器由第三方統(tǒng)一維護(hù)的部署示意圖,在這種部署方式下,認(rèn) 證服務(wù)器只有一個(gè),由第三方機(jī)構(gòu)維護(hù),系統(tǒng)初始化過程由第三方機(jī)構(gòu)完成,計(jì)算OTP生成 要素所需的生成因子由第三方機(jī)構(gòu)統(tǒng)一分配。這種部署方式使得系統(tǒng)維護(hù)更為集中,部署 更為簡便,系統(tǒng)可靠性提高,但降低了各服務(wù)提供方的系統(tǒng)獨(dú)立性。參見圖6,是認(rèn)證服務(wù)器由服務(wù)提供方各自維護(hù)的部署示意圖,在這種部署方式 下,認(rèn)證服務(wù)器有多個(gè),每個(gè)服務(wù)提供方都有自己的認(rèn)證服務(wù)器,系統(tǒng)初始化過程由各服務(wù) 提供商各自完成。這樣的部署方式便于各方獨(dú)立管理自己的系統(tǒng),但是要在多處部署認(rèn)證 服務(wù)器,增加了系統(tǒng)部署的復(fù)雜性,同時(shí)不便于認(rèn)證服務(wù)器的統(tǒng)一維護(hù)。
權(quán)利要求
一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng),其特征在于該系統(tǒng)包括硬件令牌、初始化工具、客戶系統(tǒng)、管理系統(tǒng)和認(rèn)證服務(wù)器;它們相互之間的關(guān)系是初始化工具對剛出廠的硬件令牌完成初始化流程;硬件令牌為用戶提供認(rèn)證所需的OTP;用戶通過客戶系統(tǒng)輸入OTP并由客戶系統(tǒng)將該OTP按照規(guī)定數(shù)據(jù)包格式發(fā)送至認(rèn)證服務(wù)器;認(rèn)證服務(wù)器完成認(rèn)證過程決定是否認(rèn)證成功并將認(rèn)證結(jié)果返回至客戶系統(tǒng),最終反饋給用戶;管理系統(tǒng)在管理員的參與下完成系統(tǒng)管理和維護(hù),按照規(guī)定數(shù)據(jù)包格式向認(rèn)證服務(wù)器和客戶端服務(wù)器發(fā)送管理操作請求,認(rèn)證服務(wù)器和客戶端服務(wù)器接收請求,完成管理操作,并向管理系統(tǒng)返回操作結(jié)果;所述硬件令牌包括存儲模塊、OTP生成模塊、指紋模塊、顯示模塊和觸發(fā)模塊,各部分實(shí)現(xiàn)方式和相互關(guān)系是該存儲模塊,用于存儲OTP生成要素、觸發(fā)次數(shù)、用戶指紋信息;該OTP生成模塊,用于通過存儲模塊中的OTP生成要素和觸發(fā)次數(shù)計(jì)算生成OTP,生成OTP的算法采用HMAC SHA1算法;該指紋模塊,用于在用戶獲得硬件令牌是初始化指紋并將獲得的指紋信息存儲在存儲模塊中,以及在硬件令牌開啟時(shí)獲取用戶指紋信息,并驗(yàn)證其是否匹配;它選用任意一種指紋采集設(shè)備;該顯示模塊,用于向用戶顯示OTP生成模塊計(jì)算所得的OTP;該觸發(fā)模塊,通過此模塊觸發(fā)OTP生成模塊生成OTP;所述初始化工具包括初始化軟件和令牌燒寫器;各部分實(shí)現(xiàn)方式和相互關(guān)系是該初始化軟件,用于在令牌初始化時(shí),提供可視化工具;通過此模塊,輸入令牌序列號SN及生成因子,并計(jì)算OTP生成要素;軟件中通過一種雜湊算法計(jì)算OTP生成要素,該雜湊算法為SHA1或MD5算法;該令牌燒寫器,是一套硬件設(shè)備,用于將主機(jī)與硬件令牌相連接,向硬件令牌燒寫程序、將觸發(fā)次數(shù)初始化為0和注入所述初始化軟件計(jì)算所得的OTP生成要素;其相互連接關(guān)系是與主機(jī)端通過USB連線連接,與硬件令牌通過UART串口線連接,核心部分通過CH341芯片完成USB信號與UART信號的互相轉(zhuǎn)換;所述客戶系統(tǒng)包括客戶端頁面和客戶端服務(wù)器,其間關(guān)系是客戶端頁面搭建在客戶端服務(wù)器之上;該客戶端頁面,是認(rèn)證用戶可以通過瀏覽器訪問的WEB登錄頁面,它包括輸入模塊、通信模塊和顯示模塊,各部分實(shí)現(xiàn)方式和相互關(guān)系是該輸入模塊,用戶登錄認(rèn)證時(shí),通過此模塊輸入用戶名及OTP,它是通過web編程提供的用戶輸入框;該通信模塊,用于將用戶輸入的用戶名及用戶OTP發(fā)送至客戶端服務(wù)器,并接收認(rèn)證結(jié)果及提示信息;它按照http協(xié)議進(jìn)行數(shù)據(jù)傳輸;該顯示模塊,用于在登錄過程中,向用戶顯示客戶端服務(wù)器返回認(rèn)證結(jié)果及其他提示信息,它是通過web編程提供的文本顯示框或彈出式提示對話框;該客戶端服務(wù)器包括通信模塊、存儲模塊、用戶有效性驗(yàn)證模塊、綁定和添加處理模塊;各部分實(shí)現(xiàn)方式和相互關(guān)系是該通信模塊,同時(shí)用于與客戶端頁面和與認(rèn)證服務(wù)器的數(shù)據(jù)交互;一方面用于接收客戶端頁面發(fā)送來的用戶名和用戶OTP,并向認(rèn)證服務(wù)器發(fā)送認(rèn)證數(shù)據(jù)包,所述認(rèn)證數(shù)據(jù)包就是具有規(guī)定格式的包含用戶名和用戶OTP的數(shù)據(jù)包;另一方面用于接收并向客戶端頁面轉(zhuǎn)發(fā)認(rèn)證服務(wù)器發(fā)來的用戶認(rèn)證結(jié)果;該通信模塊的核心功能在于將用戶名和OTP按照規(guī)定格式封裝數(shù)據(jù)包,具體可以是RADIUS數(shù)據(jù)包格式;該存儲模塊,用于存儲用戶名及其他與實(shí)際應(yīng)用場景緊密相關(guān)的用戶信息,所述用戶名與認(rèn)證服務(wù)器的存儲模塊中存儲的用戶名一一對應(yīng),且每個(gè)用戶之間互不相同;它是通過MySql、SqlSever、Oracle數(shù)據(jù)庫中的一種來實(shí)現(xiàn);該用戶有效性驗(yàn)證模塊用于當(dāng)用戶提交用戶名和OTP后,在所述存儲模塊中查找用戶提交的用戶名,如未查找到,則向客戶端頁面返回用戶名無效的提示信息;它在軟件中通過數(shù)據(jù)庫查找語句找到對應(yīng)用戶信息,判斷其是否有效;該綁定和添加處理模塊,用于處理管理員提出的綁定和添加操作請求;具體的綁定和添加方法通過軟件編程實(shí)現(xiàn);所述管理系統(tǒng)包括管理系統(tǒng)頁面和管理系統(tǒng)服務(wù)器,其間關(guān)系是管理系統(tǒng)頁面搭建在管理系統(tǒng)服務(wù)器之上;該管理系統(tǒng)頁面,是管理員可以通過瀏覽器訪問的WEB管理頁面,它包括輸入模塊、通信模塊、添加與綁定模塊、信息修改模塊、日志模塊和重同步模塊;各部分實(shí)現(xiàn)方式和相互關(guān)系是該輸入模塊,用于管理員登錄時(shí)輸入管理員賬號和密碼,也用于管理員進(jìn)行管理操作時(shí)輸入必要信息;它是通過web編程提供的用戶輸入框;該通信模塊,用于將管理員輸入的管理員賬號和密碼傳送至管理系統(tǒng)服務(wù)器,并接收認(rèn)證結(jié)果及其他提示信息;也用于將管理員操作請求和必要數(shù)據(jù)傳送至管理系統(tǒng)服務(wù)器,它按照http協(xié)議進(jìn)行數(shù)據(jù)傳輸;該添加與綁定模塊,用于完成新用戶的添加和令牌與其所有者用戶的綁定操作,它是通過web編程提供的用戶輸入框,用于輸入必要信息;該信息修改模塊,用于刪除一個(gè)用戶,也用于修改各種用戶信息;它是通過web編程提供的用戶輸入框,用于輸入修改的用戶信息;以及通過web編程提供的文本框和表格,用于顯示從數(shù)據(jù)庫獲取的現(xiàn)有用戶信息;同時(shí)通過數(shù)據(jù)庫操作完成刪除或信息修改;該日志模塊,用于查看管理系統(tǒng)的管理員操作記錄,它是通過web編程提供的文本框和表格,顯示管理員操作信息;該重同步模塊,用于當(dāng)硬件令牌的觸發(fā)次數(shù)與認(rèn)證服務(wù)器的認(rèn)證成功次數(shù)的差值超過規(guī)定限度時(shí),由管理員將所述硬件令牌的觸發(fā)次數(shù)與所述認(rèn)證服務(wù)器的認(rèn)證成功次數(shù)重新設(shè)置為同步;它通過編程實(shí)現(xiàn),核心部分為重同步算法;該管理系統(tǒng)服務(wù)器包括通信模塊、存儲模塊、操作請求處理模塊和管理員登錄模塊,各部分實(shí)現(xiàn)方式和相互關(guān)系是該通信模塊,同時(shí)用于與管理系統(tǒng)頁面、客戶端服務(wù)器和認(rèn)證服務(wù)器的數(shù)據(jù)交互;一方面用于綁定操作時(shí)向客戶端服務(wù)器和認(rèn)證服務(wù)器發(fā)送用戶信息;另一方面用于向認(rèn)證服務(wù)器發(fā)送管理操作請求數(shù)據(jù)包,并接收操作處理結(jié)果;也用于接收管理員登錄時(shí)管理系統(tǒng)頁面發(fā)送來的管理員賬號和密碼,并向管理系統(tǒng)頁面發(fā)送管理員登錄認(rèn)證結(jié)果;它通過軟件編程實(shí)現(xiàn),其核心在于其與管理系統(tǒng)頁面的數(shù)據(jù)交互通過http協(xié)議完成,其與向客戶端服務(wù)器和認(rèn)證服務(wù)器的數(shù)據(jù)交互通過事先規(guī)定的數(shù)據(jù)包格式完成,該數(shù)據(jù)包格式為RADIUS數(shù)據(jù)包格式;該存儲模塊,用于存儲管理員賬號、密碼、日志信息及與管理員相關(guān)聯(lián)的必要信息,它是通過MySql、SqlSever、Oracle數(shù)據(jù)庫中的一種來實(shí)現(xiàn);該操作請求處理模塊,用于將通信模塊接收到的,來自管理系統(tǒng)頁面提出的各種操作請求連同必要信息封裝成規(guī)定格式的認(rèn)證數(shù)據(jù)包,再通過通信模塊發(fā)送出去,它通過軟件編程實(shí)現(xiàn),其核心在于將操作請求封裝成為規(guī)定格式數(shù)據(jù)包,該數(shù)據(jù)包格式為RADIUS數(shù)據(jù)包格式;該管理員登錄模塊,用于驗(yàn)證通信模塊接收到的管理員賬號和密碼,如果驗(yàn)證成功,則允許管理員進(jìn)入管理系統(tǒng),并向管理系統(tǒng)頁面返回登錄成功信息;如果認(rèn)證失敗,則拒絕管理員進(jìn)入管理系統(tǒng),并向管理系統(tǒng)頁面返回登錄失敗信息;它通過軟件編程實(shí)現(xiàn),利用數(shù)據(jù)庫查詢語句獲取存儲模塊中的管理員賬戶信息,并驗(yàn)證通信模塊接收到的管理員賬號和密碼是否與所獲信息匹配;所述認(rèn)證服務(wù)器包括通信模塊、存儲模塊、認(rèn)證處理模塊、綁定和添加處理模塊和重同步處理模塊,各部分實(shí)現(xiàn)方式和相互關(guān)系是該通信模塊,用于接收客戶端服務(wù)器發(fā)來的認(rèn)證數(shù)據(jù)包并向客戶端服務(wù)器反饋認(rèn)證結(jié)果,同時(shí)用于接收管理系統(tǒng)服務(wù)器發(fā)送來的管理員操作請求并向管理系統(tǒng)服務(wù)器反饋操作結(jié)果;它通過軟件編程實(shí)現(xiàn),其核心在于將發(fā)送來的RADIUS數(shù)據(jù)包拆分,獲得其中數(shù)據(jù),并將結(jié)果封裝成為RADIUS數(shù)據(jù)包,進(jìn)行反饋;該存儲模塊,用于存儲令牌序列號即SN以及與其相關(guān)聯(lián)的用戶名即UID,令牌使用狀態(tài),認(rèn)證次數(shù)即counter、用戶聯(lián)系方式,OTP生成要素,認(rèn)證次數(shù);所述用戶名要保證每個(gè)用戶之間互不相同,它是通過MySql、SqlSever、Oracle數(shù)據(jù)庫中的一種來實(shí)現(xiàn);該認(rèn)證處理模塊,用于處理用戶的登錄認(rèn)證請求;所述認(rèn)證處理模塊從通信模塊獲得的認(rèn)證數(shù)據(jù)包提取用戶名、用戶OTP,判斷所述用戶名是否存在,如果不存在,則返回認(rèn)證用戶不存在信息;如果所述用戶名存在,則通過用戶名在存儲模塊中查找對應(yīng)的OTP生成要素和認(rèn)證次數(shù),計(jì)算臨時(shí)OTP,并將臨時(shí)OTP與從認(rèn)證數(shù)據(jù)包提取的用戶OTP進(jìn)行比較,如果匹配則通過通信模塊通知用戶認(rèn)證成功;如果不匹配,則通過通信模塊通知客戶端用戶認(rèn)證失?。凰峭ㄟ^軟件編程實(shí)現(xiàn),一方面獲取RADIUS數(shù)據(jù)包內(nèi)容,另一方面通過數(shù)據(jù)庫查詢語句獲取存儲模塊中的必要信息;該綁定和添加處理模塊,用于處理管理員提出的綁定操作請求;該重同步處理模塊用于硬件令牌的觸發(fā)次數(shù)與認(rèn)證服務(wù)器的認(rèn)證次數(shù)發(fā)生失步,用戶向管理員提出重同步要求是,處理重同步操作請求;它是通過編程實(shí)現(xiàn),核心部分為綁定和添加方法。
2. 一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證方法,其特征在于該方法包括了系統(tǒng)初 始化過程、登錄認(rèn)證過程和系統(tǒng)管理過程,具體步驟如下步驟一由令牌分發(fā)人員運(yùn)行初始化軟件,以“SN+生成因子”為輸入,通過某種雜湊算 法計(jì)算得到OTP生成要素;然后通過令牌燒寫器將主機(jī)與硬件令牌相連,將OTP生成要素存 儲至令牌內(nèi),并將認(rèn)證次數(shù)即counter初始化為0 ;步驟二 用戶向令牌分發(fā)部門填寫注冊表單,申請獲取一個(gè)新令牌,然后用戶通過令牌 上的指紋模塊在硬件令牌中注冊存儲自己的指紋信息;步驟三用戶獲得令牌后,在管理員處正確輸入令牌序列號以及令牌所有者對應(yīng)的用 戶名,將其用戶信息和令牌初始信息添加至客戶端服務(wù)器和認(rèn)證服務(wù)器的存儲模塊中,完 成綁定和添加過程;步驟四用戶點(diǎn)擊硬件令牌上的開機(jī)按鈕,并通過指紋模塊提供指紋信息;如果指紋 匹配則成功開啟硬件令牌;如果指紋不匹配,則令牌自動關(guān)閉;步驟五如果步驟四中成功開啟令牌,用戶點(diǎn)擊硬件令牌上的動態(tài)口令觸發(fā)按鈕,硬件 令牌通過存儲的OTP生成要素和當(dāng)前觸發(fā)次數(shù)經(jīng)過HMAC-SHA1算法計(jì)算得到OTP ;同時(shí),用 戶通過客戶登錄頁面輸入用戶名及所得動態(tài)口令,并傳送至客戶端服務(wù)器;步驟六客戶端服務(wù)器將用戶名、動態(tài)口令信息按照約定數(shù)據(jù)包格式封裝成認(rèn)證數(shù)據(jù) 包,并傳送至認(rèn)證服務(wù)器;該數(shù)據(jù)包格式為RADIUS數(shù)據(jù)包;步驟七認(rèn)證服務(wù)器處理認(rèn)證數(shù)據(jù)包,獲取用戶名及用戶OTP,并在存儲模塊中查找所 述用戶對應(yīng)的令牌使用狀態(tài),如果令牌使用狀態(tài)為掛失或凍結(jié)等非正常狀態(tài),則返回令牌 狀態(tài)不正常信息,如果令牌使用狀態(tài)為正常,則獲取用戶名對應(yīng)的OTP生成要素和認(rèn)證次 數(shù)即counter,并以此兩者為基礎(chǔ),通過某種密碼算法計(jì)算臨時(shí)OTP,并將其與客戶端服務(wù) 器傳來的動態(tài)口令進(jìn)行比較,如果匹配,則返回認(rèn)證成功信息,同時(shí)將認(rèn)證次數(shù)自動加一; 如果不匹配,則返回認(rèn)證失敗信息;步驟八管理員登錄管理系統(tǒng),根據(jù)具體需求進(jìn)行用戶添加與綁定,用戶信息修改,令 牌重同步的管理操作;上述八個(gè)步驟中,,系統(tǒng)初始化過程是登錄認(rèn)證過程的前提,因此,系統(tǒng)初始化過程必 須在登錄認(rèn)證過程之前,即步驟一至步驟七應(yīng)保證嚴(yán)格的先后順序;系統(tǒng)管理過程,即步驟 八,并不與其他步驟保證先后順序,只在用戶提出相應(yīng)需求時(shí),才有管理員執(zhí)行該步驟的操 作,同時(shí),系統(tǒng)管理過程與系統(tǒng)初始化過程相互交叉,即系統(tǒng)管理過程要參與系統(tǒng)初始化過 程中的用戶添加與綁定。
3.根據(jù)權(quán)利要求1所述的一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng),其特征在于所述用于存儲OTP生成要素、觸發(fā)次數(shù)、用戶指紋信息的該存儲模塊,為微控制器 S3F8285的內(nèi)置flash存儲器。
4.根據(jù)權(quán)利要求1所述的一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng),其特征在于所述用于向用戶顯示OTP生成模塊計(jì)算所得的OTP的該顯示模塊,為東莞市嘉田公司 設(shè)計(jì)定制的專用液晶顯示屏。
5.根據(jù)權(quán)利要求1所述的一種用于B\S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng),其特征在于所述通過此模塊觸發(fā)OTP生成模塊生成OTP的該觸發(fā)模塊,為東莞市嘉田公司開模設(shè) 計(jì)定制的按鍵。
全文摘要
一種用于B/S網(wǎng)絡(luò)結(jié)構(gòu)的一次性口令認(rèn)證系統(tǒng)和認(rèn)證方法,其認(rèn)證系統(tǒng)包括硬件令牌、初始化工具、客戶系統(tǒng)、管理系統(tǒng)和認(rèn)證服務(wù)器。初始化工具對硬件令牌完成初始化流程;硬件令牌為用戶提供認(rèn)證所需的OTP;用戶向客戶系統(tǒng)輸入OTP并由客戶系統(tǒng)將該OTP發(fā)送至認(rèn)證服務(wù)器;認(rèn)證服務(wù)器完成認(rèn)證過程并將結(jié)果返回至客戶系統(tǒng),最終反饋給用戶;管理系統(tǒng)完成系統(tǒng)管理和維護(hù),并按規(guī)定向認(rèn)證服務(wù)器和客戶端服務(wù)器發(fā)送管理操作請求;認(rèn)證服務(wù)器和客戶端服務(wù)器接收請求,完成操作并返回操作結(jié)果。其認(rèn)證方法包括系統(tǒng)初始化,登錄認(rèn)證和系統(tǒng)管理,它有八大步驟。本發(fā)明通過瀏覽器頁面方式就能完成用戶認(rèn)證和系統(tǒng)管理,使用方便,便于維護(hù),它具有實(shí)用價(jià)值和廣闊地應(yīng)用前景。
文檔編號H04L29/06GK101977202SQ20101053908
公開日2011年2月16日 申請日期2010年11月11日 優(yōu)先權(quán)日2010年11月11日
發(fā)明者修春娣, 劉建偉, 尚濤, 李為宇, 毛劍, 鄭志明 申請人:北京航空航天大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1