一種身份認(rèn)證方法、客戶端、服務(wù)器及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種身份認(rèn)證方法、客戶端、服務(wù)器及系統(tǒng),能夠?qū)崿F(xiàn)客戶端與服務(wù)器之間的雙向身份認(rèn)證,從而保障系統(tǒng)的安全性。該身份認(rèn)證方法包括:基于客戶端標(biāo)識,生成中間字符串;基于該中間字符串,生成驗(yàn)證碼以及第一動態(tài)口令;其中,該驗(yàn)證碼被發(fā)送至服務(wù)器;根據(jù)該第一動態(tài)口令和從該服務(wù)器接收的第二動態(tài)口令,確定身份認(rèn)證是否通過。
【專利說明】
一種身份認(rèn)證方法、客戶端、服務(wù)器及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種客戶端與服務(wù)器之間的身份認(rèn)證方法、客戶端、服務(wù)器及系統(tǒng)。
【背景技術(shù)】
[0002]目前的很多應(yīng)用場景中都涉及到客戶端與服務(wù)器之間的身份認(rèn)證,例如,在餐廳、會議室等環(huán)境下,因?yàn)樘厥夤ぷ鲌鼍暗男枰?,客戶端處于單?yīng)用模式,在該模式下,客戶端只能使用預(yù)設(shè)的單一應(yīng)用,而當(dāng)用戶提起退出該單應(yīng)用模式的請求時,就要進(jìn)行上述客戶端與服務(wù)器之間的身份認(rèn)證。
[0003]在現(xiàn)有技術(shù)中,一般通過驗(yàn)證0TP(0ne Time Password,一次性口令)來實(shí)現(xiàn)身份認(rèn)證,具體過程為:服務(wù)器采用約定的算法和隨機(jī)函數(shù)生成OTP后,通過短信等途經(jīng)發(fā)送給用戶,用戶將獲取的OTP輸入客戶端,客戶端再將該OTP發(fā)送給服務(wù)器進(jìn)行比對,當(dāng)服務(wù)器接收的OTP與服務(wù)器自身生成的OTP相同時,認(rèn)證通過。顯然,這是一種由服務(wù)器來進(jìn)行的單向身份認(rèn)證的過程,并且OTP的生成過程也過于簡單,極易使OTP在驗(yàn)證過程中遭到破解。因此現(xiàn)有技術(shù)采用的身份認(rèn)證方式具有安全隱患,導(dǎo)致系統(tǒng)安全性不足。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種客戶端與服務(wù)器之間的身份認(rèn)證方法、客戶端、服務(wù)器及系統(tǒng),用以解決現(xiàn)有技術(shù)中存在的系統(tǒng)安全性較差的問題。
[0005]本發(fā)明實(shí)施例提供一種身份認(rèn)證方法,包括:基于客戶端標(biāo)識,生成中間字符串;基于該中間字符串,生成驗(yàn)證碼以及第一動態(tài)口令;其中,所述驗(yàn)證碼被發(fā)送至服務(wù)器;根據(jù)所述第一動態(tài)口令和從所述服務(wù)器接收的第二動態(tài)口令,確定身份認(rèn)證是否通過。
[0006]本發(fā)明實(shí)施例還提供一種身份認(rèn)證方法,包括:接收客戶端發(fā)送的驗(yàn)證碼;基于所述驗(yàn)證碼,得到中間字符串;基于該中間字符串,生成第二動態(tài)口令;向所述客戶端發(fā)送所述第二動態(tài)口令。
[0007]本發(fā)明實(shí)施例還提供一種客戶端,包括:第一生成單元,用于基于客戶端標(biāo)識,生成中間字符串;第二生成單元,用于基于該中間字符串,生成驗(yàn)證碼;第三生成單元,用于基于該中間字符串,生成第一動態(tài)口令;第一發(fā)送單元,用于將所述驗(yàn)證碼發(fā)送至服務(wù)器;第一接收單元,用于接收所述服務(wù)器發(fā)送的第二動態(tài)口令;驗(yàn)證單元,用于根據(jù)所述第一動態(tài)口令和所述第二動態(tài)口令,確定身份認(rèn)證是否通過。
[0008]本發(fā)明實(shí)施例還提供一種服務(wù)器,包括:第二接收單元,用于接收客戶端發(fā)送的驗(yàn)證碼;第四生成單元,用于基于所述驗(yàn)證碼,得到中間字符串;第五生成單元,用于基于該中間字符串,生成第二動態(tài)口令;第二發(fā)送單元,用于向客戶端發(fā)送所述第二動態(tài)口令。
[0009]本發(fā)明實(shí)施例還提供一種身份認(rèn)證系統(tǒng),包括客戶端和服務(wù)器,其中:所述客戶端,用于基于客戶端標(biāo)識,生成中間字符串;基于該中間字符串,生成驗(yàn)證碼以及第一動態(tài)口令;其中,所述驗(yàn)證碼被發(fā)送至所述服務(wù)器;根據(jù)所述第一動態(tài)口令和從所述服務(wù)器接收的第二動態(tài)口令,確定身份認(rèn)證是否通過;所述服務(wù)器,用于接收所述客戶端發(fā)送的驗(yàn)證碼;基于所述驗(yàn)證碼,得到中間字符串;基于該中間字符串,生成第二動態(tài)口令;向所述客戶端發(fā)送所述第二動態(tài)口令。
[0010]本發(fā)明有益效果包括:
[0011 ]本發(fā)明實(shí)施例提供的方案中,客戶端生成中間字符串,根據(jù)該中間字符串生成驗(yàn)證碼和第一動態(tài)口令,并將該驗(yàn)證碼發(fā)送給服務(wù)器;服務(wù)器接收客戶端發(fā)送的驗(yàn)證碼,根據(jù)該驗(yàn)證碼反向提取出中間字符串,并根據(jù)該中間字符串生成第二動態(tài)口令,發(fā)送給客戶端;客戶端接收服務(wù)器發(fā)送的第二動態(tài)口令,將其與上述第一動態(tài)口令比對,完成身份認(rèn)證。相比于現(xiàn)有技術(shù),采用本發(fā)明實(shí)施例提供的方案實(shí)現(xiàn)了客戶端和服務(wù)器之間的雙向身份認(rèn)證,并且動態(tài)口令的生成過程更為嚴(yán)密,不易在認(rèn)證過程遭到破解,系統(tǒng)安全性較高。
[0012]本申請的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本申請而了解。本申請的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
【附圖說明】
[0013]附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0014]圖1為本發(fā)明實(shí)施例提供的一種客戶端與服務(wù)器之間的身份認(rèn)證方法的流程圖之 ,
[0015]圖2為本發(fā)明實(shí)施例提供的一種客戶端與服務(wù)器之間的身份認(rèn)證方法的流程圖之-* *
[0016]圖3為本發(fā)明實(shí)施例提供的一種客戶端與服務(wù)器之間的身份認(rèn)證方法的詳細(xì)流程圖;
[0017]圖4為本發(fā)明實(shí)施例提供的一種客戶端的結(jié)構(gòu)示意圖;
[0018]圖5為本發(fā)明實(shí)施例提供的一種客戶端中的第三生成單元的結(jié)構(gòu)示意圖;
[0019]圖6為本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖;
[0020]圖7為本發(fā)明實(shí)施例提供的一種服務(wù)器中的第五生成單元的結(jié)構(gòu)示意圖;
[0021 ]圖8為本發(fā)明實(shí)施例提供的一種身份認(rèn)證系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]為了給出提高系統(tǒng)安全性的實(shí)現(xiàn)方案,本發(fā)明實(shí)施例提供了一種身份認(rèn)證方法、客戶端、服務(wù)器及系統(tǒng),以下結(jié)合說明書附圖對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。并且在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0023]本發(fā)明實(shí)施例提供一種客戶端與服務(wù)器之間的身份認(rèn)證方法,該方法的執(zhí)行主體為客戶端,如圖1所示,具體可以包括以下步驟:
[0024]SlOl、基于客戶端標(biāo)識,生成中間字符串。
[0025]S102、基于該中間字符串,生成驗(yàn)證碼以及第一動態(tài)口令;其中,該驗(yàn)證碼被發(fā)送至服務(wù)器。
[0026]S103、根據(jù)上述第一動態(tài)口令和從上述服務(wù)器接收的第二動態(tài)口令,確定身份認(rèn)證是否通過。
[0027]進(jìn)一步地,上述步驟SlOl中,具體可以包括:對上述客戶端標(biāo)識進(jìn)行加密處理得到第一混合字符串;從上述第一混合字符串中隨機(jī)截取出一段字符串作為中間字符串。
[0028]具體地,對上述客戶端標(biāo)識的加密可選用多種加密方法,例如,可以采用MD5(Message Digest Algorithm 5,信息摘要算法第五版)加密方法;從上述第一混合字符串中隨機(jī)截取字符串可采用多種隨機(jī)截取方法,使得每次獲得的中間字符串是隨機(jī)變化的,例如,可以通過隨機(jī)函數(shù)隨機(jī)生成一個整數(shù),用該整數(shù)對10取余,得到的余數(shù)作為從第一混合字符串開始截取字符串的起點(diǎn)位置。本領(lǐng)域技術(shù)人員可以理解,上述過程只是本說明書提供的一個優(yōu)選實(shí)施例中的步驟,并不一定是實(shí)施本發(fā)明所必須的,也不用于限定本發(fā)明。
[0029]進(jìn)一步地,上述步驟S102中,基于該中間字符串,生成驗(yàn)證碼,具體可以包括:基于當(dāng)前時間戳,生成數(shù)字字符串;按照第一預(yù)設(shè)插入規(guī)則,將上述中間字符串插入上述數(shù)字字符串,生成上述驗(yàn)證碼。
[0030]具體地,基于當(dāng)前時間戳生成數(shù)字字符串的處理方法是預(yù)設(shè)的,有截取、數(shù)組索引等多種方法可以選用,例如,可以用時間戳除以某個整數(shù),對所獲得的結(jié)果取整后,再從其中截取所需的數(shù)字字符串。采用時間戳生成數(shù)字字符串可以在生成驗(yàn)證碼的過程中進(jìn)一步引入不確定因子,增加了驗(yàn)證碼和動態(tài)口令的破解難度,提高系統(tǒng)安全性。
[0031]具體地,將上述中間字符串插入上述數(shù)字字符串中用到的第一預(yù)設(shè)插入規(guī)則也是一種預(yù)設(shè)規(guī)則,任意的字符插入方法都可以選用,例如,可以在數(shù)字字符串的每個偶數(shù)位之后插入依次中間字符串的每一位。
[0032]本領(lǐng)域技術(shù)人員可以理解,上述過程只是本說明書提供的一個優(yōu)選實(shí)施例中的步驟,并不一定是實(shí)施本發(fā)明所必須的,也不用于限定本發(fā)明。
[0033]進(jìn)一步地,上述步驟S102中,基于該中間字符串,生成第一動態(tài)口令,具體可以包括:獲取密鑰,基于上述密鑰和上述中間字符串,生成第二混合字符串;基于上述第二混合字符串,生成上述第一動態(tài)口令。
[0034]具體地,獲取密鑰可以包括以下步驟:獲取客戶端沙箱的密碼管理系統(tǒng)中存儲的加密密鑰;對上述加密密鑰進(jìn)行解密,得到上述密鑰。
[0035]其中,加密密鑰可以預(yù)先生成并存儲在上述密碼管理系統(tǒng),也可以在客戶端初始化時生成并存儲;生成方法是自定義的,例如,可以將當(dāng)前時間戳轉(zhuǎn)換成時間格式的字符串,再對該字符串采用某種加密方法得到;將加密密鑰存儲在客戶端沙箱的密碼管理系統(tǒng),既可以保障密鑰存儲的安全,也可以簡化密鑰存儲的算法設(shè)計;對加密密鑰進(jìn)行解密的方法參照所選用的加密方法進(jìn)行反向解密。
[0036]具體地,基于上述密鑰和上述中間字符,生成第二混合字符串,可以包括以下步驟:按照第二預(yù)設(shè)插入規(guī)則,將上述密鑰插入上述中間字符串,生成第一待處理字符串;對上述第一待處理字符串進(jìn)行加密處理得到第二待處理字符串;從上述第二待處理字符串中隨機(jī)截取出一段字符串作為上述第二混合字符串。
[0037]其中,第二預(yù)設(shè)插入規(guī)則是一種預(yù)設(shè)規(guī)則,可以與上述第一預(yù)設(shè)插入規(guī)則一致,也可以另行設(shè)計;對第一待處理字符串進(jìn)行加密處理得到第二待處理字符串的加密處理方法可在通用加密方法中自行選用;為了將插入處理和加密處理兩步結(jié)合,以簡化字符串處理的算法設(shè)計,可以將上述密鑰作為MD5加密的鹽值插入上述中間字符串,再將得到的第一待處理字符串進(jìn)行MD5加密處理;從上述第二待處理字符串中隨機(jī)截取字符串的方法可以自行設(shè)計和選用。
[0038]具體地,基于上述第二混合字符串,生成上述第一動態(tài)口令,可以包括以下步驟:針對上述第二混合字符串中的每個字符,獲取該字符在預(yù)設(shè)樣本數(shù)組中的位置索引數(shù);將該位置索引數(shù)對整數(shù)N取余,得到的余數(shù)依次作為所述第一動態(tài)口令中的一位;其中,1〈N〈
Ilo
[0039]本領(lǐng)域技術(shù)人員可以理解,上述過程只是本說明書提供的一個優(yōu)選實(shí)施例中的步驟,并不一定是實(shí)施本發(fā)明所必須的,也不用于限定本發(fā)明。
[0040]進(jìn)一步地,上述步驟S103中,具體可以包括:將上述第一動態(tài)口令和從上述服務(wù)器接收的第二動態(tài)口令進(jìn)行比對,若上述第一動態(tài)口令和上述第二動態(tài)口令的比對結(jié)果一致,則通過身份認(rèn)證,若二者不一致,則不通過;比對的過程可以是一次,也可以是多次,例如,三次比對結(jié)果均不一致,則不通過身份認(rèn)證,并拒絕再次進(jìn)行認(rèn)證。
[0041]與上述圖1所示方法相應(yīng)的,本發(fā)明實(shí)施例提供一種客戶端與服務(wù)器之間的身份認(rèn)證方法,該方法的執(zhí)行主體為服務(wù)器,如圖2所示,具體可以包括以下步驟:
[0042]S201、接收客戶端發(fā)送的驗(yàn)證碼。
[0043]S202、基于上述驗(yàn)證碼,得到中間字符串。
[0044]S203、基于該中間字符串,生成第二動態(tài)口令。
[0045]S204、向所述客戶端發(fā)送上述第二動態(tài)口令。
[0046]進(jìn)一步地,上述步驟S202中,具體可以包括:按照預(yù)設(shè)提取規(guī)則,從上述驗(yàn)證碼中提取出上述中間字符串。其中,上述預(yù)設(shè)提取規(guī)則與客戶端側(cè)步驟S102中的第一預(yù)設(shè)插入規(guī)則是相對應(yīng)的,依照上述中間字符串插入數(shù)字字符串得到上述驗(yàn)證碼的方法,則可以反向提取出上述中間字符串。本領(lǐng)域技術(shù)人員可以理解,上述過程只是本說明書提供的一個優(yōu)選實(shí)施例中的步驟,并不一定是實(shí)施本發(fā)明所必須的,也不用于限定本發(fā)明。
[0047]進(jìn)一步地,上述步驟S203中,具體可以包括:獲取密鑰,基于該密鑰和上述中間字符串,生成第三混合字符串;基于該第三混合字符串,生成上述第二動態(tài)口令。
[0048]具體地,基于該密鑰和上述中間字符串,生成第三混合字符串,可以包括:按照第二預(yù)設(shè)插入規(guī)則,將該密鑰插入上述中間字符串,生成第三待處理字符串;對該第三待處理字符串進(jìn)行加密處理得到第四待處理字符串;從該第四待處理字符串中隨機(jī)截取出一段字符串作為上述第三混合字符串。
[0049]具體地,基于該第三混合字符串,生成上述第二動態(tài)口令,可以包括:針對該第三混合字符串中的每個字符,獲取該字符在預(yù)設(shè)樣本數(shù)組中的位置索引數(shù);將該位置索引數(shù)對整數(shù)N取余,得到的余數(shù)依次作為上述第二動態(tài)口令中的一位;其中,1〈N〈11。
[0050]需要注意的是,關(guān)于上述步驟S203的詳細(xì)闡述,可以參照以客戶端為執(zhí)行主體的步驟S102中“基于上述中間字符串,生成第一動態(tài)口令”的方法。本領(lǐng)域技術(shù)人員可以理解,上述過程只是本說明書提供的一個優(yōu)選實(shí)施例中的步驟,并不一定是實(shí)施本發(fā)明所必須的,也不用于限定本發(fā)明。
[0051 ]下面結(jié)合附圖,用具體實(shí)施例對本發(fā)明提供的方案進(jìn)行詳細(xì)描述。
[0052]圖3所示為本發(fā)明實(shí)施例提供的一種身份認(rèn)證方法的詳細(xì)流程圖,具體包括以下步驟:
[0053]S301、客戶端對客戶端標(biāo)識進(jìn)行加密處理得到第一混合字符串;從該第一混合字符串中隨機(jī)截取出一段字符串作為中間字符串。
[0054]例如,客戶端對客戶端標(biāo)識進(jìn)行MD5加密處理,得到包含有字母和數(shù)字混合的字符串A;調(diào)用隨機(jī)函數(shù)生成一個0-99之間的整數(shù),比如45,將該整數(shù)對10取余,余數(shù)為5,那么就從混合字符串A的第5位開始截取字符串;截取4位字符串,得到中間字符串B4。
[0055]S302、客戶端基于當(dāng)前時間戳,生成數(shù)字字符串;按照第一預(yù)設(shè)插入規(guī)則,將上述中間字符串插入上述數(shù)字字符串,生成驗(yàn)證碼。
[0056]例如,客戶端將當(dāng)前時間戳除以9,將得到的結(jié)果取整,再從該整數(shù)結(jié)果的第I位開始截取6位字符串,得到數(shù)字字符串C6;在數(shù)字字符串C6中選取4個位置,比如第I位之前以及第2、4、6位之后,依次插入中間字符串B4的每一位字符,得到10位驗(yàn)證碼D10。
[0057]S3021、客戶端獲取客戶端沙箱的密碼管理系統(tǒng)中存儲的加密密鑰;對該加密密鑰進(jìn)行解密,得到密鑰。
[0058]例如,用戶在客戶端發(fā)起請求后,客戶端進(jìn)行初始化工作,檢查加密密鑰是否已存儲于客戶端沙箱的密碼管理系統(tǒng)中,若存在則完成初始化;若不存在,則按照預(yù)設(shè)的加密密鑰生成方法生成加密密鑰,比如,客戶端將當(dāng)前時間戳轉(zhuǎn)換成時間格式的字符串作為密鑰K,再對密鑰進(jìn)行加密,存儲于上述密碼管理系統(tǒng)中,客戶端完成初始化;初始化工作完成以后,客戶端從上述密碼管理系統(tǒng)中獲取加密密鑰,并對加密密鑰反向解密,得到密鑰K。
[0059]S3022、客戶端按照第二預(yù)設(shè)插入規(guī)則,將上述密鑰插入上述中間字符串,生成第一待處理字符串;對上述第一待處理字符串進(jìn)行加密處理得到第二待處理字符串;從上述第二待處理字符串中隨機(jī)截取出一段字符串作為第二混合字符串。
[0060]例如,將密鑰K作為MD5加密的鹽值插入中間字符串B4,得到第一待處理字符串E;對E進(jìn)行MD5加密處理,得到第二待處理字符串EN;從該字符串EN的第I位開始截取6位字符串,得到含有字母和數(shù)字的第二混合字符串F6。
[0061 ] S3023、客戶端針對上述第二混合字符串中的每個字符,獲取該字符在預(yù)設(shè)樣本數(shù)組中的位置索引數(shù);將該位置索引數(shù)對整數(shù)N取余,得到的余數(shù)依次作為第一動態(tài)口令中的一位;其中,1〈N〈11。
[0062]例如,預(yù)設(shè)一個含有數(shù)字0-9以及字母a-z共36位字符的樣本數(shù)組,每個字符均對應(yīng)一個位置索引數(shù);以該樣本數(shù)組為基準(zhǔn),獲取第二混合字符串F6中每個字符的位置索引數(shù),比如36、5、23、29、17、33;將所得的6個位置索引數(shù)分別對10取余,余數(shù)分別為6、5、3、9、
7、3,那么該第一動態(tài)口令則為653973。
[0063 ] S303、客戶端向服務(wù)器發(fā)送上述驗(yàn)證碼。
[0064]S304、服務(wù)器接收上述驗(yàn)證碼。
[0065]S305、服務(wù)器按照預(yù)設(shè)提取規(guī)則,從上述驗(yàn)證碼中提取出上述中間字符串。
[0066]例如,根據(jù)上述第一預(yù)設(shè)插入規(guī)則,得到的10位驗(yàn)證碼DlO中,中間字符串B4的每一位字符分別在驗(yàn)證碼DlO的第1、4、7、10位,那么就將服務(wù)器的提取規(guī)則預(yù)設(shè)為,提取驗(yàn)證碼D1的第1、4、7、1位字符,得到中間字符串B41。
[0067]S3061、服務(wù)器獲取密鑰。
[0068]S3062、服務(wù)器按照第二預(yù)設(shè)插入規(guī)則,將上述密鑰插入上述中間字符串,生成第三待處理字符串;對上述第三待處理字符串進(jìn)行加密處理得到第四待處理字符串;從上述第四待處理字符串中隨機(jī)截取出一段字符串作為第三混合字符串。
[0069]S3063、服務(wù)器針對上述第三混合字符串中的每個字符,獲取該字符在預(yù)設(shè)樣本數(shù)組中的位置索引數(shù);將該位置索引數(shù)對整數(shù)N取余,得到的余數(shù)依次作為第二動態(tài)口令中的一位;其中,1〈N〈11。
[0070]具體地,步驟S3062和S3063的實(shí)現(xiàn)方法可以參照步驟S3022和S3023的舉例。
[0071]S307、服務(wù)器向客戶端發(fā)送第二動態(tài)口令。
[0072]S308、客戶端接收第二動態(tài)口令。
[0073]S309、客戶端比對上述第一動態(tài)口令和上述第二動態(tài)口令,確定身份認(rèn)證是否通過。
[0074]例如,客戶端將第一動態(tài)口令和第二動態(tài)口令進(jìn)行比對,若二者一致,則通過身份認(rèn)證;若二者不一致,則進(jìn)行下一次比對,依次類推;最大比對次數(shù)預(yù)設(shè)為3次,若經(jīng)過3次比對,仍得到不一致的結(jié)果,則認(rèn)證不通過。
[0075]特別強(qiáng)調(diào)的是,本發(fā)明實(shí)施例提供的流程僅為一種參考流程,本發(fā)明提供的一種身份認(rèn)證方法,其具體流程的實(shí)現(xiàn)并不局限于以上流程提供的步驟順序,尤其是,步驟S2021-S2023與步驟S302以及步驟S303-S308之間,不存在唯一的順序關(guān)系。
[0076]基于同一發(fā)明構(gòu)思,根據(jù)本發(fā)明上述實(shí)施例提供的一種客戶端與服務(wù)器之間的身份認(rèn)證方法,相應(yīng)地,本發(fā)明另一實(shí)施例還提供了一種客戶端、服務(wù)器及系統(tǒng),具體實(shí)現(xiàn)方式可以參見前述方法的實(shí)施例,重復(fù)之處不再贅述。
[0077]本發(fā)明實(shí)施例提供一種客戶端,其結(jié)構(gòu)示意圖如圖4所示,具體可以包括以下單元:
[0078]第一生成單元401,用于基于客戶端標(biāo)識,生成中間字符串;
[0079]第二生成單元402,用于基于該中間字符串,生成驗(yàn)證碼;
[0080]第三生成單元403,用于基于該中間字符串,生成第一動態(tài)口令;
[0081 ] 第一發(fā)送單元404,用于將上述驗(yàn)證碼發(fā)送至服務(wù)器;
[0082]第一接收單元405,用于接收上述服務(wù)器發(fā)送的第二動態(tài)口令;
[0083]驗(yàn)證單元406,用于根據(jù)上述第一動態(tài)口令和上述第二動態(tài)口令,確定身份認(rèn)證是否通過。
[0084]進(jìn)一步地,上述第一生成單元401,具體可以用于對上述客戶端標(biāo)識進(jìn)行加密處理得到第一混合字符串;從上述第一混合字符串中隨機(jī)截取出一段字符串作為中間字符串。
[0085]進(jìn)一步地,上述第二生成單元402,具體可以用于基于當(dāng)前時間戳,生成數(shù)字字符串;按照第一預(yù)設(shè)插入規(guī)則,將上述中間字符串插入上述數(shù)字字符串,生成上述驗(yàn)證碼。
[0086]進(jìn)一步地,上述第三生成單元403,可以包括第一獲取子單元4031、第一生成子單元4032和第二生成子單元4033,其結(jié)構(gòu)示意圖如圖5所示,其中:上述第一獲取子單元4031,用于獲取密鑰;上述第一生成子單元4032,用于基于上述密鑰和上述中間字符串,生成第二混合字符串;上述第二生成子單元4033,用于基于上述第二混合字符串,生成上述第一動態(tài)口令。
[0087]具體地,上述第一獲取子單元4031,可以用于獲取客戶端沙箱的密碼管理系統(tǒng)中存儲的加密密鑰;對上述加密密鑰進(jìn)行解密,得到上述密鑰。
[0088]具體地,上述第一生成子單元4032,可以用于按照第二預(yù)設(shè)插入規(guī)則,將上述密鑰插入上述中間字符串,生成第一待處理字符串;對上述第一待處理字符串進(jìn)行加密處理得到第二待處理字符串;從上述第二待處理字符串中隨機(jī)截取出一段字符串作為上述第二混合字符串。
[0089]具體地,上述第二生成子單元4033,可以用于針對上述第二混合字符串中的每個字符,獲取該字符在預(yù)設(shè)樣本數(shù)組中的位置索引數(shù);將該位置索引數(shù)對整數(shù)N取余,得到的余數(shù)依次作為上述第一動態(tài)口令中的一位;其中,1〈N〈11。
[0090]本發(fā)明實(shí)施例提供一種服務(wù)器,其結(jié)構(gòu)示意圖如圖6所示,具體可以包括如下單元:
[0091]第二接收單元601,用于接收客戶端發(fā)送的驗(yàn)證碼;
[0092]第四生成單元602,用于基于上述驗(yàn)證碼,得到中間字符串;
[0093]第五生成單元603,用于基于該中間字符串,生成第二動態(tài)口令;
[0094]第二發(fā)送單元604,用于向上述客戶端發(fā)送上述第二動態(tài)口令。
[0095]進(jìn)一步地,上述第四生成單元602,具體可以用于按照預(yù)設(shè)提取規(guī)則,從所述驗(yàn)證碼中提取出所述中間字符串。
[0096]進(jìn)一步地,上述第五生成單元603,可以包括第二獲取子單元6031、第三生成子單元6032和第四生成子單元6033,其結(jié)構(gòu)示意圖如圖7所示,其中:上述第二獲取子單元6031,用于獲取密鑰;上述第三生成子單元6032,用于基于上述密鑰和上述中間字符串,生成第三混合字符串;上述第四生成子單元6033,用于基于上述第三混合字符串,生成上述第二動態(tài)口令。
[0097]具體地,上述三生成子單元6032,可以用于按照第二預(yù)設(shè)插入規(guī)則,將上述密鑰插入上述中間字符串,生成第三待處理字符串;對上述第三待處理字符串進(jìn)行加密處理得到第四待處理字符串;從上述第四待處理字符串中隨機(jī)截取出一段字符串作為上述第三混合字符串。
[0098]具體地,上述第四生成子單元6033,可以用于針對上述第三混合字符串中的每個字符,獲取該字符在預(yù)設(shè)樣本數(shù)組中的位置索引數(shù);將該位置索引數(shù)對整數(shù)N取余,得到的余數(shù)依次作為上述第二動態(tài)口令中的一位;其中,1〈N〈11。
[0099]本發(fā)明實(shí)施例提供一種身份驗(yàn)證系統(tǒng),包括客戶端801和服務(wù)器802,結(jié)構(gòu)示意圖如圖8所示,其中:
[0100]客戶端801,用于基于客戶端標(biāo)識,生成中間字符串;基于該中間字符串,生成驗(yàn)證碼以及第一動態(tài)口令;其中,該驗(yàn)證碼被發(fā)送至服務(wù)器802;根據(jù)上述第一動態(tài)口令和從服務(wù)器802接收的第二動態(tài)口令,確定身份認(rèn)證是否通過;
[0101]服務(wù)器802,用于接收客戶端801發(fā)送的驗(yàn)證碼;基于該驗(yàn)證碼,得到中間字符串;基于該中間字符串,生成第二動態(tài)口令;向客戶端801發(fā)送該第二動態(tài)口令。
[0102]綜上所述,本發(fā)明實(shí)施例提供的方案,實(shí)現(xiàn)了客戶端和服務(wù)器之間的雙向身份認(rèn)證,并且動態(tài)口令的生成過程更為嚴(yán)密,不易在認(rèn)證過程遭到破解,從而提高了系統(tǒng)安全性。
[0103]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【主權(quán)項】
1.一種身份認(rèn)證方法,其特征在于,包括: 基于客戶端標(biāo)識,生成中間字符串; 基于該中間字符串,生成驗(yàn)證碼以及第一動態(tài)口令;其中,所述驗(yàn)證碼被發(fā)送至服務(wù)器; 根據(jù)所述第一動態(tài)口令和從所述服務(wù)器接收的第二動態(tài)口令,確定身份認(rèn)證是否通過。2.如權(quán)利要求1所述的方法,其特征在于,基于客戶端標(biāo)識,生成中間字符串,具體包括: 對所述客戶端標(biāo)識進(jìn)行加密處理得到第一混合字符串; 從所述第一混合字符串中隨機(jī)截取出一段字符串作為中間字符串。3.如權(quán)利要求1所述的方法,其特征在于,基于該中間字符串,生成驗(yàn)證碼,具體包括: 基于當(dāng)前時間戳,生成數(shù)字字符串; 按照第一預(yù)設(shè)插入規(guī)則,將所述中間字符串插入所述數(shù)字字符串,生成所述驗(yàn)證碼。4.如權(quán)利要求1所述的方法,其特征在于,基于該中間字符串,生成第一動態(tài)口令,具體包括: 獲取密鑰,基于所述密鑰和所述中間字符串,生成第二混合字符串; 基于所述第二混合字符串,生成所述第一動態(tài)口令。5.如權(quán)利要求4所述的方法,其特征在于,獲取密鑰,具體包括: 獲取客戶端沙箱的密碼管理系統(tǒng)中存儲的加密密鑰; 對所述加密密鑰進(jìn)行解密,得到所述密鑰。6.如權(quán)利要求4所述的方法,其特征在于,基于所述密鑰和所述中間字符串,生成第二混合字符串,具體包括: 按照第二預(yù)設(shè)插入規(guī)則,將所述密鑰插入所述中間字符串,生成第一待處理字符串; 對所述第一待處理字符串進(jìn)行加密處理得到第二待處理字符串; 從所述第二待處理字符串中隨機(jī)截取出一段字符串作為所述第二混合字符串。7.如權(quán)利要求4所述的方法,其特征在于,基于所述第二混合字符串,生成所述第一動態(tài)口令,具體包括: 針對所述第二混合字符串中的每個字符,獲取該字符在預(yù)設(shè)樣本數(shù)組中的位置索引數(shù); 將該位置索引數(shù)對整數(shù)N取余,得到的余數(shù)依次作為所述第一動態(tài)口令中的一位;其中,1〈N〈11。8.一種身份認(rèn)證方法,其特征在于,包括: 接收客戶端發(fā)送的驗(yàn)證碼; 基于所述驗(yàn)證碼,得到中間字符串; 基于該中間字符串,生成第二動態(tài)口令; 向所述客戶端發(fā)送所述第二動態(tài)口令。9.如權(quán)利要求8所述的方法,其特征在于,基于所述驗(yàn)證碼,得到中間字符串,具體包括: 按照預(yù)設(shè)提取規(guī)則,從所述驗(yàn)證碼中提取出所述中間字符串。10.如權(quán)利要求8所述的方法,其特征在于,基于該中間字符串,生成第二動態(tài)口令,具體包括: 獲取密鑰,基于所述密鑰和所述中間字符串,生成第三混合字符串; 基于所述第三混合字符串,生成所述第二動態(tài)口令。11.如權(quán)利要求10所述的方法,其特征在于,基于所述密鑰和所述中間字符串,生成第三混合字符串,具體包括: 按照第二預(yù)設(shè)插入規(guī)則,將所述密鑰插入所述中間字符串,生成第三待處理字符串; 對所述第三待處理字符串進(jìn)行加密處理得到第四待處理字符串; 從所述第四待處理字符串中隨機(jī)截取出一段字符串作為所述第三混合字符串。12.如權(quán)利要求10所述的方法,其特征在于,基于所述第三混合字符串,生成所述第二動態(tài)口令,具體包括: 針對所述第三混合字符串中的每個字符,獲取該字符在預(yù)設(shè)樣本數(shù)組中的位置索引數(shù); 將該位置索引數(shù)對整數(shù)N取余,得到的余數(shù)依次作為所述第二動態(tài)口令中的一位;其中,1〈N〈11。13.一種客戶端,其特征在于,包括: 第一生成單元,用于基于客戶端標(biāo)識,生成中間字符串; 第二生成單元,用于基于該中間字符串,生成驗(yàn)證碼; 第三生成單元,用于基于該中間字符串,生成第一動態(tài)口令; 第一發(fā)送單元,用于將所述驗(yàn)證碼發(fā)送至服務(wù)器; 第一接收單元,用于接收所述服務(wù)器發(fā)送的第二動態(tài)口令; 驗(yàn)證單元,用于根據(jù)所述第一動態(tài)口令和所述第二動態(tài)口令,確定身份認(rèn)證是否通過。14.如權(quán)利要求13所述的客戶端,其特征在于,所述第一生成單元,具體用于對所述客戶端標(biāo)識進(jìn)行加密處理得到第一混合字符串;從所述第一混合字符串中隨機(jī)截取出一段字符串作為中間字符串。15.如權(quán)利要求13所述的客戶端,其特征在于,所述第二生成單元,具體用于基于當(dāng)前時間戳,生成數(shù)字字符串;按照第一預(yù)設(shè)插入規(guī)則,將所述中間字符串插入所述數(shù)字字符串,生成所述驗(yàn)證碼。16.如權(quán)利要求13所述的客戶端,其特征在于,所述第三生成單元包括第一獲取子單元、第一生成子單元和第二生成子單元,其中: 所述第一獲取子單元,用于獲取密鑰; 所述第一生成子單元,用于基于所述密鑰和所述中間字符串,生成第二混合字符串; 所述第二生成子單元,用于基于所述第二混合字符串,生成所述第一動態(tài)口令。17.如權(quán)利要求16所述的客戶端,其特征在于,所述第一獲取子單元,具體用于獲取客戶端沙箱的密碼管理系統(tǒng)中存儲的加密密鑰;對所述加密密鑰進(jìn)行解密,得到所述密鑰。18.如權(quán)利要求16所述的客戶端,其特征在于,所述第一生成子單元,具體用于按照第二預(yù)設(shè)插入規(guī)則,將所述密鑰插入所述中間字符串,生成第一待處理字符串;對所述第一待處理字符串進(jìn)行加密處理得到第二待處理字符串;從所述第二待處理字符串中隨機(jī)截取出一段字符串作為所述第二混合字符串。19.如權(quán)利要求16所述的客戶端,其特征在于,所述第二生成子單元,具體用于針對所述第二混合字符串中的每個字符,獲取該字符在預(yù)設(shè)樣本數(shù)組中的位置索引數(shù);將該位置索弓I數(shù)對整數(shù)N取余,得到的余數(shù)依次作為所述第一動態(tài)口令中的一位;其中,I <N〈 11。20.一種服務(wù)器,其特征在于,包括: 第二接收單元,用于接收客戶端發(fā)送的驗(yàn)證碼; 第四生成單元,用于基于所述驗(yàn)證碼,得到中間字符串; 第五生成單元,用于基于該中間字符串,生成第二動態(tài)口令; 第二發(fā)送單元,用于向所述客戶端發(fā)送所述第二動態(tài)口令。21.如權(quán)利要20所述的服務(wù)器,其特征在于,所述第四生成單元,具體用于按照預(yù)設(shè)提取規(guī)則,從所述驗(yàn)證碼中提取出所述中間字符串。22.如權(quán)利要求20所述的服務(wù)器,其特征在于,所述第五生成單元包括第二獲取子單元、第三生成子單元和第四生成子單元,其中: 所述第二獲取子單元,用于獲取密鑰; 所述第三生成子單元,用于基于所述密鑰和所述中間字符串,生成第三混合字符串; 所述第四生成子單元,用于基于所述第三混合字符串,生成所述第二動態(tài)口令。23.如權(quán)利要求22所述的服務(wù)器,其特征在于,所述第三生成子單元,具體用于按照第二預(yù)設(shè)插入規(guī)則,將所述密鑰插入所述中間字符串,生成第三待處理字符串;對所述第三待處理字符串進(jìn)行加密處理得到第四待處理字符串;從所述第四待處理字符串中隨機(jī)截取出一段字符串作為所述第三混合字符串。24.如權(quán)利要求22所述的服務(wù)器,其特征在于,所述第四生成子單元,具體用于針對所述第三混合字符串中的每個字符,獲取該字符在預(yù)設(shè)樣本數(shù)組中的位置索引數(shù);將該位置索弓I數(shù)對整數(shù)N取余,得到的余數(shù)依次作為所述第二動態(tài)口令中的一位;其中,I <N〈 11。25.一種身份認(rèn)證系統(tǒng),其特征在于,包括客戶端和服務(wù)器,其中: 所述客戶端,用于基于客戶端標(biāo)識,生成中間字符串;基于該中間字符串,生成驗(yàn)證碼以及第一動態(tài)口令;其中,所述驗(yàn)證碼被發(fā)送至所述服務(wù)器;根據(jù)所述第一動態(tài)口令和從所述服務(wù)器接收的第二動態(tài)口令,確定身份認(rèn)證是否通過; 所述服務(wù)器,用于接收所述客戶端發(fā)送的驗(yàn)證碼;基于所述驗(yàn)證碼,得到中間字符串;基于該中間字符串,生成第二動態(tài)口令;向所述客戶端發(fā)送所述第二動態(tài)口令。
【文檔編號】H04L29/06GK105827591SQ201610096824
【公開日】2016年8月3日
【申請日】2016年2月22日
【發(fā)明人】曹雷, 李奎鋼
【申請人】北京啟迪思創(chuàng)科技有限公司