云數(shù)據(jù)庫加密
第一件事需要考慮加密數(shù)據(jù)的必要性。所有的數(shù)據(jù)庫都具有限制訪問的功能。某些合適的實現(xiàn)已經(jīng)足以保護數(shù)據(jù)機密性。
其他需要通過加密來保護存儲在數(shù)據(jù)庫中數(shù)據(jù)的因素有:對數(shù)據(jù)庫的特權用戶(如數(shù)據(jù)庫管理員)隱藏數(shù)據(jù);為了遵守法律法規(guī),數(shù)據(jù)擁有者不能通過帳戶來控制對數(shù)據(jù)的訪問(如使用共享賬戶)。
當使用云數(shù)據(jù)庫,特別是用到了數(shù)據(jù)庫的SaaS解決方案時,數(shù)據(jù)庫的正常功能將會降低,迫使數(shù)據(jù)庫或云應用能訪問密鑰,除非能在密文上操作。
數(shù)據(jù)加密會帶來復雜度和性能上的成本。除了加密之外,還有一些別的有效方法:
使用對象安全。使用SQL準許及廢除聲明去約束賬戶訪問這些數(shù)據(jù)。這些賬戶中哪些準許訪問的必須嚴格控制,以確保只有授權的用戶才能訪問。
存儲安全哈希值。存儲這些數(shù)據(jù)的哈希值而不是直接存儲這些數(shù)據(jù),這能允許企業(yè)的程序能證明持有者有正確的值而不必實際存儲它。
密鑰管理
在公有云計算中一個很困難的過程就是密鑰管理,公有云中的多租戶模型造成其上運行的過程需要考慮密鑰管理問題。
最簡單的應用案例是在公有云中有應用程序運行,加密數(shù)據(jù)的從企業(yè)內(nèi)部流到公有云中,密鑰僅供企業(yè)內(nèi)部使用。有的加密引擎能夠在數(shù)據(jù)流出時加密,在數(shù)據(jù)流入時解密。當公有云上的其他處理過程(例如批處理)需要訪問密鑰去解密數(shù)據(jù)時,一個使用密鑰的應用程序將變得復雜。
企業(yè)中使用者需要擁有他們自己的密鑰,而不是一個能用于訪問整個企業(yè)的單獨的共享密鑰。最簡單的解決方法是采用一個加密引擎,基于實體身份信息為每一個用戶或實體分配(或管理)一個密鑰。以這種方式,為一個實體特別加密的任何信息將為那一實體所維護。如果一個群體內(nèi)的實體需要共享數(shù)據(jù),那么可以為管理群體訪問的應用程序分配一個群體級別密鑰,并在群體內(nèi)的實體間共享密鑰。密鑰在企業(yè)內(nèi)部應該像這一部分前面討論的那樣進行管理。
當數(shù)據(jù)存儲在公有云環(huán)境中,在停用這一環(huán)境時,證明所有數(shù)據(jù)(尤其是PII或SPI數(shù)據(jù)或隸屬于法律法規(guī)的數(shù)據(jù))已經(jīng)從公有云環(huán)境中刪去,包括其他媒體如復制盤等,將存在著問題;維護當?shù)孛荑€管理能夠從密鑰管理系統(tǒng)中廢除(或刪除或丟失)密鑰,以確保任何數(shù)據(jù)殘留在公有云的數(shù)據(jù)不能被解密,來提供這一保證。
如果云服務提供商和用戶沒有一個有效的密鑰管理過程,加密數(shù)據(jù)就沒有多大價值。 在服務提供方,需要關注的因素包括:服務器擁有加密的數(shù)據(jù),同時訪問密鑰服務器缺少職責劃分;數(shù)據(jù)庫管理員能訪問個人密鑰;或數(shù)據(jù)庫服務架構依賴于單一密鑰。
使用密鑰加密密鑰,在內(nèi)存中產(chǎn)生加密密鑰,以及只存儲密鑰服務器的加密密鑰,都是能控制和保護密鑰本身的有效的架構解決方案。構建任何解決方案時都應該考慮這些。 客戶端密鑰管理,在本身并不安全的設備(如移動終端)上保護密鑰,或者這一設備沒有得到同等級別的控制,都是需要考慮的因素。
實踐中的具體建議
在企業(yè)應用的具體實踐中,可以遵循如下一些有益的建議:
當使用任何形式的加密或解密產(chǎn)品時,應用最好的密鑰管理措施;
如有可能,應該使用可信源中現(xiàn)成的技術,以得到最佳實踐;
使用最好的密鑰管理實踐,獲取技術和產(chǎn)品用于加密、解密、簽署,并從可信源中核實;
尤其建議組織要維護他們自己的密鑰或使用已經(jīng)運營這種服務的可信密碼服務;
如果一個組織需要使用存在云中的數(shù)據(jù)運行分析或其他的處理,這個組織應該基于一個平臺如Hadoop開發(fā),從云中的數(shù)據(jù)源中導出數(shù)據(jù);
密鑰的管轄范圍能在個人或集體級別維護;
集體訪問的管理可以使用現(xiàn)成的技術,如DRM系統(tǒng),或者其他運行在桌面或筆記本上,用以加密硬盤、文件和email消息的軟件;
為了維護最好的實踐措施和通過審計,企業(yè)應該自己管理他們的密鑰,或者使用來自于加密軟件提供商那里的可信服務;
現(xiàn)有加密技術中使用的密鑰如DRM和硬盤加密產(chǎn)品應該在企業(yè)內(nèi)部,使用密鑰存儲技術來集中管理;硬件安全調(diào)制應該用于存儲密鑰,以及處理加密操作如加解密、簽名和修改等;
企業(yè)使用者應該通過注冊步驟去啟用企業(yè)中的加密操作和其他處理,如能根據(jù)需要來訪問加/解密鑰的內(nèi)容感知或保格式加密系統(tǒng);
基于身份認證的所有組件,將技術部署整合進公司系統(tǒng),在處理流程中做授權決定使用捆綁加密操作來管理加解密過程的密鑰;
如有可能,使用現(xiàn)有的系統(tǒng)如E-DRM 或數(shù)據(jù)防泄露(DLP);
將加密操作和密鑰管理捆綁到公司的身份認證系統(tǒng)上,為組織提供最大靈活度的整合,以及使用組織已經(jīng)了解、審計過的或檢驗過的技術。
另外,對于云數(shù)據(jù)庫的加密,可以參考如下實踐建議:
使用標準算法。不要使用專用的不規(guī)范的技術,專用加密算法沒有被證明且容易被攻破;
避免使用舊的不安全的加密標準如數(shù)據(jù)加密標準(DES);
使用對象安全。即使在加密的情況下,也應該堅持使用基本對象安全(SQL準許及廢除聲明)去阻止對數(shù)據(jù)的訪問;
不要加密主鍵或者索引列。如果加密主鍵,將必須加密所有的參考外部鍵。如果企業(yè)加密索引列,當企業(yè)曾是使用加密數(shù)值時,查詢數(shù)據(jù)將會很慢;
使用柱狀的方法去加密(因為大數(shù)據(jù)系統(tǒng)使用這種方式)。