防止撞庫(kù)攻擊的多因子身份認(rèn)證方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于信息安全技術(shù)領(lǐng)域,特別涉及一種用戶登錄口令生成及存儲(chǔ)方法,具體是一種防止撞庫(kù)攻擊的多因子身份認(rèn)證方法,可用于服務(wù)器對(duì)用戶的身份認(rèn)證能力的增強(qiáng)以及防止用戶在不安全網(wǎng)站注冊(cè)時(shí)泄漏重復(fù)使用的登錄口令。
【背景技術(shù)】
[0002]開(kāi)放網(wǎng)絡(luò)上的安全通信是現(xiàn)代密碼學(xué)的研究熱點(diǎn)之一。密碼學(xué)作為信息安全的核心技術(shù),提供了加/解密、消息摘要、數(shù)字簽名等密碼算法,能夠?qū)崿F(xiàn)信息的機(jī)密性、完整性和不可抵賴性。密碼在數(shù)據(jù)保護(hù)、安全接入、信任體系建設(shè)等多個(gè)方面發(fā)揮著重要的作用,是解決?目息安全冋題最有效和最經(jīng)濟(jì)的途徑。
[0003]口令簡(jiǎn)單易記,使用方便,無(wú)需硬件支持。因此,基于口令認(rèn)證構(gòu)造高質(zhì)量的身份認(rèn)證是一個(gè)成熟有效的方法??诹钫J(rèn)證密鑰交換的安全性完全依賴于用戶口令的保密性,因此,對(duì)口令的保護(hù)尤為重要。但開(kāi)放環(huán)境中的安全問(wèn)題日益突出,僅依靠口令來(lái)確認(rèn)身份的認(rèn)證方式面臨著嚴(yán)峻的挑戰(zhàn)。用戶輸入口令時(shí),容易遭受監(jiān)窺;或者電腦中毒,鍵盤輸入口令時(shí),木馬程序會(huì)記錄鍵盤輸入;為了記憶的方便,用戶通常將手機(jī)號(hào)碼、生日、門牌號(hào)等容易記憶的數(shù)字作為口令,用戶口令容易猜測(cè),安全性較差。而且用戶為了方便好記,常常在多個(gè)不同的網(wǎng)站使用同一個(gè)口令,進(jìn)一步引發(fā)撞庫(kù)攻擊,撞庫(kù)是黑客通過(guò)收集互聯(lián)網(wǎng)已泄露的用戶和密碼信息,生成對(duì)應(yīng)的字典表,嘗試批量登陸其他網(wǎng)站后,得到一系列可以登錄的用戶。很多用戶在不同網(wǎng)站使用的是相同的帳號(hào)密碼,因此黑客可以通過(guò)獲取用戶在A網(wǎng)站的賬戶從而嘗試登錄B網(wǎng)址,這就可以理解為撞庫(kù)攻擊。
[0004]現(xiàn)有口令大多在注冊(cè)階段經(jīng)用戶一次性生成,并直接或經(jīng)過(guò)簡(jiǎn)單加密存儲(chǔ)在服務(wù)器端,沒(méi)有進(jìn)行混淆運(yùn)算來(lái)保證其在被盜情況下不被非法用戶使用。且登錄階段過(guò)于簡(jiǎn)單,對(duì)用戶的身份驗(yàn)證能力不夠強(qiáng),非法用戶可從目標(biāo)較大的服務(wù)器端入手,竊取可直接使用的用戶口令,并假冒合法用戶身份登錄網(wǎng)站。為了增強(qiáng)系統(tǒng)的安全性,雙因子認(rèn)證的機(jī)制被提出,即在口令因子的基礎(chǔ)上,增加一個(gè)物理因子,如智能卡,口令卡,電子口令牌等。即使一個(gè)認(rèn)證因子被攻破,雙因子認(rèn)證系統(tǒng)仍然是安全的。但這些認(rèn)證因子大多不是用戶習(xí)慣隨身攜帶的設(shè)備,如智能卡讀卡器或者指紋識(shí)別器,缺乏實(shí)用性;而且只是簡(jiǎn)單地存儲(chǔ)或顯示信息,沒(méi)有參與用戶生成口令的運(yùn)算過(guò)程,若設(shè)備丟失,則該因子可被攻擊者輕易利用,安全性低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于克服上述已有技術(shù)的不足,提出一種防止撞庫(kù)攻擊的多因子身份認(rèn)證方法,其特征在于,所述多因子包括有用戶口令,手機(jī)和手環(huán),三者缺一不可,多因子共同參與完成用戶的注冊(cè)及登錄,本發(fā)明的具體實(shí)現(xiàn)步驟包括:
[0006](I)初始化階段:
[0007]Ia)完成手環(huán)初始化:注冊(cè)激活手環(huán),并將其綁定到用戶U指定的手機(jī)端上,確保手環(huán)具有藍(lán)牙功能,并能與所關(guān)聯(lián)手機(jī)端進(jìn)行藍(lán)牙連接;
[0008]Ib)確保用戶U在注冊(cè)階段使用的PC端是安全可信的;
[0009](2)注冊(cè)階段:
[0010]用戶U在PC端利用短口令pwd,通過(guò)中止密鑰導(dǎo)出函數(shù)(HKDF),生成原始主密鑰k和驗(yàn)證字符串V ;通過(guò)搖手環(huán)生成隨機(jī)數(shù)X,利用原始主密鑰k和隨機(jī)數(shù)X,在PC端生成安全性加強(qiáng)的用戶注冊(cè)口令Pu ;用戶U在服務(wù)器S進(jìn)行首次注冊(cè),服務(wù)器S為該用戶U生成隨機(jī)數(shù)1,利用用戶注冊(cè)口令Pu和隨機(jī)數(shù)y,生成安全性更強(qiáng)的服務(wù)器存儲(chǔ)口令ps ;用戶U利用手機(jī)端串碼MEI和短口令pwd的hash值,加密服務(wù)器S發(fā)來(lái)的隨機(jī)數(shù)y,在手機(jī)端生成隱藏信息ctext ;服務(wù)器S最終把用戶注冊(cè)信息安全存儲(chǔ)在數(shù)據(jù)庫(kù)中,注冊(cè)信息包括:身份標(biāo)識(shí)id,隱藏信息ctext,用戶手機(jī)號(hào)num,驗(yàn)證字符串v和服務(wù)器存儲(chǔ)口令ps ;
[0011](3)預(yù)登錄階段:
[0012]3a)用戶U將自己的身份標(biāo)識(shí)id發(fā)送給服務(wù)器S ;
[0013]3b)服務(wù)器S收到用戶身份標(biāo)識(shí)id后,查找數(shù)據(jù)庫(kù)中與用戶身份標(biāo)識(shí)id相對(duì)應(yīng)的隱藏信息ctext和驗(yàn)證字符串V,然后生成一個(gè)隨機(jī)數(shù)challenge,并將隨機(jī)數(shù)challenge與隱藏信息ctext和驗(yàn)證字符串V —起發(fā)回給用戶U ;
[0014]3c)用戶U利用服務(wù)器發(fā)來(lái)的驗(yàn)證字符串V,并在手機(jī)端上輸入注冊(cè)階段使用的短口令pwd,通過(guò)HKDF計(jì)算導(dǎo)出注冊(cè)階段生成的原始主密鑰k,即HKDF.Extract (v,pwd) 一 (k):
[0015]3d)用戶U通過(guò)搖手環(huán)行為生成注冊(cè)時(shí)的隨機(jī)數(shù)X’并將隨機(jī)數(shù)X通過(guò)藍(lán)牙發(fā)送到手機(jī)纟而上;
[0016]3e)用戶U在手機(jī)端利用原始主密鑰k和隨機(jī)數(shù)X,生成用戶注冊(cè)口令PU ;
[0017]3f)用戶U利用手機(jī)端串碼頂EI和短口令pwd的hash值,解密隱藏信息ctext,得到注冊(cè)階段該網(wǎng)站服務(wù)器生成的隨機(jī)數(shù)y;再在手機(jī)端利用用戶注冊(cè)口令PU和隨機(jī)數(shù)y,生成服務(wù)器存儲(chǔ)口令PS ;
[0018](4)登錄階段:
[0019]4a)用戶U結(jié)合服務(wù)器存儲(chǔ)口令ps和收到的隨機(jī)數(shù)challenge,計(jì)算消息認(rèn)證碼R = MAC (ps, challenge),并將消息認(rèn)證碼R發(fā)送給服務(wù)器S ;
[0020]4b)服務(wù)器S收到消息認(rèn)證碼R后,查找數(shù)據(jù)庫(kù)中與用戶身份標(biāo)識(shí)id相對(duì)應(yīng)的服務(wù)器存儲(chǔ)口令ps,再結(jié)合challenge,計(jì)算消息認(rèn)證碼R’ = MAC (ps, challenge);最后,比較用戶U發(fā)送的消息認(rèn)證碼R與服務(wù)器S計(jì)算出的消息認(rèn)證碼R’,若相等,則允許用戶U登錄;否則,拒絕登錄請(qǐng)求。
[0021]本發(fā)明通過(guò)結(jié)合兩個(gè)因子手機(jī)和手環(huán)來(lái)加強(qiáng)該密鑰的安全性,以防止惡意攻擊者通過(guò)攻擊防范能力較薄弱的網(wǎng)站以獲得其數(shù)據(jù)庫(kù)中的用戶賬號(hào)和密碼,從而使用這些已經(jīng)泄漏的信息偽裝成合法用戶的身份嘗試登錄其他更有價(jià)值的網(wǎng)站,并由此盜取更多的個(gè)人信息,進(jìn)一步防止撞庫(kù)所得的隱私信息被犯罪分子利用來(lái)進(jìn)行詐騙等犯罪。增強(qiáng)了服務(wù)器驗(yàn)證登錄用戶身份的能力,從根本上避免了撞庫(kù)攻擊可能給用戶帶來(lái)的損失。
[0022]本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn):
[0023]1.本發(fā)明中用戶只需記憶一個(gè)簡(jiǎn)單的短口令pwd,通過(guò)對(duì)中止密鑰導(dǎo)出函數(shù)(HKDF)輸入不同的隨機(jī)數(shù)r,從而針對(duì)不同網(wǎng)站生成不同的原始主密鑰k和驗(yàn)證字符串V,根本上避免了撞庫(kù)攻擊的發(fā)生;進(jìn)一步保證對(duì)于不同網(wǎng)站,用戶注冊(cè)口令Pu也不相同,SP使惡意服務(wù)器進(jìn)行共謀,也無(wú)法通過(guò)破解用戶信息得到用戶在其他安全網(wǎng)站的注冊(cè)口令;服務(wù)器存儲(chǔ)口令ps由服務(wù)器針對(duì)不同用戶生成不同的隨機(jī)數(shù)y而得到,且不同服務(wù)器針對(duì)同一用戶生成的隨機(jī)數(shù)y也都不相同,從而再次避免了撞庫(kù)攻擊的發(fā)生;
[0024]2.本發(fā)明對(duì)原始主密鑰k進(jìn)行了兩次結(jié)合多因子的運(yùn)算,增強(qiáng)了對(duì)用戶身份進(jìn)行驗(yàn)證的能力,有效避免了單一口令因子易被盜用并進(jìn)行身份偽裝的危險(xiǎn);本發(fā)明將便捷的手環(huán)作為除手機(jī)因子之外的另一個(gè)因子,利用手環(huán)輔助生成最終用于登錄的服務(wù)器存儲(chǔ)口令ps,方便用戶操作,應(yīng)用范圍廣。
【附圖說(shuō)明】
[0025]圖1為本發(fā)明的總流程圖;
[0026]圖2為本發(fā)明中用戶注冊(cè)階段的子流程圖;
[0027]圖3為本發(fā)明中用戶預(yù)登錄階段的子流程圖;
[0028]圖4為本發(fā)明中用戶登錄階段的子流程圖。
【具體實(shí)施方式】
[0029]下面通過(guò)附圖和【具體實(shí)施方式】進(jìn)一步說(shuō)明本發(fā)明的實(shí)施方案。
[0030]現(xiàn)階段的身份認(rèn)證大多依靠安全性較差的短口令,口令簡(jiǎn)單易猜測(cè)且較易重復(fù)使用,不同用戶容易使用相同的簡(jiǎn)單口令,易遭受暴力破解攻擊;同一用戶在不同網(wǎng)站使用相同口令,易遭受撞庫(kù)攻擊。為此,本發(fā)明展開(kāi)了探索和研究,提出了一種可防止暴力破解攻擊和撞庫(kù)攻擊的多因子身份認(rèn)證方法。
[0031]實(shí)施例1
[0032]本發(fā)明是一種防止撞庫(kù)攻擊的多因子身份認(rèn)證方法,本發(fā)明中多因子包括有用戶口令,手機(jī)和手環(huán),三者缺一不可,多因子共同參與完成用戶的注冊(cè)及登錄,參照?qǐng)D1,本發(fā)明的具體實(shí)現(xiàn)步驟包括:
[0033](I)初始化階段:
[0034]Ia)完成手環(huán)初始化:注冊(cè)激活手環(huán),并將其綁定到用戶U指定的手機(jī)端上,確保手環(huán)具有藍(lán)牙功能,并能與所關(guān)聯(lián)手機(jī)端進(jìn)行藍(lán)牙連接。
[0035]Ib)確保用戶U在注冊(cè)階段使用的PC端是安全可信的。
[0036](2)注冊(cè)階段:
[0037]用戶U在PC端利用自己方便記憶的短口令pwd,通過(guò)中止密鑰導(dǎo)出函數(shù)(HKDF),生成原始主密鑰k和驗(yàn)證字符串V ;通過(guò)搖手環(huán)生成隨機(jī)數(shù)X,利用原始主密鑰k和隨機(jī)數(shù)X,在PC端生成安全性加強(qiáng)的用戶注冊(cè)口令pu ;用戶U在服務(wù)器S進(jìn)行首次注冊(cè),服務(wù)器S為該用戶U生成隨機(jī)數(shù)y,利用用戶注冊(cè)口令pu和隨機(jī)數(shù)y,生成安全性更強(qiáng)的服務(wù)器存儲(chǔ)口令ps ;用戶U利用手機(jī)端串碼頂EI和短口令pwd的hash值,加密服務(wù)器S發(fā)來(lái)的隨機(jī)數(shù)