標籤:
/*
author:CH
date:2015
theme:oracle TDE test
*/
一透明加密(TDE, Transparent Data Encryption)
參考:
http://www.oracle.com/technetwork/cn/tutorials/tde-096772-zhs.html#t3
http://www.eygle.com/archives/2011/09/oracle_transparent_data_encryption.html
http://blog.itpub.net/17203031/viewspace-681825/
作用:防止丟失介質後會被別人讀取到資料。在wallet開啟的情況下,使用sql語句查詢實際上是沒有限制的。
二、操作
操作開始,測試於192.168.8.126(ORACLE_SID=db),使用oracle使用者登入電腦。
# su – oracle
1. 修改 sqlnet.ora,確認加密檔案放在哪裡
# cd /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/
# vim sqlnet.ora
/*
ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=FILE)(METHOD_DATA= (DIRECTORY=/u01/app/oracle/product/11.2.0/dbhome_1))) --紅色的是路徑
*/
2. 開啟錢夾,建立密密鑰
# sqlplus
(1)必須以dba身份登入
(2)開啟wallet修改密鑰,有兩種選擇,一種“萬能”,一種“錢夾”(wallet)
--萬能密鑰
SQL> alter system set key identified by "test123456";
--錢夾密鑰(當前未使用)
SQL> alter system set wallet open identified by "test123456";
開啟wallet,設定好密鑰之後,完成基礎設定。
--關閉
SQL> alter system set encryption wallet close identified by "test123456";
加密檔案,路徑
3. 要確認啟用了透明資料加密,一般而言都是開了的
若是沒開,可以到em去開啟
4.對錶中的列進行加密
--對value1進行加密(在126上面有這個表,有幾條資料)
create table test2
(
id int ENCRYPT NO SALT,
value1 number ENCRYPT ,
value2 int
);
create index idx1_test2 on test2(ID);
--若是關閉了wallet,查詢會報錯
SQL> alter system set encryption wallet close identified by "test123456";
select value1 from test2;
select * from test2;
ORA-28365: Wallet 未開啟
5.可以對錶空間進行加密
6.查看透明加密情況:
l dba_encrypted_columns:記錄所有的加密欄位;
l all_encrypted_columns:記錄目前使用者所能訪問到的所有加密欄位;
l user_encrypted_columns:記錄目前使用者自身Schema所有的加密欄位;
7.取消加密可以在em中管理 8.Salt參數
(1)在加密列時,存在兩個選項:Salt和No Salt。
Salt在加密前對資料增加隨即字串,增加破解的難度,使得同樣的字串加密結果不同;而對於NO Salt,則同樣字串可以獲得同樣的加密輸出,其安全性相對略低。
(2)在加密列上,如果使用Salt方式,則不能建立索引,Salt加密和索引兩種屬性互斥,不能同時設定。
(3)預設Salt.
9.TDE的缺點
(1)使用TDE的情況下,資料庫檔案中儲存的資料值是進行過加密的。加密過的列值一般要長於未經處理資料值,所以使用TDE之後資料表要比不使用大。
(2)TDE的加解密操作完全是建立在自動加解密基礎上。插入資料、修改資料的時候會自動將資料加密後存放在資料表中;選擇資料時會自動的將加密過的列值進行解密。這種操作無形中是增加了資料操作的成本
(3)TDE是不負責資料轉送階段加密的。資料從DBMS傳出後,還是以明文方式傳輸到應用。
ORACLE 透明加密(TDE)