與第一驗(yàn)證碼是否相同;
[0209]如果第三驗(yàn)證碼與第一驗(yàn)證碼相同,判定客戶端認(rèn)證結(jié)果為成功。
[0210]進(jìn)一步地,處理器72,還可以實(shí)現(xiàn)判斷客戶端當(dāng)前時(shí)間所在的時(shí)間窗口 ;
[0211]確定時(shí)間窗口內(nèi)的第一時(shí)間T ;
[0212]采用code=genCode (Key, T)計(jì)算第二驗(yàn)證碼,其中,code為第二驗(yàn)證碼,genCode算法為驗(yàn)證碼生成算法,Key為第二密鑰。
[0213]進(jìn)一步地,處理器72,還可以實(shí)現(xiàn)在根據(jù)服務(wù)過期時(shí)間和認(rèn)證參數(shù)生成第二密鑰之前,確定出系統(tǒng)時(shí)間未超過服務(wù)過期時(shí)間。
[0214]進(jìn)一步地,處理器72,還可以實(shí)現(xiàn)以系統(tǒng)時(shí)間所在的時(shí)間窗口為基準(zhǔn),在預(yù)定范圍內(nèi)移動(dòng)時(shí)間窗口;
[0215]采用第二密鑰和移動(dòng)后的時(shí)間窗口生成第四驗(yàn)證碼;
[0216]比較第四驗(yàn)證碼與第一驗(yàn)證碼是否相同;
[0217]如果第四驗(yàn)證碼與第一驗(yàn)證碼相同,判斷客戶端認(rèn)證結(jié)果為成功。
[0218]進(jìn)一步地,處理器72,還可以實(shí)現(xiàn)通過發(fā)送器74將認(rèn)證結(jié)果返回給客戶端。
[0219]進(jìn)一步地,當(dāng)認(rèn)證結(jié)果為成功時(shí),認(rèn)證結(jié)果包括系統(tǒng)時(shí)間與客戶端當(dāng)前時(shí)間的時(shí)間差值。
[0220]本裝置實(shí)施例中提供的服務(wù)器,可以應(yīng)用于方法附圖1所示的場景中,實(shí)現(xiàn)其中服務(wù)器的功能。本裝置實(shí)施例中提供的服務(wù)器可以實(shí)現(xiàn)的其他附加功能、以及與其他網(wǎng)元設(shè)備,例如客戶端的交互過程,請參照方法實(shí)施例一、二中對服務(wù)器的描述,在這里不再贅述。
[0221]實(shí)施例七
[0222]本發(fā)明實(shí)施例提供了一種客戶端,參見圖9,該客戶端包括:
[0223]獲取模塊801,用于獲取第一密鑰,以及服務(wù)過期時(shí)間和認(rèn)證參數(shù),第一密鑰由證書授權(quán)中心生成,認(rèn)證參數(shù)包括客戶名稱、序列號、業(yè)務(wù)標(biāo)識、型號和版本中的至少一個(gè)。
[0224]其中第一密鑰是由CA中心根據(jù)認(rèn)證參數(shù)和服務(wù)過期時(shí)間生成的,第一密鑰隨著License配置到客戶端,且第一密鑰是具有有效期限制的,如最大有效期不超過24小時(shí),該有限期也是客戶端服務(wù)過期時(shí)間,所以在第一密鑰失效之前,客戶端需要及時(shí)進(jìn)行認(rèn)證。
[0225]處理模塊802,用于采用第一密鑰和客戶端當(dāng)前時(shí)間生成第一驗(yàn)證碼;
[0226]生成認(rèn)證請求,認(rèn)證請求攜帶:認(rèn)證參數(shù)、服務(wù)過期時(shí)間、客戶端當(dāng)前時(shí)間和第一驗(yàn)證碼。
[0227]需要說明的是,這里生成第一驗(yàn)證碼采用的算法與服務(wù)器中生成驗(yàn)證碼的算法相同。
[0228]發(fā)送模塊803,用于將認(rèn)證請求發(fā)送給服務(wù)器,以使服務(wù)器根據(jù)認(rèn)證參數(shù)、服務(wù)過期時(shí)間、客戶端當(dāng)前時(shí)間和第一驗(yàn)證碼驗(yàn)證客戶端是否合法。
[0229]本發(fā)明實(shí)施例通過客戶端根據(jù)CA中心下發(fā)的第一密鑰計(jì)算第一驗(yàn)證碼,并將認(rèn)證參數(shù)、服務(wù)過期時(shí)間、客戶端當(dāng)前時(shí)間和第一驗(yàn)證碼發(fā)送給服務(wù)器,使得服務(wù)器可以采用與CA中心生成第一密鑰的算法相同的算法生成第二密鑰,并采用與客戶端生成第一驗(yàn)證碼的算法相同的算法生成第二驗(yàn)證碼和第三驗(yàn)證碼,從而可以判斷客戶端上傳的認(rèn)證參數(shù)和客戶端當(dāng)前時(shí)間是否正確,從而完成認(rèn)證,由此可以看出,在服務(wù)器對客戶端進(jìn)行認(rèn)證的過程中,并不需要向CA中心獲取服務(wù)器的認(rèn)證參數(shù),而是根據(jù)計(jì)算判斷客戶端是否合法,所以即使CA中心的查詢服務(wù)不可用、CA中心故障或者服務(wù)器與CA中心間網(wǎng)絡(luò)故障時(shí),月艮務(wù)器仍然可以繼續(xù)對客戶端進(jìn)行認(rèn)證,進(jìn)而不會影響客戶端的服務(wù)使用,保證服務(wù)可以正常使用。
[0230]實(shí)施例八
[0231]本發(fā)明實(shí)施例提供了一種客戶端,參見圖10,該客戶端包括:
[0232]獲取模塊901,用于獲取第一密鑰,以及服務(wù)過期時(shí)間和認(rèn)證參數(shù),第一密鑰由證書授權(quán)中心生成,認(rèn)證參數(shù)包括客戶名稱、序列號、業(yè)務(wù)標(biāo)識、型號和版本中的至少一個(gè)。
[0233]其中第一密鑰是由CA中心根據(jù)認(rèn)證參數(shù)和服務(wù)過期時(shí)間生成的,第一密鑰隨著License配置到客戶端,且第一密鑰是具有有效期限制的,該有限期也是客戶端服務(wù)過期時(shí)間,如最大有效期不超過24小時(shí),所以在第一密鑰失效之前,客戶端需要及時(shí)進(jìn)行認(rèn)證。
[0234]處理模塊902,用于采用第一密鑰和客戶端當(dāng)前時(shí)間生成第一驗(yàn)證碼;
[0235]生成認(rèn)證請求,認(rèn)證請求攜帶:認(rèn)證參數(shù)、服務(wù)過期時(shí)間、客戶端當(dāng)前時(shí)間和第一驗(yàn)證碼。
[0236]這里處理模塊902生成第一驗(yàn)證碼采用的算法與服務(wù)器中生成驗(yàn)證碼的算法相同。具體地,處理模塊902,包括:
[0237]判斷單元,用于判斷客戶端當(dāng)前時(shí)間所在的時(shí)間窗口。
[0238]查找單元,用于確定時(shí)間窗口內(nèi)的第一時(shí)間T。該第一時(shí)間用于計(jì)算第一驗(yàn)證碼,且該第一時(shí)間可以是事先設(shè)定的,在一個(gè)時(shí)間窗口內(nèi)第一時(shí)間可以是該時(shí)間窗口的起始時(shí)間、結(jié)束時(shí)間或任意設(shè)定時(shí)間點(diǎn)。
[0239]計(jì)算單元,用于采用code=genCode (Key, T)計(jì)算第一驗(yàn)證碼,其中,code為第一驗(yàn)證碼,genCode算法為驗(yàn)證碼生成算法,Key為第一密鑰。
[0240]發(fā)送模塊903,用于將認(rèn)證請求發(fā)送給服務(wù)器,以使服務(wù)器根據(jù)認(rèn)證參數(shù)、服務(wù)過期時(shí)間、客戶端當(dāng)前時(shí)間和第一驗(yàn)證碼驗(yàn)證客戶端是否合法。
[0241]接收模塊904,用于接收服務(wù)器發(fā)送的認(rèn)證結(jié)果。
[0242]進(jìn)一步地,當(dāng)認(rèn)證結(jié)果為失敗時(shí),該認(rèn)證結(jié)果中還可能包括錯(cuò)誤碼,錯(cuò)誤碼表明了客戶端認(rèn)證失敗的原因。例如,錯(cuò)誤碼0x0006019A表示服務(wù)過期,即系統(tǒng)時(shí)間超過過期時(shí)間;錯(cuò)誤碼表示信息錯(cuò)誤,即客戶端上傳給服務(wù)器的認(rèn)證信息與上傳給CA中心的認(rèn)證信息不同;錯(cuò)誤碼0x000701A0表示時(shí)間錯(cuò)誤,即客戶端當(dāng)前時(shí)間與系統(tǒng)時(shí)間不同或超過預(yù)設(shè)的偏差。
[0243]當(dāng)認(rèn)證結(jié)果為成功時(shí),該認(rèn)證結(jié)果中還可能包括時(shí)間差值,該時(shí)間差值是指服務(wù)器接收到認(rèn)證請求時(shí)的系統(tǒng)時(shí)間與客戶端當(dāng)前時(shí)間的時(shí)間差,在下次認(rèn)證請求時(shí),客戶端可以根據(jù)這個(gè)時(shí)間差值調(diào)整上報(bào)的客戶端當(dāng)前時(shí)間,這樣服務(wù)器就不需要通過移動(dòng)時(shí)間窗口來認(rèn)證,從而縮短認(rèn)證的時(shí)間。
[0244]本發(fā)明實(shí)施例通過客戶端根據(jù)CA中心下發(fā)的第一密鑰計(jì)算第一驗(yàn)證碼,并將認(rèn)證參數(shù)、服務(wù)過期時(shí)間、客戶端當(dāng)前時(shí)間和第一驗(yàn)證碼發(fā)送給服務(wù)器,使得服務(wù)器可以采用與CA中心生成第一密鑰的算法相同的算法生成第二密鑰,并采用與客戶端生成第一驗(yàn)證碼的算法相同的算法生成第二驗(yàn)證碼和第三驗(yàn)證碼,從而可以判斷客戶端上傳的認(rèn)證參數(shù)和客戶端當(dāng)前時(shí)間是否正確,從而完成認(rèn)證,由此可以看出,在服務(wù)器對客戶端進(jìn)行認(rèn)證的過程中,并不需要向CA中心獲取服務(wù)器的認(rèn)證參數(shù),而是根據(jù)計(jì)算判斷客戶端是否合法,所以即使CA中心的查詢服務(wù)不可用、CA中心故障或者服務(wù)器與CA中心間網(wǎng)絡(luò)故障時(shí),月艮務(wù)器仍然可以繼續(xù)對客戶端進(jìn)行認(rèn)證,進(jìn)而不會影響客戶端的服務(wù)使用,保證服務(wù)可以正常使用。
[0245]在具體的實(shí)施方式中,前述圖9、10中的客戶端可以是計(jì)算機(jī)或移動(dòng)終端,如圖11所示。其一般包括存儲器1001、處理器1002、接收器1003和發(fā)送器1004等部件。本領(lǐng)域技術(shù)人員可以理解,圖11中所示出的結(jié)構(gòu)并不構(gòu)成對本裝置的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
[0246]下面結(jié)合圖11對計(jì)算機(jī)100的各個(gè)構(gòu)成部件進(jìn)行具體的介紹:
[0247]存儲器1001可用于存儲軟件程序以及應(yīng)用模塊,處理器1002通過運(yùn)行存儲在存儲器1001的軟件程序以及應(yīng)用模塊,從而執(zhí)行服務(wù)器1000的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器1001可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如驗(yàn)證碼計(jì)算)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)服務(wù)器1000的處理所創(chuàng)建的數(shù)據(jù)。此外,存儲器1001可以包括高速RAM(Random Access Memory,隨機(jī)存取存儲器),還可以包括非易失性存儲器(non-volatile memory),例如至少一個(gè)磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。
[0248]處理器1002是服務(wù)器1000的控制中心,利用各種接口和線路連接整個(gè)計(jì)算機(jī)的各個(gè)部分。
[0249]具體地,處理器1002通過運(yùn)行或執(zhí)行存儲在存儲器1001內(nèi)的軟件程序和/或應(yīng)用模塊,以及調(diào)用存儲在存儲器1001內(nèi)的數(shù)據(jù),處理器1002可以實(shí)現(xiàn),獲取第一密鑰,以及服務(wù)過期時(shí)間和認(rèn)證參數(shù),第一密鑰由證書授權(quán)中心生成,認(rèn)證參數(shù)包括客戶名稱、序列號、業(yè)務(wù)標(biāo)識、型號和版本中的至少一個(gè),第一密鑰是由證書授權(quán)中心根據(jù)認(rèn)證參數(shù)和服務(wù)過期時(shí)間生成的;
[0250]采用第一密鑰和客戶端當(dāng)前時(shí)間生成第一驗(yàn)證碼;
[0251]生成認(rèn)證請求,認(rèn)證請求攜帶:認(rèn)證參數(shù)、服務(wù)過期時(shí)間、客戶端當(dāng)前時(shí)間和第一驗(yàn)證碼。
[0252]將認(rèn)證請求發(fā)送給服務(wù)器,以使服務(wù)器根據(jù)認(rèn)證參數(shù)、服務(wù)過期時(shí)間、客戶端當(dāng)前時(shí)間和第一驗(yàn)證碼驗(yàn)證客戶端是否合法。
[0253]進(jìn)一步地,處理器1002還可以實(shí)現(xiàn),判斷客戶端當(dāng)前時(shí)間所在的時(shí)間窗口 T ;
[0254]確定時(shí)間窗口內(nèi)的第一時(shí)間T ;
[0255]采用code=genCode (Key,T)計(jì)算第一驗(yàn)證碼,其中,code為第一驗(yàn)證碼,genCode算法為驗(yàn)證碼生成算法,Key為第一密鑰。
[0256]進(jìn)一步地,處理器1002還可以實(shí)現(xiàn),接收服務(wù)器發(fā)送的認(rèn)證結(jié)果。
[0257]進(jìn)一步地,當(dāng)認(rèn)證結(jié)果為成功時(shí),認(rèn)證結(jié)果包括服務(wù)器接收到認(rèn)證請求時(shí)的系統(tǒng)時(shí)間與客戶端當(dāng)前時(shí)間的時(shí)間差值。
[0258]本裝置實(shí)施例中提供的客戶端,可以應(yīng)用于方法附圖1所示的場景中,實(shí)現(xiàn)其中客戶端的功能。本裝置實(shí)施例中提供的客戶端可以實(shí)現(xiàn)的其他附加功能、以及與其他網(wǎng)元設(shè)備,例如服務(wù)器的交互過程,請參照方法實(shí)施例三、四中對客戶端的描述,在這里不再贅述。
[0259]實(shí)施例九
[0260]本發(fā)明實(shí)施例提供了一種客戶端證書認(rèn)證系統(tǒng),參見圖12,該系統(tǒng)包括:
[0261]CA (證書授權(quán))中心1101、客戶端1102和服務(wù)器1103,該客戶端1102如實(shí)施例七或八,服務(wù)器1103如實(shí)施例五或六。
[0262]CA中心1101和客戶端1102中部署有相同的genKey算法。服務(wù)器1103和客戶端1102中部署有相同的genCode算法。
[0263]CA中心1101用于計(jì)算第一密鑰,并發(fā)送給客戶端1102。具體地,CA中心1101可以將第一密鑰隨Licen