書授權(quán)中心、如前所述的服務(wù)器和如前所述的客戶端,所述證書授權(quán)中心用于計(jì)算第一密鑰,并發(fā)送給所述客戶端。
[0068]本發(fā)明實(shí)施例提供的技術(shù)方案帶來(lái)的有益效果是:
[0069]根據(jù)第二密鑰和客戶端當(dāng)前時(shí)間生成第二驗(yàn)證碼,由于生成第二密鑰采用的算法與CA中心生成第一密鑰的算法相同,因此當(dāng)?shù)诙?yàn)證碼與第一驗(yàn)證碼相同時(shí),說(shuō)明客戶端上傳的認(rèn)證參數(shù)與CA中心的相同;根據(jù)第二密鑰和系統(tǒng)時(shí)間生成第三驗(yàn)證碼,由于生成第二驗(yàn)證碼采用的算法與客戶端生成第一驗(yàn)證碼的算法相同,因此當(dāng)?shù)谌?yàn)證碼與第一驗(yàn)證碼相同時(shí),說(shuō)明客戶端上傳的客戶端當(dāng)前時(shí)間與系統(tǒng)時(shí)間的相同,由此可以看出,在服務(wù)器對(duì)客戶端進(jìn)行認(rèn)證的過(guò)程中,并不需要向CA中心獲取服務(wù)器的認(rèn)證參數(shù),而是根據(jù)計(jì)算判斷客戶端是否合法,所以即使CA中心的查詢服務(wù)不可用、CA中心故障或者服務(wù)器與CA中心間網(wǎng)絡(luò)故障時(shí),服務(wù)器仍然可以繼續(xù)對(duì)客戶端進(jìn)行認(rèn)證,進(jìn)而不會(huì)影響客戶端的服務(wù)使用,保證服務(wù)可以正常使用。
【附圖說(shuō)明】
[0070]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0071]圖1是本發(fā)明實(shí)施例提供的應(yīng)用場(chǎng)景示意圖;
[0072]圖2是本發(fā)明實(shí)施例一提供的客戶端證書認(rèn)證方法流程圖;
[0073]圖3是本發(fā)明實(shí)施例二提供的客戶端證書認(rèn)證方法流程圖;
[0074]圖4是本發(fā)明實(shí)施例三提供的客戶端證書認(rèn)證方法流程圖;
[0075]圖5是本發(fā)明實(shí)施例四提供的客戶端證書認(rèn)證方法流程圖;
[0076]圖6是本發(fā)明實(shí)施例五提供的服務(wù)器的結(jié)構(gòu)示意圖;
[0077]圖7是本發(fā)明實(shí)施例六提供的服務(wù)器的結(jié)構(gòu)示意圖;
[0078]圖8是本發(fā)明實(shí)施例提供的服務(wù)器的結(jié)構(gòu)示意圖;
[0079]圖9是本發(fā)明實(shí)施例七提供的客戶端的結(jié)構(gòu)示意圖;
[0080]圖10是本發(fā)明實(shí)施例八提供的客戶端的結(jié)構(gòu)示意圖;
[0081]圖11是本發(fā)明實(shí)施例提供的客戶端的結(jié)構(gòu)示意圖;
[0082]圖12是本發(fā)明實(shí)施例九提供的客戶端證書認(rèn)證系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0083]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0084]為了方便對(duì)本申請(qǐng)實(shí)施例內(nèi)容的描述,下面先結(jié)合圖1對(duì)本申請(qǐng)的應(yīng)用場(chǎng)景進(jìn)行說(shuō)明:如圖1,客戶端12和CA (證書授權(quán))中心11之間通過(guò)網(wǎng)絡(luò)連接,客戶端12和服務(wù)器13之間通過(guò)網(wǎng)絡(luò)連接,而區(qū)別于一般的認(rèn)證場(chǎng)景,CA中心11和服務(wù)器13之間是不需要進(jìn)行連接的。
[0085]客戶端12在向服務(wù)器13認(rèn)證前,需要先將認(rèn)證參數(shù)發(fā)送給CA中心11 'Ck中心11除了負(fù)責(zé)制作License外,還需要根據(jù)認(rèn)證參數(shù)計(jì)算第一密鑰,然后發(fā)送給客戶端12??蛻舳?2根據(jù)第一密鑰生成第一驗(yàn)證碼,然后向服務(wù)請(qǐng)13發(fā)送認(rèn)證請(qǐng)求。服務(wù)器13通過(guò)認(rèn)證請(qǐng)求完成對(duì)客戶端12的認(rèn)證,具體如何認(rèn)證在以下實(shí)施例中會(huì)有詳細(xì)說(shuō)明。另外,需要說(shuō)明的是在CA中心11和服務(wù)器13中布置有相同的密鑰算法(genKey算法),服務(wù)器13和客戶端12中部署有相同的驗(yàn)證碼算法(genCode算法)。
[0086]實(shí)施例一
[0087]本發(fā)明實(shí)施例提供了一種客戶端證書認(rèn)證方法,由服務(wù)器執(zhí)行,參見(jiàn)圖2,該方法包括:
[0088]步驟101:服務(wù)器接收客戶端發(fā)送的認(rèn)證請(qǐng)求,該認(rèn)證請(qǐng)求包括:認(rèn)證參數(shù)、服務(wù)過(guò)期時(shí)間、客戶端當(dāng)前時(shí)間和第一驗(yàn)證碼,認(rèn)證參數(shù)包括客戶名稱、序列號(hào)、業(yè)務(wù)標(biāo)識(shí)、型號(hào)和版本中的至少一個(gè)。
[0089]其中,第一驗(yàn)證碼是客戶端在請(qǐng)求認(rèn)證前根據(jù)第一密鑰和客戶端當(dāng)前時(shí)間生成的,其中第一密鑰是由CA中心根據(jù)認(rèn)證參數(shù)和服務(wù)過(guò)期時(shí)間生成的,第一密鑰隨著License配置到客戶端。
[0090]步驟102:獲取服務(wù)器收到認(rèn)證請(qǐng)求時(shí)的系統(tǒng)時(shí)間。
[0091]步驟103:采用服務(wù)過(guò)期時(shí)間和認(rèn)證參數(shù)生成第二密鑰。
[0092]需要說(shuō)明的是,這里生成第二密鑰采用的算法與CA中心生成第一密鑰的算法相同。
[0093]步驟104:采用第二密鑰和客戶端當(dāng)前時(shí)間生成第二驗(yàn)證碼。
[0094]需要說(shuō)明的是,這里生成第二驗(yàn)證碼采用的算法與客戶端生成第一驗(yàn)證碼的算法相同。
[0095]步驟105:比較第二驗(yàn)證碼與第一驗(yàn)證碼是否相同,如果第二驗(yàn)證碼與第一驗(yàn)證碼相同,根據(jù)第二密鑰和系統(tǒng)時(shí)間生成第三驗(yàn)證碼。
[0096]由于生成第二密鑰采用的算法與CA中心生成第一密鑰的算法相同,因此當(dāng)?shù)诙?yàn)證碼與第一驗(yàn)證碼相同時(shí),說(shuō)明客戶端上傳的認(rèn)證參數(shù)與CA中心的相同。其中,生成第三驗(yàn)證碼采用的算法與客戶端生成第一驗(yàn)證碼的算法相同。
[0097]步驟106:比較第三驗(yàn)證碼與第一驗(yàn)證碼是否相同,如果第三驗(yàn)證碼與第一驗(yàn)證碼相同,判定客戶端認(rèn)證結(jié)果為成功。
[0098]由于生成第三驗(yàn)證碼采用的算法與客戶端生成第一驗(yàn)證碼的算法相同,因此當(dāng)?shù)谌?yàn)證碼與第一驗(yàn)證碼相同時(shí),說(shuō)明客戶端上傳的客戶端當(dāng)前時(shí)間與系統(tǒng)時(shí)間的相同,此時(shí)判定客戶端認(rèn)證結(jié)果為成功。
[0099]本發(fā)明實(shí)施例根據(jù)第二密鑰和客戶端當(dāng)前時(shí)間生成第二驗(yàn)證碼,由于生成第二密鑰采用的算法與CA中心生成第一密鑰的算法相同,因此當(dāng)?shù)诙?yàn)證碼與第一驗(yàn)證碼相同時(shí),說(shuō)明客戶端上傳的認(rèn)證參數(shù)與CA中心的相同;根據(jù)第二密鑰和系統(tǒng)時(shí)間生成第三驗(yàn)證碼,由于生成第二驗(yàn)證碼采用的算法與客戶端生成第一驗(yàn)證碼的算法相同,因此當(dāng)?shù)谌?yàn)證碼與第一驗(yàn)證碼相同時(shí),說(shuō)明客戶端上傳的客戶端當(dāng)前時(shí)間與系統(tǒng)時(shí)間的相同,當(dāng)客戶端上傳的認(rèn)證參數(shù)與CA中心的相同且客戶端當(dāng)前時(shí)間與系統(tǒng)時(shí)間相同時(shí),由此可以看出,在服務(wù)器對(duì)客戶端進(jìn)行認(rèn)證的過(guò)程中,并不需要向CA中心獲取服務(wù)器的認(rèn)證參數(shù),而是根據(jù)計(jì)算判斷客戶端是否合法,所以即使CA中心的查詢服務(wù)不可用、CA中心故障或者服務(wù)器與CA中心間網(wǎng)絡(luò)故障時(shí),服務(wù)器仍然可以繼續(xù)對(duì)客戶端進(jìn)行認(rèn)證,進(jìn)而不會(huì)影響客戶端的服務(wù)使用,保證服務(wù)可以正常使用。
[0100]實(shí)施例二
[0101]本發(fā)明實(shí)施例提供了一種客戶端證書認(rèn)證方法,由服務(wù)器執(zhí)行,參見(jiàn)圖3,該方法包括:
[0102]步驟201:服務(wù)器接收客戶端發(fā)送的認(rèn)證請(qǐng)求,該認(rèn)證請(qǐng)求包括:認(rèn)證參數(shù)、服務(wù)過(guò)期時(shí)間、客戶端當(dāng)前時(shí)間和第一驗(yàn)證碼并獲取系統(tǒng)時(shí)間,認(rèn)證參數(shù)包括客戶名稱、序列號(hào)、業(yè)務(wù)標(biāo)識(shí)、型號(hào)和版本中的至少一個(gè)。
[0103]其中,第一驗(yàn)證碼是客戶端在請(qǐng)求認(rèn)證前根據(jù)第一密鑰和客戶端當(dāng)前時(shí)間生成的,其中第一密鑰是由CA中心根據(jù)認(rèn)證參數(shù)和服務(wù)過(guò)期時(shí)間生成的,第一密鑰隨著License配置到客戶端,且第一密鑰是具有有效期限制的,該有限期也是客戶端服務(wù)過(guò)期時(shí)間,如最大有效期不超過(guò)24小時(shí),所以在第一密鑰失效之前,客戶端需要及時(shí)進(jìn)行認(rèn)證。
[0104]步驟202:獲取服務(wù)器收到認(rèn)證請(qǐng)求時(shí)的系統(tǒng)時(shí)間。
[0105]步驟203:確定系統(tǒng)時(shí)間是否已超過(guò)服務(wù)過(guò)期時(shí)間,如果確定出系統(tǒng)時(shí)間未超過(guò)服務(wù)過(guò)期時(shí)間,執(zhí)行步驟204,如果確定出系統(tǒng)時(shí)間超過(guò)服務(wù)過(guò)期時(shí)間,判斷客戶端認(rèn)證結(jié)果為失敗并結(jié)束流程,同時(shí)將認(rèn)證結(jié)果返回客戶端。
[0106]服務(wù)器通過(guò)比較系統(tǒng)時(shí)間是否已超過(guò)服務(wù)過(guò)期時(shí)間,來(lái)判斷客戶端服務(wù)是否過(guò)期,當(dāng)系統(tǒng)時(shí)間超過(guò)服務(wù)過(guò)期時(shí)間時(shí),判斷客戶端認(rèn)證結(jié)果為失敗,但步驟203只能判斷出如實(shí)上報(bào)服務(wù)過(guò)期時(shí)間的那些客戶端是否過(guò)期,對(duì)于沒(méi)有如實(shí)上報(bào)服務(wù)過(guò)期時(shí)間的客戶端需要通過(guò)后續(xù)步驟繼續(xù)判斷。
[0107]當(dāng)然步驟203是一個(gè)可選步驟,可以直接在步驟202后執(zhí)行步驟204,但執(zhí)行步驟203可以提聞?wù)J證效率。
[0108]步驟204:采用服務(wù)過(guò)期時(shí)間和認(rèn)證參數(shù)生成第二密鑰。
[0109]具體地,步驟204包括:
[0110]采用Key=genKey (pi, p2..., pn, expire)計(jì)算第二密鑰,
[0111]其中,Key為第二密鑰,genKey為密鑰生成算法,pi?pn為認(rèn)證參數(shù),expire為服務(wù)過(guò)期時(shí)間。
[0112]需要說(shuō)明的是,這里生成第二密鑰采用的密鑰生成算法與CA中心生成第一密鑰的密鑰生成算法相同。
[0113]步驟205:采用第二密鑰和客戶端當(dāng)前時(shí)間生成第二驗(yàn)證碼。
[0114]具體地,步驟205包括:
[0115]步驟一、判斷客戶端當(dāng)前時(shí)間所在的時(shí)間窗口,時(shí)間窗口為一個(gè)時(shí)間段。
[0116]步驟二、確定時(shí)間窗口內(nèi)的第一時(shí)間T。該第一時(shí)間用于計(jì)算第二驗(yàn)證碼,且該第一時(shí)間可以是事先設(shè)定的,在一個(gè)時(shí)間窗口內(nèi)第一時(shí)間可以是該時(shí)間窗口的起始時(shí)間、結(jié)束時(shí)間或任意設(shè)定時(shí)間點(diǎn)。
[0117]步驟三、采用code=genCode (Key, T)計(jì)算第二驗(yàn)證碼,
[0118]其中,code為第二驗(yàn)證碼,genCode為驗(yàn)證碼生成算法,Key為第二密鑰。
[0119]需要說(shuō)明的是,這里生成第二驗(yàn)證碼采用的算法與客戶端生成第一驗(yàn)證碼的算法相同。另外,對(duì)于時(shí)間窗口的劃分,可以事先在客戶端和服務(wù)器中預(yù)設(shè),以保證時(shí)間窗口劃分的一致性。需要注意在劃分時(shí)間窗口時(shí),相鄰時(shí)間窗口不能有重疊。
[0120]步驟206:比較第二驗(yàn)證碼與第一驗(yàn)證碼是否相同,如果第二驗(yàn)證碼與第一驗(yàn)證碼相同,執(zhí)行步驟207,如果第二驗(yàn)證碼與第一驗(yàn)證碼不相同,判斷客戶端認(rèn)證結(jié)果為失敗并結(jié)束流程,同時(shí)將認(rèn)證結(jié)果返回客戶端。
[0121]由于生成第二密鑰采用的算法與CA中心生成第一密鑰的算法相同,因此當(dāng)?shù)诙?yàn)證碼與第一驗(yàn)證碼相同時(shí),說(shuō)明客戶端上傳的認(rèn)證參數(shù)與CA中心的相同。
[0122]步驟207:根據(jù)第二密鑰和系統(tǒng)時(shí)間生成第三驗(yàn)證碼。
[0123]其中,第三驗(yàn)證碼的具體計(jì)算過(guò)程與第二驗(yàn)證碼相同。
[0124]步驟208:比較第三驗(yàn)證碼與第一驗(yàn)證碼是否相同,如果第三驗(yàn)證碼與第一驗(yàn)證碼相同,判定客戶端認(rèn)證結(jié)果為成功,同時(shí)將認(rèn)證結(jié)果返回客戶端,如果第三驗(yàn)證碼與第一驗(yàn)證碼不相同,執(zhí)行步驟209。
[0125]由于生成第三驗(yàn)證碼采用的算法與客戶端生成第一驗(yàn)證碼的算法相同,因此當(dāng)?shù)谌?yàn)證碼與第一驗(yàn)證碼相同時(shí),說(shuō)明客戶端上傳的客戶端當(dāng)前時(shí)間與系統(tǒng)時(shí)間的相同,此時(shí)判定客戶端