本發(fā)明涉及數(shù)據(jù)處理技術(shù)領域,具體涉及一種混合云的數(shù)據(jù)存儲方法、裝置、相關(guān)設備及云系統(tǒng)。
背景技術(shù):
混合云是指公有云和私有云的組合,已成為云計算的主要模式和發(fā)展方向之一。其中,公有云是由公有云服務提供商提供的計算資源,可供所有的網(wǎng)絡用戶使用,是可由所有企業(yè)和用戶共享使用的云環(huán)境;私有云是出于安全性考慮的一種由特定用戶專享的云環(huán)境,如針對某一企業(yè)搭建的私有云,私有云中的資源僅供該企業(yè)的內(nèi)部用戶,或者與該企業(yè)相關(guān)的特定外部用戶使用。
出于數(shù)據(jù)存儲成本和空間的考慮,混合云的一種常見使用方式是:在私有云和公有云之間進行數(shù)據(jù)互通,將私有云中的數(shù)據(jù)存儲在公有云上,以減少私有云的數(shù)據(jù)存儲負擔。雖然公有云會提供訪問權(quán)限控制等策略,來保障數(shù)據(jù)在公有云上的存儲安全,但仍然無法避免公有云管理員泄露數(shù)據(jù)、公有云被黑客攻擊等情況下的數(shù)據(jù)泄露風險,因此如何提升私有云存儲在公有云中的數(shù)據(jù)的安全性,成為了本領域技術(shù)人員在不斷研究的問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供一種混合云的數(shù)據(jù)存儲方法、裝置、相關(guān)設備及云系統(tǒng),以提升私有云存儲在公有云中的數(shù)據(jù)的安全性。
為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術(shù)方案:
一種混合云的數(shù)據(jù)存儲方法,應用于私有云的網(wǎng)關(guān),所述方法包括:
獲取待存儲數(shù)據(jù);
從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);
獲取所述目標數(shù)據(jù)進行加密后的第一密文;其中,所述目標數(shù)據(jù)根據(jù)所述網(wǎng)關(guān)所連接的加密芯片提供的秘鑰進行加密;
根據(jù)所述第一密文生成包含所述第一密文的目標待存儲數(shù)據(jù);
根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片;
將所述數(shù)據(jù)分片傳輸至公有云中存儲。
本發(fā)明實施例還提供一種混合云的數(shù)據(jù)讀取方法,應用于私有云的網(wǎng)關(guān),所述方法包括:
獲取公有云中的存儲數(shù)據(jù);所述存儲數(shù)據(jù)包括至少一個數(shù)據(jù)分片,所述至少一個數(shù)據(jù)分片包括需讀取的數(shù)據(jù)塊,和該數(shù)據(jù)塊相應的元數(shù)據(jù);
對所述存儲數(shù)據(jù)中的各數(shù)據(jù)分片進行逐片解壓,如果解壓過程中,確定數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊,根據(jù)該數(shù)據(jù)塊的元數(shù)據(jù)選取解密算法,及確定網(wǎng)關(guān)連接的加密芯片提供的秘鑰;
根據(jù)所述解密算法和秘鑰,對數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊進行解密;
將數(shù)據(jù)分片解壓后的未加密的數(shù)據(jù)塊,和數(shù)據(jù)分片中解密的數(shù)據(jù)塊相合并,得到讀取數(shù)據(jù);
反饋所述讀取數(shù)據(jù)給終端設備。
本發(fā)明實施例還提供一種混合云的數(shù)據(jù)存儲裝置,包括:
待存儲數(shù)據(jù)獲取模塊,用于獲取待存儲數(shù)據(jù);
目標數(shù)據(jù)確定模塊,用于從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);
密文獲取模塊,用于獲取所述目標數(shù)據(jù)進行加密后的第一密文;其中,所述目標數(shù)據(jù)根據(jù)所述網(wǎng)關(guān)所連接的加密芯片提供的秘鑰進行加密;
目標待存儲數(shù)據(jù)確定模塊,用于根據(jù)所述第一密文生成包含所述第一密文的目標待存儲數(shù)據(jù);
數(shù)據(jù)分片確定模塊,用于根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片;
傳輸模塊,用于將所述數(shù)據(jù)分片傳輸至公有云中存儲。
本發(fā)明實施例還提供一種網(wǎng)關(guān),包括:存儲器和處理器,所述存儲器存儲有程序,所述處理器調(diào)用所述程序;所述程序用于:
獲取待存儲數(shù)據(jù);
從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);
獲取所述目標數(shù)據(jù)進行加密后的第一密文;其中,所述目標數(shù)據(jù)根據(jù)所述網(wǎng)關(guān)所連接的加密芯片提供的秘鑰進行加密;
根據(jù)所述第一密文生成包含所述第一密文的目標待存儲數(shù)據(jù);
根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片;
將所述數(shù)據(jù)分片傳輸至公有云中存儲。
本發(fā)明實施例還提供一種存儲介質(zhì),所述存儲介質(zhì)記錄有程序,所述程序用于:
獲取待存儲數(shù)據(jù);
從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);
獲取所述目標數(shù)據(jù)進行加密后的第一密文;其中,所述目標數(shù)據(jù)根據(jù)所述網(wǎng)關(guān)所連接的加密芯片提供的秘鑰進行加密;
根據(jù)所述第一密文生成包含所述第一密文的目標待存儲數(shù)據(jù);
根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片;
將所述數(shù)據(jù)分片傳輸至公有云中存儲。
本發(fā)明實施例還提供一種混合云的數(shù)據(jù)讀取裝置,包括:
存儲數(shù)據(jù)獲取模塊,用于獲取公有云中的存儲數(shù)據(jù);所述存儲數(shù)據(jù)包括至少一個數(shù)據(jù)分片,所述至少一個數(shù)據(jù)分片包括需讀取的數(shù)據(jù)塊,和該數(shù)據(jù)塊相應的元數(shù)據(jù);
解壓模塊,用于對所述存儲數(shù)據(jù)中的各數(shù)據(jù)分片進行逐片解壓,如果解壓過程中,確定數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊,根據(jù)該數(shù)據(jù)塊的元數(shù)據(jù)選取解密算法,及確定網(wǎng)關(guān)連接的加密芯片提供的秘鑰;
解密模塊,用于根據(jù)所述解密算法和秘鑰,對數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊進行解密;
讀取數(shù)據(jù)得到模塊,用于將數(shù)據(jù)分片解壓后的未加密的數(shù)據(jù)塊,和數(shù)據(jù)分片中解密的數(shù)據(jù)塊相合并,得到讀取數(shù)據(jù);
數(shù)據(jù)反饋模塊,用于反饋所述讀取數(shù)據(jù)給終端設備。
本發(fā)明實施例還提供一種網(wǎng)關(guān),包括:存儲器和處理器,所述存儲器存儲有程序,所述處理器調(diào)用所述程序;所述程序用于:
獲取公有云中的存儲數(shù)據(jù);所述存儲數(shù)據(jù)包括至少一個數(shù)據(jù)分片,所述至少一個數(shù)據(jù)分片包括需讀取的數(shù)據(jù)塊,和該數(shù)據(jù)塊相應的元數(shù)據(jù);
對所述存儲數(shù)據(jù)中的各數(shù)據(jù)分片進行逐片解壓,如果解壓過程中,確定數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊,根據(jù)該數(shù)據(jù)塊的元數(shù)據(jù)選取解密算法,及確定網(wǎng)關(guān)連接的加密芯片提供的秘鑰;
根據(jù)所述解密算法和秘鑰,對數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊進行解密;
將數(shù)據(jù)分片解壓后的未加密的數(shù)據(jù)塊,和數(shù)據(jù)分片中解密的數(shù)據(jù)塊相合并,得到讀取數(shù)據(jù);
反饋所述讀取數(shù)據(jù)給終端設備。
本發(fā)明實施例還提供一種云系統(tǒng),包括:位于私有云內(nèi)的至少一個終端設備,網(wǎng)關(guān),與所述網(wǎng)關(guān)連接的加密芯片;位于公有云內(nèi)的存儲轉(zhuǎn)換服務器和存儲設備;
其中,所述網(wǎng)關(guān),用于獲取待存儲數(shù)據(jù);從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);獲取所述目標數(shù)據(jù)進行加密后的第一密文;其中,所述目標數(shù)據(jù)根據(jù)所述網(wǎng)關(guān)所連接的加密芯片提供的秘鑰進行加密;根據(jù)所述第一密文生成包含所述第一密文的目標待存儲數(shù)據(jù);根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片;將所述數(shù)據(jù)分片傳輸至公有云中存儲;
所述存儲轉(zhuǎn)換服務器,用于根據(jù)所述數(shù)據(jù)分片生成存儲數(shù)據(jù),并將所述存儲數(shù)據(jù)更新到存儲設備上。
本發(fā)明實施例還提供一種混合云的數(shù)據(jù)存儲方法,應用于加密芯片,所述方法包括:
獲取私有云的網(wǎng)關(guān)傳輸?shù)拇鎯?shù)據(jù)中需加密的目標數(shù)據(jù);
根據(jù)秘鑰對所述目標數(shù)據(jù)進行加密,得到第一密文;
輸出所述第一密文至所述網(wǎng)關(guān),以便所述網(wǎng)關(guān)根據(jù)所述第一密文確定存儲至公有云中的數(shù)據(jù)。
本發(fā)明實施例還提供一種加密芯片,包括至少一個存儲器和至少一個處理器,所述存儲器存儲有程序,所述處理器調(diào)用所述程序;所述程序用于:
獲取私有云的網(wǎng)關(guān)傳輸?shù)拇鎯?shù)據(jù)中需加密的目標數(shù)據(jù);
根據(jù)秘鑰對所述目標數(shù)據(jù)進行加密,得到第一密文;
輸出所述第一密文至所述網(wǎng)關(guān),以便所述網(wǎng)關(guān)根據(jù)所述第一密文確定存儲至公有云中的數(shù)據(jù)。
基于上述技術(shù)方案,本發(fā)明實施例在將私有云中的數(shù)據(jù)存儲到公有云時,可從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);從而利用私有云的網(wǎng)關(guān)所連接的加密芯片提供的秘鑰,對待存儲數(shù)據(jù)中的目標數(shù)據(jù)進行加密,從而將包含加密后的第一密文的目標待存儲數(shù)據(jù)進行至公有云的存儲;由于目標待存儲數(shù)據(jù)包含以加密芯片提供的秘鑰所加密的第一密文,并且加密所使用的秘鑰由加密芯片存儲,秘鑰泄露的風險極低,可降低由于云管理員泄露數(shù)據(jù)、公有云被黑客攻擊等情況下的數(shù)據(jù)泄露風險,提升了私有云存儲在公有云中的數(shù)據(jù)的安全性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的混合云的云系統(tǒng)的架構(gòu)框圖;
圖2為本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲方法的信令流程圖;
圖3為混合云的數(shù)據(jù)存儲方法的另一信令流程圖;
圖4為生成存儲數(shù)據(jù)并更新到存儲對象的方法流程圖;
圖5為網(wǎng)關(guān)和加密芯片交互實現(xiàn)部分數(shù)據(jù)加密的示意圖;
圖6為混合云的數(shù)據(jù)存儲方法的再一信令流程圖;
圖7為本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲方法的流程圖;
圖8為本發(fā)明實施例提供的混合云的數(shù)據(jù)讀取方法的信令流程圖;
圖9為本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲裝置的結(jié)構(gòu)框圖;
圖10為混合云的數(shù)據(jù)存儲裝置的另一結(jié)構(gòu)框圖;
圖11為混合云的數(shù)據(jù)存儲裝置的再一結(jié)構(gòu)框圖;
圖12為網(wǎng)關(guān)的硬件結(jié)構(gòu)框圖;
圖13為本發(fā)明實施例提供的混合云的數(shù)據(jù)讀取裝置的結(jié)構(gòu)框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明實施例提供的混合云的云系統(tǒng)的架構(gòu)框圖,通過圖1所示云系統(tǒng)可實現(xiàn)本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲方法,達到提升私有云存儲在公有云中的數(shù)據(jù)的安全性的目的;
參照圖1,該云系統(tǒng)包括:至少一個終端設備10,網(wǎng)關(guān)20,加密芯片30,存儲轉(zhuǎn)換服務器40和存儲設備50;其中,至少一個終端設備10,網(wǎng)關(guān)20和加密芯片30位于私有云內(nèi),存儲轉(zhuǎn)換服務器40和存儲設備50位于公有云內(nèi);私有云和公有云可通過特定安全協(xié)議進行通信,如私有云和公有云可通過ssl(securesocketslayer安全套接層)協(xié)議進行通信;
如圖1所示,私有云內(nèi)的至少一個終端設備10可以認為是私有云中具有數(shù)據(jù)存儲和讀寫需求的終端設備,終端設備10的形式可以不限于智能手機、平板電腦、pc(個人計算機)等至少一種用戶側(cè)的電子設備;在本發(fā)明實施例中,私有云中的該至少一個終端設備10可與私有云中的網(wǎng)關(guān)20通信連接,在終端設備10需將數(shù)據(jù)存儲到公有云中時,終端設備10可將數(shù)據(jù)傳輸給私有云的網(wǎng)關(guān)20,由網(wǎng)關(guān)20處理后發(fā)送到公有云中;
私有云內(nèi)的網(wǎng)關(guān)20可以認為是存儲網(wǎng)關(guān),作為私有云和公有云間的橋梁,網(wǎng)關(guān)20連接有加密芯片30,加密芯片30存儲有用于進行數(shù)據(jù)加密的秘鑰;可選的,加密芯片30可以選用usbkey(usb鑰匙),usbkey可以內(nèi)置單片機或智能卡芯片,其有一定的存儲空間,可以存儲秘鑰;
網(wǎng)關(guān)20獲取到待存儲數(shù)據(jù)時,可使用本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲方法,利用加密芯片30所提供的秘鑰對該待存儲數(shù)據(jù)的全部或部分進行加密(進行加密的操作可以由加密芯片30或者網(wǎng)關(guān)20實現(xiàn)),從而網(wǎng)關(guān)20獲取到加密后的密文,可根據(jù)包含密文的目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片,并傳輸?shù)焦性浦羞M行存儲;
公有云中的存儲轉(zhuǎn)換服務器40可獲取私有云中的網(wǎng)關(guān)所傳輸?shù)臄?shù)據(jù)分片,可對該數(shù)據(jù)分片進行協(xié)議轉(zhuǎn)換等存儲轉(zhuǎn)換處理,使得數(shù)據(jù)符合存儲設備的協(xié)議,從而將處理后的數(shù)據(jù)存儲到存儲設備50中;
存儲設備50可以認為是一數(shù)據(jù)存儲體系結(jié)構(gòu),優(yōu)選使用對象存儲。
可見,本發(fā)明實施例可在私有云內(nèi)的網(wǎng)關(guān)上連接加密芯片,該加密芯片存儲有加密的秘鑰,利用加密芯片提供的秘鑰,本發(fā)明實施例可對待存儲數(shù)據(jù)的部分或全部進行加密,從而使得存儲到公有云中的數(shù)據(jù)包含以加密芯片提供的秘鑰所加密的密文,提升存儲到公有云中的數(shù)據(jù)的安全性;而且,加密所使用的秘鑰由私有云內(nèi)的網(wǎng)關(guān)所連接的加密芯片存儲,減小了秘鑰被管理員獲取而導致數(shù)據(jù)解密泄露的隱患,就算公有云被黑客攻擊而導致公有云中的數(shù)據(jù)泄露,也會因為缺少秘鑰而降低數(shù)據(jù)被解密泄露的隱患,進一步提升了私有云存儲在公有云中的數(shù)據(jù)的安全性。
可選的,本發(fā)明實施例可通過私有云內(nèi)的網(wǎng)關(guān)所連接的加密芯片進行待存儲數(shù)據(jù)的部分加密;基于圖1所示云系統(tǒng),圖2示出了本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲方法的一種可選信令流程圖,結(jié)合圖1和圖2所示,該信令流程可以包括:
步驟s10、私有云內(nèi)的終端設備向私有云的網(wǎng)關(guān)發(fā)送數(shù)據(jù)存儲指令,所述數(shù)據(jù)存儲指令攜帶需存儲的數(shù)據(jù)。
可選的,步驟s10可由私有云的用戶操作終端設備觸發(fā),私有云的用戶可指定需要存儲到公有云的數(shù)據(jù),并操作終端設備發(fā)送數(shù)據(jù)存儲指令給私有云的網(wǎng)關(guān),指示私有云的網(wǎng)關(guān)進行數(shù)據(jù)至公有云的存儲,該數(shù)據(jù)存儲指令可以攜帶有需存儲的數(shù)據(jù)。
步驟s11、私有云的網(wǎng)關(guān)獲取待存儲數(shù)據(jù)。
可選的,本發(fā)明實施例可基于數(shù)據(jù)塊進行數(shù)據(jù)的存儲,如果私有云的網(wǎng)關(guān)接收到的需存儲的數(shù)據(jù)較大,則可對該需存儲的數(shù)據(jù)進行數(shù)據(jù)塊分塊處理,得到多個數(shù)據(jù)塊,從而將各數(shù)據(jù)塊分別作為待存儲數(shù)據(jù);本發(fā)明實施例分塊得到的數(shù)據(jù)塊的大小可選為1(兆),顯然,具體數(shù)據(jù)塊的大小可以根據(jù)實際情況調(diào)整設置;
而如果私有云的網(wǎng)關(guān)接收到的需存儲的數(shù)據(jù)較小,并不足以分塊,比如需存儲的數(shù)據(jù)僅為5k(字節(jié))大小,則本發(fā)明實施例可直接將需存儲的數(shù)據(jù)作為待存儲數(shù)據(jù)。
可選的,網(wǎng)關(guān)可對外提供虛擬iscisi(internetsmallcomputersysteminterface,小型計算機系統(tǒng)接口)塊存儲設備,即通過iscsi接口提供塊存儲卷,這個存儲卷是個線性的地址空間;即對于私有云內(nèi)的終端設備而言,私有云的網(wǎng)關(guān)可以實現(xiàn)一個iscsi的target(iscsi的存儲設備),在私有云的終端設備看來,網(wǎng)關(guān)可以是一個塊存儲設備的接口,可以虛擬多個volume(卷)供多臺終端設備使用;
可選的,網(wǎng)關(guān)可利用iscsi接口提供的塊存儲卷對需存儲的數(shù)據(jù)進行數(shù)據(jù)塊分塊處理,從而獲取到待存儲數(shù)據(jù);
需要說明的是,網(wǎng)關(guān)提供的iscsi接口可以與硬盤的塊存儲接口類似,硬盤的塊存儲接口對數(shù)據(jù)的存取是按照扇區(qū)號標志的,比如一個100m(兆)的文件,先通過文件系統(tǒng)管理,最終存儲到硬盤上的一組扇區(qū)上,這組扇區(qū)可能是連續(xù)的也可能是不連續(xù)的,具體存儲到哪些扇區(qū),是由文件系統(tǒng)決定的;而本發(fā)明實施例中,私有云的網(wǎng)關(guān)對外提供的虛擬iscisi塊存儲設備,實現(xiàn)的是跟硬盤同層的存儲設備,管理的是類似于扇區(qū)的數(shù)據(jù)塊;而正常硬盤的一個數(shù)據(jù)塊就是一個扇區(qū),一般是512k(字節(jié)),本發(fā)明實施例中網(wǎng)關(guān)可根據(jù)設定將待存儲數(shù)據(jù)分塊成更大的數(shù)據(jù)塊進行管理,如1m等,具體的數(shù)據(jù)塊的大小可根據(jù)實際情況設定。
步驟s12、網(wǎng)關(guān)確定所述待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù),得到目標數(shù)據(jù)。
如果需存儲的數(shù)據(jù)分塊得到多個數(shù)據(jù)塊,本發(fā)明實施例可將各數(shù)據(jù)塊分別作為待存儲數(shù)據(jù),確定各數(shù)據(jù)塊中需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);而如果待存儲數(shù)據(jù)較小,可直接將終端設備發(fā)送的需存儲的數(shù)據(jù)作為待存儲數(shù)據(jù),則本發(fā)明實施例可確定待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù),得到目標數(shù)據(jù)。
可選的,本發(fā)明實施例可由私有云的網(wǎng)關(guān)連接的加密芯片進行加密操作,加密芯片可以對待存儲數(shù)據(jù)的部分數(shù)據(jù)進行加密;
顯然,本發(fā)明實施例也可對待存儲數(shù)據(jù)的全部進行加密;可選的,加密芯片具體是對待存儲數(shù)據(jù)的全部或者部分進行加密可以由網(wǎng)關(guān)的設置表格記錄,該設置表格記錄的內(nèi)容可由用戶進行修改調(diào)整;如果所述設置表格中記錄的是加密芯片加密待存儲數(shù)據(jù)的全部數(shù)據(jù),則本發(fā)明實施例可對待存儲數(shù)據(jù)的全部進行加密;如果所述設置表格中記錄的是加密芯片加密待存儲數(shù)據(jù)的部分數(shù)據(jù),則本發(fā)明實施例可確定待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù),得到目標數(shù)據(jù)。
步驟s13、網(wǎng)關(guān)將所述目標數(shù)據(jù)傳輸至所連接的加密芯片。
可選的,網(wǎng)關(guān)與加密芯片可采用usb連接,網(wǎng)關(guān)可通過usb通信協(xié)議,將所述目標數(shù)據(jù)傳輸至加密芯片。
步驟s14、加密芯片根據(jù)所存儲的秘鑰對所述目標數(shù)據(jù)進行加密,并向所述網(wǎng)關(guān)返回加密后的第一密文。
加密芯片獲取到網(wǎng)關(guān)所傳輸?shù)哪繕藬?shù)據(jù)后,可根據(jù)加密芯片內(nèi)存儲的秘鑰對所述目標數(shù)據(jù)進行加密,得到加密后的第一密文;加密芯片可將加密后的第一密文反饋給網(wǎng)關(guān);第一密文可以認為是待存儲數(shù)據(jù)中的部分數(shù)據(jù)加密后的密文;
秘鑰可以認為是一組特定的秘密數(shù)據(jù),在加密時,秘鑰控制加密算法按照指定的方式將明文變換為相應的密文,并將一組信源標識信息變換不可偽造的簽名;在解密時,它控制解密算法按照指定的方式將密文變換為相應的明文,并將簽名信息變換成不可否認的信源證據(jù);
可選的,本發(fā)明實施例所使用的加密算法可以根據(jù)實際情況設定。
步驟s15、網(wǎng)關(guān)根據(jù)所述第一密文生成包含所述第一密文的目標待存儲數(shù)據(jù)。
可選的,如果加密芯片是對待存儲數(shù)據(jù)的部分數(shù)據(jù)進行加密,則加密后的第一密文是待存儲數(shù)據(jù)中部分的數(shù)據(jù)進行加密后結(jié)果,本發(fā)明實施例可將第一密文覆蓋到待存儲數(shù)據(jù)中目標數(shù)據(jù)的原始位置,從而生成包含所述第一密文的目標待存儲數(shù)據(jù)。
步驟s16、網(wǎng)關(guān)根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片。
可選的,本發(fā)明實施例可確定目標待存儲數(shù)據(jù)的元數(shù)據(jù),將該元數(shù)據(jù)與目標待存儲數(shù)據(jù)結(jié)合生成數(shù)據(jù)分片;可選的,本發(fā)明實施例可將目標待存儲數(shù)據(jù)進行壓縮后,與元數(shù)據(jù)結(jié)合生成數(shù)據(jù)分片;
可選的,元數(shù)據(jù)的內(nèi)容可以包括如下至少一項:待存儲數(shù)據(jù)是否為完整數(shù)據(jù)塊的指示信息,塊內(nèi)地址偏移,待存儲數(shù)據(jù)的數(shù)據(jù)長度,待存儲數(shù)據(jù)部分加密還是全部加密的指示信息,密文的內(nèi)部偏移,密文的數(shù)據(jù)長度,由加密芯片還是網(wǎng)關(guān)加密的加密方式指示信息,當前使用秘鑰的秘鑰id或種子id,加密算法的指示信息,壓縮算法的指示信息等。
其中,秘鑰id(身份標識號)與加密芯片當前所使用的秘鑰相對應,加密芯片所存儲的一秘鑰可對應一秘鑰id;種子id與生成秘鑰所使用的種子相對應,一種子對應一種子id。
步驟s17、網(wǎng)關(guān)將所述數(shù)據(jù)分片傳輸至公有云。
可選的,網(wǎng)關(guān)將所述數(shù)據(jù)分片傳輸至公有云中存儲,公有云中的存儲轉(zhuǎn)換服務器可接收所述數(shù)據(jù)分片。
步驟s18、公有云的存儲轉(zhuǎn)換服務器根據(jù)所述數(shù)據(jù)分片生成存儲數(shù)據(jù),并將所述存儲數(shù)據(jù)更新到對象存儲上。
可選的,視待存儲數(shù)據(jù)是否為完整數(shù)據(jù)塊,存儲轉(zhuǎn)換服務器根據(jù)數(shù)據(jù)分片生成存儲數(shù)據(jù)的處理過程可能不同;待存儲數(shù)據(jù)是否為完整數(shù)據(jù)塊,可以由數(shù)據(jù)分片中的元數(shù)據(jù)記錄的待存儲數(shù)據(jù)是否為完整數(shù)據(jù)塊的指示信息確定;
如果待存儲數(shù)據(jù)為完整的數(shù)據(jù)塊,則存儲轉(zhuǎn)換服務器可直接將數(shù)據(jù)分片與特定存儲數(shù)據(jù)內(nèi)容相結(jié)合,生成存儲數(shù)據(jù);從而可將存儲數(shù)據(jù)中的數(shù)據(jù)分片的目標待存儲數(shù)據(jù),覆蓋到對象存儲中以前存儲的相應數(shù)據(jù)上,同時在對象存儲中記錄相應的元數(shù)據(jù)與特定存儲數(shù)據(jù)內(nèi)容;
可選的,如果待存儲數(shù)據(jù)不為完整的數(shù)據(jù)塊,比如待存儲數(shù)據(jù)僅是5k的數(shù)據(jù),并不滿足1m大小完整需求的數(shù)據(jù)塊,則存儲轉(zhuǎn)換服務器可從存儲設備中取回待存儲數(shù)據(jù)相應的至少一個原數(shù)據(jù)分片;對取回的各原數(shù)據(jù)分片進行逐片解壓,得到至少一個原數(shù)據(jù)塊,合并目標待存儲數(shù)據(jù)與所述至少一個原數(shù)據(jù)塊,得到至少一個需存儲的數(shù)據(jù)塊,將至少一個需存儲的數(shù)據(jù)塊進行壓縮,壓縮后的數(shù)據(jù)與元數(shù)據(jù)結(jié)合形成數(shù)據(jù)分片,所形成的數(shù)據(jù)分片和特定存儲數(shù)據(jù)內(nèi)容相結(jié)合,生成存儲數(shù)據(jù),從而將存儲數(shù)據(jù)更新到對象存儲中。
可選的,存儲轉(zhuǎn)換服務器還可在數(shù)據(jù)分片的協(xié)議與存儲設備的協(xié)議不一致時,將數(shù)據(jù)分片的協(xié)議轉(zhuǎn)換為與存儲設備的協(xié)議相一致。
存儲設備可在記錄存儲數(shù)據(jù)時,按照數(shù)據(jù)塊的地址空間分配不同的塊,存儲數(shù)據(jù)的一個數(shù)據(jù)塊對應一個文件,使用標識值(bno)來標識數(shù)據(jù)塊的塊號;bno通過地址和塊大小計算,比如1m大小為1塊,第0-1m字節(jié)內(nèi)bno是0,1-2m的bno是1,其他類似;地址mod塊大小可以認為是bno。
可選的,特定存儲數(shù)據(jù)內(nèi)容可以包括如下至少一項:數(shù)據(jù)屬性(數(shù)據(jù)塊的版本號),數(shù)據(jù)頭-定長(協(xié)議版本、數(shù)據(jù)塊版本號、分片數(shù)量);
相應的,存儲數(shù)據(jù)的結(jié)構(gòu)可以如下:
數(shù)據(jù)屬性,包括:數(shù)據(jù)塊的版本號;
數(shù)據(jù)頭-定長,包括:協(xié)議版本、數(shù)據(jù)塊版本號、分片數(shù)量;
數(shù)據(jù)分片-定長(即元數(shù)據(jù)),包括:待存儲數(shù)據(jù)是否為完整數(shù)據(jù)塊的指示信息,塊內(nèi)地址偏移,待存儲數(shù)據(jù)的數(shù)據(jù)長度,部分加密還是全部加密的指示信息,密文的內(nèi)部偏移,密文的數(shù)據(jù)長度,由加密芯片還是網(wǎng)關(guān)加密的加密方式指示信息,當前使用秘鑰的秘鑰id或種子id,加密算法,壓縮算法等;
數(shù)據(jù)分片-變長,包括:具體的數(shù)據(jù)塊。
可見,基于圖2所示信令流程,在將私有云中的數(shù)據(jù)存儲到公有云時,本發(fā)明實施例可利用私有云的網(wǎng)關(guān)所連接的加密芯片提供的秘鑰,對待存儲數(shù)據(jù)的部分進行加密,從而將包含加密后的第一密文的目標待存儲數(shù)據(jù)進行至公有云的存儲;由于目標待存儲數(shù)據(jù)包含以加密芯片提供的秘鑰所加密的第一密文,提升了存儲到公有云中的數(shù)據(jù)的安全性,并且加密所使用的秘鑰由加密芯片存儲,秘鑰泄露的風險極低,可降低由于云管理員泄露數(shù)據(jù)、公有云被黑客攻擊等情況下的數(shù)據(jù)泄露風險,提升了私有云存儲在公有云中的數(shù)據(jù)的安全性。
可選的,在圖2所示信令流程中,加密芯片可對待存儲數(shù)據(jù)的部分進行加密,但也不排除加密芯片對待存儲數(shù)據(jù)的全部進行加密的情況;作為優(yōu)選,由于加密芯片的加密性能可能較差,并無法對待存儲數(shù)據(jù)的全部進行加密,因此本發(fā)明實施例可優(yōu)選使用加密芯片對待存儲數(shù)據(jù)的部分進行加密;顯然,這僅是由加密芯片進行加密操作的一種優(yōu)選方案,本發(fā)明實施例并不排除加密芯片在具有足夠的加密性能時,由加密芯片對待存儲數(shù)據(jù)的全部進行加密的情況。
可選的,圖3示出了本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲方法的另一種可選信令流程,結(jié)合圖1和圖3所示,該信令流程可以包括:
步驟s20、私有云內(nèi)的終端設備向私有云的網(wǎng)關(guān)發(fā)送數(shù)據(jù)存儲指令。
步驟s21、私有云的網(wǎng)關(guān)獲取待存儲數(shù)據(jù)。
步驟s22、網(wǎng)關(guān)確定待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù)的大小,以及確定需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的位置;根據(jù)所述大小和所述位置,從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù)。
可選的,本發(fā)明實施例可確定待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù)的大小,以及需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的位置(如待存儲數(shù)據(jù)為數(shù)據(jù)塊時,需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的塊內(nèi)地址偏移),從而根據(jù)所設定的需加密的部分數(shù)據(jù)的大小以及在待存儲數(shù)據(jù)中相應的位置,從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);
可選的,需加密的部分數(shù)據(jù)的大小,以及需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的位置可記錄在設置表格中,并由用戶進行修改調(diào)整;例如,設置表格可記錄需加密的部分數(shù)據(jù)的大小,以及需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的塊內(nèi)地址偏移;相應的,本發(fā)明實施例可確定所述設置表格記錄的待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù)的大小,確定所述設置表格記錄的需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的位置。
可選的,需加密的目標數(shù)據(jù)相應的塊內(nèi)地址偏移可以認為是,進行加密的目標數(shù)據(jù)(部分數(shù)據(jù))在待存儲數(shù)據(jù)中的起始地址,比如一個待存儲數(shù)據(jù)的大小是1m,對該1m的待存儲數(shù)據(jù)中2k的目標數(shù)據(jù)進行加密,則這個2k的目標數(shù)據(jù)在待存儲數(shù)據(jù)的起始地址則認為是,這個2k的目標數(shù)據(jù)加密后的第一密文相應的塊內(nèi)地址偏移。
例如,在待存儲數(shù)據(jù)為通過數(shù)據(jù)塊分塊處理得到的數(shù)據(jù)塊時,在設定需加密的部分數(shù)據(jù)的大小為2k(數(shù)值僅是可選示例),及需加密的部分數(shù)據(jù)相應的塊內(nèi)地址偏移后,網(wǎng)關(guān)可從待存儲數(shù)據(jù)中該塊內(nèi)地址偏移開始,選取2k的數(shù)據(jù)作為需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);
可選的,本發(fā)明實施例也可隨機的確定待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù)的大小,以及需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的位置。
步驟s23、網(wǎng)關(guān)將所述目標數(shù)據(jù)傳輸至所連接的加密芯片。
步驟s24、加密芯片根據(jù)所存儲的秘鑰對所述目標數(shù)據(jù)進行加密,并向所述網(wǎng)關(guān)返回加密后的第一密文。
步驟s25、網(wǎng)關(guān)從待存儲數(shù)據(jù)中目標數(shù)據(jù)的起始位置開始,覆蓋所述第一密文,得到包含所述第一密文的目標待存儲數(shù)據(jù)。
可選的,網(wǎng)關(guān)獲取到第一密文后,可確定第一密文相對應的需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的塊內(nèi)地址偏移,從而根據(jù)該塊內(nèi)地址偏移,將第一密文覆蓋到待存儲數(shù)據(jù)中目標數(shù)據(jù)的原始位置,得到包含所述第一密文的目標待存儲數(shù)據(jù);即按照該塊內(nèi)地址偏移,從待存儲數(shù)據(jù)中目標數(shù)據(jù)的起始位置開始,覆蓋所述第一密文,得到包含所述第一密文的目標待存儲數(shù)據(jù)。
步驟s26、網(wǎng)關(guān)根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片。
可選的,可結(jié)合目標待存儲數(shù)據(jù)的元數(shù)據(jù)與目標待存儲數(shù)據(jù),生成數(shù)據(jù)分片;元數(shù)據(jù)的內(nèi)容可參照上文描述。
步驟s27、網(wǎng)關(guān)將所述數(shù)據(jù)分片傳輸至公有云。
步驟s28、公有云的存儲轉(zhuǎn)換服務器根據(jù)所述數(shù)據(jù)分片生成存儲數(shù)據(jù),并將所述存儲數(shù)據(jù)更新到對象存儲上。
可選的,步驟s28的說明可與圖2所示步驟s18類似,需要進一步說明的是,如果待存儲數(shù)據(jù)不為完整的數(shù)據(jù)塊,則將解壓原數(shù)據(jù)分片得到的至少一個原數(shù)據(jù)塊與目標待存儲數(shù)據(jù)合并,得到至少一個需存儲的數(shù)據(jù)塊的過程可以為:
如果對取回的各原數(shù)據(jù)分片進行逐片解壓后的原數(shù)據(jù)塊,與目標待存儲數(shù)據(jù)不存在加密數(shù)據(jù)交叉的情況,則可將原數(shù)據(jù)塊與目標待存儲數(shù)據(jù)合并為一個完整數(shù)據(jù)塊;而如果原數(shù)據(jù)塊,與目標待存儲數(shù)據(jù)存在加密數(shù)據(jù)交叉的情況,則可將與目標待存儲數(shù)據(jù)存在加密數(shù)據(jù)交叉的原數(shù)據(jù)塊相獨立,將與目標待存儲數(shù)據(jù)不存在加密數(shù)據(jù)交叉的原數(shù)據(jù)塊,和目標待存儲數(shù)據(jù)進行合并,從而集合相獨立的原數(shù)據(jù)塊,和合并后的數(shù)據(jù)塊,得到至少一個需存儲的數(shù)據(jù)塊;
可選的,步驟s28的執(zhí)行流程可以如圖4所示,包括:
步驟s100、判斷待存儲數(shù)據(jù)是否為完整的數(shù)據(jù)塊,若是,執(zhí)行步驟s110,若否,執(zhí)行步驟s130。
可選的,可通過數(shù)據(jù)分片中的元數(shù)據(jù)記錄的待存儲數(shù)據(jù)是否為完整數(shù)據(jù)塊的指示信息確定,待存儲數(shù)據(jù)是否為完整的數(shù)據(jù)塊。
步驟s110、將數(shù)據(jù)分片與特定存儲數(shù)據(jù)內(nèi)容相結(jié)合,生成存儲數(shù)據(jù)。
可選的,數(shù)據(jù)分片可以包括:目標待存儲數(shù)據(jù)與相應的元數(shù)據(jù)。
步驟s120、將存儲數(shù)據(jù)中的目標待存儲數(shù)據(jù)覆蓋到對象存儲中以前存儲的相應數(shù)據(jù)上,同時在對象存儲中記錄存儲數(shù)據(jù)相應的元數(shù)據(jù)與特定存儲數(shù)據(jù)內(nèi)容。
步驟s130、從對象存儲中取回待存儲數(shù)據(jù)的至少一個原數(shù)據(jù)分片。
比如待存儲數(shù)據(jù)為5k,對象存儲以1m的數(shù)據(jù)塊進行數(shù)據(jù)存儲,則可從對象存儲中取回該5k的待存儲數(shù)據(jù)所對應的,在對象存儲中以1m的數(shù)據(jù)塊進行存儲的原數(shù)據(jù)分片。
步驟s140、對取回的各原數(shù)據(jù)分片進行逐片解壓,得到至少一個原數(shù)據(jù)塊。
步驟s150、判斷原數(shù)據(jù)塊與目標待存儲數(shù)據(jù)是否存在加密數(shù)據(jù)交叉,若是,執(zhí)行步驟s160,若否,執(zhí)行步驟s170。
可選的,本發(fā)明實施例可通過目標待存儲數(shù)據(jù)和原數(shù)據(jù)塊中加密數(shù)據(jù)的地址空間及加密數(shù)據(jù)的長度,判斷原數(shù)據(jù)塊與目標待存儲數(shù)據(jù)是否存在加密數(shù)據(jù)交叉,比如目標待存儲數(shù)據(jù)中加密數(shù)據(jù)的地址空間為4-7,原數(shù)據(jù)塊中加密數(shù)據(jù)的地址空間為16-19,則不存在加密數(shù)據(jù)交叉,而如果目標待存儲數(shù)據(jù)中加密數(shù)據(jù)的地址空間為4-7,原數(shù)據(jù)塊中加密數(shù)據(jù)的地址空間為6-9,則存在加密數(shù)據(jù)交叉。
步驟s160、將與目標待存儲數(shù)據(jù)存在加密數(shù)據(jù)交叉的原數(shù)據(jù)塊相獨立,并將與目標待存儲數(shù)據(jù)不存在加密數(shù)據(jù)交叉的原數(shù)據(jù)塊,和目標待存儲數(shù)據(jù)進行合并,集合相獨立的原數(shù)據(jù)塊,和合并后的數(shù)據(jù)塊,得到需存儲的數(shù)據(jù)塊。
比如目標待存儲數(shù)據(jù)為包含2k的密文的5k數(shù)據(jù),則在確定原數(shù)據(jù)塊后,可將原數(shù)據(jù)塊中存在加密數(shù)據(jù),且加密數(shù)據(jù)的地址與該2k密文的地址交叉的原數(shù)據(jù)塊進行獨立,不與目標待存儲數(shù)據(jù)進行合并;而對于原數(shù)據(jù)塊中存在加密數(shù)據(jù),但不與該2k密文的地址交叉的原數(shù)據(jù)塊,或者原數(shù)據(jù)塊中不存在加密的原數(shù)據(jù)塊,則可目標待存儲數(shù)據(jù)進行合并,得到合并后的數(shù)據(jù)塊;然后可將獨立的存在加密數(shù)據(jù)交叉的原數(shù)據(jù)塊,和合并后的數(shù)據(jù)塊集合起來。
步驟s170、將原數(shù)據(jù)塊與目標待存儲數(shù)據(jù)合并,得到需存儲的數(shù)據(jù)塊。
步驟s180、需存儲的數(shù)據(jù)塊進行壓縮,壓縮后的數(shù)據(jù)與元數(shù)據(jù)結(jié)合形成數(shù)據(jù)分片,所形成的數(shù)據(jù)分片和特定存儲數(shù)據(jù)內(nèi)容相結(jié)合,生成存儲數(shù)據(jù),將所述存儲數(shù)據(jù)更新到對象存儲上。
相應的,從連接私有云的網(wǎng)關(guān)的角度看,網(wǎng)關(guān)可獲取網(wǎng)關(guān)傳輸?shù)拇鎯?shù)據(jù)中需加密的目標數(shù)據(jù),根據(jù)根據(jù)秘鑰對所述目標數(shù)據(jù)進行加密,得到第一密文;輸出所述第一密文至所述網(wǎng)關(guān),以便所述網(wǎng)關(guān)根據(jù)所述第一密文確定存儲至公有云中的數(shù)據(jù)(可參照網(wǎng)關(guān)獲取第一密文后的后續(xù)處理)。
從私有云內(nèi)來看,通過加密芯片進行部分數(shù)據(jù)加密時,加密芯片與網(wǎng)關(guān)的交互過程可以如圖5所示,網(wǎng)關(guān)可根據(jù)設定的待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù)的大小,以及需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的位置,確定待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);將該目標數(shù)據(jù)傳輸至加密芯片;加密芯片根據(jù)所存儲的秘鑰對目標數(shù)據(jù)進行加密,并反饋第一密文給網(wǎng)關(guān);網(wǎng)關(guān)可按照所述塊內(nèi)地址偏移,從待存儲數(shù)據(jù)中目標數(shù)據(jù)的原始位置開始覆蓋密文,從而得到包含第一密文的目標待存儲數(shù)據(jù),從而實現(xiàn)對待存儲數(shù)據(jù)中的部分數(shù)據(jù)進行加密的效果。
可選的,本發(fā)明實施例也可在私有云內(nèi)的網(wǎng)關(guān)上進行加密操作,網(wǎng)關(guān)向加密芯片獲取一次秘鑰后,一次獲取的秘鑰可以維持設定的生命周期,網(wǎng)關(guān)可利用當前處于設定的生命周期內(nèi)的秘鑰進行加密操作;網(wǎng)關(guān)也可在每次進行數(shù)據(jù)的存儲時,從加密芯片獲取一次秘鑰進行加密操作,從而利用加密芯片所提供的秘鑰進行待存儲數(shù)據(jù)中目標數(shù)據(jù)的加密操作;
可選的,圖6示出了本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲方法的再一種可選信令流程,結(jié)合圖1和圖6所示,該信令流程可以包括:
步驟s30、私有云內(nèi)的終端設備向私有云的網(wǎng)關(guān)發(fā)送數(shù)據(jù)存儲指令。
步驟s31、私有云的網(wǎng)關(guān)獲取待存儲數(shù)據(jù)。
步驟s32、網(wǎng)關(guān)根據(jù)加密芯片所提供的秘鑰對所述待存儲數(shù)據(jù)進行加密,得到加密后的第二密文。
可選的,如果所述設置表格指示對待存儲數(shù)據(jù)全部加密,則可將所述待存儲數(shù)據(jù)進行加密,得到第二密文;而如果所述設置表格指示對待存儲數(shù)據(jù)的部分進行加密,則可按照前述方法內(nèi)容,確定待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù),得到目標數(shù)據(jù),由網(wǎng)關(guān)或加密芯片對該目標數(shù)據(jù)進行加密,得到第一密文;
可選的,在本發(fā)明實施例中,網(wǎng)關(guān)可向所連接的加密芯片請求秘鑰,從而獲取到加密芯片所提供的秘鑰,進而以該秘鑰對目標數(shù)據(jù)進行加密;這種方式是網(wǎng)關(guān)在每次進行加密操作時,均向加密芯片請求秘鑰;
可選的,另一種方式可以是網(wǎng)關(guān)向加密芯片請求一次秘鑰后,所請求得到的秘鑰可以維持設定的生命周期,如果上一次向加密芯片請求的秘鑰仍處于設定的生命周期內(nèi),則網(wǎng)關(guān)可根據(jù)上一次向加密芯片請求的秘鑰對所述待存儲數(shù)據(jù)進行加密;可選的,上一次向加密芯片請求的秘鑰可以在網(wǎng)關(guān)中進行存儲,并維持設定的生命周期有效,當超過設定的生命周期后,網(wǎng)關(guān)可再次向加密芯片請求秘鑰,根據(jù)再次請求得到的秘鑰對所述待存儲數(shù)據(jù)進行加密,得到第二密文;
可選的,一次獲取的秘鑰所維持的設定的生命周期可以是:一次獲取的秘鑰設定的有效時間,或者,一次獲取的秘鑰可以支持網(wǎng)關(guān)n次的數(shù)據(jù)讀寫;n為設定值,可以根據(jù)實際情況設定。
可選的,網(wǎng)關(guān)每次從加密芯片獲取的秘鑰可以是一致的;顯然,不排除加密芯片通過動態(tài)方式生成動態(tài)變化的秘鑰的情況,但該秘鑰可通過秘鑰id相對應。
步驟s33、網(wǎng)關(guān)根據(jù)所述第二密文生成數(shù)據(jù)分片。
步驟s34、網(wǎng)關(guān)將所述數(shù)據(jù)分片傳輸至公有云。
步驟s35、公有云的存儲轉(zhuǎn)換服務器根據(jù)所述數(shù)據(jù)分片生成存儲數(shù)據(jù),并將所述存儲數(shù)據(jù)更新到對象存儲上。
作為優(yōu)選的,網(wǎng)關(guān)可以對待存儲數(shù)據(jù)的全部進行加密。顯然,也可由加密芯片對待存儲數(shù)據(jù)的全部進行加密。
可選的,上文描述了由加密芯片加密待存儲數(shù)據(jù)的部分或全部,由網(wǎng)關(guān)加密待存儲數(shù)據(jù)的部分或全部的方案,這些方案可以是并列的;基于利用網(wǎng)關(guān)連接的加密芯片提供的秘鑰對存儲到公有云的數(shù)據(jù)進行加密的情況下,這些方案可以擇一應用;
顯然,這些方案中可以優(yōu)選使用由加密芯片加密待存儲數(shù)據(jù)的部分,和由網(wǎng)關(guān)加密待存儲數(shù)據(jù)的全部的方案;
可選的,在優(yōu)選方案中,選擇加密芯片加密待存儲數(shù)據(jù)的部分,還是由網(wǎng)關(guān)加密待存儲數(shù)據(jù)的全部,可以由設置表格進行記錄調(diào)整。
可選的,在本發(fā)明實施例中,設置表格可以記錄如下至少一項:
待存儲數(shù)據(jù)部分加密還是全部加密的指示信息;
由加密芯片還是網(wǎng)關(guān)加密的加密方式指示信息;
部分加密情況下需加密的部分數(shù)據(jù)的大小,以及需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的塊內(nèi)地址偏移;
加密芯片加密情況下的秘鑰id,加密算法的指示信息;進一步,加密芯片的管理員可以在加密芯片上設置秘鑰id和對應的秘鑰;
網(wǎng)關(guān)加密情況下的生成秘鑰的種子id,加密算法的指示信息;進一步,加密芯片的管理員可以在加密芯片上設置種子id和對應的種子。
可選的,設置表格還可以記錄:壓縮算法的指示信息。
可選的,在結(jié)合使用由加密芯片加密待存儲數(shù)據(jù)的部分,和由網(wǎng)關(guān)加密待存儲數(shù)據(jù)的全部的情況下,圖7示出了本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲方法的流程,該方法可應用于私有云的網(wǎng)關(guān),參照圖7,該方法可以包括:
步驟s200、獲取待存儲數(shù)據(jù)。
可選的,設置表格中還可以記錄需進行加密的待存儲數(shù)據(jù)的地址空間(待存儲數(shù)據(jù)的地址空間可以由網(wǎng)關(guān)的iscsi接口提供塊存儲卷確定,該存儲卷對應一個線性的地址空間,所劃分的各數(shù)據(jù)塊(待存儲數(shù)據(jù)的一種形式)可對應有一地址空間),如果所獲取的待存儲數(shù)據(jù)的地址空間,與設置表格中記錄的需進行加密的待存儲數(shù)據(jù)的地址空間相對應,則可執(zhí)行圖7后續(xù)流程;否則,則可將該待存儲數(shù)據(jù)以明文方式存儲;
可選的,設置表格中還可記錄需進行加密的待存儲數(shù)據(jù)的存儲頻次,比如每設定次數(shù)存儲僅進行一次加密,從而可根據(jù)設置表格中記錄的需進行加密的待存儲數(shù)據(jù)的存儲頻次,判斷所獲取的待存儲數(shù)據(jù)是否需要加密,若是,則可執(zhí)行圖7后續(xù)流程;否則,則可將該待存儲數(shù)據(jù)以明文方式存儲;
進一步,可結(jié)合設置表格中記錄的需進行加密的待存儲數(shù)據(jù)的地址空間,和需進行加密的待存儲數(shù)據(jù)的存儲頻次,來判斷是否需要基于所獲取的待存儲數(shù)據(jù)執(zhí)行圖7后續(xù)流程;如果所獲取的待存儲數(shù)據(jù)的地址空間,與設置表格中記錄的需進行加密的待存儲數(shù)據(jù)的地址空間相對應,且根據(jù)設置表格中記錄的需進行加密的待存儲數(shù)據(jù)的存儲頻次,確定所獲取的待存儲數(shù)據(jù)需要加密,則可確定執(zhí)行圖7后續(xù)流程,否則,則可將該待存儲數(shù)據(jù)以明文方式存儲。
步驟s210、根據(jù)設置表格中記錄的加密方式指示信息,判斷是由加密芯片還是由網(wǎng)關(guān)進行加密,若由加密芯片進行加密,執(zhí)行步驟s220,若由網(wǎng)關(guān)進行加密,執(zhí)行步驟s260。
步驟s220、根據(jù)設置表格中記錄的設定的需加密的部分數(shù)據(jù)的大小以及在待存儲數(shù)據(jù)中相應的塊內(nèi)地址偏移,確定所述待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù),得到目標數(shù)據(jù)。
步驟s230、將所述目標數(shù)據(jù)傳輸給所連接的加密芯片,以便獲取到所述加密芯片根據(jù)所存儲的秘鑰對所述目標數(shù)據(jù)進行加密后的第一密文。
步驟s240、按照所述塊內(nèi)地址偏移,從待存儲數(shù)據(jù)中目標數(shù)據(jù)的起始位置開始覆蓋所述第一密文,得到包含所述第一密文的目標待存儲數(shù)據(jù)。
步驟s250、根據(jù)目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片,并將所述數(shù)據(jù)分片傳輸至公有云。
步驟s260、根據(jù)加密芯片所提供的秘鑰對待存儲數(shù)據(jù)進行加密,得到第二密文。
可選的,在本發(fā)明實施例中由加密芯片進行待存儲數(shù)據(jù)的部分加密,由網(wǎng)關(guān)進行待存儲數(shù)據(jù)的全部加密。
步驟s270、根據(jù)所述第二密文生成數(shù)據(jù)分片,并將所述數(shù)據(jù)分片傳輸至公有云。
可選的,第二密文可結(jié)合元數(shù)據(jù)生成數(shù)據(jù)分片。
可選的,進一步,設置表格中還可記錄網(wǎng)關(guān)從加密芯片獲取秘鑰的讀寫間隔次數(shù),如每n次讀寫,網(wǎng)關(guān)從加密芯片中獲取一次秘鑰。
本發(fā)明實施例可利用加密芯片,根據(jù)秘鑰對待存儲數(shù)據(jù)的部分進行加密,利用網(wǎng)關(guān),根據(jù)加密芯片提供的秘鑰對待存儲數(shù)據(jù)的全部進行加密。從而對待存儲數(shù)據(jù)的部分或全部進行加密,將包含加密后的密文的數(shù)據(jù)進行至公有云的存儲。
由于目標待存儲數(shù)據(jù)包含以加密芯片提供的秘鑰所加密的密文,提升了存儲到公有云中的數(shù)據(jù)的安全性;并且加密所使用的秘鑰由加密芯片存儲,秘鑰泄露的風險極低,且加密芯片與網(wǎng)關(guān)斷開后,基本沒有任何途徑可以獲取到秘鑰,降低了由于云管理員泄露數(shù)據(jù)、公有云被黑客攻擊等情況下的數(shù)據(jù)泄露風險,進一步提升了私有云存儲在公有云中的數(shù)據(jù)的安全性。
本發(fā)明實施例提供的混合云的數(shù)據(jù)讀取方法的信令流程可以如圖8所示,該數(shù)據(jù)讀取方法可基于上文描述的數(shù)據(jù)存儲方法實現(xiàn),參照圖8,該信令流程可以包括:
步驟s40、私有云內(nèi)的終端設備向私有云的網(wǎng)關(guān)發(fā)送數(shù)據(jù)讀取指令。
步驟s41、網(wǎng)關(guān)轉(zhuǎn)發(fā)所述數(shù)據(jù)讀取指令至公有云。
步驟s42、公有云的存儲轉(zhuǎn)換服務器根據(jù)所述數(shù)據(jù)讀取指令,獲取存儲設備中相應存儲的存儲數(shù)據(jù);所述存儲數(shù)據(jù)包括至少一個數(shù)據(jù)分片,所述至少一個數(shù)據(jù)分片包括所述數(shù)據(jù)讀取指令相應讀取的數(shù)據(jù)塊,和該數(shù)據(jù)塊相應的元數(shù)據(jù)。
可選的,在進行數(shù)據(jù)讀取時,存儲設備是以數(shù)據(jù)塊的形式進行數(shù)據(jù)讀取。
可選的,存儲設備(如對象存儲)中存儲的數(shù)據(jù)塊是以標識值(bno)進行表示的,本發(fā)明實施例中,數(shù)據(jù)讀取指令中可以攜帶需讀取的數(shù)據(jù)塊的標識值(bno)的指示信息;從而存儲轉(zhuǎn)換服務器可根據(jù)標識值(bno)的指示信息,從存儲設備中獲取相應的值(數(shù)據(jù)塊),進而可將包含所獲取的數(shù)據(jù)塊和該數(shù)據(jù)塊相應的元數(shù)據(jù)的數(shù)據(jù)分片的存儲數(shù)據(jù),從存儲設備中獲取出來。
步驟s43、存儲轉(zhuǎn)換服務器發(fā)送所述存儲數(shù)據(jù)給私有云的網(wǎng)關(guān)。
從而私有云的網(wǎng)關(guān)可獲取到公有云中的存儲數(shù)據(jù)。
步驟s44、私有云的網(wǎng)關(guān)對所述存儲數(shù)據(jù)中的各數(shù)據(jù)分片進行逐片解壓,如果解壓過程中,確定數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊,根據(jù)該數(shù)據(jù)塊的元數(shù)據(jù)選取解密算法,及確定網(wǎng)關(guān)連接的加密芯片提供的秘鑰。
可選的,數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊,可能是該數(shù)據(jù)塊部分或全部被加密,可以由該數(shù)據(jù)塊的元數(shù)據(jù)進行指示;
可選的,針對數(shù)據(jù)塊的部分解密的過程,與數(shù)據(jù)塊的部分加密的過程可以是逆過程;如果一數(shù)據(jù)分片在解壓過程中,確定該數(shù)據(jù)分片的數(shù)據(jù)塊存在部分數(shù)據(jù)被加密,則可根據(jù)該數(shù)據(jù)分片的元數(shù)據(jù)記錄的加密算法選取解密算法,及根據(jù)該元數(shù)據(jù)記錄的秘鑰id,獲取網(wǎng)關(guān)連接的加密芯片提供的相應秘鑰;從而可根據(jù)所選取的解密算法和獲取的秘鑰,對該數(shù)據(jù)分片的數(shù)據(jù)塊中的部分加密的目標數(shù)據(jù)進行解密,解密后的目標數(shù)據(jù)可根據(jù)相應的塊內(nèi)地址偏移,覆蓋到數(shù)據(jù)塊中目標數(shù)據(jù)的原始位置,獲得到該數(shù)據(jù)分片相應的解密的數(shù)據(jù)塊;
而針對一數(shù)據(jù)分片的數(shù)據(jù)塊被全部加密的情況,則可根據(jù)該數(shù)據(jù)分片的元數(shù)據(jù)所確定的解密算法和秘鑰,對該數(shù)據(jù)分片的數(shù)據(jù)塊整體進行解密,獲得到該數(shù)據(jù)分片相應的解密的數(shù)據(jù)塊。
步驟s45、網(wǎng)關(guān)根據(jù)所述解密算法和秘鑰,對數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊進行解密。
可選的,解密操作可以由網(wǎng)關(guān)實現(xiàn)。
步驟s46、網(wǎng)關(guān)將數(shù)據(jù)分片解壓后的未加密的數(shù)據(jù)塊,和數(shù)據(jù)分片中解密的數(shù)據(jù)塊相合并,得到讀取數(shù)據(jù),并反饋所述讀取數(shù)據(jù)給終端設備。
需要說明的,針對待存儲數(shù)據(jù)的部分或全部進行加密的情況下,數(shù)據(jù)讀取和存儲可以認為是逆過程,可以相互參照。
下面對本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲裝置進行介紹,下文描述的混合云的數(shù)據(jù)存儲裝置可以認為是,私有云的網(wǎng)關(guān)為實現(xiàn)本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲方法所需設置的程序模塊;下文描述的混合云的數(shù)據(jù)存儲裝置內(nèi)容,可與上文描述的混合云的數(shù)據(jù)存儲方法內(nèi)容相互對應參照。
圖9為本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲裝置的結(jié)構(gòu)框圖,該混合云的數(shù)據(jù)存儲裝置可應用于私有云的網(wǎng)關(guān),參照圖9,該混合云的數(shù)據(jù)存儲裝置可以包括:
待存儲數(shù)據(jù)獲取模塊100,用于獲取待存儲數(shù)據(jù);
目標數(shù)據(jù)確定模塊110,用于從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);
密文獲取模塊120,用于獲取所述目標數(shù)據(jù)進行加密后的第一密文;其中,所述目標數(shù)據(jù)根據(jù)所述網(wǎng)關(guān)所連接的加密芯片提供的秘鑰進行加密;
目標待存儲數(shù)據(jù)確定模塊130,用于根據(jù)所述第一密文生成包含所述第一密文的目標待存儲數(shù)據(jù);
數(shù)據(jù)分片確定模塊140,用于根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片;
傳輸模塊150,用于將所述數(shù)據(jù)分片傳輸至公有云中存儲。
可選的,目標數(shù)據(jù)確定模塊110,用于從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù),具體包括:
確定待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù)的大小,以及確定需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的位置;
根據(jù)所述大小和所述位置,從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù)。
可選的,目標數(shù)據(jù)確定模塊110可確定設置表格記錄的待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù)的大小,及確定設置表格記錄的需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的位置。
可選的,目標數(shù)據(jù)確定模塊110,用于確定需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的位置,具體包括:
確定需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的塊內(nèi)地址偏移。
可選的,目標待存儲數(shù)據(jù)確定模塊130,用于根據(jù)所述第一密文生成包含所述第一密文的目標待存儲數(shù)據(jù),具體包括:
根據(jù)所述塊內(nèi)地址偏移,將第一密文覆蓋到待存儲數(shù)據(jù)中目標數(shù)據(jù)的原始位置,得到所述目標待存儲數(shù)據(jù)。
可選的,密文獲取模塊120,用于獲取所述目標數(shù)據(jù)進行加密后的第一密文,具體包括:
將所述目標數(shù)據(jù)傳輸至所連接的加密芯片;
獲取所述加密芯片根據(jù)所存儲的秘鑰,對所述目標數(shù)據(jù)進行加密后的第一密文。
可選的,圖10示出了本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲裝置的另一結(jié)構(gòu)框圖,結(jié)合圖9和圖10所示,該裝置還可以包括:
表格調(diào)取模塊160,用于調(diào)取設置表格;
加密執(zhí)行第一確定模塊170,用于如果所述設置表格指示由加密芯片進行加密,觸發(fā)密文獲取模塊120執(zhí)行所述將所述目標數(shù)據(jù)傳輸至所連接的加密芯片的步驟。
可選的,所述設置表格還記錄有如下至少一項內(nèi)容:
待存儲數(shù)據(jù)部分加密還是全部加密的指示信息;
待存儲數(shù)據(jù)中需加密的部分數(shù)據(jù)的大小,以及需加密的部分數(shù)據(jù)在待存儲數(shù)據(jù)中相應的塊內(nèi)地址偏移;
加密芯片加密所使用的秘鑰id,加密算法的指示信息;
網(wǎng)關(guān)使用加密芯片提供的秘鑰進行加密時,生成秘鑰的種子id,加密算法的指示信息;
壓縮算法的指示信息;
網(wǎng)關(guān)從加密芯片獲取秘鑰的讀寫間隔次數(shù)。
可選的,所述數(shù)據(jù)存儲裝置還可用于:
若所述設置表格指示對待存儲數(shù)據(jù)部分加密,觸發(fā)目標數(shù)據(jù)確定模塊110執(zhí)行所述從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù)的步驟。
可選的,所述數(shù)據(jù)存儲裝置還可用于:
如果所述設置表格指示對待存儲數(shù)據(jù)全部加密,獲取待存儲數(shù)據(jù)進行加密后的第二密文,其中,所述待存儲數(shù)據(jù)根據(jù)所述網(wǎng)關(guān)所連接的加密芯片提供的秘鑰進行加密;根據(jù)第二密文生成數(shù)據(jù)分片,并傳輸至公有云中存儲。
可選的,所述數(shù)據(jù)存儲裝置用于獲取待存儲數(shù)據(jù)進行加密后的第二密文,具體包括:
獲取加密芯片提供的秘鑰;
根據(jù)所述秘鑰對所述待存儲數(shù)據(jù)進行加密,得到第二密文。
可選的,所述數(shù)據(jù)存儲裝置用于獲取加密芯片提供的秘鑰,具體包括:
判斷上一次向加密芯片請求的秘鑰,是否處于設定的生命周期內(nèi);
如果上一次向加密芯片請求的秘鑰,處于設定的生命周期內(nèi),獲取上一次向加密芯片請求的秘鑰;
如果上一次向加密芯片請求的秘鑰,不處于設定的生命周期內(nèi),向加密芯片請求秘鑰。
可選的,數(shù)據(jù)分片確定模塊140,用于根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片,具體包括:
確定目標待存儲數(shù)據(jù)的元數(shù)據(jù),將該元數(shù)據(jù)與目標待存儲數(shù)據(jù)結(jié)合生成數(shù)據(jù)分片。
可選的,元數(shù)據(jù)可以包括如下至少一項內(nèi)容:
待存儲數(shù)據(jù)是否為完整數(shù)據(jù)塊的指示信息,塊內(nèi)地址偏移,待存儲數(shù)據(jù)的數(shù)據(jù)長度,待存儲數(shù)據(jù)部分加密還是全部加密的指示信息,密文的內(nèi)部偏移,密文的數(shù)據(jù)長度,由加密芯片還是網(wǎng)關(guān)加密的加密方式指示信息,當前使用秘鑰的秘鑰id或種子id,加密算法的指示信息,壓縮算法的指示信息。
可選的,所述設置表格中還記錄有需進行加密的待存儲數(shù)據(jù)的地址空間,需進行加密的待存儲數(shù)據(jù)的存儲頻次;結(jié)合圖10和圖11所示,圖11所示的本發(fā)明實施例提供的混合云的數(shù)據(jù)存儲裝置還可以包括:
加密觸發(fā)判斷模塊180,用于判斷所獲取的待存儲數(shù)據(jù)的地址空間,是否與設置表格中記錄的需進行加密的待存儲數(shù)據(jù)的地址空間相對應;及,根據(jù)設置表格中記錄的需進行加密的待存儲數(shù)據(jù)的存儲頻次,判斷所獲取的待存儲數(shù)據(jù)是否需要加密;
如果所獲取的待存儲數(shù)據(jù)的地址空間,與設置表格中記錄的需進行加密的待存儲數(shù)據(jù)的地址空間相對應,且根據(jù)設置表格中記錄的需進行加密的待存儲數(shù)據(jù)的存儲頻次,確定所獲取的待存儲數(shù)據(jù)需要加密,則觸發(fā)目標數(shù)據(jù)確定模塊110執(zhí)行所述從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù)的步驟。
本發(fā)明實施例還提供一種私有云的網(wǎng)關(guān),該網(wǎng)關(guān)的硬件結(jié)構(gòu)框圖可以如圖12所示,包括:至少一個處理器1,至少一個通信接口2,至少一個存儲器3和至少一個通信總線4;
在本發(fā)明實施例中,處理器1、通信接口2、存儲器3、通信總線4的數(shù)量為至少一個,且處理器1、通信接口2、存儲器3通過通信總線4完成相互間的通信;
可選的,通信接口2可以為通信模塊的接口,如gsm模塊的接口;
處理器1可能是一個中央處理器cpu,或者是特定集成電路asic(applicationspecificintegratedcircuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。
存儲器3可能包含高速ram存儲器,也可能還包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。
其中,存儲器3存儲有程序,處理器1調(diào)用存儲器3所存儲的程序,該程序具體用于:
獲取待存儲數(shù)據(jù);
從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);
獲取所述目標數(shù)據(jù)進行加密后的第一密文;其中,所述目標數(shù)據(jù)根據(jù)所述網(wǎng)關(guān)所連接的加密芯片提供的秘鑰進行加密;
根據(jù)所述第一密文生成包含所述第一密文的目標待存儲數(shù)據(jù);
根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片;
將所述數(shù)據(jù)分片傳輸至公有云中存儲。
本發(fā)明實施例還可提供一種存儲介質(zhì),存儲介質(zhì)的形式可如存儲器等,該存儲介質(zhì)可應用于私有云的網(wǎng)關(guān),該存儲介質(zhì)中可記錄程序,該程序可用于:
獲取待存儲數(shù)據(jù);
從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);
獲取所述目標數(shù)據(jù)進行加密后的第一密文;其中,所述目標數(shù)據(jù)根據(jù)所述網(wǎng)關(guān)所連接的加密芯片提供的秘鑰進行加密;
根據(jù)所述第一密文生成包含所述第一密文的目標待存儲數(shù)據(jù);
根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片;
將所述數(shù)據(jù)分片傳輸至公有云中存儲。
可選的,程序的功能細化和擴展功能可參照上文相應部分描述。
可選的,本發(fā)明實施例還提供一種加密芯片,該加密芯片可以包括:至少一個存儲器和至少一個處理器,所述存儲器存儲有程序,所述處理器調(diào)用所述程序,所述程序用于:
獲取私有云的網(wǎng)關(guān)傳輸?shù)拇鎯?shù)據(jù)中需加密的目標數(shù)據(jù);
根據(jù)秘鑰對所述目標數(shù)據(jù)進行加密,得到第一密文;
輸出所述第一密文至所述網(wǎng)關(guān),以便所述網(wǎng)關(guān)根據(jù)所述第一密文確定存儲至公有云中的數(shù)據(jù)。
本發(fā)明實施例還提供一種混合云的數(shù)據(jù)讀取裝置,該混合云的數(shù)據(jù)讀取裝置可以認為是私有云的網(wǎng)關(guān),為實現(xiàn)本發(fā)明實施例提供的混合云的數(shù)據(jù)讀取方法所需設置的程序模塊;下文描述的混合云的數(shù)據(jù)讀取裝置,可與上文描述的混合云的數(shù)據(jù)讀取方法相互對應參照。
圖13為本發(fā)明實施例提供的混合云的數(shù)據(jù)讀取裝置的結(jié)構(gòu)框圖,該裝置可應用于私有云的網(wǎng)關(guān),參照圖13,該混合云的數(shù)據(jù)讀取裝置可以包括:
存儲數(shù)據(jù)獲取模塊200,用于獲取公有云中的存儲數(shù)據(jù);所述存儲數(shù)據(jù)包括至少一個數(shù)據(jù)分片,所述至少一個數(shù)據(jù)分片包括需讀取的數(shù)據(jù)塊,和該數(shù)據(jù)塊相應的元數(shù)據(jù);
解壓模塊210,用于對所述存儲數(shù)據(jù)中的各數(shù)據(jù)分片進行逐片解壓,如果解壓過程中,確定數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊,根據(jù)該數(shù)據(jù)塊的元數(shù)據(jù)選取解密算法,及確定網(wǎng)關(guān)連接的加密芯片提供的秘鑰;
解密模塊220,用于根據(jù)所述解密算法和秘鑰,對數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊進行解密;
讀取數(shù)據(jù)得到模塊230,用于將數(shù)據(jù)分片解壓后的未加密的數(shù)據(jù)塊,和數(shù)據(jù)分片中解密的數(shù)據(jù)塊相合并,得到讀取數(shù)據(jù);
數(shù)據(jù)反饋模塊240,用于反饋所述讀取數(shù)據(jù)給終端設備。
可選的,解密模塊220,用于根據(jù)所述解密算法和秘鑰,對數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊進行解密,具體包括:
如果數(shù)據(jù)分片的數(shù)據(jù)塊存在部分數(shù)據(jù)被加密,根據(jù)所選取的解密算法和獲取的秘鑰,對該數(shù)據(jù)分片的數(shù)據(jù)塊中的部分加密的目標數(shù)據(jù)進行解密,解密后的目標數(shù)據(jù)根據(jù)相應的塊內(nèi)地址偏移,覆蓋到數(shù)據(jù)塊中目標數(shù)據(jù)的原始位置,獲得相應解密的數(shù)據(jù)塊。
可選的,上文描述的混合云的數(shù)據(jù)讀取裝置可以通過程序模塊形式,裝載在私有云的網(wǎng)關(guān)內(nèi);相應的,網(wǎng)關(guān)的結(jié)構(gòu)可以如圖12所示,包括:至少一個處理器1,至少一個通信接口2,至少一個存儲器3和至少一個通信總線4;
其中,存儲器存儲有程序,處理器調(diào)用所述程序;所述程序用于:
獲取公有云中的存儲數(shù)據(jù);所述存儲數(shù)據(jù)包括至少一個數(shù)據(jù)分片,所述至少一個數(shù)據(jù)分片包括需讀取的數(shù)據(jù)塊,和該數(shù)據(jù)塊相應的元數(shù)據(jù);
對所述存儲數(shù)據(jù)中的各數(shù)據(jù)分片進行逐片解壓,如果解壓過程中,確定數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊,根據(jù)該數(shù)據(jù)塊的元數(shù)據(jù)選取解密算法,及確定網(wǎng)關(guān)連接的加密芯片提供的秘鑰;
根據(jù)所述解密算法和秘鑰,對數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊進行解密;
將數(shù)據(jù)分片解壓后的未加密的數(shù)據(jù)塊,和數(shù)據(jù)分片中解密的數(shù)據(jù)塊相合并,得到讀取數(shù)據(jù);
反饋所述讀取數(shù)據(jù)給終端設備。
可選的,本發(fā)明實施例還提供一種云系統(tǒng),該云系統(tǒng)的結(jié)構(gòu)可以如圖1所示,包括:位于私有云內(nèi)的至少一個終端設備,網(wǎng)關(guān),與所述網(wǎng)關(guān)連接的加密芯片;位于公有云內(nèi)的存儲轉(zhuǎn)換服務器和存儲設備;
其中,所述網(wǎng)關(guān),用于獲取待存儲數(shù)據(jù);從待存儲數(shù)據(jù)中確定需加密的部分數(shù)據(jù),得到目標數(shù)據(jù);獲取所述目標數(shù)據(jù)進行加密后的第一密文;其中,所述目標數(shù)據(jù)根據(jù)所述網(wǎng)關(guān)所連接的加密芯片提供的秘鑰進行加密;根據(jù)所述第一密文生成包含所述第一密文的目標待存儲數(shù)據(jù);根據(jù)所述目標待存儲數(shù)據(jù)生成數(shù)據(jù)分片;將所述數(shù)據(jù)分片傳輸至公有云中存儲;
所述存儲轉(zhuǎn)換服務器,用于根據(jù)所述數(shù)據(jù)分片生成存儲數(shù)據(jù),并將所述存儲數(shù)據(jù)更新到對象存儲上。
可選的,存儲轉(zhuǎn)換服務器,用于根據(jù)所述數(shù)據(jù)分片生成存儲數(shù)據(jù),具體包括:
如果待存儲數(shù)據(jù)為完整的數(shù)據(jù)塊,則將數(shù)據(jù)分片與特定存儲數(shù)據(jù)內(nèi)容相結(jié)合,生成存儲數(shù)據(jù);
如果待存儲數(shù)據(jù)不為完整的數(shù)據(jù)塊,則從存儲設備中取回待存儲數(shù)據(jù)相應的至少一個原數(shù)據(jù)分片;對取回的各原數(shù)據(jù)分片進行逐片解壓,得到至少一個原數(shù)據(jù)塊,合并目標待存儲數(shù)據(jù)與所述至少一個原數(shù)據(jù)塊,得到至少一個需存儲的數(shù)據(jù)塊;將至少一個需存儲的數(shù)據(jù)塊進行壓縮,壓縮后的數(shù)據(jù)與元數(shù)據(jù)結(jié)合形成數(shù)據(jù)分片,所形成的數(shù)據(jù)分片和特定存儲數(shù)據(jù)內(nèi)容相結(jié)合,生成存儲數(shù)據(jù)。
可選的,存儲轉(zhuǎn)換服務器,用于合并目標待存儲數(shù)據(jù)與所述至少一個原數(shù)據(jù)塊,得到至少一個需存儲的數(shù)據(jù)塊,具體包括:
判斷原數(shù)據(jù)塊與目標待存儲數(shù)據(jù)是否存在加密數(shù)據(jù)交叉;
若是,將與目標待存儲數(shù)據(jù)存在加密數(shù)據(jù)交叉的原數(shù)據(jù)塊相獨立,并將與目標待存儲數(shù)據(jù)不存在加密數(shù)據(jù)交叉的原數(shù)據(jù)塊,和目標待存儲數(shù)據(jù)進行合并,集合相獨立的原數(shù)據(jù)塊,和合并后的數(shù)據(jù)塊,得到需存儲的數(shù)據(jù)塊;
若否,將原數(shù)據(jù)塊與目標待存儲數(shù)據(jù)合并,得到需存儲的數(shù)據(jù)塊。
可選的,所述網(wǎng)關(guān),還用于獲取公有云中的存儲數(shù)據(jù);所述存儲數(shù)據(jù)包括至少一個數(shù)據(jù)分片,所述至少一個數(shù)據(jù)分片包括需讀取的數(shù)據(jù)塊,和該數(shù)據(jù)塊相應的元數(shù)據(jù);對所述存儲數(shù)據(jù)中的各數(shù)據(jù)分片進行逐片解壓,如果解壓過程中,確定數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊,根據(jù)該數(shù)據(jù)塊的元數(shù)據(jù)選取解密算法,及確定網(wǎng)關(guān)連接的加密芯片提供的秘鑰;根據(jù)所述解密算法和秘鑰,對數(shù)據(jù)分片中存在加密的數(shù)據(jù)塊進行解密;將數(shù)據(jù)分片解壓后的未加密的數(shù)據(jù)塊,和數(shù)據(jù)分片中解密的數(shù)據(jù)塊相合并,得到讀取數(shù)據(jù);反饋所述讀取數(shù)據(jù)給終端設備。
本發(fā)明實施例可利用私有云的網(wǎng)關(guān)所連接的加密芯片提供的秘鑰,對待存儲數(shù)據(jù)的部分或全部進行加密,從而將包含加密后的密文的數(shù)據(jù)進行至公有云的存儲;由于目標待存儲數(shù)據(jù)包含以加密芯片提供的秘鑰所加密的密文,并且加密所使用的秘鑰由加密芯片存儲,秘鑰泄露的風險極低,可降低由于云管理員泄露數(shù)據(jù)、公有云被黑客攻擊等情況下的數(shù)據(jù)泄露風險,提升了私有云存儲在公有云中的數(shù)據(jù)的安全性。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應用和設計約束條件。專業(yè)技術(shù)人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(ram)、內(nèi)存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術(shù)領域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
對所公開的實施例的上述說明,使本領域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的核心思想或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。