本說明書實(shí)施例涉及計(jì)算機(jī),尤其涉及一種口令保護(hù)方法、口令驗(yàn)證方法、裝置以及終端。
背景技術(shù):
1、在信息安全保護(hù)場景下,先驗(yàn)證數(shù)據(jù)訪問者的身份后再根據(jù)驗(yàn)證結(jié)果向其公開數(shù)據(jù)內(nèi)容已經(jīng)成為一種普遍的信息保護(hù)技術(shù)手段,通過輸入正確的賬號(hào)和密碼,系統(tǒng)能夠確認(rèn)用戶的身份,并根據(jù)用戶的身份允許其訪問相應(yīng)的資源或服務(wù)。賬號(hào)和密碼的安全性直接關(guān)系到用戶隱私數(shù)據(jù)和內(nèi)部數(shù)據(jù)的泄露風(fēng)險(xiǎn),因此對(duì)賬號(hào)和密碼往往會(huì)采取一系列復(fù)雜的計(jì)算來進(jìn)行加密保護(hù)。隨著加密保護(hù)策略的復(fù)雜化,密碼口令在驗(yàn)證時(shí)也需要進(jìn)行相應(yīng)的復(fù)雜計(jì)算,這就導(dǎo)致出現(xiàn)大量驗(yàn)證請(qǐng)求時(shí),會(huì)占用大量計(jì)算資源,導(dǎo)致系統(tǒng)內(nèi)的其他服務(wù)不可用。
技術(shù)實(shí)現(xiàn)思路
1、本說明書實(shí)施例提供一種口令保護(hù)方法、口令驗(yàn)證方法、裝置以及終端,可以解決相關(guān)技術(shù)中由于攻擊防御而消耗大量計(jì)算資源的技術(shù)問題。
2、第一方面,本說明書實(shí)施例提供一種口令保護(hù)方法,該方法包括:
3、響應(yīng)于針對(duì)正確明文口令的存儲(chǔ)請(qǐng)求,對(duì)上述正確明文口令進(jìn)行慢哈希計(jì)算;
4、確定上述正確明文口令經(jīng)過上述慢哈希計(jì)算中第一次哈希計(jì)算之后的第一哈希值,以及確定上述正確明文口令經(jīng)過上述慢哈希計(jì)算之后的第二哈希值;
5、將上述第一哈希值和上述第二哈希值拼接得到上述正確明文口令對(duì)應(yīng)的密文數(shù)據(jù),并存儲(chǔ)上述密文數(shù)據(jù);
6、其中,上述第一哈希值用于在口令驗(yàn)證時(shí)與目標(biāo)口令經(jīng)過上述第一次哈希計(jì)算之后得到的第一待驗(yàn)證哈希值進(jìn)行第一次一致性對(duì)比;上述密文數(shù)據(jù)用于在上述目標(biāo)口令通過上述第一次一致性對(duì)比之后,與上述目標(biāo)口令經(jīng)過上述慢哈希計(jì)算之后得到的待驗(yàn)證密文數(shù)據(jù)進(jìn)行第二次一致性對(duì)比。
7、通過上述第一方面的技術(shù)方案帶來的有益效果至少包括:對(duì)正確明文口令進(jìn)行慢哈希計(jì)算的過程中,使用第一次哈希的值和最后一次哈希的值拼接,將最終結(jié)果作為密文數(shù)據(jù)進(jìn)行存儲(chǔ),保證密文數(shù)據(jù)依舊具有不低的破解難度。在口令驗(yàn)證時(shí),輸入的目標(biāo)口令在經(jīng)過第一次哈希之后,直接與對(duì)應(yīng)密文數(shù)據(jù)的第一哈希值進(jìn)行對(duì)比,若一致再在進(jìn)行完整慢哈希結(jié)果的對(duì)比;若不一致,則直接返回驗(yàn)證失敗結(jié)果,使得絕大多數(shù)的錯(cuò)誤口令都只需要一次哈希計(jì)算就可以檢測出來,大幅降低了口令驗(yàn)證時(shí)哈希計(jì)算對(duì)終端計(jì)算資源的占用和消耗,提升了口令驗(yàn)證效率。
8、在一些可能的實(shí)現(xiàn)方式中,上述確定上述正確明文口令經(jīng)過上述慢哈希計(jì)算中第一次哈希計(jì)算之后的第一哈希值,包括:確定上述正確明文口令經(jīng)過上述慢哈希計(jì)算中第一次哈希計(jì)算之后的第一計(jì)算結(jié)果,基于預(yù)設(shè)節(jié)選邏輯從上述第一計(jì)算結(jié)果中選取第一哈希值。
9、通過上述可能的實(shí)現(xiàn)方式中的技術(shù)方案,第一次驗(yàn)證時(shí)使用的第一哈希值可以是第一次哈希結(jié)果的節(jié)選,使得在保證最終密文數(shù)據(jù)的破解難度不變的同時(shí),減少第一階段驗(yàn)證對(duì)比的數(shù)據(jù)量,使得第一階段的驗(yàn)證流程更快。
10、第二方面,本說明書實(shí)施例提供一種口令驗(yàn)證方法,該方法包括:
11、響應(yīng)于針對(duì)目標(biāo)口令的口令驗(yàn)證請(qǐng)求,確定用于驗(yàn)證上述目標(biāo)口令的密文數(shù)據(jù),上述密文數(shù)據(jù)通過對(duì)正確明文口令進(jìn)行慢哈希計(jì)算得到;
12、對(duì)上述目標(biāo)口令進(jìn)行上述慢哈希計(jì)算中的第一次哈希計(jì)算,得到上述目標(biāo)口令對(duì)應(yīng)的第一待驗(yàn)證哈希值,驗(yàn)證上述第一待驗(yàn)證哈希值與上述密文數(shù)據(jù)中的第一哈希值是否一致,上述第一哈希值的計(jì)算方式與上述第一待驗(yàn)證哈希值相同;
13、若一致,則對(duì)上述目標(biāo)口令繼續(xù)進(jìn)行上述慢哈希計(jì)算得到上述目標(biāo)口令對(duì)應(yīng)的待驗(yàn)證密文數(shù)據(jù),并基于上述待驗(yàn)證密文數(shù)據(jù)和上述密文數(shù)據(jù)驗(yàn)證上述目標(biāo)口令的合法性;
14、若不一致,則確定上述目標(biāo)口令對(duì)應(yīng)的驗(yàn)證失敗結(jié)果。
15、通過上述第二方面的技術(shù)方案帶來的有益效果至少包括:在口令驗(yàn)證時(shí),用戶本次輸入的目標(biāo)口令在經(jīng)過第一次哈希計(jì)算之后,直接與正確明文口令對(duì)應(yīng)的正確密文數(shù)據(jù)中第一次哈希計(jì)算后的第一哈希值進(jìn)行對(duì)比;若二者一致,則再進(jìn)行完整慢哈希結(jié)果的對(duì)比;若不一致,則說明本次目標(biāo)口令與正確明文口令一定不同,就可以直接返回驗(yàn)證失敗結(jié)果,這使得大量錯(cuò)誤口令幾乎都只需要第一階段的一次哈希計(jì)算就可以檢測出,大大降低口令驗(yàn)證時(shí)慢哈希計(jì)算對(duì)計(jì)算資源的占用和消耗。
16、在一些可能的實(shí)現(xiàn)方式中,上述基于上述待驗(yàn)證密文數(shù)據(jù)和上述密文數(shù)據(jù)驗(yàn)證上述目標(biāo)口令的合法性,包括:驗(yàn)證上述待驗(yàn)證密文數(shù)據(jù)與上述密文數(shù)據(jù)是否一致;若一致,則確定上述目標(biāo)口令對(duì)應(yīng)的驗(yàn)證成功結(jié)果;若不一致,則確定上述目標(biāo)口令對(duì)應(yīng)的驗(yàn)證失敗結(jié)果。
17、通過上述可能的實(shí)現(xiàn)方式中的技術(shù)方案,在驗(yàn)證完整慢哈希結(jié)果時(shí),若慢哈希結(jié)果與庫中密文數(shù)據(jù)一致,則說明;若不一致則說明本次目標(biāo)口令與正確明文口令不同,此時(shí)直接返回驗(yàn)證失敗結(jié)果即可,通過第一階段快速的驗(yàn)證,能夠有效地對(duì)大量惡意訪問進(jìn)行快速攔截,再進(jìn)一步進(jìn)行慢速但精準(zhǔn)的驗(yàn)證,保證了驗(yàn)證結(jié)果的準(zhǔn)確性。
18、在一些可能的實(shí)現(xiàn)方式中,上述方法還包括:記錄上述密文數(shù)據(jù)對(duì)應(yīng)的口令驗(yàn)證失敗結(jié)果的連續(xù)次數(shù);當(dāng)上述連續(xù)次數(shù)達(dá)到預(yù)設(shè)次數(shù)時(shí),則在預(yù)設(shè)時(shí)長內(nèi)對(duì)針對(duì)上述密文數(shù)據(jù)的口令驗(yàn)證請(qǐng)求進(jìn)行忽略。
19、通過上述可能的實(shí)現(xiàn)方式中的技術(shù)方案,記錄同一賬號(hào)的口令連續(xù)驗(yàn)證失敗的次數(shù),若連續(xù)多次失敗,則鎖定該賬號(hào)的請(qǐng)求一段時(shí)間,以避免對(duì)惡意請(qǐng)求的響應(yīng)影響系統(tǒng)的穩(wěn)定和安全。
20、第三方面,本說明書實(shí)施例提供一種口令保護(hù)裝置,該裝置包括:
21、存儲(chǔ)請(qǐng)求接收模塊,用于響應(yīng)于針對(duì)正確明文口令的存儲(chǔ)請(qǐng)求,對(duì)上述正確明文口令進(jìn)行慢哈希計(jì)算;
22、第一階段計(jì)算模塊,用于確定上述正確明文口令經(jīng)過上述慢哈希計(jì)算中第一次哈希計(jì)算之后的第一哈希值,以及確定上述正確明文口令經(jīng)過上述慢哈希計(jì)算之后的第二哈希值;
23、第二階段計(jì)算模塊,用于將上述第一哈希值和上述第二哈希值拼接得到上述正確明文口令對(duì)應(yīng)的密文數(shù)據(jù),并存儲(chǔ)上述密文數(shù)據(jù);
24、其中,上述第一哈希值用于在口令驗(yàn)證時(shí)與目標(biāo)口令經(jīng)過上述第一次哈希計(jì)算之后得到的第一待驗(yàn)證哈希值進(jìn)行第一次一致性對(duì)比;上述密文數(shù)據(jù)用于在上述目標(biāo)口令通過上述第一次一致性對(duì)比之后,與上述目標(biāo)口令經(jīng)過上述慢哈希計(jì)算之后得到的待驗(yàn)證密文數(shù)據(jù)進(jìn)行第二次一致性對(duì)比。
25、第四方面,本說明書實(shí)施例提供一種口令驗(yàn)證裝置,該裝置包括:
26、驗(yàn)證請(qǐng)求接收模塊,用于響應(yīng)于針對(duì)目標(biāo)口令的口令驗(yàn)證請(qǐng)求,確定用于驗(yàn)證上述目標(biāo)口令的密文數(shù)據(jù),上述密文數(shù)據(jù)通過對(duì)正確明文口令進(jìn)行慢哈希計(jì)算得到;
27、第一階段驗(yàn)證模塊,用于對(duì)上述目標(biāo)口令進(jìn)行上述慢哈希計(jì)算中的第一次哈希計(jì)算,得到上述目標(biāo)口令對(duì)應(yīng)的第一待驗(yàn)證哈希值,驗(yàn)證上述第一待驗(yàn)證哈希值與上述密文數(shù)據(jù)中的第一哈希值是否一致,上述第一哈希值的計(jì)算方式與上述第一待驗(yàn)證哈希值相同;
28、第二階段驗(yàn)證模塊,用于若一致,則對(duì)上述目標(biāo)口令繼續(xù)進(jìn)行上述慢哈希計(jì)算得到上述目標(biāo)口令對(duì)應(yīng)的待驗(yàn)證密文數(shù)據(jù),并基于上述待驗(yàn)證密文數(shù)據(jù)和上述密文數(shù)據(jù)驗(yàn)證上述目標(biāo)口令的合法性;
29、驗(yàn)證結(jié)果返回模塊,用于若不一致,則確定上述目標(biāo)口令對(duì)應(yīng)的驗(yàn)證失敗結(jié)果。
30、第五方面,本說明書實(shí)施例提供一種包含指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)上述計(jì)算機(jī)程序產(chǎn)品在計(jì)算機(jī)或處理器上運(yùn)行時(shí),使得上述計(jì)算機(jī)或上述處理器執(zhí)行上述的方法的步驟。
31、第六方面,本說明書實(shí)施例提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),上述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有多條指令,上述指令適于由處理器加載并執(zhí)行上述的方法的步驟。
32、第七方面,本說明書實(shí)施例提供一種終端,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,上述計(jì)算機(jī)程序適于由處理器加載并執(zhí)行上述的方法的步驟。