本發(fā)明涉及數(shù)據(jù)安全傳輸,尤其涉及一種數(shù)據(jù)傳輸方法、裝置、設(shè)備、存儲(chǔ)介質(zhì)和程序產(chǎn)品。
背景技術(shù):
1、工業(yè)物聯(lián)網(wǎng)(iiot)是指在不同行業(yè)的工業(yè)系統(tǒng)中實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)、遠(yuǎn)程監(jiān)控和智能管理的技術(shù),隨著工業(yè)物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,工業(yè)物聯(lián)網(wǎng)平臺(tái)和工業(yè)智能網(wǎng)關(guān)發(fā)揮著越來越重要的作用,兩者之間不斷融合發(fā)展。
2、目前,工業(yè)網(wǎng)關(guān)側(cè)和平臺(tái)側(cè)進(jìn)行數(shù)據(jù)傳輸?shù)倪^程中,為了保證數(shù)據(jù)傳輸安全,通常采用在工業(yè)網(wǎng)關(guān)上預(yù)置靜態(tài)對(duì)稱密鑰的方式實(shí)現(xiàn)數(shù)據(jù)傳輸,工業(yè)網(wǎng)關(guān)側(cè)使用預(yù)置密鑰加密上報(bào)數(shù)據(jù),平臺(tái)側(cè)收到數(shù)據(jù)后使用相同密鑰解密數(shù)據(jù),完成數(shù)據(jù)加密安全傳輸。
3、然而,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題:密鑰預(yù)置需要先在平臺(tái)側(cè)生成對(duì)稱密鑰,再將對(duì)稱密鑰復(fù)制到工業(yè)網(wǎng)關(guān)上,預(yù)置流程耗時(shí)長,效率低。并且,預(yù)置密鑰在工業(yè)網(wǎng)關(guān)上只能以明文保存,容易泄密,一旦泄密將造成數(shù)據(jù)傳輸過程的信息失竊。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例的目的是提供一種數(shù)據(jù)傳輸方法、裝置、設(shè)備、存儲(chǔ)介質(zhì)和程序產(chǎn)品,無需在網(wǎng)關(guān)上預(yù)置密鑰,節(jié)省了人力成本,且網(wǎng)關(guān)之間動(dòng)態(tài)協(xié)商不落地存儲(chǔ)的隨機(jī)對(duì)稱密鑰來實(shí)現(xiàn)對(duì)數(shù)據(jù)的加解密傳輸,有效提高數(shù)據(jù)傳輸?shù)陌踩浴?/p>
2、為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法,應(yīng)用于第一網(wǎng)關(guān),所述方法包括:
3、在建立與第二網(wǎng)關(guān)的通信連接后,采用非對(duì)稱加密算法生成公鑰和私鑰;
4、將所述公鑰發(fā)送給所述第二網(wǎng)關(guān);
5、接收所述第二網(wǎng)關(guān)發(fā)送的加密數(shù)據(jù)包;其中,所述加密數(shù)據(jù)包是所述第二網(wǎng)關(guān)采用對(duì)稱加密算法生成隨機(jī)對(duì)稱密鑰后,采用所述公鑰和消息摘要算法對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行加密生成的;
6、采用所述私鑰和所述消息摘要算法對(duì)所述加密數(shù)據(jù)包進(jìn)行解密得到隨機(jī)對(duì)稱密鑰,并對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行可信度驗(yàn)證;
7、當(dāng)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證通過時(shí),向所述第二網(wǎng)關(guān)發(fā)送正常響應(yīng)信息;
8、在與所述第二網(wǎng)關(guān)進(jìn)行目標(biāo)數(shù)據(jù)傳輸?shù)倪^程中,采用所述隨機(jī)對(duì)稱密鑰對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行加解密。
9、作為上述方案的改進(jìn),所述加密數(shù)據(jù)包是所述第二網(wǎng)關(guān)采用消息摘要算法對(duì)所述隨機(jī)對(duì)稱密鑰和所述第二網(wǎng)關(guān)的網(wǎng)關(guān)信息進(jìn)行處理生成第一消息摘要,并采用所述公鑰對(duì)所述隨機(jī)對(duì)稱密鑰、所述網(wǎng)關(guān)信息和所述第一消息摘要進(jìn)行打包加密后生成的;
10、則所述采用所述私鑰和所述消息摘要算法對(duì)所述加密數(shù)據(jù)包進(jìn)行解密得到隨機(jī)對(duì)稱密鑰,并對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行可信度驗(yàn)證,包括:
11、采用所述私鑰對(duì)所述加密數(shù)據(jù)包進(jìn)行解密得到隨機(jī)對(duì)稱密鑰、網(wǎng)關(guān)信息和第一消息摘要;
12、采用所述消息摘要算法對(duì)所述隨機(jī)對(duì)稱密鑰和所述網(wǎng)關(guān)信息進(jìn)行處理,得到第一校驗(yàn)消息摘要;
13、比較所述第一消息摘要和所述第一校驗(yàn)消息摘要的一致性,對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行可信度驗(yàn)證。
14、作為上述方案的改進(jìn),所述方法還包括:
15、當(dāng)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證不通過時(shí),向所述第二網(wǎng)關(guān)發(fā)送異常響應(yīng)信息,以使所述第二網(wǎng)關(guān)重新生成隨機(jī)對(duì)稱密鑰和加密數(shù)據(jù)包。
16、作為上述方案的改進(jìn),在所述當(dāng)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證不通過時(shí),向所述第二網(wǎng)關(guān)發(fā)送異常響應(yīng)信息之后,所述方法還包括:
17、當(dāng)連續(xù)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證不通過的次數(shù)達(dá)到預(yù)設(shè)的次數(shù)閾值時(shí),斷開與所述第二網(wǎng)關(guān)之間的連接,并重新與所述第二網(wǎng)關(guān)建立連接,將所述公鑰重新發(fā)送給所述第二網(wǎng)關(guān)。
18、作為上述方案的改進(jìn),在重新與所述第二網(wǎng)關(guān)建立連接,將所述公鑰重新發(fā)送給所述第二網(wǎng)關(guān)之后,所述方法還包括:
19、當(dāng)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證仍不通過時(shí),采用非對(duì)稱加密算法生成新的公鑰和新的私鑰,并將所述新的公鑰重新發(fā)送給所述第二網(wǎng)關(guān)。
20、作為上述方案的改進(jìn),所述將所述公鑰發(fā)送給所述第二網(wǎng)關(guān),包括:
21、采用消息摘要算法對(duì)公鑰進(jìn)行處理,生成第二消息摘要;
22、采用所述私鑰對(duì)所述第二消息摘要進(jìn)行加密,得到加密消息摘要;
23、將所述公鑰和所述加密消息摘要發(fā)送給所述第二網(wǎng)關(guān),以使所述第二網(wǎng)關(guān)采用所述公鑰對(duì)所述加密消息摘要進(jìn)行解密后,對(duì)所述公鑰進(jìn)行可信度驗(yàn)證,并在可信度驗(yàn)證通過時(shí)生成所述加密數(shù)據(jù)包。
24、作為上述方案的改進(jìn),在所述將所述公鑰和所述加密消息摘要發(fā)送給所述第二網(wǎng)關(guān)之后,所述方法還包括:
25、當(dāng)接收到所述第二網(wǎng)關(guān)發(fā)送的對(duì)所述公鑰的可信度驗(yàn)證不通過的響應(yīng)消息時(shí),采用非對(duì)稱加密算法生成新的公鑰和新的私鑰。
26、作為上述方案的改進(jìn),所述當(dāng)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證通過時(shí),向所述第二網(wǎng)關(guān)發(fā)送正常響應(yīng)信息,包括:
27、當(dāng)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證通過時(shí),生成正常響應(yīng)信息;
28、采用所述私鑰對(duì)所述正常響應(yīng)信息進(jìn)行加密,得到加密正常響應(yīng)信息并發(fā)送給所述第二網(wǎng)關(guān);
29、所述當(dāng)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證不通過時(shí),向所述第二網(wǎng)關(guān)發(fā)送異常響應(yīng)信息,包括:
30、當(dāng)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證不通過時(shí),生成異常響應(yīng)信息;
31、采用所述私鑰對(duì)所述異常響應(yīng)信息進(jìn)行加密,得到加密異常響應(yīng)信息并發(fā)送給所述第二網(wǎng)關(guān)。
32、作為上述方案的改進(jìn),在所述比較所述第一消息摘要和所述第一校驗(yàn)消息摘要的一致性,對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行可信度驗(yàn)證之后,所述方法還包括:
33、當(dāng)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證通過時(shí),以所述網(wǎng)關(guān)信息為主鍵,以所述隨機(jī)對(duì)稱密鑰為值,生成鍵值對(duì)進(jìn)行緩存;
34、則所述在與所述第二網(wǎng)關(guān)進(jìn)行目標(biāo)數(shù)據(jù)傳輸?shù)倪^程中,采用所述隨機(jī)對(duì)稱密鑰對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行加解密,包括:
35、在與所述第二網(wǎng)關(guān)進(jìn)行目標(biāo)數(shù)據(jù)傳輸?shù)倪^程中,在所述鍵值對(duì)中查找與所述第二網(wǎng)關(guān)的網(wǎng)關(guān)信息對(duì)應(yīng)的隨機(jī)對(duì)稱密鑰,并采用所述隨機(jī)對(duì)稱密鑰對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行加解密。
36、作為上述方案的改進(jìn),所述方法還包括:
37、當(dāng)完成對(duì)所述目標(biāo)數(shù)據(jù)的傳輸后,斷開與所述第二網(wǎng)關(guān)的連接;
38、對(duì)所述私鑰和所述隨機(jī)對(duì)稱密鑰進(jìn)行銷毀。
39、本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法,應(yīng)用于第二網(wǎng)關(guān),所述方法包括:
40、在建立與第一網(wǎng)關(guān)的通信連接后,接收所述第一網(wǎng)關(guān)下發(fā)的公鑰;其中,所述第一網(wǎng)關(guān)采用非對(duì)稱加密算法生成所述公鑰和私鑰;
41、采用對(duì)稱加密算法生成隨機(jī)對(duì)稱密鑰;
42、采用所述公鑰和消息摘要算法對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行加密,生成加密數(shù)據(jù)包,并發(fā)送給所述第一網(wǎng)關(guān),以使所述第一網(wǎng)關(guān)采用所述私鑰和所述消息摘要算法對(duì)所述加密數(shù)據(jù)包進(jìn)行解密得到隨機(jī)對(duì)稱密鑰,并對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行可信度驗(yàn)證;
43、當(dāng)接收到所述第一網(wǎng)關(guān)在可信度驗(yàn)證通過后發(fā)送的正常響應(yīng)信息時(shí),在與所述第一網(wǎng)關(guān)進(jìn)行目標(biāo)數(shù)據(jù)傳輸?shù)倪^程中,采用所述隨機(jī)對(duì)稱密鑰對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行加解密。
44、作為上述方案的改進(jìn),所述采用所述公鑰和消息摘要算法對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行加密,生成加密數(shù)據(jù)包,并發(fā)送給所述第一網(wǎng)關(guān),以使所述第一網(wǎng)關(guān)采用所述私鑰和所述消息摘要算法對(duì)所述加密數(shù)據(jù)包進(jìn)行解密得到隨機(jī)對(duì)稱密鑰,并對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行可信度驗(yàn)證,包括:
45、采用消息摘要算法對(duì)所述隨機(jī)對(duì)稱密鑰和所述第二網(wǎng)關(guān)的網(wǎng)關(guān)信息進(jìn)行處理生成第一消息摘要;
46、采用所述公鑰對(duì)所述隨機(jī)對(duì)稱密鑰、所述網(wǎng)關(guān)信息和所述第一消息摘要進(jìn)行打包加密,生成所述加密數(shù)據(jù)包;
47、將所述加密數(shù)據(jù)包發(fā)送給所述第一網(wǎng)關(guān),以使所述第一網(wǎng)關(guān)采用所述私鑰對(duì)所述加密數(shù)據(jù)包進(jìn)行解密得到隨機(jī)對(duì)稱密鑰、網(wǎng)關(guān)信息和第一消息摘要,采用所述消息摘要算法對(duì)所述隨機(jī)對(duì)稱密鑰和所述網(wǎng)關(guān)信息進(jìn)行處理,得到第一校驗(yàn)消息摘要,并比較所述第一消息摘要和所述第一校驗(yàn)消息摘要的一致性,對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行可信度驗(yàn)證。
48、作為上述方案的改進(jìn),所述接收所述第一網(wǎng)關(guān)下發(fā)的公鑰,包括:
49、接收所述第一網(wǎng)關(guān)發(fā)送的所述公鑰和加密消息摘要;其中,所述加密消息摘要是所述第一網(wǎng)關(guān)采用消息摘要算法對(duì)公鑰進(jìn)行處理生成第二消息摘要,并采用所述私鑰對(duì)所述第二消息摘要進(jìn)行加密后生成的;
50、采用所述公鑰對(duì)所述加密消息摘要進(jìn)行解密得到第二消息摘要;
51、采用所述消息摘要算法對(duì)所述公鑰進(jìn)行加密得到第二校驗(yàn)消息摘要;
52、比較所述第二消息摘要和所述第二校驗(yàn)消息摘要的一致性,對(duì)所述公鑰進(jìn)行可信度驗(yàn)證。
53、本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)傳輸方法,應(yīng)用于數(shù)據(jù)傳輸系統(tǒng),所述數(shù)據(jù)傳輸系統(tǒng)包括第一網(wǎng)關(guān)和第二網(wǎng)關(guān),所述方法包括:
54、在所述第一網(wǎng)關(guān)和所述第二網(wǎng)關(guān)建立通信連接后,所述第一網(wǎng)關(guān)采用非對(duì)稱加密算法生成公鑰和私鑰,并將所述公鑰發(fā)送給所述第二網(wǎng)關(guān);
55、所述第二網(wǎng)關(guān)采用對(duì)稱加密算法生成隨機(jī)對(duì)稱密鑰,采用所述公鑰和消息摘要算法對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行加密,生成加密數(shù)據(jù)包,并發(fā)送給所述第一網(wǎng)關(guān);
56、所述第一網(wǎng)關(guān)采用所述私鑰和所述消息摘要算法對(duì)所述加密數(shù)據(jù)包進(jìn)行解密得到隨機(jī)對(duì)稱密鑰,并對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行可信度驗(yàn)證;
57、所述第一網(wǎng)關(guān)在當(dāng)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證通過時(shí),向所述第二網(wǎng)關(guān)發(fā)送正常響應(yīng)信息;
58、所述第一網(wǎng)關(guān)與所述第二網(wǎng)關(guān)進(jìn)行目標(biāo)數(shù)據(jù)傳輸?shù)倪^程中,采用所述隨機(jī)對(duì)稱密鑰對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行加解密。
59、本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)傳輸裝置,應(yīng)用于第一網(wǎng)關(guān),所述裝置包括:
60、非對(duì)稱密鑰生成模塊,用于在建立與第二網(wǎng)關(guān)的通信連接后,采用非對(duì)稱加密算法生成公鑰和私鑰;
61、公鑰發(fā)送模塊,用于將所述公鑰發(fā)送給所述第二網(wǎng)關(guān);
62、加密數(shù)據(jù)包接收模塊,用于接收所述第二網(wǎng)關(guān)發(fā)送的加密數(shù)據(jù)包;其中,所述加密數(shù)據(jù)包是所述第二網(wǎng)關(guān)采用對(duì)稱加密算法生成隨機(jī)對(duì)稱密鑰后,采用所述公鑰和消息摘要算法對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行加密生成的;
63、對(duì)稱密鑰獲取模塊,用于采用所述私鑰和所述消息摘要算法對(duì)所述加密數(shù)據(jù)包進(jìn)行解密得到隨機(jī)對(duì)稱密鑰,并對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行可信度驗(yàn)證;
64、響應(yīng)信息發(fā)送模塊,用于當(dāng)對(duì)所述隨機(jī)對(duì)稱密鑰的可信度驗(yàn)證通過時(shí),向所述第二網(wǎng)關(guān)發(fā)送正常響應(yīng)信息;
65、第一數(shù)據(jù)傳輸模塊,用于在與所述第二網(wǎng)關(guān)進(jìn)行目標(biāo)數(shù)據(jù)傳輸?shù)倪^程中,采用所述隨機(jī)對(duì)稱密鑰對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行加解密。
66、本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)傳輸裝置,應(yīng)用于第二網(wǎng)關(guān),所述裝置包括:
67、公鑰接收模塊,用于在建立與第一網(wǎng)關(guān)的通信連接后,接收所述第一網(wǎng)關(guān)下發(fā)的公鑰;其中,所述第一網(wǎng)關(guān)采用非對(duì)稱加密算法生成所述公鑰和私鑰;
68、對(duì)稱密鑰生成模塊,用于采用對(duì)稱加密算法生成隨機(jī)對(duì)稱密鑰;
69、加密數(shù)據(jù)包生成模塊,用于采用所述公鑰和消息摘要算法對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行加密,生成加密數(shù)據(jù)包,并發(fā)送給所述第一網(wǎng)關(guān),以使所述第一網(wǎng)關(guān)采用所述私鑰和所述消息摘要算法對(duì)所述加密數(shù)據(jù)包進(jìn)行解密得到隨機(jī)對(duì)稱密鑰,并對(duì)所述隨機(jī)對(duì)稱密鑰進(jìn)行可信度驗(yàn)證;
70、第二數(shù)據(jù)傳輸模塊,用于當(dāng)接收到所述第一網(wǎng)關(guān)在可信度驗(yàn)證通過后發(fā)送的正常響應(yīng)信息時(shí),在與所述第一網(wǎng)關(guān)進(jìn)行目標(biāo)數(shù)據(jù)傳輸?shù)倪^程中,采用所述隨機(jī)對(duì)稱密鑰對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行加解密。
71、本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)傳輸設(shè)備,包括處理器、存儲(chǔ)器以及存儲(chǔ)在所述存儲(chǔ)器中且被配置為由所述處理器執(zhí)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如上述任意一項(xiàng)所述的數(shù)據(jù)傳輸方法。
72、本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括存儲(chǔ)的計(jì)算機(jī)程序,其中,在所述計(jì)算機(jī)程序運(yùn)行時(shí)控制所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)所在設(shè)備執(zhí)行如上述任意一項(xiàng)所述的數(shù)據(jù)傳輸方法。
73、本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序或計(jì)算機(jī)指令,所述計(jì)算機(jī)程序或所述計(jì)算機(jī)指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述任意一項(xiàng)所述的數(shù)據(jù)傳輸方法。
74、與現(xiàn)有技術(shù)相比,本發(fā)明公開的數(shù)據(jù)傳輸方法、裝置、設(shè)備、存儲(chǔ)介質(zhì)和程序產(chǎn)品,在第一網(wǎng)關(guān)和第二網(wǎng)關(guān)之間基于非對(duì)稱加密算法和消息摘要算法構(gòu)建安全通道,基于該安全通道,第一網(wǎng)關(guān)和第二網(wǎng)關(guān)自動(dòng)協(xié)商出基于對(duì)稱加密算法的隨機(jī)對(duì)稱密鑰,確保了第一網(wǎng)關(guān)和第二網(wǎng)關(guān)之間協(xié)商隨機(jī)對(duì)稱密鑰過程的安全性,保證了生成加密密鑰的隨機(jī)性和不確定性,防止被篡改數(shù)據(jù)。并且本發(fā)明無需在網(wǎng)關(guān)上預(yù)置密鑰,節(jié)省了人力成本,提高了效率,采用該隨機(jī)對(duì)稱密鑰對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加解密,有效地提高了網(wǎng)關(guān)之間數(shù)據(jù)傳輸?shù)陌踩?,提高了外來方?duì)數(shù)據(jù)破解的難度。