資料庫安全之TDE列加密

張衝andy發表於2017-01-09

透明資料加密(Transparent Data Encryption)

 

TDE - 基於列的加密
由於有了Oracle的TDE-基於列的加密,你所要做的只是定義需要加密的列,Oracle將為包含加密列的表建立一個私密的安全加密金鑰,然後採用你指定的加密演算法加密指定列的明文資料。
 這個加密,不需要我們寫特殊的程式碼,只要我們制定“需要加密的列”,當使用者插入下一行資料的時候,資料庫透明的加密資料然後儲存加密後的資料。當使用者讀取資料時,資料庫給我們自動解密,也不需要應用程式去修改任何程式碼。
 
1.保證相容版本高於10gSQL> show parameter compatible

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 11.2.0

2. 設定wallet的位置(在sqlnet.ora檔案中寫入如下內容,需要重啟資料庫才能生效):   指定 ENCRYPTION_WALLET_LOCATION 引數

[oracle@11g admin]$ cat sqlnet.ora

#SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES)
ENCRYPTION_WALLET_LOCATION = 
(SOURCE= 
(METHOD=file) 
(METHOD_DATA= 
(DIRECTORY=/home/oracle/wallet)))

3)在指定(DIRECTORY路徑下建好wallet目錄。 不然報:ORA-28368: cannot auto-create wallet

[oracle@11g ~]$ mkdir wallet

[oracle@11g wallet]$ pwd

/home/oracle/wallet

4)在wallet裡面建立key

SQL> alter system set encryption key authenticated by "andy";

System altered.

5)建立一個表,對其中某列

SQL> create table andy.andy_tde( 
id number(10) primary key, 
col_tde varchar2(50) encrypt using 'AES192' 
); 2 3 4

Table created.

說明:TDE支援的加密演算法:

3DES168 AES128  AES192(預設)  AES256

SQL> set linesize 300
SQL> select * from dba_encrypted_columns;

OWNER TABLE_NAME COLUMN_NAME ENCRYPTION_ALG
------------------------------ ------------------------------ ------------------------------ ------------------
ANDY ANDY_TDE COL_TDE AES 192 bits key

 

SQL> insert into andy_tde values (1,'tde');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from andy_tde;

ID COL_TDE
---------- ---------------------------------
1 tde

6)如果關閉wallet,無法訪問加密的資料:

SQL> alter system set wallet close identified by "andy";

System altered.

SQL> select * from andy_tde;
select * from andy_tde
*
ERROR at line 1:
ORA-28365: wallet is not open

7)重新開啟wallet,才可以訪問加密的資料

SQL> alter system set wallet open identified by "andy";

System altered.

SQL> select * from andy_tde;

ID COL_TDE
---------- ----------------------------
1 tde

 

 

 

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

相關文章