ORACLE 加密(TDE) 對欄位加密測試

gaopengtttt發表於2011-08-05
                  
              ORACLE TDE(Transparent Data Encryption)
參考http://space.itpub.net/17203031/viewspace-681943
1、檢視版本,ORACLE 10G後才有TDE
2、建立主加密目錄,修改SQLNET.ORA目錄
ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=FILE)
       (METHOD_DATA=
        (DIRECTORY=/oradata/oracle/product/10.2/ora_wallet)))
3、建立master key檔案,並且指定密碼
alter system set encryption key identified by gelc123123;
這時會在設定的目錄下多一個檔案ewallet.p12
4、啟動和關閉wallet
SQL> alter system set encryption wallet close;
System altered.
SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY gelc123123;
System altered.
5、欄位TDE測試
建立表
SQL>  create table t
  2    ( id number primary key,
  3      name varchar2(10) ENCRYPT);
 
Table created
插入資料
SQL> insert into t
  2  values(1,'test');
訪問
SQL> select * from t;
 
        ID NAME
---------- ----------
         1 test
 關閉wallet
 alter system set encryption wallet close;
 再次訪問未加密欄位
 SQL> select id from t;
 
        ID
----------
         1
訪問加密欄位
SQL> select name from t;
 
select name from t
 
ORA-28365: wallet is not open
提示wallet沒有開啟
6、測試資料檔案洩露後,嘗試開啟資料
提取資料
expdp ppzhu/gelc123 dumpfile=DATA_PUMP_DIR:ppzhu.dmp logfile=DATA_PUMP_DIR:log1.log
嘗試匯入
impdp test123/gelc123 remap_schema=ppzhu:test123 dumpfile=WORK_DIR:ppzhu.dmp logfile=WORK_DIR:log1.log
報錯如下:
ORA-39083: Object type TABLE failed to create with error:
ORA-28365: wallet is not open
Failing sql is:
CREATE TABLE "TEST123"."T" ("ID" NUMBER, "NAME" VARCHAR2(10 BYTE) ENCRYPT USING 'AES192' 'SHA-1') PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "PPZHU"
7、結論
透過ORACLE TDE,我們可以對敏感的資料設定一個wallet來進行加密,如果有居心不良人員透過擷取資料包或者偷取備份檔案,
試圖進行資料恢復或者資料讀取的時候,都必須擁有wallet密碼,如果沒有wallet密碼就不能成功的讀取資料,從而能夠防止
資料洩露。

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

相關文章