新聞中心
Oracle SecureFiles是在Oracle 11g引入的,它有傳統的大對象(已經更名為BasicFile LOB)所不具備的一些優(yōu)勢。Oracle SecureFile LOB支持智能數據壓縮,它是一種消除多次存儲相同數據副本的去重方法,還支持其他一些使用大對象提升性能的特性。這些新特性中最有用的一個是Oracle的透明數據加密功能,目前已經擴展并加入了Oracle SecureFiles。

創(chuàng)新互聯建站堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。10年網站建設經驗創(chuàng)新互聯建站是成都老牌網站營銷服務商,為您提供網站設計、成都網站建設、網站設計、H5技術、網站制作、品牌網站設計、成都微信小程序服務,給眾多知名企業(yè)提供過好品質的建站服務。
當我們在一個或多個LOB字段上啟用透明數據加密(TDE)時,Oracle會在數據文件、備份文件和重做日志文件的塊層次上自動對字段執(zhí)行加密和解密操作。在啟用之后,LOB只能按照逐個字段的方式執(zhí)行加密,這個字段的所有LOB(跨越所有可用分區(qū))都會加密。應用程序和訪問數據表的用戶完全不知道所發(fā)生的透明數據加密操作。然而,由于傳統的導入導出工具和基于可轉移表空間的導出操作不支持TDE,所以在移動這些包含加密字段的數據時必須使用Data Pump導入和導出工具。
TDE支持下面的加密算法:
3DES16——使用168位密鑰的三重數據加密標準。
AES128——使用128位密鑰的高級加密標準。
AES192——使用192位密鑰的高級加密標準。這是默認算法。
AES256——使用256位密鑰的高級加密標準。
在開始使用透明數據加密之前,安全管理員必須先創(chuàng)建一個wallet和設定一個主密鑰。我們可以使用與其他Oracle數據庫組件共享的默認數據庫wallet。此外,我們可以創(chuàng)建一個TDE專用的獨立wallet。Oracle強烈建議使用一個獨立wallet來存儲主加密密鑰。如果sqlnet.ora文件中沒有設置ENCRYPTION_WALLET_LOCATION參數,那么它就會使用WALLET_LOCATION值。如果sqlnet.ora文件沒有設置WALLET_LOCATION,那么它就會使用默認數據庫wallet。默認數據庫wallet的位置是ORACLE_BASE/admin/DB_UNIQUE_NAME/wallet。
如果使用TDE專用的wallet,那么必須使用ENCRYPTION_WALLET_LOCATION參數在sqlnet.ora文件中指定wallet位置。主密碼將用于保護數據表密碼和表空間加密密鑰,并且存儲在外部安全模塊中。默認情況下,TDE會生成一個隨機密鑰。此外,它也可能是來自于專門用于加密的PKI證書的現有密鑰對。
使用下面的命令,就可以設置主加密密鑰:
ALTER SYSTEM SET ENCRYPTION KEY ["certificate_ID"] IDENTIFIED BY "password";
certificate_ID ——這是一個可選字符串,它包含了Oracle wallet所存儲證書的唯一標識符。如果想要使用PKI私有密鑰作為主加密密鑰,則可以使用這個參數。
password ——這是安全模塊一定要使用的wallet密碼。它區(qū)分大小寫。
這個數據庫必須將主加密密鑰加載到內存中,然后它才能加密或解密字符/表空間。下面的ALTER SYSTEM命令將顯式打開wallet:
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "password"
其中的“password”值是指創(chuàng)建加密密鑰時所使用的密碼。這個密碼串必須添加到雙號中。在wallet打開之后,它會一直保持打開,直到數據庫實例關閉或顯式關閉wallet。下面的命令將顯式關閉wallet:
ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "password"
關閉wallet將禁用所有加密和解密操作。每當我們重新啟動一個數據庫實例,我們都必須打開wallet,重新啟用加密和解密操作。一旦創(chuàng)建和打開了wallet,我們就可以在ENCRYPT子句中使用CREATE TABLE和ALTER TABLE命令。
用于加密非LOB字段的透明數據加密語法與在Oracle SecureFiles中啟用加密的語法完全相同。它們有一個重要的區(qū)別,非LOB字段可以使用NO SALT參數阻止TDE在加密數據之前先給數據添加一個隨機字符串。Oracle SecureFile LOB字段不支持NO SALT選項。我們可以使用數據字典視圖USER_ENCRYPTED_COLUMNS確定應該加密哪一些字段,以及這些字段的狀態(tài)。下面是一些ENCRYPT子句的例子:
CREATE TABLE tab_3DES (col1 CLOB ENCRYPT USING '3DES168')
LOB(col1) STORE AS SECUREFILE(
CACHE
NOLOGGING
);
使用默認加密算法(AES192)和一個密碼創(chuàng)建一個Oracle SecureFile LOB字段:
CREATE TABLE tab_enc_pw (col1 CLOB ENCRYPT IDENTIFIED BY badpassword)
LOB(col1) STORE AS SECUREFILE(
CACHE
);
使用AES256啟用LOB加密:
ALTER TABLE tab_nocrypt MODIFY
( col1 CLOB ENCRYPT USING 'AES256');
通過重新生成加密密鑰修改一個Oracle SecureFiles字段:
ALTER TABLE tab_3DES REKEY USING 'AES256';
Disable LOB encryption:
禁用LOB加密:
ALTER TABLE tab_enc_pw MODIFY
( col1 CLOB DECRYPT);
Oracle數據庫中存儲的大對象數據容量會繼續(xù)增長,但是存儲費用在不斷下降。其中有許多的敏感數據,如醫(yī)療記錄、員工數據和知識產權。能夠對這些信息進行加密,這是非常寶貴的,也可以避免在將來投入大量金錢和精力去實現安全性。
新聞名稱:如何在OracleSecureFiles中加密數據
網頁路徑:http://www.5511xx.com/article/coohhdg.html


咨詢
建站咨詢
