本發(fā)明涉及密鑰更新方法及系統(tǒng),更具體地,涉及不間斷服務(wù)的密鑰更新方法及系統(tǒng)。
背景技術(shù):
目前,隨著基于網(wǎng)絡(luò)的應用的日益廣泛以及不同領(lǐng)域的業(yè)務(wù)種類的日益豐富,在訪問網(wǎng)絡(luò)設(shè)備時基于密鑰對用戶進行鑒權(quán)變得越來越重要。
在現(xiàn)有的技術(shù)方案中,典型地基于如下機制對訪問網(wǎng)絡(luò)設(shè)備的用戶進行鑒權(quán):(1)授權(quán)服務(wù)器生成一對公鑰和私鑰,隨之將私鑰保留在授權(quán)服務(wù)器端并將公鑰分發(fā)至多個網(wǎng)絡(luò)設(shè)備;(2)授權(quán)服務(wù)器基于用戶請求生成授權(quán)證書,所述授權(quán)證書包含經(jīng)由所述私鑰加密的簽名;(3)當用戶使用該授權(quán)證書訪問所述多個網(wǎng)絡(luò)設(shè)備中的一個時,該設(shè)備使用所述公鑰解密所述簽名以驗證用戶的身份是否合法。
然而,上述現(xiàn)有的技術(shù)方案存在如下問題:為了增強設(shè)備訪問的安全性,常常會周期性地更新所述公鑰和私鑰對,并且在所述公鑰和私鑰對更新之后,更新之前生成的授權(quán)證書均會失效,并且舊的公鑰無法驗證使用新的私鑰加密的簽名,由此,在多個(例如成百上千)網(wǎng)絡(luò)設(shè)備使用同一公鑰的情況下,為了確保使用新的私鑰簽發(fā)的授權(quán)證書在所有網(wǎng)絡(luò)設(shè)備中均能正常使用,必須確保所有網(wǎng)絡(luò)設(shè)備的公鑰均更新完成后才能使用新的私鑰簽發(fā)授權(quán)證書,然而,由于需要更新密鑰的網(wǎng)絡(luò)設(shè)備非常多,故必須中斷一定時間的服務(wù)來更新所有網(wǎng)絡(luò)設(shè)備的公鑰,同時在更新過程中一些網(wǎng)絡(luò)設(shè)備由于當時不能聯(lián)網(wǎng)而導致更新失敗時,必須將其標記為不可用狀態(tài),隨后再通過離線人工更新或定期重試的方式來進行更新和修復。
因此,存在如下需求:提供能夠在不間斷服務(wù)的情況下更新設(shè)備公鑰的密鑰更新方法及系統(tǒng)。
技術(shù)實現(xiàn)要素:
為了解決上述現(xiàn)有技術(shù)方案所存在的問題,本發(fā)明提出了能夠在不間斷服務(wù)的情況下更新密鑰的密鑰更新方法及系統(tǒng)。
本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的:
一種密鑰更新方法,所述密鑰更新方法包括下列步驟:
(A1)授權(quán)服務(wù)器周期性地生成一對公鑰和私鑰,并且每次生成新的公私鑰對后將與公私鑰對相關(guān)聯(lián)的版本號加1;
(A2)在接收到來自用戶的請求后,所述授權(quán)服務(wù)器生成授權(quán)證書以返回至所述用戶,其中,所述授權(quán)證書至少包含經(jīng)由當前有效的私鑰加密的簽名Signature、當前有效的公鑰的版本號version、當前有效的公鑰Public_key_code、以及使用版本號為(version-1)的私鑰對版本號為version的公鑰進行加密所得的數(shù)據(jù)Public_key_code_enc;
(A3)在用戶使用所述授權(quán)證書訪問多個網(wǎng)絡(luò)設(shè)備中的一個目標網(wǎng)絡(luò)設(shè)備時,該目標網(wǎng)絡(luò)設(shè)備基于所述授權(quán)證書驗證用戶的身份是否合法并在該目標網(wǎng)絡(luò)設(shè)備當前所使用的公鑰的版本號與所述授權(quán)證書中的當前有效的公鑰的版本號version不同的情況下自動地完成密鑰更新操作。
在上面所公開的方案中,優(yōu)選地,所述步驟(A1)進一步包括:在初始化階段,所述授權(quán)服務(wù)器生成初始公私鑰對,并將初始公鑰和與其相關(guān)聯(lián)的初始版本號分發(fā)至所述多個網(wǎng)絡(luò)設(shè)備中的每一個,所述多個網(wǎng)絡(luò)設(shè)備中的每一個隨之將所述初始公鑰作為當前所使用的公鑰。
在上面所公開的方案中,優(yōu)選地,所述步驟(A2)進一步包括:基于預定的簽名加密算法和/或摘要算法使用版本號為(version-1)的私鑰對版本號為version的公鑰進行加密以得到Public_key_code_enc。
在上面所公開的方案中,優(yōu)選地,所述授權(quán)證書進一步包括訪問者ID、設(shè)備ID和期滿時間。
在上面所公開的方案中,優(yōu)選地,所述步驟(A2)進一步包括:以如下方式生成所述簽名Signature:(1)基于預定的摘要算法計算由所述授權(quán)證書中的當前有效的公鑰的版本號version、訪問者ID、設(shè)備ID、期滿時間構(gòu)成的內(nèi)容的摘要;(2)基于預定的簽名加密算法使用版本號為version的私鑰對所計算出的摘要加密以得到所述簽名Signature。
在上面所公開的方案中,優(yōu)選地,所述步驟(A3)進一步包括:在接收到用戶提供的所述授權(quán)證書后,所述目標網(wǎng)絡(luò)設(shè)備檢查所述授權(quán)證書中的當前有效的公鑰的版本號version是否與其當前正在使用的公鑰的版本號一致,并且如果不一致,則觸發(fā)密鑰更新操作,否則,以如下方式驗證用戶的身份是否合法:(1)基于預定的摘要算法計算由所述授權(quán)證書中的當前有效的公鑰的版本號version、訪問者ID、設(shè)備ID、期滿時間構(gòu)成的內(nèi)容的摘要以獲得第一摘要值;(2)利用當前正在使用的公鑰解密所述授權(quán)證書中的簽名Signature以獲得第二摘要值;(3)比較所述第一摘要值和第二摘要值,如果兩者一致,則驗證通過,否則,驗證失敗。
在上面所公開的方案中,優(yōu)選地,所述密鑰更新操作包括:(1)獲取所述授權(quán)證書中的當前有效的公鑰Public_key_code作為第一密鑰,并利用所述目標網(wǎng)絡(luò)設(shè)備當前正在使用的公鑰解密所述授權(quán)證書中的Public_key_code_enc以得到第二密鑰;(2)比較所述第一密鑰和第二密鑰,如果兩者不一致,則驗證失敗,否則進入步驟(3);(3)存儲所述授權(quán)證書中的當前有效的公鑰的版本號version和當前有效的公鑰Public_key_code,并將所述授權(quán)證書中的當前有效的公鑰Public_key_code用作新的當前使用的公鑰以完成密鑰更新,隨之利用所述新的當前使用的公鑰以如下方式驗證用戶的身份是否合法:(a)基于預定的摘要算法計算由所述授權(quán)證書中的當前有效的公鑰的版本號version、訪問者ID、設(shè)備ID、期滿時間構(gòu)成的內(nèi)容的摘要以獲得第一摘要值;(b)利用所述新的當前使用的公鑰解密所述授權(quán)證書中的簽名Signature以獲得第二摘要值;(c)比較所述第一摘要值和第二摘要值,如果兩者一致,則驗證通過,否則,驗證失敗。
在上面所公開的方案中,優(yōu)選地,所述步驟(A3)進一步包括:在所述密鑰更新操作完成后,所述目標網(wǎng)絡(luò)設(shè)備仍然保存舊版本的公鑰及其版本號,并且在用戶提供的授權(quán)證書是基于舊版本的公私鑰對的授權(quán)證書時利用所保存的與之對應的舊版本的公鑰驗證該授權(quán)證書,隨之在驗證通過的情況下提醒用戶向所述授權(quán)服務(wù)器申請基于最新版本的公私鑰對生成的授權(quán)證書。
在上面所公開的方案中,優(yōu)選地,所述步驟(A3)進一步包括:在收到來自所述目標網(wǎng)絡(luò)設(shè)備的所述提醒后,所述用戶向所述授權(quán)服務(wù)器申請基于最新版本的公私鑰對生成的授權(quán)證書以替換舊的授權(quán)證書。
本發(fā)明的目的也可以通過以下技術(shù)方案實現(xiàn):
一種密鑰更新系統(tǒng),其包括:
授權(quán)服務(wù)器,所述授權(quán)服務(wù)器周期性地生成一對公鑰和私鑰,并且每次生成新的公私鑰對后將與公私鑰對相關(guān)聯(lián)的版本號加1,以及在接收到來自用戶的請求后生成授權(quán)證書以返回至所述用戶,其中,所述授權(quán)證書至少包含經(jīng)由當前有效的私鑰加密的簽名Signature、當前有效的公鑰的版本號version、當前有效的公鑰Public_key_code、以及使用版本號為(version-1)的私鑰對版本號為version的公鑰進行加密所得的數(shù)據(jù)Public_key_code_enc;
至少一個網(wǎng)絡(luò)設(shè)備,所述至少一個網(wǎng)絡(luò)設(shè)備中的任一個在接收到欲訪問該網(wǎng)絡(luò)設(shè)備的用戶提供的所述授權(quán)證書后基于所述授權(quán)證書驗證用戶的身份是否合法并在該網(wǎng)絡(luò)設(shè)備當前所使用的公鑰的版本號與所述授權(quán)證書中的當前有效的公鑰的版本號version不同的情況下自動地完成密鑰更新操作。
本發(fā)明所公開的密鑰更新方法及系統(tǒng)具有如下優(yōu)點:由于能夠在用戶訪問網(wǎng)絡(luò)設(shè)備時自動地執(zhí)行密鑰更新操作,故無須中斷服務(wù)并且無須針對暫時不能聯(lián)網(wǎng)的設(shè)備實施離線人工更新或定期重試,由此顯著地提高了密鑰更新的效率和性能,從而增強了系統(tǒng)安全性。
附圖說明
結(jié)合附圖,本發(fā)明的技術(shù)特征以及優(yōu)點將會被本領(lǐng)域技術(shù)人員更好地理解,其中:
圖1是根據(jù)本發(fā)明的實施例的密鑰更新方法的流程圖;
圖2是根據(jù)本發(fā)明的實施例的密鑰更新系統(tǒng)的示意性結(jié)構(gòu)圖。
具體實施方式
圖1是根據(jù)本發(fā)明的實施例的密鑰更新方法的流程圖。如圖1所示,本發(fā)明所公開的密鑰更新方法包括下列步驟:(A1)授權(quán)服務(wù)器周期性地生成一對公鑰和私鑰,并且每次生成新的公私鑰對后將與公私鑰對相關(guān)聯(lián)的版本號加1;(A2)在接收到來自用戶的請求后,所述授權(quán)服務(wù)器生成授權(quán)證書以返回至所述用戶,其中,所述授權(quán)證書至少包含經(jīng)由當前有效的私鑰加密的簽名Signature、當前有效的公鑰的版本號version、當前有效的公鑰Public_key_code、以及使用版本號為(version-1)的私鑰對版本號為version的公鑰進行加密所得的數(shù)據(jù)Public_key_code_enc;(A3)在用戶使用所述授權(quán)證書訪問多個網(wǎng)絡(luò)設(shè)備中的一個目標網(wǎng)絡(luò)設(shè)備時,該目標網(wǎng)絡(luò)設(shè)備基于所述授權(quán)證書驗證用戶的身份是否合法并在該目標網(wǎng)絡(luò)設(shè)備當前所使用的公鑰的版本號與所述授權(quán)證書中的當前有效的公鑰的版本號version不同的情況下自動地完成密鑰更新操作。
優(yōu)選地,在本發(fā)明所公開的密鑰更新方法中,所述步驟(A1)進一步包括:在初始化階段,所述授權(quán)服務(wù)器生成初始公私鑰對,并將初始公鑰和與其相關(guān)聯(lián)的初始版本號分發(fā)至所述多個網(wǎng)絡(luò)設(shè)備中的每一個,所述多個網(wǎng)絡(luò)設(shè)備中的每一個隨之將所述初始公鑰作為當前所使用的公鑰。
優(yōu)選地,在本發(fā)明所公開的密鑰更新方法中,所述步驟(A2)進一步包括:基于預定的簽名加密算法(例如RSA算法)和/或摘要算法(例如MD5算法)使用版本號為(version-1)的私鑰對版本號為version的公鑰進行加密(即簽名)以得到Public_key_code_enc。
優(yōu)選地,在本發(fā)明所公開的密鑰更新方法中,所述授權(quán)證書進一步包括訪問者ID(標識符,其用于標識用戶)、設(shè)備ID(標識符,其用于標識目標網(wǎng)絡(luò)設(shè)備)和期滿時間(其指示該授權(quán)證書的到期時間)。
優(yōu)選地,在本發(fā)明所公開的密鑰更新方法中,所述步驟(A2)進一步包括:以如下方式生成所述簽名Signature:(1)基于預定的摘要算法(諸如Hash算法,例如MD5算法)計算由所述授權(quán)證書中的當前有效的公鑰的版本號version、訪問者ID、設(shè)備ID、期滿時間構(gòu)成的內(nèi)容的摘要;(2)基于預定的簽名加密算法(例如RSA算法)使用版本號為version的私鑰對所計算出的摘要加密以得到所述簽名Signature。
優(yōu)選地,在本發(fā)明所公開的密鑰更新方法中,所述步驟(A3)進一步包括:在接收到用戶提供的所述授權(quán)證書后,所述目標網(wǎng)絡(luò)設(shè)備檢查所述授權(quán)證書中的當前有效的公鑰的版本號version是否與其當前正在使用的公鑰的版本號一致,并且如果不一致,則觸發(fā)密鑰更新操作,否則,以如下方式驗證用戶的身份是否合法:(1)基于預定的摘要算法計算由所述授權(quán)證書中的當前有效的公鑰的版本號version、訪問者ID、設(shè)備ID、期滿時間構(gòu)成的內(nèi)容的摘要以獲得第一摘要值;(2)利用當前正在使用的公鑰解密所述授權(quán)證書中的簽名Signature以獲得第二摘要值;(3)比較所述第一摘要值和第二摘要值,如果兩者一致,則驗證通過,否則,驗證失敗。
優(yōu)選地,在本發(fā)明所公開的密鑰更新方法中,所述密鑰更新操作包括:(1)獲取所述授權(quán)證書中的當前有效的公鑰Public_key_code(即version版本的公鑰)作為第一密鑰,并利用所述目標網(wǎng)絡(luò)設(shè)備當前正在使用的公鑰(即(version-1)版本的公鑰)解密所述授權(quán)證書中的Public_key_code_enc以得到第二密鑰;(2)比較所述第一密鑰和第二密鑰,如果兩者不一致,則驗證失敗,否則進入步驟(3);(3)存儲所述授權(quán)證書中的當前有效的公鑰的版本號version和當前有效的公鑰Public_key_code,并將所述授權(quán)證書中的當前有效的公鑰Public_key_code(即version版本的公鑰)用作新的當前使用的公鑰以完成密鑰更新,隨之利用所述新的當前使用的公鑰以如下方式驗證用戶的身份是否合法:(a)基于MD5算法計算由所述授權(quán)證書中的當前有效的公鑰的版本號version、訪問者ID、設(shè)備ID、期滿時間構(gòu)成的內(nèi)容的摘要以獲得第一MD5值;(b)利用所述新的當前使用的公鑰解密所述授權(quán)證書中的簽名Signature以獲得第二MD5值;(c)比較所述第一MD5值和第二MD5值,如果兩者一致,則驗證通過,否則,驗證失敗。
優(yōu)選地,在本發(fā)明所公開的密鑰更新方法中,所述步驟(A3)進一步包括:在所述密鑰更新操作完成后,所述目標網(wǎng)絡(luò)設(shè)備仍然保存舊版本的公鑰及其版本號(例如(version-1)版本的公鑰和/或更早版本的公鑰及其版本號),并且在用戶提供的授權(quán)證書是基于舊版本的公私鑰對的授權(quán)證書時利用所保存的與之對應的舊版本的公鑰驗證該授權(quán)證書,隨之在驗證通過的情況下提醒用戶向所述授權(quán)服務(wù)器申請基于最新版本的公私鑰對生成的授權(quán)證書。
優(yōu)選地,在本發(fā)明所公開的密鑰更新方法中,所述步驟(A3)進一步包括:在收到來自所述目標網(wǎng)絡(luò)設(shè)備的所述提醒后,所述用戶向所述授權(quán)服務(wù)器申請基于最新版本的公私鑰對生成的授權(quán)證書以替換舊的授權(quán)證書。
由上可見,本發(fā)明所公開的密鑰更新方法具有下列優(yōu)點:由于能夠在用戶訪問網(wǎng)絡(luò)設(shè)備時自動地執(zhí)行密鑰更新操作,故無須中斷服務(wù)并且無須針對暫時不能聯(lián)網(wǎng)的設(shè)備實施離線人工更新或定期重試,由此顯著地提高了密鑰更新的效率和性能,從而增強了系統(tǒng)安全性。
圖2是根據(jù)本發(fā)明的實施例的密鑰更新系統(tǒng)的示意性結(jié)構(gòu)圖。如圖2所示,本發(fā)明所公開的密鑰更新系統(tǒng)包括授權(quán)服務(wù)器1和至少一個網(wǎng)絡(luò)設(shè)備2,所述授權(quán)服務(wù)器1周期性地生成一對公鑰和私鑰,并且每次生成新的公私鑰對后將與公私鑰對相關(guān)聯(lián)的版本號加1,以及在接收到來自用戶的請求后生成授權(quán)證書以返回至所述用戶,其中,所述授權(quán)證書至少包含經(jīng)由當前有效的私鑰加密的簽名Signature、當前有效的公鑰的版本號version、當前有效的公鑰Public_key_code、以及使用版本號為(version-1)的私鑰對版本號為version的公鑰進行加密所得的數(shù)據(jù)Public_key_code_enc。所述至少一個網(wǎng)絡(luò)設(shè)備2中的任一個在接收到欲訪問該網(wǎng)絡(luò)設(shè)備的用戶提供的所述授權(quán)證書后基于所述授權(quán)證書驗證用戶的身份是否合法并在該網(wǎng)絡(luò)設(shè)備當前所使用的公鑰的版本號與所述授權(quán)證書中的當前有效的公鑰的版本號version不同的情況下自動地完成密鑰更新操作。
優(yōu)選地,在本發(fā)明所公開的密鑰更新系統(tǒng)中,所述授權(quán)服務(wù)器1在初始化階段生成初始公私鑰對,并將初始公鑰和與其相關(guān)聯(lián)的初始版本號分發(fā)至所述至少一個網(wǎng)絡(luò)設(shè)備中的每一個,所述至少一個網(wǎng)絡(luò)設(shè)備中的每一個隨之將所述初始公鑰作為當前所使用的公鑰。
優(yōu)選地,在本發(fā)明所公開的密鑰更新系統(tǒng)中,所述授權(quán)服務(wù)器1基于RSA算法使用版本號為(version-1)的私鑰對版本號為version的公鑰進行加密以得到Public_key_code_enc。
優(yōu)選地,在本發(fā)明所公開的密鑰更新系統(tǒng)中,所述授權(quán)證書進一步包括訪問者ID(標識符,其用于標識用戶)、設(shè)備ID(標識符,其用于標識網(wǎng)絡(luò)設(shè)備)和期滿時間(其指示該授權(quán)證書的到期時間)。
優(yōu)選地,在本發(fā)明所公開的密鑰更新系統(tǒng)中,所述授權(quán)服務(wù)器1以如下方式生成所述簽名Signature:(1)基于預定的摘要算法(諸如Hash算法,例如MD5算法)計算由所述授權(quán)證書中的當前有效的公鑰的版本號version、訪問者ID、設(shè)備ID、期滿時間構(gòu)成的內(nèi)容的摘要;(2)基于預定的簽名加密算法(例如RSA算法)使用版本號為version的私鑰對所計算出的摘要加密以得到所述簽名Signature。
優(yōu)選地,在本發(fā)明所公開的密鑰更新系統(tǒng)中,在接收到用戶提供的所述授權(quán)證書后,所述網(wǎng)絡(luò)設(shè)備2檢查所述授權(quán)證書中的當前有效的公鑰的版本號version是否與其當前正在使用的公鑰的版本號一致,并且如果不一致,則觸發(fā)密鑰更新操作,否則,以如下方式驗證用戶的身份是否合法:(1)基于預定的摘要算法(例如MD5算法)計算由所述授權(quán)證書中的當前有效的公鑰的版本號version、訪問者ID、設(shè)備ID、期滿時間構(gòu)成的內(nèi)容的摘要以獲得第一摘要值;(2)利用當前正在使用的公鑰解密所述授權(quán)證書中的簽名Signature以獲得第二摘要值;(3)比較所述第一摘要值和第二摘要值,如果兩者一致,則驗證通過,否則,驗證失敗。
優(yōu)選地,在本發(fā)明所公開的密鑰更新系統(tǒng)中,所述密鑰更新操作包括:(1)獲取所述授權(quán)證書中的當前有效的公鑰Public_key_code(即version版本的公鑰)作為第一密鑰,并利用所述目標網(wǎng)絡(luò)設(shè)備當前正在使用的公鑰(即(version-1)版本的公鑰)解密所述授權(quán)證書中的Public_key_code_enc以得到第二密鑰;(2)比較所述第一密鑰和第二密鑰,如果兩者不一致,則驗證失敗,否則進入步驟(3);(3)存儲所述授權(quán)證書中的當前有效的公鑰的版本號version和當前有效的公鑰Public_key_code,并將所述授權(quán)證書中的當前有效的公鑰Public_key_code(即version版本的公鑰)用作新的當前使用的公鑰以完成密鑰更新,隨之利用所述新的當前使用的公鑰以如下方式驗證用戶的身份是否合法:(a)基于預定的摘要算法(例如MD5算法)計算由所述授權(quán)證書中的當前有效的公鑰的版本號version、訪問者ID、設(shè)備ID、期滿時間構(gòu)成的內(nèi)容的摘要以獲得第一摘要值;(b)利用所述新的當前使用的公鑰解密所述授權(quán)證書中的簽名Signature以獲得第二摘要值;(c)比較所述第一摘要值和第二摘要值,如果兩者一致,則驗證通過,否則,驗證失敗。
優(yōu)選地,在本發(fā)明所公開的密鑰更新系統(tǒng)中,在所述密鑰更新操作完成后,所述網(wǎng)絡(luò)設(shè)備2仍然保存舊版本的公鑰及其版本號(例如(version-1)版本的公鑰和/或更早版本的公鑰及其版本號),并且在用戶提供的授權(quán)證書是基于舊版本的公私鑰對的授權(quán)證書時利用所保存的與之對應的舊版本的公鑰驗證該授權(quán)證書,隨之在驗證通過的情況下提醒用戶向所述授權(quán)服務(wù)器申請基于最新版本的公私鑰對生成的授權(quán)證書。
由上可見,本發(fā)明所公開的密鑰更新系統(tǒng)具有下列優(yōu)點:由于能夠在用戶訪問網(wǎng)絡(luò)設(shè)備時自動地執(zhí)行密鑰更新操作,故無須中斷服務(wù)并且無須針對暫時不能聯(lián)網(wǎng)的設(shè)備實施離線人工更新或定期重試,由此顯著地提高了密鑰更新的效率和性能,從而增強了系統(tǒng)安全性。
盡管本發(fā)明是通過上述的優(yōu)選實施方式進行描述的,但是其實現(xiàn)形式并不局限于上述的實施方式。應該認識到:在不脫離本發(fā)明主旨和范圍的情況下,本領(lǐng)域技術(shù)人員可以對本發(fā)明做出不同的變化和修改。