本發(fā)明涉及計算機信息,尤其涉及互聯(lián)網(wǎng)區(qū)域?qū)ΨQ秘鑰的傳遞方法、系統(tǒng)、設備及存儲介質(zhì)。
背景技術:
1、目前客戶端app與服務端使用國際算法rsa非對稱秘鑰對,對請求和返回的數(shù)據(jù)進行加解密,保證了接口數(shù)據(jù)的安全性,但非對稱加解密效率遠低于對稱加解密,增加耗時,影響app性能,時常造成app卡頓;另外,所有的用戶客戶端app都保存著同樣的公鑰,一旦秘鑰遭到泄露,攻擊人可以通過該秘鑰解密其它用戶的響應數(shù)據(jù),造成數(shù)據(jù)泄露,危害數(shù)據(jù)安全。
2、國際非對稱rsa算法不符合國家對金融數(shù)據(jù)傳遞的要求,同時非對稱rsa算法加解密數(shù)據(jù),其性能和效率遠低于對稱加密算法,影響客戶端app數(shù)據(jù)處理速度,影響客戶體驗;另外,當客戶端配置低、處理數(shù)據(jù)量大時,容易造成客戶端卡頓,導致時常會有客戶投訴反饋app卡頓現(xiàn)象。
技術實現(xiàn)思路
1、針對現(xiàn)有技術中存在的技術問題,本發(fā)明提供互聯(lián)網(wǎng)區(qū)域?qū)ΨQ秘鑰的傳遞方法、系統(tǒng)、設備及存儲介質(zhì),用以解決客戶端app與服務端之間的接口安全調(diào)用,同時提升調(diào)用效率,減少耗時,提升用戶體驗,滿足國密改造的要求。
2、根據(jù)本發(fā)明的第一方面,本發(fā)明提供互聯(lián)網(wǎng)區(qū)域?qū)ΨQ秘鑰的傳遞方法,包括:
3、步驟s1,客戶端隨機生成國密sm4對稱秘鑰,使用國密sm2私鑰對生成的國密sm4對稱秘鑰進行加密,使用國密sm4對稱秘鑰對客戶端系統(tǒng)時間戳、唯一請求流水號、設備唯一編號分別進行加密,使用sm2私鑰對加密后的國密sm4對稱秘鑰、客戶端系統(tǒng)時間戳、唯一請求流水號、設備唯一編號按順序進行簽名并向服務端發(fā)送請求;
4、步驟s2,服務端接收sm2私鑰對稱秘鑰傳遞接口請求,使用國密sm2公鑰對加密后的sm4對稱秘鑰密文解密得到sm4對稱秘鑰,再使用sm4對稱秘鑰分別解密客戶端系統(tǒng)時間戳、唯一請求流水號、設備唯一編號得到原文數(shù)據(jù)進行校驗,對簽名數(shù)據(jù)進行驗簽,并將處理結(jié)果響應給客戶端;
5、步驟s3,當客戶端接收到服務端響應的各類型異常,則清除客戶端緩存sm4對稱秘鑰,重新生成sm4秘鑰,再重復步驟s1,直至服務端秘鑰傳遞接口響應成功為止;當客戶端接收到服務端響應成功時,表示sm4對稱秘鑰傳遞成功,其后其它接口交易直接攜帶設備唯一編號,通過sm4對稱加密秘鑰進行加解密數(shù)據(jù)。
6、在上述技術方案的基礎上,本發(fā)明還可以作出如下改進。
7、可選的,所述步驟s1包括以下步驟:
8、客戶端app首次啟動時隨機生成國密sm4對稱秘鑰,并將所述sm4對稱秘鑰保存至客戶端緩存,客戶端app使用持有的國密sm2私鑰加密sm4對稱秘鑰生成sm4對稱秘鑰密文;
9、獲取客戶端系統(tǒng)時間戳,生成唯一請求流水號,獲取設備唯一編號,使用客戶端app緩存的sm4對稱秘鑰進行國密sm4算法加密分別生成系統(tǒng)時間戳、唯一請求流水號、設備唯一編號密文;
10、使用客戶端app持有的私鑰sm2進行數(shù)據(jù)簽名,對加密后的sm4對稱秘鑰,系統(tǒng)時間戳、唯一請求流水號、設備唯一編號生成數(shù)字簽名;
11、調(diào)用服務端對稱秘鑰傳遞接口,請求攜帶參數(shù)包括sm4對稱秘鑰密文、客戶端系統(tǒng)時間戳密文、唯一請求流水號密文、設備唯一編號密文和數(shù)字簽名。可選的,所述使用國密sm2公鑰對加密后的sm4對稱秘鑰密文解密得到sm4對稱秘鑰包括:
12、服務端接收到接口請求參數(shù)sm4對稱秘鑰密文、客戶端系統(tǒng)時間戳密文、唯一請求流水號密文、設備唯一編號密文和數(shù)字簽名;
13、使用服務端持有的國密sm2公鑰解密sm4對稱秘鑰密文,如果解密失敗,直接響應app請求sm2密鑰對錯誤,如果解密成功,則得到sm4對稱秘鑰。
14、可選的,所述使用sm4對稱秘鑰分別解密客戶端系統(tǒng)時間戳、唯一請求流水號、設備唯一編號得到原文數(shù)據(jù)包括:
15、使用sm4對稱秘鑰解密客戶端系統(tǒng)時間戳密文,得到客戶端系統(tǒng)時間戳明文,獲取當前服務端時間戳,如果服務端時間戳減客戶端上送系統(tǒng)時間戳的時間誤差大于預設誤差值,則直接響應客戶端app請求數(shù)據(jù)超時,反之,繼續(xù)流程判斷;
16、使用sm4對稱秘鑰解密唯一請求流水號密文,得到唯一請求流水號原文,查詢服務端對接秘鑰傳遞接口請求流水表,判斷唯一請求流水號原文是否已使用,如果已存在,直接響應app重復交易反之,繼續(xù)流程判斷;
17、使用sm4對稱秘鑰,解密設備唯一編號密文得到設備唯一編號原文。
18、可選的,所述將所述原文數(shù)據(jù)進行校驗,對簽名數(shù)據(jù)進行驗簽,并將處理結(jié)果響應給客戶端包括:
19、使用服務端持有的國密sm2公鑰進行驗簽,如果驗簽不通過,直接響應app請求數(shù)據(jù)被篡改,反之則記錄服務端秘鑰傳遞接口請求流水表,保存唯一請求流水號、設備唯一編號和請求時間信息,再記錄一條app秘鑰表數(shù)據(jù),保存設備唯一編號和傳送成功的sm4對稱秘鑰,保存對應關系。
20、可選的,所述原文數(shù)據(jù)包括客戶端上送數(shù)字簽名和解密后有序數(shù)據(jù)原文包含sm4對稱秘鑰、客戶端上送系統(tǒng)時間戳、唯一請求流水號、設備唯一編號。
21、可選的,在步驟s2中,若整個流程如果有其它異常,統(tǒng)統(tǒng)響應客戶端app未知錯誤,秘鑰傳遞失敗,如果整個流程相關校驗及數(shù)據(jù)操作成功,則響應客戶端app國密sm4對稱秘鑰傳遞成功。
22、根據(jù)本發(fā)明的第二方面,提供一種互聯(lián)網(wǎng)區(qū)域?qū)ΨQ秘鑰的傳遞系統(tǒng),包括:
23、原始數(shù)據(jù)加密模塊,用于在客戶端隨機生成國密sm4對稱秘鑰后,使用國密sm2私鑰對生成的國密sm4對稱秘鑰進行加密,再使用國密sm4對稱秘鑰對客戶端系統(tǒng)時間戳、唯一請求流水號、設備唯一編號分別進行加密,使用sm2私鑰對加密后的國密sm4對稱秘鑰、客戶端系統(tǒng)時間戳、唯一請求流水號、設備唯一編號按順序進行簽名并向服務端發(fā)送請求;
24、數(shù)據(jù)校驗模塊,用于服務端接收sm2私鑰對稱秘鑰傳遞接口請求,使用國密sm2公鑰對加密后的sm4對稱秘鑰密文解密得到sm4對稱秘鑰,再使用sm4對稱秘鑰分別解密客戶端系統(tǒng)時間戳、唯一請求流水號、設備唯一編號得到原文數(shù)據(jù),將所述原文數(shù)據(jù)進行校驗,對簽名數(shù)據(jù)進行驗簽,并將處理結(jié)果響應給客戶端;
25、數(shù)據(jù)響應模塊,用于客戶端接收到服務端響應的各類型異常,清除客戶端緩存sm4對稱秘鑰,重新生成sm4秘鑰,再重復步驟s1,直至服務端秘鑰傳遞接口響應成功為止;當客戶端接收到服務端響應成功時,表示sm4對稱秘鑰傳遞成功,其后其它接口交易,直接攜帶設備唯一編號,通過sm4對稱加密秘鑰進行加解密數(shù)據(jù)。
26、本發(fā)明還提供一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)所述一種互聯(lián)網(wǎng)區(qū)域?qū)ΨQ秘鑰的傳遞方法。
27、本發(fā)明還提供一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)如所述一種互聯(lián)網(wǎng)區(qū)域?qū)ΨQ秘鑰的傳遞方法。
28、本發(fā)明的技術效果和優(yōu)點:
29、本發(fā)明提供的互聯(lián)網(wǎng)區(qū)域?qū)ΨQ秘鑰的傳遞方法、系統(tǒng)、設備及存儲介質(zhì),本發(fā)明目的在于解決客戶端app與服務端之間的接口安全調(diào)用,同時提升調(diào)用效率,減少耗時,提升用戶體驗。通過使用國密非對稱sm2算法傳遞對稱加密sm4算法秘鑰,首次傳遞成功后,后續(xù)接口調(diào)用使用sm4算法進行數(shù)據(jù)的加解密,保證接口的安全調(diào)用同時,也大大提升接口調(diào)用效率。
30、本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其它優(yōu)點可通過在說明書、權利要求書以及附圖中所指出的結(jié)構(gòu)來實現(xiàn)和獲得。