關于數據庫加密,你不能不知道的秘密(二)
本文接前文,繼續通過幾個相關問題的闡述,解開數據庫加密的神秘面紗。
1. 如何彌補數據庫加密系統對數據庫保護的不足?
通過配套使用數據庫審計、數據庫防火墻、數據庫脫敏等系統,設置安全規則,限制敏感數據被訪問的記錄數量、被訪問的語句類型等多個方面,防止SQL注入、防止拖庫、防止后門程序等攻擊形式,從而形成對數據庫的全方位保護,彌補數據庫加密對數據庫保護的不足。
2. 數據庫加密的關鍵技術有哪些?
1)透明加密技術:為使得數據加密后對外部訪問完全透明,需要支持所有的訪問方式和數據庫特性,這是數據庫加密的基本要求。這就需要加密后表名、字段名保持不變;支持查詢、插入、更新、刪除等操作;以及支持SQL語句訪問、存儲過程、觸發器、用戶自定義函數、主鍵、外鍵、各種約束等特性。
2)密文索引:字段被加密后,數據原來的字段屬性和大小關系都會被修改,原來的索引也不再有效。比如對數值型字段“工資”進行加密,加密后字段類型可能變為字符型或者RAW類型,且密文不再保持加密前內容的大小關系。如果需要檢索指定的工資值或者范圍值,一種方法就是將所有加密內容解密后再進行檢索,但是這勢必會導致性能的極大降低。密文索引就是對被加密字段建立索引,使得字段能在被加密狀態下被高速的執行等值、范圍甚至是模糊檢索,以避免加密導致的性能大幅降低。
3)密鑰管理:數據的加密和解密都需要使用密鑰,密鑰需要被妥善的管理才能保障數據的安全。這就好比無論多么堅固的鎖,如果鑰匙沒有被妥善保存,都將是形同虛設。密鑰的管理涉及到密鑰的產生、交換、輪換、失效、備份等環節。在數據庫加密中,由于涉及到多個字段的加密,所以一般需要設計多級密鑰。需要對所有的密鑰進行安全的管理,防止密鑰被泄漏或者破壞。
3. 密文索引技術有哪些?
密文索引技術可以粗略的劃分為兩代:
第一代密文索引:基本解決性能和透明問題。基本思想是利用數據庫的索引機制,建立能夠快速查找的B樹索引。并且對B樹所有的節點進行加密,防止索引泄密。該代技術由北京理工大學戴林教授發明。
第二代密文索引:相比第一代技術,具有更高的性能,并且支持通配符模糊檢索。基本思想同樣是利用數據庫的機制,建立能夠快速查找的索引。并且對索引和加密字段的關聯關系進行加密,防止索引泄密。該代技術由中安威士發明。
4. 數據庫加密系統的關鍵指標有哪些?
- 是否完全透明,支持所有的數據訪問和操作,以及所有的數據庫特性;
- 能否對密文實現高速等值和范圍查詢;
- 能否對字符型加密字段實現高速模糊查詢,也就是LIKE查詢;
- 能否對數據庫用戶進行增強的訪問控制;
- 密文索引自身是否安全性,索引不應成為新的泄密點;
- 密鑰是否實現了安全管理,密鑰的組成、保存、生命期等符合相關安全規則和規定。
5. 國內主要數據庫加密廠家有哪些?
包含中安威士在內,目前國內的數據庫加密源廠家只有很少幾家。為防止廣告嫌疑,本文不對各家產品的來源及安全性、性能等方面進行評論。歡迎第三方評測機構進行評測。
6. 為什么數據庫加密產品只支持Oracle?
目前國內的數據庫加密產品都基于第一代索引技術研制,采用庫內擴展的技術路線。其密文索引的實現依賴于數據庫開放的自定義索引接口。所謂自定義索引就是數據庫允許用戶開發索引插件,對數據庫自身無法識別的數據類型,例如圖片、音樂等進行索引。我們可以將加密后的字段看成數據庫不能識別的數據類型,從而定義出密文索引。目前主流數據庫中,僅有Oracle數據庫提供這種接口。而對于不提供這種接口的數據庫來說,雖然仍可以實現透明加密,但是不能實現對加密字段的高速索引,從而性能很低,難以成為通用產品。所以市場上只有針對Oracle數據庫的數據庫加密產品。
7. 能否實現通用的數據庫加密?
由于上述原因,庫內擴展的方式不大可能實現通用的數據庫加密產品。實現通用的數據庫加密產品可能的方式有:
1)全盤和文件加密。也即對存儲磁盤或者數據庫文件進行加密,但是這種加密方式的安全性較低;
2)數據庫加密網關或加密驅動。類似于CryptDB的系統,在數據庫前部署網關,實現數據的加密。中安威士發明的新專利技術已經克服了CryptDB的缺陷,解決了對所有訪問語句的支持,實現了密文的等值、范圍、以及模糊索引,并將繼續實現對存儲過程,觸發器等的支持。
3)應用加密網關。雖然這種加密方式并不能準確的被稱作數據庫加密,但是可以做到數據庫無關。
8. 如何選擇數據庫加密產品?
選擇數據庫加密產品,需要考查如下因素:
a) 是否對應用完全透明,尤其是:
- 對主鍵、外鍵的透明加密;
- 加密字段的值約束、唯一性約束的透明支持;
- 對存儲過程,用戶自定義函數、觸發器等的透明支持。
b) 性能方面,加密是否導致數據庫性能的顯著降低。需要重點關注以下性能:
- 初始批量加密的性能,也即將已有表中數據批量進行加密的性能;
- 等值檢索和范圍檢索的性能,也就是從大量加密信息中檢索到滿足等值和范圍查詢條件記錄的性能;
- 模糊檢索的性能,也就是使用LIKE進行關鍵字、通配符檢索的性能;
- 插入(INSERT)、刪除(DELETE)、更新(UPDATE)記錄的性能。
c) 安全性方面,加密系統是否有新的安全漏洞:
- 索引是否安全:密文索引加密強度是否足夠,或者索引是否直接使用了明文;
- 能否限制DBA等高權限用戶對加密字段的訪問;
- 是否部分明文暴露:是否將敏感數據解密后存儲于臨時表,這些明文信息將直接暴露給攻擊者。
d) 其他方面:
- 產品是否真正國產;
- 廠家是否真正掌握核心技術;
- 廠家是否具有外資背景,具有外資背景的廠家的產品,應用于敏感部門具有泄密和法規的風險;
- 廠家是否已有或者存在潛在的知識產權糾紛。
9. 數據庫加密未來的發展趨勢會是怎樣的?
目前國內市場主流的數據庫加密方式是庫內擴展加密,僅能比較完美的支持Oracle數據庫。但是隨著云計算和大數據的發展,未來的數據庫加密將朝著如下趨勢發展:
a) 面向云計算的通用網關式數據庫加密產品將會在將來一到兩年內出現,并將首先支持云計算中的主力數據庫MYSQL,然后再支持其他關系型數據庫;
b) 逐漸支持NoSQL數據庫的加密,以加固大數據應用;
c) 數據庫加密將與數據庫審計、數據庫防火墻、數據庫脫敏等形成ALL-IN-ONE的數據庫安全平臺;
d) 數據庫加密產品的市場接受度將會越來越高,市場容量將會爆發;
e) 在云計算中,包括公有云、私有云以及混合云,包括數據庫加密在內的數據庫安全產品將成為標配。