本發(fā)明涉及計(jì)算機(jī)技術(shù),尤其涉及一種基于安全切面的數(shù)據(jù)處理方法、裝置、介質(zhì)及設(shè)備。
背景技術(shù):
1、目前,隨著互聯(lián)網(wǎng)的快速發(fā)展,云服務(wù)應(yīng)用越來越廣泛。其中,對(duì)象存儲(chǔ)服務(wù)(object?storage?service,oss),為用戶提供了一個(gè)簡單、安全、大規(guī)模、低成本、高持久性的數(shù)據(jù)存儲(chǔ)服務(wù),適用于存儲(chǔ)和處理非結(jié)構(gòu)化數(shù)據(jù),如圖片、視頻、音頻文件等。
2、現(xiàn)有技術(shù)中,用戶通過oss客戶端,創(chuàng)建存儲(chǔ)桶(bucket)來存放數(shù)據(jù)對(duì)象,用戶可以使用api或sdk上傳、下載和管理這些對(duì)象,設(shè)置訪問權(quán)限,并通過監(jiān)控工具跟蹤使用情況。
3、但是,現(xiàn)有技術(shù)中oss客戶端和oss服務(wù)端,一般通過https安全鏈接的形式,在oss服務(wù)端明文存儲(chǔ)數(shù)據(jù)。這種形式帶來了通信鏈路的安全要求,同時(shí)也難以防范oss產(chǎn)品在后臺(tái)作惡導(dǎo)致的安全風(fēng)險(xiǎn),如oss產(chǎn)品的管理員竊取或泄露用戶數(shù)據(jù)。
4、為了解決上述問題,本發(fā)明提出了一種基于安全切面的數(shù)據(jù)處理方法,可以顯著提高oss服務(wù)存儲(chǔ)數(shù)據(jù)的安全性。
技術(shù)實(shí)現(xiàn)思路
1、本說明書實(shí)施例提供一種基于安全切面的數(shù)據(jù)處理方法,通過預(yù)先在云存儲(chǔ)客戶端插入的切面程序,攔截要上傳云存儲(chǔ)服務(wù)器的待存儲(chǔ)的數(shù)據(jù),通過在切面程序的預(yù)設(shè)的安全保護(hù)機(jī)制下生成的加密密鑰對(duì)該待存儲(chǔ)的數(shù)據(jù)進(jìn)行加密,并將加密密鑰的密文和加密數(shù)據(jù)一同組裝上傳云存儲(chǔ)服務(wù)器。則在從云存儲(chǔ)服務(wù)器加載數(shù)據(jù)時(shí),可以同樣的安全保護(hù)機(jī)制基于加密密鑰的密文,解密得到的加密密鑰恢復(fù)數(shù)據(jù)。使得終端與云存儲(chǔ)服務(wù)器之間傳輸數(shù)據(jù)是加密的,且加密過程收到安全保護(hù)機(jī)制的保護(hù),加密密鑰的明文一直處于保護(hù)中。一方面加強(qiáng)了數(shù)據(jù)傳輸時(shí)的安全性,另一方面也減少了云存儲(chǔ)客戶端被攻擊時(shí)密鑰泄露的可能,多角度提高了云存儲(chǔ)數(shù)據(jù)的安全性,所述方法應(yīng)用于終端,所述終端的云存儲(chǔ)客戶端有預(yù)先部署的切面底座,所述方法包括:
2、所述方法應(yīng)用于終端,所述終端的云存儲(chǔ)客戶端有預(yù)先部署的切面底座,所述方法包括:
3、響應(yīng)于所述云存儲(chǔ)客戶端調(diào)用上傳函數(shù),通過切面程序攔截調(diào)用所述上傳函數(shù)的調(diào)用請(qǐng)求,確定攔截的所述調(diào)用請(qǐng)求中攜帶的待存儲(chǔ)的數(shù)據(jù),其中,所述切面程序是所述切面底座預(yù)先配置到所述云存儲(chǔ)客戶端中的;
4、調(diào)用所述切面程序中的軟件密碼模塊,在所述軟件密碼模塊預(yù)設(shè)的安全保護(hù)機(jī)制下,生成加密密鑰的明文以及所述加密密鑰的密文;
5、按照所述安全保護(hù)機(jī)制,通過所述加密密鑰的明文,對(duì)所述待存儲(chǔ)的數(shù)據(jù)進(jìn)行加密,獲取加密數(shù)據(jù);
6、通過所述切面程序?qū)⑺黾用軘?shù)據(jù)以及所述加密密鑰的密文組裝,得到云存儲(chǔ)數(shù)據(jù)并發(fā)送給云存儲(chǔ)服務(wù)器,使得所述云存儲(chǔ)服務(wù)器存儲(chǔ)組裝后的云存儲(chǔ)數(shù)據(jù)。
7、進(jìn)一步地,在一些實(shí)施方式中,
8、所述方法還包括:
9、響應(yīng)于所述云存儲(chǔ)客戶端調(diào)用加載函數(shù),通過切面程序攔截所述加載函數(shù)從云存儲(chǔ)服務(wù)器獲取的云存儲(chǔ)數(shù)據(jù),其中,所述切面程序是所述切面底座預(yù)先配置到所述云存儲(chǔ)客戶端中的;
10、根據(jù)所述云存儲(chǔ)數(shù)據(jù),確定所述加密數(shù)據(jù)以及所述加密密鑰的密文;
11、調(diào)用所述切面程序中的軟件密碼模塊,在所述軟件密碼模塊的所述安全保護(hù)機(jī)制下,對(duì)所述加密密鑰的密文解密,確定所述加密密鑰的明文;
12、按照所述安全保護(hù)機(jī)制,通過所述加密密鑰的明文,對(duì)所述加密數(shù)據(jù)解密,得到加載數(shù)據(jù);
13、將所述加載數(shù)據(jù)返回所述云存儲(chǔ)客戶端。
14、進(jìn)一步地,在一些實(shí)施方式中,
15、通過所述切面程序?qū)⑺黾用軘?shù)據(jù)以及所述加密密鑰的密文組裝,得到云存儲(chǔ)數(shù)據(jù)并發(fā)送給云存儲(chǔ)服務(wù)器,具體包括:
16、通過所述切面程序,確定用于校驗(yàn)所述待存儲(chǔ)的數(shù)據(jù)的完整性的校驗(yàn)碼;
17、基于所述校驗(yàn)碼以及所述加密密鑰的密文,確定數(shù)據(jù)頭;
18、將所述加密數(shù)據(jù)作為數(shù)據(jù)本體,組裝所述數(shù)據(jù)頭以及所述數(shù)據(jù)本體,得到云存儲(chǔ)數(shù)據(jù);
19、將所述云存儲(chǔ)數(shù)據(jù)通過所述上傳函數(shù),發(fā)送至所述云存儲(chǔ)服務(wù)器。
20、進(jìn)一步地,在一些實(shí)施方式中,
21、確定用于校驗(yàn)所述待存儲(chǔ)的數(shù)據(jù)的完整性的校驗(yàn)碼,具體包括:
22、通過所述切面程序,調(diào)用密鑰管理服務(wù),生成所述待存儲(chǔ)的數(shù)據(jù)的校驗(yàn)密鑰的明文,以及所述校驗(yàn)密鑰的密文;
23、接收所述密鑰管理服務(wù)返回的所述校驗(yàn)密鑰的密文;
24、調(diào)用所述軟件密碼模塊,按照所述安全保護(hù)機(jī)制,根據(jù)所述校驗(yàn)密鑰的密文以及所述待存儲(chǔ)的數(shù)據(jù),生成所述待存儲(chǔ)的數(shù)據(jù)的校驗(yàn)碼。
25、進(jìn)一步地,在一些實(shí)施方式中,
26、基于所述校驗(yàn)碼、所述加密密鑰的密文以及所述加密數(shù)據(jù)的元數(shù)據(jù),確定數(shù)據(jù)頭,具體包括:
27、所述切面程序,基于所述待存儲(chǔ)的數(shù)據(jù)的校驗(yàn)碼、所述校驗(yàn)密鑰的密文以及所述加密密鑰的密文,確定數(shù)據(jù)頭。
28、進(jìn)一步地,在一些實(shí)施方式中,
29、所述方法還包括:
30、響應(yīng)于所述云存儲(chǔ)客戶端調(diào)用加載函數(shù),通過切面程序攔截所述加載函數(shù)從云存儲(chǔ)服務(wù)器獲取的云存儲(chǔ)數(shù)據(jù),其中,所述切面程序是所述切面底座預(yù)先配置到所述云存儲(chǔ)客戶端中的;
31、根據(jù)所述云存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)頭,確定所述待存儲(chǔ)的數(shù)據(jù)的校驗(yàn)碼、所述校驗(yàn)密鑰的密文以及所述加密密鑰的密文;
32、調(diào)用所述軟件密碼模塊,按照所述安全保護(hù)機(jī)制,根據(jù)所述加密密鑰的密文確定所述加密密鑰的明文,并通過所述加密密鑰的明文,對(duì)所述加密數(shù)據(jù)解密,得到加載數(shù)據(jù);
33、按照所述安全保護(hù)機(jī)制,對(duì)所述校驗(yàn)密鑰的密文解密,根據(jù)所述校驗(yàn)密鑰的明文以及所述加載數(shù)據(jù),生成所述加載數(shù)據(jù)的驗(yàn)證碼;
34、根據(jù)所述待存儲(chǔ)的數(shù)據(jù)的校驗(yàn)碼以及所述加載數(shù)據(jù)的驗(yàn)證碼,驗(yàn)證所述加載數(shù)據(jù)的完整性;
35、當(dāng)所述加載數(shù)據(jù)的完整性驗(yàn)證通過時(shí),將所述加載數(shù)據(jù)返回所述云存儲(chǔ)客戶端。
36、進(jìn)一步地,在一些實(shí)施方式中,
37、調(diào)用所述切面程序中的軟件密碼模塊,在所述軟件密碼模塊預(yù)設(shè)的安全保護(hù)機(jī)制下,生成加密密鑰的明文以及所述加密密鑰的密文,具體包括:
38、調(diào)用所述切面程序,按照配置文件,對(duì)所述待存儲(chǔ)的數(shù)據(jù)進(jìn)行切分,確定若干子數(shù)據(jù);
39、針對(duì)每個(gè)子數(shù)據(jù),根據(jù)所述配置文件,確定該子數(shù)據(jù)的加密方式;
40、通過所述軟件密碼模塊,按照所述加密方式,生成該子數(shù)據(jù)的加密密鑰的明文,并生成所述加密密鑰的密文;
41、按照所述安全保護(hù)機(jī)制,通過所述加密密鑰的明文,對(duì)所述待存儲(chǔ)的數(shù)據(jù)進(jìn)行加密,獲取加密數(shù)據(jù),具體包括
42、按照所述安全保護(hù)機(jī)制,通過該子數(shù)據(jù)的加密密鑰的明文,獲取該子數(shù)據(jù)的加密數(shù)據(jù)。
43、進(jìn)一步地,在一些實(shí)施方式中,
44、通過所述切面程序?qū)⑺黾用軘?shù)據(jù)以及所述加密密鑰的密文組裝,得到云存儲(chǔ)數(shù)據(jù)并發(fā)送給云存儲(chǔ)服務(wù)器,具體包括:
45、通過所述切面程序,確定用于校驗(yàn)該子數(shù)據(jù)的完整性的校驗(yàn)碼,以及根據(jù)對(duì)所述待存儲(chǔ)的數(shù)據(jù)切分情況,確定該子數(shù)據(jù)的元數(shù)據(jù);
46、基于該子數(shù)據(jù)的校驗(yàn)碼、該子數(shù)據(jù)的加密密鑰的密文以及該子數(shù)據(jù)的元數(shù)據(jù),確定該子數(shù)據(jù)的數(shù)據(jù)頭;
47、將該子數(shù)據(jù)的加密數(shù)據(jù)作為數(shù)據(jù)本體,根據(jù)該子數(shù)據(jù)的數(shù)據(jù)頭以及所述數(shù)據(jù)本體,得到該子數(shù)據(jù)的加密塊;
48、將各子數(shù)據(jù)的加密塊組裝,得到云存儲(chǔ)數(shù)據(jù),并通過所述上傳函數(shù),發(fā)送至所述云存儲(chǔ)服務(wù)器。
49、進(jìn)一步地,在一些實(shí)施方式中,
50、所述方法還包括:
51、響應(yīng)于所述云存儲(chǔ)客戶端調(diào)用加載函數(shù),通過切面程序攔截所述加載函數(shù)從云存儲(chǔ)服務(wù)器獲取的云存儲(chǔ)數(shù)據(jù),其中,所述切面程序是所述切面底座預(yù)先配置到所述云存儲(chǔ)客戶端中的;
52、根據(jù)所述云存儲(chǔ)數(shù)據(jù),確定各子數(shù)據(jù)的加密塊;
53、針對(duì)每個(gè)子數(shù)據(jù)的加密塊,根據(jù)該子數(shù)據(jù)的加密塊,確定該子數(shù)據(jù)的校驗(yàn)碼、該子數(shù)據(jù)的校驗(yàn)密鑰的密文以及該子數(shù)據(jù)的加密密鑰的密文;
54、調(diào)用所述軟件密碼模塊,根據(jù)該子數(shù)據(jù)的加密密鑰的密文確定加密密鑰的明文,并對(duì)該子數(shù)據(jù)的加密數(shù)據(jù)解密,得到該子數(shù)據(jù);
55、對(duì)該子數(shù)據(jù)的校驗(yàn)密鑰的密文解密,根據(jù)解密得到的校驗(yàn)密鑰的明文以及該子數(shù)據(jù),生成該子數(shù)據(jù)的驗(yàn)證碼;
56、根據(jù)該子數(shù)據(jù)的校驗(yàn)碼以及該子數(shù)據(jù)的驗(yàn)證碼,驗(yàn)證該子數(shù)據(jù)的完整性;
57、當(dāng)各子數(shù)據(jù)的完整性驗(yàn)證均通過時(shí),按照各子數(shù)據(jù)的切分順序,組合得到加載數(shù)據(jù)并返回所述云存儲(chǔ)客戶端。
58、進(jìn)一步地,在一些實(shí)施方式中,
59、確定各子數(shù)據(jù)的加密塊之后,所述方法還包括:
60、根據(jù)各子數(shù)據(jù)的加密塊,確定各子數(shù)據(jù)的元數(shù)據(jù);
61、根據(jù)各子數(shù)據(jù)的元數(shù)據(jù),判斷所述云存儲(chǔ)數(shù)據(jù)是否完整;
62、若否,則調(diào)用所述加載函數(shù),重新下載所述云存儲(chǔ)數(shù)據(jù)。
63、本說明書實(shí)施例還提供一種基于安全切面的數(shù)據(jù)處理裝置,所述裝置應(yīng)用于終端,所述終端的云存儲(chǔ)客戶端有預(yù)先部署的切面底座,所述裝置包括:
64、攔截模塊,響應(yīng)于所述云存儲(chǔ)客戶端調(diào)用上傳函數(shù),通過切面程序攔截調(diào)用所述上傳函數(shù)的調(diào)用請(qǐng)求,確定攔截的所述調(diào)用請(qǐng)求中攜帶的待存儲(chǔ)的數(shù)據(jù),其中,所述切面程序是所述切面底座預(yù)先配置到所述云存儲(chǔ)客戶端中的;
65、密文模塊,調(diào)用所述切面程序中的軟件密碼模塊,在所述軟件密碼模塊預(yù)設(shè)的安全保護(hù)機(jī)制下,生成加密密鑰的明文以及所述加密密鑰的密文;
66、加密模塊,按照所述安全保護(hù)機(jī)制,通過所述加密密鑰的明文,對(duì)所述待存儲(chǔ)的數(shù)據(jù)進(jìn)行加密,獲取加密數(shù)據(jù);
67、存儲(chǔ)模塊,通過所述切面程序?qū)⑺黾用軘?shù)據(jù)以及所述加密密鑰的密文組裝,得到云存儲(chǔ)數(shù)據(jù)并發(fā)送給云存儲(chǔ)服務(wù)器,使得所述云存儲(chǔ)服務(wù)器存儲(chǔ)組裝后的云存儲(chǔ)數(shù)據(jù)。
68、本說明書實(shí)施例還提供一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品存儲(chǔ)有至少一條指令,所述至少一條指令適于由處理器加載并執(zhí)行上述的方法步驟。
69、本說明書實(shí)施例還提供一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序適于由處理器加載并執(zhí)行上述的方法的步驟。
70、本說明書實(shí)施例還提供一種電子設(shè)備,包括:處理器和存儲(chǔ)器;其中,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序適于由所述處理器加載并執(zhí)行上述的方法的步驟。
71、在本說明書實(shí)施例中,通過預(yù)先在云存儲(chǔ)客戶端插入的切面程序,攔截要上傳云存儲(chǔ)服務(wù)器的待存儲(chǔ)的數(shù)據(jù),通過在切面程序的預(yù)設(shè)的安全保護(hù)機(jī)制下生成的加密密鑰對(duì)該待存儲(chǔ)的數(shù)據(jù)進(jìn)行加密,并將加密密鑰的密文和加密數(shù)據(jù)一同組裝上傳云存儲(chǔ)服務(wù)器。則在從云存儲(chǔ)服務(wù)器加載數(shù)據(jù)時(shí),可以同樣的安全保護(hù)機(jī)制基于加密密鑰的密文,解密得到的加密密鑰恢復(fù)數(shù)據(jù)。使得終端與云存儲(chǔ)服務(wù)器之間傳輸數(shù)據(jù)是加密的,且加密過程收到安全保護(hù)機(jī)制的保護(hù),加密密鑰的明文一直處于保護(hù)中。一方面加強(qiáng)了數(shù)據(jù)傳輸時(shí)的安全性,另一方面也減少了云存儲(chǔ)客戶端被攻擊時(shí)密鑰泄露的可能,多角度提高了云存儲(chǔ)數(shù)據(jù)的安全性。