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