本發(fā)明涉及u盾的密鑰備份,具體涉及一種u盾的密鑰備份方法及系統(tǒng)。
背景技術(shù):
1、u盾作為一個小型硬件安全模塊,提供了密鑰保存、加密、解密、簽名和驗簽等功能??紤]到密鑰存儲在一個u盾中,當該u盾由于硬件問題損害后,存儲的密鑰丟失會導致已加密的數(shù)據(jù)無法再解密等問題,往往需要對u盾中的密鑰進行冗余備份,以保證密鑰的高可用性。
2、然而,在對u盾中的密鑰進行冗余備份的過程中,可能會發(fā)生密鑰泄露的情況,因此,需要對備份過程做安全處理,以保證密鑰明文不會出現(xiàn)在u盾以外的地方。
3、基于此,如何提高密鑰備份過程的安全性,成為了亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)思路
1、有鑒于此,為了解決上述技術(shù)問題,本發(fā)明提供了一種u盾的密鑰備份方法及系統(tǒng)。
2、本發(fā)明采用如下技術(shù)方案:
3、第一方面,本發(fā)明提供了一種u盾的密鑰備份方法,應用于u盾的密鑰備份系統(tǒng),所述u盾的密鑰備份系統(tǒng)包括:主u盾、副本u盾、電腦端和服務器端,所述電腦端中安裝有外部密鑰系統(tǒng)代理,所述服務器端中安裝有密鑰管理系統(tǒng);所述u盾的密鑰備份方法,包括:
4、在所述外部密鑰系統(tǒng)代理分別與所述主u盾和所述副本u盾成功建立通訊連接后,所述主u盾通過所述外部密鑰系統(tǒng)代理獲取用戶發(fā)送的待備份秘鑰信息;
5、所述主u盾通過所述外部密鑰系統(tǒng)代理從所述密鑰管理系統(tǒng)處獲取加密后的所述副本u盾的公鑰;
6、所述主u盾基于ecdh,根據(jù)所述副本u盾的公鑰和自身私鑰,生成第一臨時對稱密鑰;
7、所述副本u盾通過所述外部密鑰系統(tǒng)代理從所述密鑰管理系統(tǒng)處獲取加密后的所述主u盾的公鑰;
8、所述副本u盾基于ecdh,根據(jù)所述主u盾的公鑰和自身的私鑰,生成第二臨時對稱密鑰;所述第一臨時對稱密鑰與所述第二臨時對稱密鑰相同;
9、所述外部密鑰系統(tǒng)代理獲取所述主u盾發(fā)送的加密后的待備份秘鑰;所述待備份秘鑰使用所述第一臨時對稱密鑰進行加密,且所述待備份秘鑰根據(jù)所述待備份秘鑰信息確定出;
10、所述外部密鑰系統(tǒng)代理將所述加密后的待備份秘鑰發(fā)送給所述副本u盾;
11、所述副本u盾使用所述第二臨時對稱密鑰解密所述加密后的待備份秘鑰;
12、所述副本u盾保存所述待備份秘鑰。
13、可選的,所述主u盾通過所述外部密鑰系統(tǒng)代理從所述密鑰管理系統(tǒng)處獲取加密后的所述副本u盾的公鑰,具體包括:
14、所述外部密鑰系統(tǒng)代理在確定出所述主u盾獲取到所述待備份秘鑰信息后,向所述密鑰管理系統(tǒng)發(fā)送獲取副本u盾公鑰請求;
15、所述密鑰管理系統(tǒng)根據(jù)所述獲取副本u盾公鑰請求,向所述外部密鑰系統(tǒng)代理發(fā)送加密后的所述副本u盾的公鑰;
16、所述外部密鑰系統(tǒng)代理將加密后的所述副本u盾的公鑰轉(zhuǎn)發(fā)給所述主u盾。
17、可選的,所述副本u盾通過所述外部密鑰系統(tǒng)代理從所述密鑰管理系統(tǒng)處獲取加密后的所述主u盾的公鑰,具體包括:
18、在所述外部密鑰系統(tǒng)代理接收到所述主u盾發(fā)送的第一提示后,所述外部密鑰系統(tǒng)代理向所述密鑰管理系統(tǒng)發(fā)送獲取主u盾公鑰請求;所述第一提示為成功生成第一臨時對稱密鑰提示;
19、所述密鑰管理系統(tǒng)根據(jù)所述獲取主u盾公鑰請求,向所述外部密鑰系統(tǒng)代理發(fā)送加密后的所述主u盾的公鑰;
20、所述外部密鑰系統(tǒng)代理將加密后的所述主u盾的公鑰轉(zhuǎn)發(fā)給所述副本u盾。
21、可選的,所述外部密鑰系統(tǒng)代理獲取所述主u盾發(fā)送的加密后的待備份秘鑰,具體包括:
22、所述外部密鑰系統(tǒng)代理在接收到所述副本u盾發(fā)送的第二提示后,所述外部密鑰系統(tǒng)代理向所述主u盾發(fā)送獲取待備份秘鑰指令;所述第二提示為成功生成第二臨時對稱密鑰提示;
23、所述主u盾根據(jù)所述獲取待備份秘鑰指令,使用所述第一臨時對稱密鑰加密所述待備份秘鑰;
24、所述主u盾將加密后的待備份秘鑰發(fā)送給所述外部密鑰系統(tǒng)代理。
25、可選的,在所述主u盾通過所述外部密鑰系統(tǒng)代理獲取用戶發(fā)送的待備份秘鑰信息之前,本發(fā)明的u盾的密鑰備份方法,還包括:
26、在所述用戶成功登錄所述外部密鑰系統(tǒng)代理后,所述外部密鑰系統(tǒng)代理獲取所述主u盾的第一u盾信息;所述第一u盾信息包括設備序列號以及加密后的第一隨機數(shù)及其生成時刻;
27、所述外部密鑰系統(tǒng)代理將目標token和所述第一u盾信息發(fā)送給所述密鑰管理系統(tǒng);
28、在所述密鑰管理系統(tǒng)校驗通過所述目標token和所述第一u盾信息后,所述密鑰管理系統(tǒng)生成第一服務器信息;所述第一服務器信息包括第一云端簽名、加密后的服務器證書和加密后的第一挑戰(zhàn)隨機數(shù)及其生成時刻;
29、所述密鑰管理系統(tǒng)基于aes算法,根據(jù)所述第一隨機數(shù)和所述第一挑戰(zhàn)隨機數(shù)生成并緩存第一臨時會話秘鑰;
30、所述密鑰管理系統(tǒng)通過所述外部密鑰系統(tǒng)代理向所述主u盾發(fā)送所述第一服務器信息;
31、在所述主u盾認證通過所述第一服務器信息后,所述主u盾基于aes算法,根據(jù)所述第一隨機數(shù)和所述第一挑戰(zhàn)隨機數(shù)生成并緩存第一臨時會話秘鑰;
32、所述主u盾通過所述外部密鑰系統(tǒng)代理向所述密鑰管理系統(tǒng)發(fā)送第一認證結(jié)果數(shù)據(jù);所述第一認證結(jié)果數(shù)據(jù)中的加密數(shù)據(jù)使用所述第一臨時會話秘鑰進行加密;
33、所述密鑰管理系統(tǒng)驗證所述第一認證結(jié)果數(shù)據(jù),并將第一驗證結(jié)果發(fā)送給所述外部密鑰系統(tǒng)代理;
34、若所述外部密鑰系統(tǒng)代理根據(jù)所述第一驗證結(jié)果確定出所述第一認證結(jié)果數(shù)據(jù)驗證通過,則所述外部密鑰系統(tǒng)代理與所述主u盾建立通訊連接;
35、所述外部密鑰系統(tǒng)代理獲取所述副本u盾的第二u盾信息;所述第二u盾信息包括設備序列號以及加密后的第二隨機數(shù)及其生成時刻;
36、所述外部密鑰系統(tǒng)代理將所述目標token和所述第二u盾信息發(fā)送給所述密鑰管理系統(tǒng);
37、在所述密鑰管理系統(tǒng)校驗通過所述目標token和所述第二u盾信息后,所述密鑰管理系統(tǒng)生成第二服務器信息;所述第二服務器信息包括第二云端簽名、加密后的服務器證書和加密后的第二挑戰(zhàn)隨機數(shù)及其生成時刻;
38、所述密鑰管理系統(tǒng)基于aes算法,根據(jù)所述第二隨機數(shù)和所述第二挑戰(zhàn)隨機數(shù)生成并緩存第二臨時會話秘鑰;
39、所述密鑰管理系統(tǒng)通過所述外部密鑰系統(tǒng)代理向所述副本u盾發(fā)送所述第二服務器信息;
40、在所述副本u盾認證通過所述第二服務器信息后,所述副本u盾基于aes算法,根據(jù)所述第二隨機數(shù)和所述第二挑戰(zhàn)隨機數(shù)生成并緩存第二臨時會話秘鑰;
41、所述副本u盾通過所述外部密鑰系統(tǒng)代理向所述密鑰管理系統(tǒng)發(fā)送第二認證結(jié)果數(shù)據(jù);所述第二認證結(jié)果數(shù)據(jù)中的加密數(shù)據(jù)使用所述第二臨時會話秘鑰進行加密;
42、所述密鑰管理系統(tǒng)驗證所述第二認證結(jié)果數(shù)據(jù),并將第二驗證結(jié)果發(fā)送給所述外部密鑰系統(tǒng)代理;
43、若所述外部密鑰系統(tǒng)代理根據(jù)所述第二驗證結(jié)果確定出所述第二認證結(jié)果數(shù)據(jù)驗證通過,則所述外部密鑰系統(tǒng)代理與所述副本u盾建立通訊連接。
44、可選的,所述外部密鑰系統(tǒng)代理獲取所述主u盾的第一u盾信息,具體包括:
45、在所述外部密鑰系統(tǒng)代理接收到所述用戶發(fā)送的pin碼后,所述外部密鑰系統(tǒng)代理生成攜帶有所述pin碼的獲取第一u盾信息指令;
46、所述外部密鑰系統(tǒng)代理向所述主u盾發(fā)送所述獲取第一u盾信息指令;
47、所述主u盾根據(jù)所述獲取第一u盾信息指令,生成所述第一u盾信息;其中,所述第一u盾信息中的第一隨機數(shù)及其生成時刻使用所述主u盾的ca公鑰進行加密;
48、所述主u盾向所述外部密鑰系統(tǒng)代理發(fā)送所述第一u盾信息;
49、所述外部密鑰系統(tǒng)代理獲取所述副本u盾的第二u盾信息,具體包括:
50、所述外部密鑰系統(tǒng)代理生成攜帶有所述pin碼的獲取第二u盾信息指令;
51、所述外部密鑰系統(tǒng)代理向所述副本u盾發(fā)送所述獲取第二u盾信息指令;
52、所述副本u盾根據(jù)所述獲取第二u盾信息指令,生成所述第二u盾信息;其中,所述第二u盾信息中的第二隨機數(shù)及其生成時刻使用所述副本u盾的ca公鑰進行加密;
53、所述副本u盾向所述外部密鑰系統(tǒng)代理發(fā)送所述第二u盾信息。
54、可選的,所述第一云端簽名和所述第二云端簽名均基于ecdsa-sha256算法生成。
55、第二方面,本發(fā)明提供了一種u盾的密鑰備份系統(tǒng),包括:主u盾、副本u盾、電腦端和服務器端;
56、所述電腦端中安裝有外部密鑰系統(tǒng)代理,所述服務器端中安裝有密鑰管理系統(tǒng);
57、所述主u盾、所述副本u盾、所述外部密鑰系統(tǒng)代理和所述密鑰管理系統(tǒng)用于執(zhí)行如上所述的u盾的密鑰備份方法。
58、可選的,所述電腦端具體為pc端;
59、所述服務器端具體為云服務器端。
60、本發(fā)明采用以上技術(shù)方案,一種u盾的密鑰備份方法,包括:在外部密鑰系統(tǒng)代理分別與主u盾和副本u盾成功建立通訊連接后,主u盾通過外部密鑰系統(tǒng)代理獲取用戶發(fā)送的待備份秘鑰信息;主u盾通過外部密鑰系統(tǒng)代理從密鑰管理系統(tǒng)處獲取加密后的副本u盾的公鑰;主u盾基于ecdh,根據(jù)副本u盾的公鑰和自身私鑰,生成第一臨時對稱密鑰;副本u盾通過外部密鑰系統(tǒng)代理從密鑰管理系統(tǒng)處獲取加密后的主u盾的公鑰;副本u盾基于ecdh,根據(jù)主u盾的公鑰和自身的私鑰,生成第二臨時對稱密鑰;第一臨時對稱密鑰與第二臨時對稱密鑰相同;外部密鑰系統(tǒng)代理獲取主u盾發(fā)送的加密后的待備份秘鑰;待備份秘鑰使用第一臨時對稱密鑰進行加密,且待備份秘鑰根據(jù)待備份秘鑰信息確定出;所述外部密鑰系統(tǒng)代理將所述加密后的待備份秘鑰發(fā)送給所述副本u盾;所述副本u盾使用所述第二臨時對稱密鑰解密所述加密后的待備份秘鑰;所述副本u盾保存所述待備份秘鑰。
61、基于此,通過基于ecdh生成臨時對稱密鑰(包括第一臨時對稱密鑰和第二臨時對稱密鑰,且第一臨時對稱密鑰與第二臨時對稱密鑰相同),使用臨時對稱密鑰對待備份秘鑰進行加密和解密,避免了明文密鑰的傳輸和存儲,使得只有主u盾和副本u盾能夠解密得到待備份秘鑰,有效防止了密鑰泄露的風險,提高了密鑰備份過程的安全性。