加密技術解決資料被竊取

buptdream發表於2013-05-12

                              加密技術解決資料被竊取

     

災難描述:

   2013428日,接到客戶的一個電話,說網路部發現有黑客進入到財政資產系統,由於發現的比較及時,黑客對資料庫的檔案拷貝沒有完成。由於資產系統可以反映一些比較敏感資訊,需要加強保護。客戶對此十分擔心,需要網路部門和系統開發商提出相關技術來解決資訊被竊取。

環境描述:

 該系統採用java開發,後臺採用的資料庫為oracle 11Gr2,作業系統為linux x86-64

案例分析:

    對於資料庫的資料進行加密,可以防止檔案被竊取後恢復資料。Oracle和第三方公司提供了一些可以抽取資料檔案內容的工具,這些工具的設計初衷是為解決一些故障案例,但也很容易被一些人用在竊取資料資訊方面。

oracle資料庫中,除去資料檔案本身,redo,undo也可以恢復一些資料,因此這些檔案都需要進行加密。在這個過程中,我們可以自己通過手工的方式對資料進行加密,把加密的過程寫在應用中,不要把加密的資訊放在資料庫的表中。在應用中進行加密,需要對程式碼進行保護,防止程式碼被竊取從而金鑰被破解,程式碼封裝要進行嚴格設計。

Oracle在加密技術上引入了wallet的技術,加密後需要資料檔案和密碼同時具備才可以訪問資料庫。在一些比較敏感的列上,可以採用列加密的技術保護資料,一旦被加密列上的資料塊被訪問時,這個列就會被加密,與這個列相關的redo,undo,temp資料也會加密。這個技術在資料庫中非常容易實現,建立好wallet後,在建立表的過程中新增ENCRYPT就可以,如下:

Create table test

(id number(10),

Name varchar2(10) ENCRYPT)

一旦我們的資料庫檔案被竊取,在訪問的時候就會有ORA-28365 wallet is not open的錯誤。如果直接去抽取資料檔案,這個過程可以通過簡單的一個命令strings來檢視收到的也是有些加密過後的亂碼資訊,通過列加密,可以很好的保護我們的資料,當然也會帶來一些效能影響,需要綜合來考慮。

     除列級的加密技術之外,oracle也提供了在表空間級別進行透明加密。一旦表空間被加密,儲存在表空間中的各個資料塊都將加密,每一個資料塊中的每一個資料位元組都會被加密,這樣就可以很好的保護資料。表空間加密的技術實現是在建立表空間的語句後面新增上ENCRYPTION DEFAULT STORAGE(ENCRYPT)來實現,實現非常簡單。而且在效能問題上帶來的負面效果也比列加密要小。

CREATE TABLESPACE  buptdream
DATAFILE
'/u01/app/oracle/oradata/CHANGE/buptdream.dbf' SIZE 1024K
AUTOEXTEND ON NEXT
100K
ENCRYPTION DEFAULT STORAGE(ENCRYPT);


檢視DBA_TABLESPACESUSER_TABLESPACES中的ENCRYPTED列指出了表空間加密情況,顯示為YES表示表空間被加密。
SELECT tablespace_name, encrypted FROM dba_tablespaces;
TABLESPACE_NAME                ENC
------------------------------ ---
SYSTEM                         NO
SYSAUX                         NO
UNDOTBS1                       NO
TEMP                           NO
USERS                          NO
BUPTDREAM                     YES
6 rows selected.

     在資料庫級別做一些加密技術手段,在網路方面也需要嚴加控制,防止黑客的入侵,oracle也提供了一些防火牆的技術來解決安全問題。

    

    

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10701850/viewspace-760872/,如需轉載,請註明出處,否則將追究法律責任。

相關文章