1.背景介紹
隨著移動寬帶、云計算等信息技術(shù)的發(fā)展,電子商務(wù)、電子政務(wù)等信息化應(yīng)用已深入社會生活的各個方面,業(yè)務(wù)系統(tǒng)持續(xù)可靠運行成為信息系統(tǒng)運維與建設(shè)的一個重要指標(biāo),保持業(yè)務(wù)數(shù)據(jù)的可用性是必須考慮的重要方面。業(yè)界對數(shù)據(jù)庫和數(shù)據(jù)備份技術(shù)進行了廣泛研究,已有大量軟件廠商針對數(shù)據(jù)庫的備份恢復(fù)需求開發(fā)了專門的軟件產(chǎn)品。以oracle數(shù)據(jù)庫為例,存在各種備份恢復(fù)軟件,如Veritas公司的VeritasNetBackup、Legato公司的LegatoNetworkerModuleforOracle等。數(shù)據(jù)備份之后為實現(xiàn)容災(zāi)備份需要建設(shè)同城或異地的容災(zāi)備份中心,但許多小規(guī)模企業(yè)、初創(chuàng)公司或基層單位在信息化建設(shè)方面投入有限,對于短期內(nèi)無法看見成效的災(zāi)難恢復(fù)系統(tǒng)基本沒有預(yù)算,其信息系統(tǒng)不具備容災(zāi)備份能力。云計算技術(shù)具有資源虛擬化、彈性分配和多租戶共享的特點,計算、存儲、網(wǎng)絡(luò)和軟件等資源可以作為服務(wù)對第三方提供,因而還具有門檻低、接入方便、能夠有效減少客戶投入的特點。采用以云計算為支撐的云存儲服務(wù)為第三方提供災(zāi)難備份成為數(shù)據(jù)容災(zāi)領(lǐng)域的一個熱點。云存儲服務(wù)需要將數(shù)據(jù)上傳到云中,物理存儲位置已脫離用戶網(wǎng)絡(luò)范圍,用戶無法再對數(shù)據(jù)的物理存儲層進行全面控制和管理,使得云用戶對數(shù)據(jù)的安全可控存在質(zhì)疑。多項研究顯示,云存儲服務(wù)的安全性和云計算服務(wù)的安全性已成為制約云計算發(fā)展的關(guān)鍵要素之一,已經(jīng)影響到用戶是否采用這項技術(shù)。2008年AmazonS3云存儲系統(tǒng)停機8小時,導(dǎo)致云服務(wù)失效并丟失部分客戶的資料;2011年4月SONY公司系統(tǒng)因安全問題導(dǎo)致用戶數(shù)據(jù)外漏。這些事件敲響了云計算與云存儲環(huán)境的安全性問題的警鐘,限制了云服務(wù)模式的推廣和應(yīng)用。以第三方提供災(zāi)備服務(wù)是一種新的運營模式,在處理災(zāi)備數(shù)據(jù)時產(chǎn)生了新的安全要求。
云環(huán)境下數(shù)據(jù)存儲于用戶不完全可控的環(huán)境,采用數(shù)據(jù)加密是確保數(shù)據(jù)安全的有效方法。由于云存儲服務(wù)商的不可信,數(shù)據(jù)加/解密過程不應(yīng)在云端完成而應(yīng)在用戶端完成,這樣即便云端數(shù)據(jù)不幸泄露或丟失,也難以被人破解。采用云存儲服務(wù)實現(xiàn)數(shù)據(jù)庫實時備份需要設(shè)計一套加密備份和恢復(fù)模塊,實現(xiàn)數(shù)據(jù)在云端的加密存儲,實現(xiàn)備份數(shù)據(jù)可用性的高效檢測。
2.總體技術(shù)方案
用云存儲的數(shù)據(jù)庫實時備份系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,用戶數(shù)據(jù)庫數(shù)據(jù)通過網(wǎng)絡(luò)備份到云存儲服務(wù)中心,由云存儲服務(wù)中心提供的數(shù)據(jù)庫服務(wù)提供備份數(shù)據(jù)的管理。云存儲服務(wù)提供彈性的用戶存儲空間、網(wǎng)絡(luò)、計算等性能管理,利用云計算自身的分布式和多機冗余方式提供數(shù)據(jù)存儲的可靠性。采用云備份提高了系統(tǒng)資源的使用效率,降低了容災(zāi)備份的建設(shè)和運維成本。
圖1 數(shù)據(jù)庫云備份的網(wǎng)絡(luò)結(jié)構(gòu)
為解決云存儲帶來的數(shù)據(jù)安全問題,本文設(shè)計了如圖2所示的數(shù)據(jù)明文和密文環(huán)境加密方案。用戶的源數(shù)據(jù)庫為明文,云端備份數(shù)據(jù)庫為密文,通過加密備份和恢復(fù)模塊實現(xiàn)數(shù)據(jù)庫記錄的加密和解密,加解密密鑰由該模塊自動管理。
圖2 數(shù)據(jù)庫明密文環(huán)境
數(shù)據(jù)庫是典型的結(jié)構(gòu)化數(shù)據(jù),需結(jié)合數(shù)據(jù)特點,對加密算法、粒度以及模式進行合理選擇。對數(shù)據(jù)庫進行加密一般要求做到如下幾個方面:
1)加密有足夠的強度,確保數(shù)據(jù)庫加密后密文數(shù)據(jù)在盡量長的時間內(nèi)不可破譯;
2)密文數(shù)據(jù)的存儲空間與明文數(shù)據(jù)的存儲空間相比不應(yīng)明顯增大;
3)數(shù)據(jù)加解密性能要高,尤其是數(shù)據(jù)解密速度,應(yīng)不能顯著影響原有應(yīng)用系統(tǒng)性能,降低用戶體驗;
4)數(shù)據(jù)庫系統(tǒng)對密文數(shù)據(jù)具有靈活的用戶授權(quán)管理機制;
5)密鑰管理機制既能提供密鑰生成、存儲、分配和銷毀的安全管理,又能保證用戶能夠方便使用。
基于數(shù)據(jù)文件、基于表記錄和基于列字段的加密方式是常見的數(shù)據(jù)庫加密技術(shù),各具特點;谖募臄(shù)據(jù)庫加密技術(shù)采用整個數(shù)據(jù)庫文件作為加解密操作單元,用戶就算只是需要查看某一條記錄,他也必須將整個數(shù)據(jù)庫文件解密,這與數(shù)據(jù)庫權(quán)限分配管理相沖突,實際中使用較少;谟涗浀臄(shù)據(jù)庫加密技術(shù)以數(shù)據(jù)庫的記錄作為加解密操作單元,可以對一個完整記錄項進行加密和解密,但無法實現(xiàn)對一個記錄中單個字段進行加解密;谧侄蔚臄(shù)據(jù)庫加密技術(shù)以字段作為加解密操作單元,具有最小的加密粒度,數(shù)據(jù)加密的靈活性和適應(yīng)性非常好。數(shù)據(jù)庫對每個字段可以采用不同密鑰的加密方式,這樣需要的密鑰數(shù)為字段個數(shù)和記錄個數(shù)的乘積,由于密鑰量龐大,實際中難以實現(xiàn)有效管理。
本文針對數(shù)據(jù)庫實時備份的需求即源端和云端的數(shù)據(jù)在記錄級必須保持實時同步,選擇采用記錄級數(shù)據(jù)加密。由于云存儲方式下又適合采用數(shù)據(jù)庫系統(tǒng)外部加密的方式,因此,本文采用系統(tǒng)外部加密的數(shù)據(jù)庫記錄級加密方案。
2.1 加密備份和恢復(fù)模塊總體結(jié)構(gòu)
加密備份和恢復(fù)模塊分為以下幾個部分:1)密鑰管理部分。負責(zé)產(chǎn)生、存儲和定期更新密鑰。2)加解密部分。負責(zé)使用密鑰對數(shù)據(jù)記錄進行加密、完整性計算與驗證。3)備份部分。對數(shù)據(jù)庫的增量數(shù)據(jù)進行檢測或按照全量備份的策略進行所需數(shù)據(jù)的備份操作,調(diào)用加解密部分進行加密。4)恢復(fù)部分。對云備份數(shù)據(jù)庫按照恢復(fù)策略進行數(shù)據(jù)恢復(fù),調(diào)用加解密部分進行解密。5)可用性檢驗部分。對云備份數(shù)據(jù)庫進行隨機數(shù)據(jù)記錄檢索,解密后與源端記錄進行比較,檢查備份數(shù)據(jù)的可用性。
2.2 密鑰管理功能
源數(shù)據(jù)庫管理員對數(shù)據(jù)庫記錄加密后實時備份到云端的備份加密數(shù)據(jù)庫,每個源庫使用一個數(shù)據(jù)加密密鑰(k)和初始向量(IV)。k和IV定期進行更換,更換周期與備份策略同步。為了保證k和IV的安全,在智能密碼鑰匙USB-Key中生成和存儲k和IV。USB-Key是一種經(jīng)過國家密碼管理機構(gòu)安全認定的專用密碼硬件,具備加密計算、隨機數(shù)生成、密鑰安全存儲、數(shù)字簽名等多種功能。每個USB-Key自主生成一對RSA密鑰為主密鑰,主密鑰用于加密k和IV。利用USBKey的隨機數(shù)生成功能,截取兩端256位隨機數(shù)為密鑰k和初始向量IV。當(dāng)前有效的k和IV存放于USB-Key的安全存儲區(qū)內(nèi),其他歷史k和IV經(jīng)過RSA加密后以文件方式存放。
2.3 加密功能
加密算法是數(shù)據(jù)加密的核心,加密算法產(chǎn)生的密文應(yīng)具備頻率平衡、隨機無重碼的特征,攻擊者難以通過對密文頻率、重碼等特征進行分析破譯密文。加密算法通常分為對稱算法和非對稱算法兩種,在對數(shù)據(jù)庫數(shù)據(jù)進行加密時,其性能要求使得對稱加密算法應(yīng)用更為廣泛。序列密碼和分組密碼是兩類主要對稱算法,序列密碼在運算速度上較快,但密鑰序列不能重復(fù),密鑰的生成和管理限制了它在實際中的使用。分組密碼是在明文分組和密文分組上進行運算,常見的加密算法有DES、3DES和AES等。分組密碼算法主要有4種模式,分別是電子密碼本(ECB)、密碼分組鏈接模式(CBC)、加密反饋(CFM)和輸出反饋模式(OFM)。數(shù)據(jù)庫中的記錄具有相同結(jié)構(gòu),就有可能存在大量相同內(nèi)容。例如,人口屬性中有性別和籍貫,大量記錄就會導(dǎo)致相同的性別、相同的籍貫。
加密后的數(shù)據(jù)記錄應(yīng)該為不同密文,否則相同密文信息容易泄露明文信息,會有助于針對密鑰的攻擊,因此算法設(shè)計時應(yīng)該避免記錄內(nèi)字段特性的信息隱藏。此外還要選擇合適的加密數(shù)據(jù)封裝方式和合適的數(shù)據(jù)加密方法。本方案以數(shù)據(jù)記錄為加密單元,采用AES-OFM加密模式。
完整性校驗主要分為帶認證和不帶認證兩種。云端數(shù)據(jù)庫插入數(shù)據(jù)記錄時需要對數(shù)據(jù)記錄的完整性進行檢驗,本方案采用哈希算法實現(xiàn)。常見的哈希算法有MD5和SHA-1等。數(shù)據(jù)加密后的完整性需要通過檢驗字段來校驗,并選擇性能高的算法來實現(xiàn),本方案采用MD5算法。加密數(shù)據(jù)記錄的封裝方式為記錄主鍵不加密,后續(xù)數(shù)據(jù)全部加密。加密后的數(shù)據(jù)記錄由3部分構(gòu)成:記錄主鍵、加密數(shù)據(jù)記錄和完整性校驗數(shù)據(jù)。加密算法采用AES-OFM,加密的范圍是主鍵之外的數(shù)據(jù)記錄的所有值。完整性校驗采用MD5,完整性校驗范圍為主鍵和加密數(shù)據(jù)記錄。
2.4 備份和恢復(fù)功能
數(shù)據(jù)備份有全量備份和增量兩種方式。全量備份方式是某時刻下通過導(dǎo)出工具對全庫進行備份快照,備份工具對數(shù)據(jù)庫備份快照進行全庫、表和記錄級的掃描,加密并傳輸?shù)皆贫,檢驗數(shù)據(jù)的完整性后增加到云端數(shù)據(jù)庫中。
增量備份過程與全量備份過程相似,只是增量備份的數(shù)據(jù)記錄的處理觸發(fā)是通過監(jiān)視數(shù)據(jù)庫的數(shù)據(jù)變動日志來實現(xiàn)。當(dāng)數(shù)據(jù)庫對記錄進行增、刪、改等操作時,每個操作的命令和參數(shù)被記錄,并觸發(fā)一次備份模塊的增量備份操作,操作命令和參數(shù)通過加密處理轉(zhuǎn)變?yōu)閷υ贫藗浞輸?shù)據(jù)庫的一次遠端操作,保持了源端和云端數(shù)據(jù)操作的一致性。
數(shù)據(jù)的恢復(fù)過程是備份的逆過程即數(shù)據(jù)從云端經(jīng)過解密后恢復(fù)到源端。
2.5 可用性檢驗功能
備份數(shù)據(jù)的可用性是指備份在云端的數(shù)據(jù)是否與源端數(shù)據(jù)保持一致,若保持一致,則認為備份數(shù)據(jù)是可用的。在數(shù)據(jù)備份過程中,數(shù)據(jù)加密后存儲在云端,由于對云端服務(wù)的可靠性缺少相關(guān)評價標(biāo)準(zhǔn),因而需要設(shè)計一種方案能夠檢驗數(shù)據(jù)的有效性。對云端數(shù)據(jù)記錄進行遍歷,并逐一和源端數(shù)據(jù)對比檢查的方案代價高昂,需要占用源端資源、網(wǎng)絡(luò)資源和云端資源?梢酝ㄟ^定期隨機抽取數(shù)據(jù)記錄的方式代替全檢,若出現(xiàn)不一致的數(shù)據(jù)記錄,則縮短定期檢查的時間間隔;若長期抽檢記錄都能保持一致,則可以擴大定期檢查的時間間隔。一個具體的記錄可以通過三元素(數(shù)據(jù)文件位置、表位置、記錄位置)來明確。方案具體描述如下:
1)確認抽檢時間間隔為T,并記錄累計相符記錄數(shù)為n,當(dāng)時間間隔達到T時,開始一次新的抽查。
2)隨機生成抽檢記錄的位置。假設(shè)云中備份庫文件總數(shù)為sum1,指定庫文件的數(shù)據(jù)表總數(shù)為sum2,指定表的記錄總數(shù)為sum3。生成3個隨機數(shù)r1,r2,r3,r1對sum1求模得f_no,r2對sum2求模得t_no,r3對sum3求模得r_no。得到的(f_no,t_no,r_no)標(biāo)記了一條隨機產(chǎn)生的抽檢記錄的位置。
3)在云端獲得(f_no,t_no,r_no)位置的記錄值,返回記錄主鍵和加密數(shù)據(jù)記錄。通過解密模塊解密得到記錄主鍵和數(shù)據(jù)記錄(key_cloud,rec_cloud)。
4)在源端獲得(f_no,t_no,r_no)位置的記錄值(key,rec)。
5)比對云端(key_cloud,rec_cloud)和源端(key,rec)。若兩者一致,則n增加1,且判斷n是否大過一個門限,若大過門限,則將T增大一倍。若兩者不一致,則n清0,并且將T縮小一半。完成一次抽檢。
3.結(jié)束語
中小企業(yè)存在對信息系統(tǒng)容災(zāi)備份的迫切需求,但苦于成本效益因素的影響,此需求無法得到廣泛的滿足。云存儲的出現(xiàn)降低了容災(zāi)中心的成本,但安全性是首先需要解決的問題。本文提出的數(shù)據(jù)庫記錄級加密實時備份方案能夠?qū)?shù)據(jù)庫記錄加密后存儲到云端,并且由于密鑰由源端用戶自主管理,云端無法知曉和破解,確保了數(shù)據(jù)的安全性。同時對云端備份數(shù)據(jù)的可用性提供了一種低成本的隨機數(shù)據(jù)可用性檢驗方法,為云端備份數(shù)據(jù)的可用性提供了保障。本文提出的是一種節(jié)約成本的云容災(zāi)備份實現(xiàn)方案,可廣泛在中小企業(yè)中推廣使用。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于云存儲的數(shù)據(jù)庫安全備份系統(tǒng)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10839512912.html