本發(fā)明涉及數(shù)據(jù)存儲(chǔ),特別涉及一種分布式冗余存儲(chǔ)方法、裝置、設(shè)備及可讀存儲(chǔ)介質(zhì)。
背景技術(shù):
1、分布式存儲(chǔ)使用數(shù)據(jù)分片和副本復(fù)制技術(shù),以確保數(shù)據(jù)的可靠性和可用性。在數(shù)據(jù)分片中,數(shù)據(jù)被分成多個(gè)部分,每個(gè)部分存儲(chǔ)在不同的節(jié)點(diǎn)上,以實(shí)現(xiàn)數(shù)據(jù)的分布式存儲(chǔ)和管理。在副本復(fù)制中,每個(gè)數(shù)據(jù)副本都存儲(chǔ)在不同的節(jié)點(diǎn)上,以確保即使某些節(jié)點(diǎn)出現(xiàn)故障后,仍然可以從其他節(jié)點(diǎn)中恢復(fù)數(shù)據(jù)。
2、當(dāng)涉及敏感數(shù)據(jù)時(shí),直接從sdk(軟件開(kāi)發(fā)工具包)端發(fā)起明文文件上傳,如果某個(gè)節(jié)點(diǎn)被外部攻擊、存在安全漏洞或者內(nèi)部用戶登錄主機(jī),則可能導(dǎo)致數(shù)據(jù)泄露竊取或者被篡改。因此,現(xiàn)有分布式存儲(chǔ)存在較大的安全隱患。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提供一種分布式冗余存儲(chǔ)方法、裝置、設(shè)備及可讀存儲(chǔ)介質(zhì),解決了現(xiàn)有技術(shù)中進(jìn)行分布式冗余存儲(chǔ)的數(shù)據(jù)安全性低的技術(shù)問(wèn)題。
2、為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種分布式冗余存儲(chǔ)方法,包括:
3、獲取管理端下發(fā)的應(yīng)用標(biāo)識(shí),以及所述管理端利用第一密碼設(shè)備生成的應(yīng)用口令向存儲(chǔ)服務(wù)端發(fā)起身份認(rèn)證請(qǐng)求;
4、當(dāng)通過(guò)身份認(rèn)證請(qǐng)求時(shí),調(diào)用第二密碼設(shè)備為通過(guò)身份認(rèn)證的應(yīng)用上傳的目標(biāo)文件生成文件密鑰,得到目標(biāo)加密文件,利用所述存儲(chǔ)服務(wù)端發(fā)送的加密公鑰對(duì)所述文件密鑰進(jìn)行加密保護(hù)后,將加密后的文件密鑰發(fā)送至所述存儲(chǔ)服務(wù)端,以使所述存儲(chǔ)服務(wù)端通過(guò)密鑰數(shù)據(jù)庫(kù)存儲(chǔ);
5、調(diào)用存儲(chǔ)服務(wù)接口將所述目標(biāo)加密文件發(fā)送至所述存儲(chǔ)服務(wù)端,以使所述存儲(chǔ)服務(wù)端進(jìn)行文件分布式冗余存儲(chǔ),所述目標(biāo)加密文件通過(guò)文件管理磁盤存儲(chǔ)。
6、可選的,在所述調(diào)用第二密碼設(shè)備為通過(guò)身份認(rèn)證的應(yīng)用上傳的目標(biāo)文件生成文件密鑰,得到目標(biāo)加密文件之前,還包括:
7、利用第三方應(yīng)用調(diào)用sdk上傳文件方法,確定所述目標(biāo)文件為文件還是文件流;
8、若為文件,則計(jì)算文件摘要值,獲取文件大?。?/p>
9、若為文件流,則文件摘要值和文件大小為空;
10、以使所述存儲(chǔ)服務(wù)端根據(jù)所述文件摘要值和所述文件大小,確定文件是否秒傳;當(dāng)所述文件摘要值和所述文件大小不為空,則根據(jù)所述文件摘要值和所述文件大小判斷文件是否重復(fù),如果重復(fù),則文件秒傳,并復(fù)制文件元數(shù)據(jù)、重新計(jì)算文件摘要值的簽名;否則創(chuàng)建文件傳輸單,創(chuàng)建空的存儲(chǔ)文件。
11、可選的,所述調(diào)用第二密碼設(shè)備為通過(guò)身份認(rèn)證的應(yīng)用上傳的目標(biāo)文件生成文件密鑰,得到目標(biāo)加密文件,包括:
12、對(duì)所述目標(biāo)文件進(jìn)行分片,得到多個(gè)分片文件;
13、循環(huán)讀取各個(gè)所述分片文件,利用所述文件密鑰對(duì)各個(gè)所述分片文件進(jìn)行加密,得到多個(gè)分片密文,并在加密過(guò)程中將所述分片密文發(fā)往存儲(chǔ)服務(wù)追加存儲(chǔ);
14、分片加密傳輸完成后,存儲(chǔ)服務(wù)得到所述目標(biāo)加密文件。
15、可選的,當(dāng)利用所述sdk進(jìn)行文件下載時(shí),包括:
16、調(diào)用sdk下載文件方法,利用目標(biāo)文件標(biāo)識(shí)和所述加密公鑰作為參數(shù),得到目標(biāo)下載加密文件、目標(biāo)文件摘要值、目標(biāo)文件摘要簽名值和利用加密公鑰加密保護(hù)的文件密鑰;
17、利用加密私鑰和所述利用加密公鑰加密保護(hù)的文件密鑰對(duì)所述目標(biāo)下載加密文件進(jìn)行解密,得到解密后的文件;所述目標(biāo)文件摘要值為上傳過(guò)程中計(jì)算得到的摘要值;
18、對(duì)所述解密后的文件進(jìn)行文件完整性校驗(yàn),計(jì)算所述解密后的文件對(duì)應(yīng)的摘要值,并和所述目標(biāo)文件摘要值進(jìn)行比對(duì);
19、若不相等,則文件發(fā)生篡改,流程結(jié)束;
20、若相等,則對(duì)比摘要簽名值;
21、若簽名值相等,則所述解密后的文件沒(méi)有被篡改。
22、可選的,當(dāng)解密后的文件對(duì)應(yīng)的摘要值與所述目標(biāo)文件摘要值不相等或摘要簽名值不相等,包括:
23、提示第三方應(yīng)用文件疑被篡改,確定是否下載該文件。
24、可選的,所述第一密碼設(shè)備和所述第二密鑰設(shè)備為軟卡或密碼機(jī),當(dāng)為軟卡時(shí),為sdk引入c庫(kù),當(dāng)為密碼機(jī),則為sdk配置密碼機(jī)的ip和端口地址。
25、可選的,在利用所述sdk進(jìn)行分布式冗余存儲(chǔ)的過(guò)程中,還包括:
26、實(shí)時(shí)上報(bào)sdk存儲(chǔ)過(guò)程中的操作日志,以利用管理端對(duì)所述操作日志進(jìn)行審計(jì);其中,所述sdk存儲(chǔ)過(guò)程包括文件上傳過(guò)程和文件下載過(guò)程。
27、本申請(qǐng)還提供了一種分布式冗余存儲(chǔ)裝置,應(yīng)用于sdk,包括:
28、身份認(rèn)證模塊,用于獲取管理端下發(fā)的應(yīng)用標(biāo)識(shí),以及所述管理端利用第一密碼設(shè)備生成的應(yīng)用口令向存儲(chǔ)服務(wù)端發(fā)起身份認(rèn)證請(qǐng)求;
29、文件加密模塊,用于當(dāng)通過(guò)身份認(rèn)證請(qǐng)求時(shí),調(diào)用第二密碼設(shè)備為通過(guò)身份認(rèn)證的應(yīng)用上傳的目標(biāo)文件生成文件密鑰,得到目標(biāo)加密文件,利用所述存儲(chǔ)服務(wù)端發(fā)送的加密公鑰對(duì)所述文件密鑰進(jìn)行加密保護(hù)后,將加密后的文件密鑰發(fā)送至所述存儲(chǔ)服務(wù)端,以使所述存儲(chǔ)服務(wù)端通過(guò)密鑰數(shù)據(jù)庫(kù)存儲(chǔ);
30、分布式冗余存儲(chǔ)模塊,用于調(diào)用存儲(chǔ)服務(wù)接口將所述目標(biāo)加密文件發(fā)送至所述存儲(chǔ)服務(wù)端,以使所述存儲(chǔ)服務(wù)端進(jìn)行文件分布式冗余存儲(chǔ),所述目標(biāo)加密文件通過(guò)文件管理磁盤存儲(chǔ)。
31、本申請(qǐng)還提供了一種分布式冗余存儲(chǔ)設(shè)備,包括:
32、存儲(chǔ)器,用于存儲(chǔ)計(jì)算機(jī)程序;
33、處理器,用于執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述分布式冗余存儲(chǔ)方法的步驟。
34、本申請(qǐng)還提供了一種可讀存儲(chǔ)介質(zhì),所述可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述分布式冗余存儲(chǔ)方法的步驟。
35、可見(jiàn),本發(fā)明通過(guò)獲取管理端下發(fā)的應(yīng)用標(biāo)識(shí),以及管理端利用第一密碼設(shè)備生成的應(yīng)用口令向存儲(chǔ)服務(wù)端發(fā)起身份認(rèn)證請(qǐng)求;當(dāng)通過(guò)身份認(rèn)證請(qǐng)求時(shí),調(diào)用第二密碼設(shè)備為通過(guò)身份認(rèn)證的應(yīng)用上傳的目標(biāo)文件生成文件密鑰,得到目標(biāo)加密文件,利用存儲(chǔ)服務(wù)端發(fā)送的加密公鑰對(duì)文件密鑰進(jìn)行加密保護(hù)后,將加密后的文件密鑰發(fā)送至存儲(chǔ)服務(wù)端,以使存儲(chǔ)服務(wù)端通過(guò)密鑰數(shù)據(jù)庫(kù)存儲(chǔ);調(diào)用存儲(chǔ)服務(wù)接口將目標(biāo)加密文件發(fā)送至存儲(chǔ)服務(wù)端,以使存儲(chǔ)服務(wù)端進(jìn)行文件分布式冗余存儲(chǔ),目標(biāo)加密文件通過(guò)文件管理磁盤存儲(chǔ)。和當(dāng)前直接從sdk端發(fā)起明文文件上傳相比,本申請(qǐng)采用“一文一密”,對(duì)分布式冗余存儲(chǔ)的文件進(jìn)行加密,并且使用加密公鑰對(duì)文件密鑰保護(hù),目標(biāo)加密文件通過(guò)文件管理磁盤存儲(chǔ),加密的文件密鑰通過(guò)密鑰數(shù)據(jù)庫(kù)存儲(chǔ),實(shí)現(xiàn)和文件分離存儲(chǔ),解決文件密鑰泄露的風(fēng)險(xiǎn),緩解文件密鑰泄露引起的文件泄露的風(fēng)險(xiǎn)。
36、此外,本發(fā)明還提供了一種分布式冗余存儲(chǔ)裝置、設(shè)備及可讀存儲(chǔ)介質(zhì),同樣具有上述有益效果。
1.一種分布式冗余存儲(chǔ)方法,其特征在于,應(yīng)用于sdk,包括:
2.根據(jù)權(quán)利要求1所述的分布式冗余存儲(chǔ)方法,其特征在于,所述調(diào)用第二密碼設(shè)備為通過(guò)身份認(rèn)證的應(yīng)用上傳的目標(biāo)文件生成文件密鑰,得到目標(biāo)加密文件之前,還包括:
3.根據(jù)權(quán)利要求1所述的分布式冗余存儲(chǔ)方法,其特征在于,所述調(diào)用第二密碼設(shè)備為通過(guò)身份認(rèn)證的應(yīng)用上傳的目標(biāo)文件生成文件密鑰,得到目標(biāo)加密文件,包括:
4.根據(jù)權(quán)利要求1所述的分布式冗余存儲(chǔ)方法,其特征在于,當(dāng)利用所述sdk進(jìn)行文件下載時(shí),包括:
5.根據(jù)權(quán)利要求4所述的分布式冗余存儲(chǔ)方法,其特征在于,當(dāng)解密后的文件對(duì)應(yīng)的摘要值與所述目標(biāo)文件摘要值不相等或摘要簽名值不相等,包括:
6.根據(jù)權(quán)利要求1所述的分布式冗余存儲(chǔ)方法,其特征在于,所述第一密碼設(shè)備和所述第二密鑰設(shè)備為軟卡或密碼機(jī),當(dāng)為軟卡時(shí),為sdk引入c庫(kù),當(dāng)為密碼機(jī),則為sdk配置密碼機(jī)的ip和端口地址。
7.根據(jù)權(quán)利要求1所述的分布式冗余存儲(chǔ)方法,其特征在于,在利用所述sdk進(jìn)行分布式冗余存儲(chǔ)的過(guò)程中,還包括:
8.一種分布式冗余存儲(chǔ)裝置,其特征在于,應(yīng)用于sdk,包括:
9.一種分布式冗余存儲(chǔ)設(shè)備,其特征在于,包括:
10.一種可讀存儲(chǔ)介質(zhì),其特征在于,所述可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至7任一項(xiàng)所述分布式冗余存儲(chǔ)方法的步驟。