淺談數據庫透明加密(TDE)
1. 數據加密技術概述
數據庫加密技術從誕生至今,已經歷多個階段,采用過多種實現方式,并一直處于持續發展之中。對于數據庫加密技術,我們可以從應用層、數據庫中間件、數據庫系統自身、數據庫系統所依賴的文件系統以及存儲硬件等方面考慮其具體實現。
圖片
? 磁盤加密技術
這種加密方式,是通過磁盤加密系統或存儲加密網關進行加密。其對數據庫文件所在的磁盤扇區進行加密,并在數據庫訪問這些扇區時進行解密。這種加密方式對數據庫自身是透明的,數據庫管理系統不會感知到加密或解密過程的存在。這種加密方式在存儲層工作,只能防止在磁盤丟失時敏感數據的泄漏。所有具有訪問磁盤權限的用戶都可以訪問到真實的數據庫文件,因此對于控制了操作系統的攻擊者來說,這種加密方式并沒有提供防護能力。
? 文件系統加密技術
在操作系統文件驅動層,將數據庫的存儲文件經過加密后存儲到磁盤上,并在數據庫訪問這些文件時進行解密。這種加密方式對數據庫自身來說也是透明的,數據庫管理系統不會感知到加密或解密過程的存在。這種加密方式可以防止因磁盤丟失和文件被復制而導致敏感數據泄漏。然而,對于控制了數據庫系統的攻擊者來說,文件仍然是開放的,因此沒有真正的防護能力。
? 透明數據庫加密技術
有些數據庫自身提供了加密機制,在數據庫內核實現了存儲的加密。這種加密方式可以有效防止因磁盤丟失和文件被復制而導致敏感數據泄漏。然而,對于控制了數據庫系統的攻擊者來說,這種加密方式并不可靠,沒有提供防護能力。此外,其密鑰管理通常不會對數據庫用戶開放,因此安全性得不到保證,也無法得到國內相關評測機構的認可。
? 后置代理加密技術
這種技術是通過數據庫的內置能力,如通過使用視圖、觸發器和擴展索引等機制,可以實現透明加密。由于引入了獨立的第三方程序,通過控制加密和解密的權限,增加了額外的訪問控制。對于數據庫內的不同用戶,也可以控制其對加密數據的訪問。然而,這種加密方式無法越過應用系統,實現應用系統用戶對敏感數據的訪問控制。此外,這種加密方式依賴于數據庫系統的擴展索引機制,并不能在所有數據庫上實現。
? 前置代理加密技術
這一技術是通過對數據庫前端部署數據庫加密網關,或者通過擴展數據庫訪問驅動(如JDBC驅動)實現數據庫加密。這種方式理論上能夠支持所有的數據庫,是一種通用的解決方案,且安全性更高。但需要這一層能實現對所有訪問語句和訪問機制的支持,例如對存儲過程和觸發器等都需要提供支持。
? 應用系統加密技術
這一方式是通過應用系統自身完成數據加密或者通過應用前置一個加密網關來實現。針對前者需要較大的研發投入實現所需加密能力,后者則通過將數據加密的位置提前,在數據進入應用系統之前進行加密。后者這種加密方式可以控制應用系統的用戶對數據的訪問權限,并且真實數據對所有數據庫用戶都是不可見的,是最安全的一種加密方式。事實上,無論是這兩種方式的哪一種,都會由于應用系統的復雜性,實現的難度也較大。
總之,數據被加密的位置離用戶越近,安全性越高,同時實現的難度也越大。以上所述的幾種加密方式,數據加密的位置離用戶是逐步靠近的,防護能力也是逐步提升的。
2. 數據庫透明加密(TDE)
1).何為TDE
透明數據加密(TDE)是一種數據庫端存儲加密技術,全稱為Transparent Data Encryption。這種技術對應用系統完全透明,通常由數據庫廠商在數據庫引擎中實現。在數據庫引擎的存儲管理層中增加一個數據處理過程,當數據由數據庫共享內存寫入到數據文件時對其進行加密,而當數據由數據文件讀取到數據庫共享內存時則對其進行解密。因此,數據在數據庫共享內存中以明文形態存在,而在數據文件中則以密文形態存在。由于該技術的透明性,任何合法且有權限的數據庫用戶都可以訪問和處理加密表中的數據。
圖片
2).TDE 優點
- 可以確保對敏感數據進行加密,并簡化加密活動,不依賴數據庫系統之外的能力。
- 不同于后置代理方式,無需補充表、觸發器或視圖來解密授權用戶或應用程序的數據。對于數據庫用戶和應用程序,表中的數據是透明解密的。
- 對于訪問此數據的數據庫用戶和程序,TDE可用于為處理敏感數據的應用程序提供穩健的數據加密,而對應用程序的更改最少或沒有更改。
- 不影響數據庫自身能力,通常管理動作,如利用在線表重新定義,是可以在生產系統上加密數據而不停機。
- 性能損耗極小,通常可以忽略。
3).TDE 缺點
- 不能完全阻止SQL注入攻擊。SQL注入攻擊者如果使用應用系統訪問數據庫的授權用戶對數據庫發起攻擊,則能夠獲得加密系統對該用戶的相應授權,能夠訪問到該授權項下的敏感數據。
- 不能完全阻止攻擊者偽造身份對數據庫的攻擊。當攻擊者通過社交工程,完全竊取并偽造了具有對敏感數據合法訪問權限的用戶的帳號、密碼、以及應用系統、IP信息時,數據庫加密將不能對其訪問進行限制。
- 不能完全阻止授權應用系統后門程序對數據庫的違規訪問。當應用系統被授權訪問敏感數據,但是被開發者留有后門時,數據庫加密系統并不能識別這種后門并加以阻止。
- 對合規性的滿足上有一定缺陷,原因是其密鑰管理方式共存于數據庫中(部分可依賴外部),難以滿足嚴格監管要求。
- 加密粒度較粗,無法實現精細粒度控制,通常只能對庫、文件級別,個別可做到表級加密。無法實現針對列或行級的加密能力
4).主流產品TDE能力
目前主流的數據庫產品大多已支持數據庫透明加密,但各產品的加密能力差異較大。這里收集了部分產品的加密能力,供參考。
圖片