一種多因子身份驗(yàn)證方法及其系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種多因子身份驗(yàn)證方法及其系統(tǒng)。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,通過互聯(lián)網(wǎng)提供的互聯(lián)網(wǎng)應(yīng)用也越來越多。用戶在 訪問這些互聯(lián)網(wǎng)應(yīng)用時(shí),如訪問電子郵件、訪問即時(shí)通信應(yīng)用、訪問網(wǎng)站等,為了保證訪問 的安全性,各互聯(lián)網(wǎng)應(yīng)用的提供方通常需要在用戶登錄時(shí)對用戶進(jìn)行身份驗(yàn)證。
[0003] 從基本原理角度,根據(jù)認(rèn)證因子的不同,身份認(rèn)證可分為三類:用戶所知道的信息 (比如口令);用戶所持有的物理介質(zhì),一般為令牌、智能卡等;用戶所具有的特征,即生物 特征認(rèn)證方式。針對多因子身份驗(yàn)證,目前國內(nèi)外采用的主要是用戶名/ 口令(用戶所知)+ 硬件(用戶所持有)。其中,靜態(tài)口令存在很多安全隱患,比如攻擊者在侵入服務(wù)器后對獲 取的用戶口令表采用口令猜測攻擊來獲取用戶口令;在遠(yuǎn)程登錄時(shí)則不能抵抗直接的網(wǎng)絡(luò) 竊聽,從而易遭受重放攻擊等。而動(dòng)態(tài)口令即在傳輸?shù)目诹铗?yàn)證信息,是動(dòng)態(tài)變化的。
[0004] 從計(jì)算開銷方面考慮,身份鑒別方案可分為兩類:基于非單向散列函數(shù)和基于單 向散列函數(shù)的方案。前者有以DES、RSA和EIGamal等進(jìn)行加密的方案,這類方案的主要局 限性是計(jì)算開銷大、配置較復(fù)雜等問題,因此不太適合某些受限制的應(yīng)用環(huán)境(比如用戶 的計(jì)算機(jī)配置較低的系統(tǒng))。以單向散列函數(shù)(如MD5和SHA-1)進(jìn)行加密的方案,由于具 有存儲(chǔ)、處理和傳輸開銷較小的優(yōu)點(diǎn)而被廣泛關(guān)注,但下面幾種常見的身份認(rèn)證協(xié)議存在 中間人攻擊等安全隱患。
[0005] 1)S/KEY。此方案中由于種子(seed)和迭代值(Seq)都是以明文形式在網(wǎng)絡(luò)上傳 輸,因此容易受到小數(shù)攻擊。另外用戶登錄N-I次后必須重新注冊,并且此方案的運(yùn)算量 大且在不同時(shí)間運(yùn)算量不平均,實(shí)用性不佳。
[0006] 2)CHAP(ChallengeHandshakeAuthenticationProtocol)。CHAP米用質(zhì)詢 / 響 應(yīng)方式進(jìn)行身份鑒別,通過三次握手來對用戶進(jìn)行周期性地驗(yàn)證登錄和訪問請求,這種方 案易受到內(nèi)部攻擊,口令猜測攻擊和中間人攻擊。
[0007] 綜合說來,多因子身份驗(yàn)證方法的現(xiàn)有技術(shù)存在如下問題:
[0008] 1.多因子認(rèn)證中,包含硬件因子,比如令牌、智能卡等會(huì)給認(rèn)證帶來以下問題:丟 失硬件導(dǎo)致無法認(rèn)證,引入的硬件與企業(yè)中原有Key發(fā)生沖突,增加企業(yè)成本(比如USB Key的缺點(diǎn)在于CA中心的部署和維護(hù)成本非常巨大)等。
[0009] 2.單向認(rèn)證方法無法抵抗中間人攻擊。用戶無法驗(yàn)證服務(wù)器身份,會(huì)存在服務(wù)器 被冒充的風(fēng)險(xiǎn)。
【發(fā)明內(nèi)容】
[0010] 為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供一種多因子身份驗(yàn)證方法,目的是提 高身份驗(yàn)證的安全性,可以應(yīng)用到具有客戶端/服務(wù)器端且保密性要求較高的身份驗(yàn)證系 統(tǒng)中。
[0011] 為了便于說明,本方法中所使用的符號(hào)說明如表1 :
[0012] 表1本發(fā)明所使用的符號(hào)及其含義說明
【主權(quán)項(xiàng)】
1. 一種多因子身份驗(yàn)證方法,包括注冊階段和認(rèn)證階段,具體包括如下步驟: (一) 注冊階段:設(shè)定當(dāng)前用戶為C,當(dāng)前用戶C通過設(shè)置用戶登錄名為Uc、登錄口令 為P。和登錄次數(shù)為N。進(jìn)行注冊,客戶端和服務(wù)器端S依次進(jìn)行如下操作: 1.1) 客戶端生成隨機(jī)數(shù)L,通過哈希函數(shù)計(jì)算得到注冊階段臨時(shí)變量1,將{U。,^}保 存;同時(shí)將{u。,Jj發(fā)送給服務(wù)器端; 1.2) 服務(wù)器端接收并保存{U。,Jj,采集得到客戶端硬件指紋信息F。,通過計(jì)算得到注 冊階段臨時(shí)變量J2,將{e,J 2}作為質(zhì)詢信息發(fā)送給客戶端;其中e為服務(wù)器S的公鑰; 1. 3)客戶端收到來自服務(wù)器端的質(zhì)詢信息,通過計(jì)算得到服務(wù)器身份鑒別的信息 注冊階段臨時(shí)變量叉和J 4;將丨Μ , 丨保存至本地硬盤;將{U。,N。,J3, Jj作為回應(yīng)服務(wù) 器端的質(zhì)詢的信息發(fā)送給服務(wù)器; 1.4) 服務(wù)器端接收來自客戶端傳遞的回應(yīng)信息,計(jì)算得到客戶端的身份鑒 別信息€和激活手機(jī)軟件的秘鑰信息Key ;經(jīng)過注冊,Pass是注冊成功信息;將 (%,I, G,C,&^}保存至服務(wù)器;將|pass,Key}發(fā)送給客戶端; 1.5) 客戶端接收{(diào)Pass,Key},用戶C將收到的Key輸入該用戶使用的手機(jī)激活軟件; (二) 認(rèn)證階段:用戶C在客戶端輸入用戶登錄名U。和用戶登錄口令P。,認(rèn)證階段包括 客戶端與服務(wù)器端雙向認(rèn)證和登錄關(guān)聯(lián),具體為如下操作: 2. 1)客戶端通過計(jì)算得到認(rèn)證階段客戶端的臨時(shí)變量MPK。2,將{U。、Kw KJ發(fā)送 給服務(wù)器端; 2.2) 服務(wù)器端驗(yàn)證客戶端信息:服務(wù)器端通過結(jié)合隨機(jī)數(shù)和硬件指紋,計(jì)算得到服務(wù) 器端質(zhì)詢信息{Ksl,K s2}發(fā)送給客戶端;所述客戶端信息包括用戶名U。、用戶口令P。、用戶使 用的計(jì)算機(jī)和用戶身份,所述用戶使用的計(jì)算機(jī)通過注冊時(shí)采集的硬件指紋來驗(yàn)證,所述 用戶身份通過注冊時(shí)用戶使用的手機(jī)來驗(yàn)證; 2. 3)客戶端驗(yàn)證服務(wù)器端:客戶端通過注冊時(shí)服務(wù)器返回的公鑰e,計(jì)算得到認(rèn)證階 段客戶端的臨時(shí)變量1(。3、1(。 4、1(。5和1(。6,將仞。,1(。3,1(。 4,1(。5,1(。6}作為回應(yīng)信息發(fā)送給服務(wù)器; 2. 4)服務(wù)器端將本次登錄和下一次登錄進(jìn)行登錄關(guān)聯(lián),通過計(jì)算得到客戶端身份鑒別 信息€'認(rèn)證通過后更新服務(wù)器中的存儲(chǔ)信息1,尺,K"1]·;將{Pass}發(fā) 送給客戶端; 2.5) 客戶端更新本地硬盤中的存儲(chǔ)信息,認(rèn)證結(jié)束;客戶端本地硬盤中的存儲(chǔ)信息更 新為{M -1,K-1},其中五Γ1= A2k, Ik) θ a2〇7£.丨| PJ < -1)。
2.如權(quán)利要求1所述多因子身份驗(yàn)證方法,其特征是,所述注冊階段步驟1. 2)具體包 括: 1. 2. 1)接收并保存{U。,Jj至服務(wù)器端S ; 1. 2. 2)采集得到客戶端硬件指紋信息F。,將F。存儲(chǔ)在服務(wù)器S ;其中,F(xiàn)。= Macl |HD| I Cpu,Mac為客戶端硬件Mac地址,HD為客戶端硬盤序列號(hào),Cpu為客戶端的 CpuID ; 1. 2. 3)利用服務(wù)器S自有的秘密信息As、服務(wù)器S的公鑰e和J1,通過哈希函數(shù)計(jì)算 得到注冊階段臨時(shí)變量J2; 1. 2. 4)將{e,J2}作為質(zhì)詢信息發(fā)送給客戶端。
3. 如權(quán)利要求1所述多因子身份驗(yàn)證方法,其特征是,所述注冊階段步驟1. 3)具體包 括: 1.3. 1)保存{e,J2}至本地硬盤; 1. 3. 2)利用1和J2,計(jì)算J1十J2=A2Ci Ik),作為服務(wù)器身份鑒別信息的一部分; 1.3.3) 利用κ、ρ。和N。,計(jì)算!^(UcJ IPcJ IN。),得到的是服務(wù)器身份鑒別信息的一部分; 1. 3. 4)利用步驟 1. 3. 2)和 1. 3. 3)的結(jié)果,計(jì)算K = Ik) Φ Il PtJ X). ? I. 3. 5)將丨^丨保存至本地硬盤; 1. 3. 6)利用 Uc、Pc、Nc和 F c,計(jì)算得到 h2 (Uc I I Pc I I Nc I I Fc); 1. 3. 7)利用步驟 1. 3. 2)和 1. 3. 6)的結(jié)果,計(jì)算 J3 = A2Ci Ik) θ Λ2 砍.Il 6 Il Kll €.),得 到數(shù)據(jù)J3; 1. 3. 8)利用步驟1. 3. 2)的結(jié)果和該用戶使用的手機(jī)M的IMEI電子串號(hào)Im,計(jì)算Λ = /?2(4lk)e/,",得到 J4; 1. 3. 9)將{U。,N。,J3, J4}作為回應(yīng)服務(wù)器端的質(zhì)詢的信息發(fā)送給服務(wù)器。