Google Search

自訂搜尋

2009年2月20日 星期五

[IT Architecture] Oracle Security - Encrypted Tablespace

如之前文章所談,在資訊安全的領域尤其是資料安全是一個備受注目的領域. 現行的企業資料大多存放於關連式資料庫(Oracle是大宗)之中,裡面的資料安全有很多層面在進行保護,不論是透過Database或Application都有很多方案可加強資料安全. 但假想一個狀況,資料在備份到磁帶後,假設磁帶被有心人取得後,只要他有安裝ORACLE並且懂得如何Restore,這些資料不是馬上被看光光. 別擔心,ORACLE早就想到這一點,他的SOLUTION就是- Encrypted Tablespace. 將Oracle的TableSpace做加密的動作後,將加密用的Key另外儲存. 這時就算有心人拿的磁帶拿不到加密Key也是白搭.

Oralce在10G時發表了 TDE(Transparent Data Encryption) Column Encryption,他可以針對Table的特定欄位做加密,但這個作法對效能有一定的副作用,因為被加密的欄位若有Index,其值也同時被打亂,後續的存取因為值已經被打亂變成比較沒有效率. 儘快整個存取過程對開發人員是透明的,就是程式不用作另外處理,但因為效能問題,整個成效被大打折扣.

到了Oracle 11G, 一個新觀念被導進來,就是Encrypted Tablespace. 加密的對象變成整個Tablespace, 有效解決了Column level加密所造成的效能問題. 整個運作過程如下述:
  • 當被加密的資料被選取時,Server Process一樣將資料搬到Buffer cache,然後回應給User Session. 資料在搬到Buffer cache之前就被解密. 所以資料在Buffer cache時已是解密狀態. 這時不管是Index range scan或Join等的動作,因為也運作在Buffer cahce,所以效能的問題就被解決.
  • 後續當資料被寫回磁碟時,DB Writer會再將資料作加密的動作. 也包括 Log writer同樣也會做加密動作.
整個加密的主角在Encryption key,基本上這個key被儲存在Database之外,就是由所謂的External security module管理. 這個External security module需要額外的密碼作管理. 這也是說,儘管有心人拿到儲存資料的Tape,但只要他拿不到這組密碼一樣解不開資料.

資料安全管理不易推動的原因多半不是因為沒有工具,而是工具本身有太多副作用不是對執行效能有影響就是造成管理或程式開發很多額外的工作. ORACLE 11G提供的這個新工具想必吸引很多CIO的目光,讓我們一起看看他未來的發展吧!

沒有留言: