就無法傳輸隨機(jī)數(shù)X,這體現(xiàn)了本發(fā)明中多因子共同參與,缺一不可的特性,也體現(xiàn)了多因子對合法用戶口令安全的有效保護(hù)及對非法用戶登錄行為的多重限制。
[0068]實施例4
[0069]防止撞庫攻擊的多因子身份認(rèn)證方法同實施例1-3,用戶注冊口令pu的生成是將原始主密鑰k和隨機(jī)數(shù)X串聯(lián)連接后,經(jīng)過hash運(yùn)算得到的,其中,原始主密鑰k作為消息的前半部分,隨機(jī)數(shù)X附加在原始主密鑰k的末尾作為消息的后半部分,再對該新生成的消息做hash運(yùn)算,得到用戶注冊口令pu = hash (貝丨J x)。
[0070]實施例5
[0071]防止撞庫攻擊的多因子身份認(rèn)證方法同實施例1-4,服務(wù)器存儲口令ps的生成是將用戶注冊口令PU和隨機(jī)數(shù)y串聯(lián)連接后,經(jīng)過hash運(yùn)算得到的,其中,用戶注冊口令pu作為消息的前半部分,隨機(jī)數(shù)y附加在用戶注冊口令PU的末尾作為消息的后半部分,再對該新生成的消息做hash運(yùn)算,得到服務(wù)器存儲口令ps = hash (hash (k | | x) | | y)。
[0072]實施例6
[0073]防止撞庫攻擊的多因子身份認(rèn)證方法同實施例1-5,隱藏信息ctext的生成是將手機(jī)串碼頂EI和短口令pwd的hash值串聯(lián)連接后,對服務(wù)器S生成的隨機(jī)數(shù)Y進(jìn)行對稱加密運(yùn)算Encrypt (HE11 | hash (pwd),y)得到的,其中,手機(jī)串碼頂EI作為加密密鑰的前半部分,短口令pwd的hash值附加在手機(jī)串碼IMEI的末尾作為加密密鑰的后半部分,隨機(jī)數(shù)y為需加密的明文。
[0074]以上描述僅是本發(fā)明的一些具體實例,并不夠成對本發(fā)明的任何限制。顯然對于本領(lǐng)域的專業(yè)人員來說,在了解了本
【發(fā)明內(nèi)容】
和原理后,都可能在不背離本發(fā)明原理、結(jié)構(gòu)的情況下,進(jìn)行形式和細(xì)節(jié)上的各種修正和改變,但是這些基于本發(fā)明思想的修正和改變?nèi)栽诒景l(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。
【主權(quán)項】
1.一種防止撞庫攻擊的多因子身份認(rèn)證方法,其特征在于,所述多因子包括有用戶口令,手機(jī)和手環(huán),三者缺一不可,共同參與完成用戶的注冊及登錄,認(rèn)證方法包括有如下步驟: (1)初始化階段: Ia)完成手環(huán)初始化:注冊激活手環(huán),并將其綁定到用戶U指定的手機(jī)端上,確保手環(huán)具有藍(lán)牙功能,并能與所關(guān)聯(lián)手機(jī)端進(jìn)行藍(lán)牙連接; Ib)確保用戶U在注冊階段使用的PC端是安全可信的; (2)注冊階段: 用戶U在PC端利用短口令pwd,通過中止密鑰導(dǎo)出函數(shù)(HKDF),生成原始主密鑰k和驗證字符串V ;通過搖手環(huán)生成隨機(jī)數(shù)X,利用原始主密鑰k和隨機(jī)數(shù)X,在PC端生成安全性加強(qiáng)的用戶注冊口令Pu ;用戶U在服務(wù)器S進(jìn)行首次注冊,服務(wù)器S為該用戶U生成隨機(jī)數(shù)1,利用用戶注冊口令Pu和隨機(jī)數(shù)y,生成安全性更強(qiáng)的服務(wù)器存儲口令ps ;用戶U利用手機(jī)端串碼頂EI和短口令pwd的hash值,加密服務(wù)器S發(fā)來的隨機(jī)數(shù)y,在手機(jī)端生成隱藏信息ctext ;服務(wù)器S最終把用戶注冊信息安全存儲在數(shù)據(jù)庫中,注冊信息包括:身份標(biāo)識id,隱藏信息ctext,用戶手機(jī)號num,驗證字符串v和服務(wù)器存儲口令ps ; (3)預(yù)登錄階段: 3a)用戶U將自己的身份標(biāo)識id發(fā)送給服務(wù)器S ; 3b)服務(wù)器S收到用戶身份標(biāo)識id后,查找數(shù)據(jù)庫中與用戶身份標(biāo)識id相對應(yīng)的隱藏信息ctext和驗證字符串V,然后生成一個隨機(jī)數(shù)challenge,并將隨機(jī)數(shù)challenge與隱藏信息ctext和驗證字符串V —起發(fā)送給用戶U ; 3c)用戶U利用服務(wù)器S發(fā)來的驗證字符串V,并在手機(jī)端上輸入注冊階段使用的短口令pwd,通過HKDF計算導(dǎo)出注冊階段生成的原始主密鑰k,即HKDF.Extract (v,pwd) — (k); 3d)用戶U通過搖手環(huán)行為生成注冊時的隨機(jī)數(shù)x,并將隨機(jī)數(shù)X通過藍(lán)牙發(fā)送到手機(jī)端上; 3e)用戶U在手機(jī)端利用原始主密鑰k和隨機(jī)數(shù)X,生成用戶注冊口令pu ; 3f)用戶U利用手機(jī)端串碼IMEI和短口令pwd的hash值,解密隱藏信息ctext,得到注冊階段該網(wǎng)站服務(wù)器生成的隨機(jī)數(shù)y;再在手機(jī)端利用用戶注冊口令Pu和隨機(jī)數(shù)y,生成服務(wù)器存儲口令ps; (4)登錄階段: 4a)用戶U結(jié)合服務(wù)器存儲口令ps和收到的隨機(jī)數(shù)challenge,計算消息認(rèn)證碼R =MAC (ps, challenge),并將消息認(rèn)證碼R發(fā)送給服務(wù)器S ; 4b)服務(wù)器S收到消息認(rèn)證碼R后,查找數(shù)據(jù)庫中與用戶身份標(biāo)識id相對應(yīng)的服務(wù)器存儲口令ps,再結(jié)合challenge,計算消息認(rèn)證碼R’ = MAC (ps, challenge);最后,比較用戶U發(fā)送的消息認(rèn)證碼R與服務(wù)器S計算出的消息認(rèn)證碼R’,若相等,則允許用戶U登錄;否則,拒絕登錄請求。2.根據(jù)權(quán)利要求1所述的防止撞庫攻擊的多因子身份認(rèn)證方法,其特征在于,所述用戶注冊階段的具體步驟包括有: 2a)用戶U針對當(dāng)前希望注冊的目標(biāo)服務(wù)器S選擇一個隨機(jī)數(shù)r,一個迭代次數(shù)t和短口令pwd,利用HKDF在PC端計算生成一個可公開的驗證字符串V和一個確定的原始主密鑰k,即 HKDF.Prepare (r,t,pwd) — (v, k); 2b)用戶U通過搖手環(huán),生成一個隨機(jī)數(shù)X,隨機(jī)數(shù)X通過藍(lán)牙發(fā)送到手機(jī)端,用戶U在手機(jī)端用眼睛識別隨機(jī)數(shù)X,利用可輸入設(shè)備如鍵盤將隨機(jī)數(shù)X輸入到PC端,并在PC端利用原始主密鑰k和隨機(jī)數(shù)X,生成用戶注冊口令pu ; 2c)用戶U通過PC端向服務(wù)器S發(fā)送自己的身份標(biāo)識id,手機(jī)號碼num,驗證字符串v和用戶注冊口令pu ; 2d)服務(wù)器S收到用戶U發(fā)來的注冊信息后,服務(wù)器S為該用戶生成一個唯一的隨機(jī)數(shù)1,并把I通過安全短信信道發(fā)送給用戶U注冊過號碼的手機(jī)端; 2e)服務(wù)器S利用用戶注冊口令pu和隨機(jī)數(shù)y,生成服務(wù)器存儲口令ps,并將ps與用戶身份標(biāo)識id存儲在數(shù)據(jù)庫中,然后,忘掉y ; 2f)用戶U在手機(jī)端收到服務(wù)器S發(fā)來的隨機(jī)數(shù)y后,利用手機(jī)端串碼頂EI和短口令pwd的hash值,對隨機(jī)數(shù)y進(jìn)行加密,生成隱藏信息ctext,并將隱藏信息ctext通過安全網(wǎng)絡(luò)通信信道發(fā)送給服務(wù)器S,發(fā)送成功后用戶U可以忘掉隱藏信息ctext ; 2g)服務(wù)器S收到用戶U發(fā)送的隱藏信息ctext后,將隱藏信息ctext與對應(yīng)用戶賬號的身份標(biāo)識id,用戶手機(jī)號num,驗證字符串V和服務(wù)器存儲口令ps存儲在一起作為用戶注冊信息。3.根據(jù)權(quán)利要求2所述的防止撞庫攻擊的多因子身份認(rèn)證方法,其特征在于,所述步驟2b)中生成的隨機(jī)數(shù)X,是用戶通過對手環(huán)進(jìn)行具有行為特征的搖晃得到的,且利用藍(lán)牙近距離傳輸?shù)浇壎ǖ氖謾C(jī)上。4.根據(jù)權(quán)利要求1或2所述的防止撞庫攻擊的多因子身份認(rèn)證方法,其特征在于,所述用戶注冊口令Pu的生成是將原始主密鑰k和隨機(jī)數(shù)X串聯(lián)連接后,經(jīng)過hash運(yùn)算得到的,其中,原始主密鑰k作為消息的前半部分,隨機(jī)數(shù)X附加在原始主密鑰k的末尾作為消息的后半部分,再對該新生成的消息做hash運(yùn)算,得到用戶注冊口令pu = hash (k | x)。5.根據(jù)權(quán)利要求1或2所述的防止撞庫攻擊的多因子身份認(rèn)證方法,其特征在于,所述服務(wù)器存儲口令PS的生成是將用戶注冊口令PU和隨機(jī)數(shù)y串聯(lián)連接后,經(jīng)過hash運(yùn)算得到的,其中,用戶注冊口令Pu作為消息的前半部分,隨機(jī)數(shù)y附加在用戶注冊口令pu的末尾作為消息的后半部分,再對該新生成的消息做hash運(yùn)算,得到服務(wù)器存儲口令ps =hash (hash(k| |x) | |y)06.根據(jù)權(quán)利要求1或2所述的防止撞庫攻擊的多因子身份認(rèn)證方法,其特征在于,所述隱藏信息ctext的生成是將手機(jī)串碼頂EI和短口令pwd的hash值串聯(lián)連接后,對服務(wù)器S生成的隨機(jī)數(shù)y進(jìn)行對稱加密運(yùn)算Encrypt (HE11 | hash (pwd),y)得到的,其中,手機(jī)串碼頂EI作為加密密鑰的前半部分,短口令pwd的hash值附加在手機(jī)串碼頂EI的末尾作為加密密鑰的后半部分,隨機(jī)數(shù)I為需加密的明文。
【專利摘要】本發(fā)明公開了一種防止撞庫攻擊的多因子身份認(rèn)證方法,主要解決現(xiàn)有網(wǎng)站登錄系統(tǒng)中用戶口令易遭暴力破解及撞庫攻擊的問題。本發(fā)明的多因子為用戶口令,手機(jī)和手環(huán),三者缺一不可,共同完成用戶身份的安全認(rèn)證。其實現(xiàn)步驟是:(1)用戶用短口令由中止密鑰導(dǎo)出函數(shù)生成原始主密鑰,結(jié)合與手環(huán)和手機(jī)分別相關(guān)的兩個隨機(jī)數(shù)對原始主密鑰進(jìn)行兩次加工,生成服務(wù)器存儲口令并存在服務(wù)器;(2)用戶結(jié)合手環(huán)和手機(jī)兩個因子先后導(dǎo)出原始主密鑰和兩個不同的隨機(jī)數(shù),生成服務(wù)器存儲口令;(3)用戶用服務(wù)器存儲口令與服務(wù)器交互認(rèn)證。本發(fā)明針對不同網(wǎng)站生成不同的原始主密鑰并安全保護(hù),有效避免了單一口令易被盜用并進(jìn)行身份偽裝的危險。
【IPC分類】H04L29/06
【公開號】CN105187382
【申請?zhí)枴緾N201510473859
【發(fā)明人】金方園, 楊超, 馬建峰, 李金庫, 安迪, 何思蒙
【申請人】西安電子科技大學(xué)
【公開日】2015年12月23日
【申請日】2015年8月5日