国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Oracle DB 安全性 : TDE HSM TCPS Wallet Imperva

這篇具有很好參考價值的文章主要介紹了Oracle DB 安全性 : TDE HSM TCPS Wallet Imperva。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? 配置口令文件以使用區(qū)分大小寫的口令

? 對表空間進(jìn)行加密

? 配置對網(wǎng)絡(luò)服務(wù)的細(xì)粒度訪問

?TCPS

  • 安全口令支持

Oracle Database 11g中的口令:

? 區(qū)分大小寫

? 包含更多的字符

? 使用更安全的散列算法

? 在散列算法中使用salt?

用戶名仍是Oracle 標(biāo)識符(最多30 個字符,不區(qū)分大小寫)。

安全口令支持

為了遵守各種安全性和隱私規(guī)定,您必須使用更安全的口令。如果口令非常短或僅包含有限的字符,則對于強力攻擊就很脆弱,而包含較多不同字符的較長口令就很難被猜出或獲得。在Oracle Database 11g 中,口令的處理方式與早期版本中的處理方式有所不同:

? 口令區(qū)分大小寫??诹钪惺褂玫拇髮懽址托懽址F(xiàn)在是不同的字符。

? 口令可以包含未用引號括起來的多字節(jié)字符。如果口令包含除$、_或#外的任何特殊字符,則必須用引號括起來。

? 口令始終通過散列算法傳遞,然后作為用戶身份證明進(jìn)行存儲。用戶提供口令時,系統(tǒng)會對其進(jìn)行散列運算,然后將其與存儲的身份證明進(jìn)行比較。在Oracle Database?11g中,散列算法是早期版本數(shù)據(jù)庫中使用的公共算法SHA-1。SHA-1 是一種使用160 位密鑰的較強算法。

? 口令始終使用salt。如果輸入內(nèi)容相同,散列函數(shù)將始終生成相同的輸出。Salt 是添加到輸入中的唯一(隨機)值,用于確保輸出身份證明是唯一的。

  • 自動安全配置

? 默認(rèn)口令概要文件

? 默認(rèn)審計

? 內(nèi)置口令復(fù)雜性檢查

自動安全配置

Oracle Database 11g使用由Internet 安全中心(CIS) 基準(zhǔn)推薦的特定安全功能安裝和創(chuàng)建數(shù)據(jù)庫。與10gR2 的默認(rèn)安裝相比,CIS 推薦的配置更安全,而且開放程度足以使大多數(shù)應(yīng)用程序都能成功運行。許多客戶已采用了此基準(zhǔn)。CIS 基準(zhǔn)的一些建議可能與一些應(yīng)用程序不兼容。

  • 口令配置

默認(rèn)情況下:

? 啟用默認(rèn)口令概要文件

? 如果連續(xù)10 次登錄失敗,則鎖定該帳戶

在升級過程中:

? 口令不區(qū)分大小寫(除非進(jìn)行更改)

? 使用ALTER USER命令時口令區(qū)分大小寫

創(chuàng)建時:

? 口令區(qū)分大小寫

安全默認(rèn)配置

使用Database Configuration Assistant (DBCA) 創(chuàng)建自定義數(shù)據(jù)庫時,可以指定OracleDatabase 11g的默認(rèn)安全配置。默認(rèn)情況下,如果用戶使用不正確的口令多次嘗試連接Oracle 實例,則在第三次嘗試后該實例將延遲每次登錄。這種保護(hù)措施適用于從不同的IP地址或多個客戶機進(jìn)行的連接嘗試。稍后,它將逐漸增加用戶可以嘗試其它口令的時間間隔,最長時間大約為十秒。

創(chuàng)建數(shù)據(jù)庫時,將啟用具有如下設(shè)置的默認(rèn)口令概要文件:

PASSWORD_LIFE_TIME 180?

PASSWORD_GRACE_TIME 7?

PASSWORD_REUSE_TIME UNLIMITED?

PASSWORD_REUSE_MAX UNLIMITED?

FAILED_LOGIN_ATTEMPTS 10?

PASSWORD_LOCK_TIME 1?

PASSWORD_VERIFY_FUNCTION NULL?

Oracle Database 10g數(shù)據(jù)庫升級后,只有使用ALTER USER…命令更改口令后,口令才會區(qū)分大小寫。

創(chuàng)建數(shù)據(jù)庫時,默認(rèn)情況下口令區(qū)分大小寫。

  • 啟用內(nèi)置口令復(fù)雜性檢查器

執(zhí)行utlpwdmg.sql腳本創(chuàng)建口令驗證功能:

SQL> CONNECT / as SYSDBA

SQL> @?/rdbms/admin/utlpwdmg.sql

更改默認(rèn)概要文件:

ALTER PROFILE DEFAULT?LIMIT?

PASSWORD_VERIFY_FUNCTION verify_function_11g;

啟用內(nèi)置口令復(fù)雜性檢查器

verify_function_11g是一個PL/SQL 功能示例,可以輕松進(jìn)行修改以在您的站點中強制實行口令復(fù)雜性策略。此功能不需要在口令中嵌入特殊字符。

verify_function_11g和較早的verify_function都包含在utlpwdmg.sql文件中。

要啟用口令復(fù)雜性檢查,請創(chuàng)建一個歸SYS所有的驗證功能??墒褂锰峁┑囊粋€功能或?qū)ζ渲械囊粋€進(jìn)行修改來滿足您的要求。此示例顯示了如何使用utlpwdmg.sql腳本。

如果概要文件中命名的口令復(fù)雜性檢查功能中存在錯誤或此功能不存在,則不能更改口令,也不能創(chuàng)建用戶。解決方法是在概要文件中將PASSWORD_VERIFY_FUNCTION設(shè)置為NULL,直到問題得到解決。

verify_function_11g功能將檢查口令是否至少包含八個字符、是否至少包含一個數(shù)字和一個字母字符,以及是否至少有三個字符與以前口令不同。該函數(shù)還確認(rèn)此口令不是以下項:用戶名或附加了1 到100 之間任何數(shù)字的用戶名、反向的用戶名、服務(wù)器名或附加了1 到100 之間數(shù)字的服務(wù)器名,或者一組眾所周知的常用口令,如“welcome1”、“database1”、“oracle123”或“oracle(附加了1 到100 之間的數(shù)字)”等。

  • 管理默認(rèn)審計

檢查審計日志:默認(rèn)的審計選項涵蓋了重要的安全權(quán)限。

歸檔審計記錄:

? 導(dǎo)出

? 復(fù)制到其它表

刪除歸檔審計記錄。

管理默認(rèn)審計

檢查審計日志。默認(rèn)情況下,在Oracle Database 11g中將為對安全性非常重要的特定權(quán)限啟用審計。審計線索默認(rèn)記錄在數(shù)據(jù)庫AUD$表中,AUDIT_TRAIL參數(shù)設(shè)置為DB。對于大多數(shù)站點而言,這些審計不會對數(shù)據(jù)庫性能造成太大影響。Oracle 建議使用操作系統(tǒng)

審計線索文件。

歸檔審計記錄。要保留審計記錄,請使用Oracle 數(shù)據(jù)泵導(dǎo)出實用程序?qū)⑵鋵?dǎo)出,或者使用SELECT語句將一組審計記錄捕獲到單獨的表中。

刪除歸檔審計記錄。在檢查并歸檔審計記錄后,會從SYS.AUD$表中將其刪除。審計記錄將占用SYSTEM表空間中的空間。如果SYSTEM表空間無法增長,則無法為審計記錄提供更多空間,此時會針對每條審計語句生成錯誤。由于CREATE SESSION是已審計的權(quán)限之一,所以不能創(chuàng)建新的會話(除非用戶以SYSDBA身份連接)。可使用QUERY選項指定帶有日期范圍或SCN 范圍的WHERE子句,通過導(dǎo)出實用程序歸檔審計表。然后,使用相同的WHERE子句從審計表中刪除這些記錄。

當(dāng)AUDIT_TRAIL=OS時,會在由AUDIT_FILE_DEST指定的目錄中為每條審計記錄創(chuàng)建單獨的文件??梢詮?fù)制特定時間之前的所有文件,然后刪除它們。

注:SYSTEM表空間是使用autoextend on選項創(chuàng)建的。因此SYSTEM表空間可以根據(jù)需要增長,直到用盡磁盤上的可用空間。

系統(tǒng)會按照訪問針對成功和失敗的操作審核所有用戶的以下權(quán)限:

CREATE EXTERNAL JOB?

CREATE ANY JOB?

GRANT ANY OBJECT PRIVILEGE?

EXEMPT ACCESS POLICY?

CREATE ANY LIBRARY?

GRANT ANY PRIVILEGE?

DROP PROFILE?

ALTER PROFILE?

DROP ANY PROCEDURE?

ALTER ANY PROCEDURE?

CREATE ANY PROCEDURE?

ALTER DATABASE?

GRANT ANY ROLE?

CREATE PUBLIC DATABASE LINK?

DROP ANY TABLE?

ALTER ANY TABLE?

CREATE ANY TABLE?

DROP USER?

ALTER USER?

CREATE USER?

CREATE SESSION?

AUDIT SYSTEM?

ALTER SYSTEM?

SYSTEM AUDIT

ROLE?

  • 調(diào)整安全性設(shè)置

調(diào)整安全性設(shè)置

使用DBCA 工具創(chuàng)建數(shù)據(jù)庫時,可以選擇以下安全性設(shè)置:

? 保留11g的默認(rèn)增強安全設(shè)置(建議)。這些設(shè)置包括啟用審計和新的默認(rèn)口令概要文件。

? 還原到11g之前的默認(rèn)安全設(shè)置。要禁用特定類別的增強設(shè)置以實現(xiàn)兼容性,請選擇以下設(shè)置:

- 將審計設(shè)置還原為11g之前的默認(rèn)設(shè)置

- 將口令概要文件設(shè)置還原為11g之前的默認(rèn)設(shè)置

也可以使用DBCA 在創(chuàng)建數(shù)據(jù)庫后更改這些設(shè)置。在11g的默認(rèn)安全設(shè)置下,有些應(yīng)用程序可能無法正常運行。

應(yīng)始終設(shè)置安全的軟件權(quán)限。它不受用戶選擇的“Security Settings(安全設(shè)置)”選項所影響。

  • 設(shè)置安全性參數(shù)

? 使用區(qū)分大小寫的口令:

SEC_CASE_SENSITIVE_LOGON

? 防止DoS 攻擊:

SEC_PROTOCOL_ERROR_FURTHER_ACTION

SEC_PROTOCOL_ERROR_TRACE_ACTION

? 防止強力攻擊:

SEC_MAX_FAILED_LOGIN_ATTEMPTS?

設(shè)置安全性參數(shù)

Oracle Database 11g增加了一組新參數(shù)以加強數(shù)據(jù)庫的默認(rèn)安全性。這些參數(shù)是系統(tǒng)范圍的靜態(tài)參數(shù)。

使用區(qū)分大小寫的口令以加強安全性

新參數(shù)SEC_CASE_SENSITIVE_LOGON使您可以設(shè)置區(qū)分大小寫的用戶口令。Oracle 建議保留默認(rèn)設(shè)置TRUE。將此參數(shù)設(shè)置為FALSE可指定不區(qū)分大小寫的口令以實現(xiàn)向后兼容性。

ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE

注:禁用區(qū)分大小寫會使口令在強力攻擊面前變得更脆弱。

防止拒絕服務(wù)(DoS) 攻擊

本示例中列出的兩個參數(shù)指定了當(dāng)數(shù)據(jù)庫從客戶機處收到損壞的數(shù)據(jù)包時要執(zhí)行的操作。假設(shè)損壞的數(shù)據(jù)包來自可能的惡意客戶機。

SEC_PROTOCOL_ERROR_FURTHER_ACTION參數(shù)指定了要對客戶機連接執(zhí)行的操作:繼續(xù)、斷開連接或延遲接受請求。另一參數(shù)SEC_PROTOCOL_ERROR_TRACE_ACTION指定了監(jiān)視操作:NONE、TRACE、LOG或ALERT。

防止強力攻擊

新的初始化參數(shù)SEC_MAX_FAILED_LOGIN_ATTEMPTS的默認(rèn)設(shè)置為10,表示在連接嘗試達(dá)到指定次數(shù)后會自動斷開連接。即使未啟用口令概要文件,也會強制實施此參數(shù)。此參數(shù)可以防止程序連接到數(shù)據(jù)庫,然后成百上千次地嘗試口令以通過驗證。

  • 設(shè)置數(shù)據(jù)庫管理員驗證

使用帶有區(qū)分大小寫的口令的口令文件。

對管理員角色啟用嚴(yán)格的驗證:

? 在OID 中授予管理員角色。

? 使用Kerberos 票證。

? 使用SSL 證書。

設(shè)置數(shù)據(jù)庫管理員驗證

數(shù)據(jù)庫管理員必須經(jīng)過驗證。在Oracle Database 11g中,可以使用新的方法來更安全地執(zhí)行管理員驗證并集中管理這些已授權(quán)的用戶。此外,區(qū)分大小寫的口令還應(yīng)用于已授權(quán)用戶的遠(yuǎn)程連接上??墒褂孟铝忻罡采w此默認(rèn)行為:

orapwd file=orapworcl entries=5 ignorecase=Y

如果擔(dān)心口令文件易受破壞或難以維護(hù)許多口令文件,則可以實施嚴(yán)格驗證:

? 在Oracle Internet Directory (OID) 中授予SYSDBA或SYSOPER企業(yè)角色。

? 使用Kerberos 票證

? 使用SSL 證書

要使用嚴(yán)格驗證方法,必須將所有LDAP_DIRECTORY_SYSAUTH初始化參數(shù)設(shè)置為YES。將此參數(shù)設(shè)置為NO可禁用嚴(yán)格驗證方法。通過OID 或Kerberos 進(jìn)行的驗證還能提供集中管理或單一登錄功能。

如果配置了口令文件,則可先對其進(jìn)行檢查。用戶也可以作為OSDBA或OSOPER組的成員由本地操作系統(tǒng)進(jìn)行驗證。

  • 透明數(shù)據(jù)加密

TDE 中的新增功能包括:

? 表空間加密

? 支持LogMiner?

? 支持邏輯備用

? 支持流

? 支持異步更改數(shù)據(jù)捕獲

? 基于硬件的主密鑰保護(hù)

透明數(shù)據(jù)加密

一些新增功能可增強透明數(shù)據(jù)加密(TDE) 功能,這些功能是基于相同的基礎(chǔ)結(jié)構(gòu)構(gòu)建的。

為支持TDE 而對LogMiner 所做的更改提供了用于更改捕獲引擎的基礎(chǔ)結(jié)構(gòu),這些引擎可用于邏輯備用、流和異步更改數(shù)據(jù)捕獲。要讓LogMiner 支持TDE,它必須能夠訪問加密Wallet。要訪問該Wallet,必須裝載實例并使Wallet 處于開啟狀態(tài)。LogMiner不支持硬件安全模塊(HSM) 或用戶持有密鑰。

對于邏輯備用,可在源或目標(biāo)數(shù)據(jù)庫挖掘日志,因此用于這兩個數(shù)據(jù)庫的Wallet必須相同。

加密列的處理方式在流和基于流的更改數(shù)據(jù)捕獲中均相同。將在Wallet 所在的源中挖掘重做記錄。數(shù)據(jù)以未加密的方式傳輸?shù)侥繕?biāo)位置,然后在目標(biāo)位置使用Wallet 進(jìn)行加密。該數(shù)據(jù)可以使用高級安全選項在傳輸中進(jìn)行加密以實現(xiàn)網(wǎng)絡(luò)加密。

  • 使用表空間加密

創(chuàng)建加密的表空間。

1. 創(chuàng)建或打開加密Wallet:

SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY?"welcome1";

2. 使用加密關(guān)鍵字創(chuàng)建表空間:

SQL> CREATE TABLESPACE encrypt_ts

2> DATAFILE '$ORACLE_HOME/dbs/encrypt.dat' SIZE 100M

3> ENCRYPTION USING '3DES168'

4> DEFAULT STORAGE (ENCRYPT);

表空間加密

表空間加密以在寫入時進(jìn)行加密并在讀取時進(jìn)行解密的塊級別加密技術(shù)為基礎(chǔ),并不在內(nèi)存中對數(shù)據(jù)進(jìn)行加密。影響加密的唯一因素與I/O 相關(guān)聯(lián)。SQL 訪問路徑不變,并且支持所有數(shù)據(jù)類型。要使用表空間加密,加密Wallet 必須處于開啟狀態(tài)。

CREATE TABLESPACE命令包含一個用于設(shè)置加密屬性的ENCRYPTION子句,以及一個導(dǎo)致使用加密的ENCRYPT存儲參數(shù)。您可以指定USING 'encrypt_algorithm'來指示要使用的算法名稱。有效的算法包括3DES168、AES128、AES192 和AES256。默認(rèn)算法為AES128??梢栽赩$ENCRYPTED_TABLESPACES視圖中查看這些屬性。

加密的數(shù)據(jù)在執(zhí)行操作(如JOIN和SORT)期間會受到保護(hù)。這意味著數(shù)據(jù)在移動到臨時表空間時是安全的。還原日志和重做日志中的數(shù)據(jù)也受到保護(hù)。

如果平臺有相同的Endianess 和Wallet,則加密的表空間是可移動的。

限制

? 無法對臨時表空間和還原表空間進(jìn)行加密(所選的塊已加密)。

?Bfiles 和外部表未加密。

? 不支持跨不同的endian 平臺移動表空間。

? 當(dāng)前無法更改加密表空間的密鑰。解決方法是:使用所需的屬性創(chuàng)建一個表空間,然后將所有對象移動到新建的表空間中。

  • 硬件安全模塊

硬件安全模塊

硬件安全模塊(HSM) 是一種物理設(shè)備,可以安全地存儲加密密鑰。它還可以提供安全的計算空間(內(nèi)存)以執(zhí)行加密和解密操作。HSM 是Oracle wallet 的一種更安全的代替方法。

透明數(shù)據(jù)加密(TDE) 可使用HSM 來加強敏感數(shù)據(jù)的安全性。HSM 用于存儲TDE 使用的主加密密鑰。因為HSM 是一種物理設(shè)備而不是一個操作系統(tǒng)文件,所以在未授權(quán)的訪問嘗試中密鑰是安全的。使用主加密密鑰的所有加密和解密操作都在HSM 中執(zhí)行。這意味著主加密密鑰永遠(yuǎn)不會在不安全的內(nèi)存中公開。

有些供應(yīng)商可提供硬件安全模塊,這些供應(yīng)商還必須提供相應(yīng)的庫。

  • LOB 列的加密

? LOB 加密只能用于SECUREFILE LOB。

? LOB 列中的所有LOB 都已加密。

? 可以按列或按分區(qū)對LOB 進(jìn)行加密。

– SECUREFILELOB 和BASICFILELOB 可以共存

CREATE TABLE test1 (doc CLOB ENCRYPT USING 'AES128')?

LOB(doc) STORE ASSECUREFILE (CACHE NOLOGGING );?

LOB 列的加密

Oracle Database 11g 引入了一個經(jīng)過完全重新設(shè)計的大對象(LOB) 數(shù)據(jù)類型,此類型顯著提高了應(yīng)用程序開發(fā)的效率和可管理性,并簡化了應(yīng)用程序的開發(fā)過程。LOB 的這種Secure Files 實施提供了下一代的高級功能,如智能壓縮和透明加密。Secure Files 中的加密數(shù)據(jù)會就地存儲并可以隨機進(jìn)行讀取和寫入。

必須使用SECUREFILE參數(shù)創(chuàng)建LOB,并對LOB 列啟用加密(ENCRYPT)或禁用加密(DECRYPT,默認(rèn)值)??墒褂卯?dāng)前的TDE 語法將加密擴(kuò)展到LOB 數(shù)據(jù)類型。

系統(tǒng)仍支持早期版本中的LOB 實施以實現(xiàn)向后兼容性,但現(xiàn)在將其稱為Basic Files。如果將LOB 列添加到一個表中,則可以指定將其創(chuàng)建為SECUREFILES還是

BASICFILES。為了確保向后兼容性,默認(rèn)的LOB 類型為BASICFILES。

有效算法包括3DES168、AES128、AES192 和AES256。默認(rèn)算法為AES192。

  • Enterprise Manager 安全管理

通過EM 管理安全性。

? 對于以下項取代了Policy Manager:

– 虛擬專用數(shù)據(jù)庫

– 應(yīng)用程序上下文

– Oracle Label Security?

? 添加了“Enterprise User Security(企業(yè)用戶安全性)”頁

? 添加了TDE 頁

Enterprise Manager 安全管理

安全管理功能已集成到Enterprise Manager 中。

該功能取代了基于Policy Manager Java 控制臺的工具。以前通過Oracle Policy Manager 工具管理的Oracle Label Security、應(yīng)用程序上下文和虛擬專用數(shù)據(jù)庫現(xiàn)在通過Enterprise?Manager 即可進(jìn)行管理,但Oracle Policy Manager 工具仍然可用。

Enterprise Manager Security 工具已由Enterprise Manager 功能取代?,F(xiàn)在Enterprise User?Security 也可通過Enterprise Manager 進(jìn)行管理。ldap.ora文件配置完成后,會立即顯示Enterprise Manager 的菜單項。Enterprise Manager Security 工具仍然可用。

TDE 現(xiàn)在可通過Enterprise Manager 進(jìn)行管理,包括Wallet 管理。可以從Enterprise?Manager 頁中創(chuàng)建、打開和關(guān)閉Wallet。

  • 使用RMAN 安全性增強功能

? 配置備份粉碎功能:

RMAN> CONFIGURE ENCRYPTION FOR DATABASE ON;

? 使用備份粉碎功能:

RMAN> DELETE FORCE;

使用RMAN 安全性增強功能

備份粉碎是一項重要的管理功能,它使DBA可以刪除透明加密備份的加密密鑰,而無需以物理方式訪問備份介質(zhì)。如果加密密鑰被破壞,則加密備份將是無法訪問的,這不適用于受口令保護(hù)的備份。

可使用以下命令配置透明加密備份:

CONFIGURE ENCRYPTION FOR DATABASE ON;?

SET ENCRYPTION ON;?

默認(rèn)設(shè)置為OFF,不啟用備份粉碎功能。要粉碎備份,無需使用新命令,只需使用:DELETE FORCE;

  • 管理對外部網(wǎng)絡(luò)服務(wù)的細(xì)粒度訪問

1.創(chuàng)建ACL 及其權(quán)限:

BEGIN

DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (

acl => 'us-oracle-com-permissions.xml',?

description => 'Permissions for oracle network',

principal => 'SCOTT',

is_grant => TRUE,?

privilege => 'connect');?

END;

通過PL/SQL 程序包的網(wǎng)絡(luò)實用程序系列(如UTL_TCP、UTL_INADDR、UTL_HTTP、UTL_SMTP和UTL_MAIL),Oracle 用戶可以使用原始TCP 或基于原始TCP 創(chuàng)建的更高級別協(xié)議從數(shù)據(jù)庫進(jìn)行網(wǎng)絡(luò)調(diào)出。無論用戶是否具有對這些程序包的EXECUTE權(quán)限,都無法控制所訪問的網(wǎng)絡(luò)主機。新的程序包DBMS_NETWORK_ACL_ADMIN支持使用XML?DB 實施的訪問控制列表(ACL) 進(jìn)行細(xì)粒度控制。

1.創(chuàng)建訪問控制列表(ACL)。ACL 是在XML 文件中保存的用戶和權(quán)限的列表。以acl參數(shù)命名的XML 文檔與XML DB中的/sys/acl/文件夾相關(guān)。在本示例中,SCOTT被授予connect權(quán)限。ACL 中的用戶名區(qū)分大小寫,而且必須與會話的用戶名相匹配。只有resolve和connect權(quán)限,connect權(quán)限包含

resolve權(quán)限??蛇x參數(shù)可以指定這些權(quán)限的開始和結(jié)束時間戳。要將更多用戶和權(quán)限添加到此ACL 中,請使用ADD_PRIVILEGE過程。

2.將ACL 分配給一臺或多臺網(wǎng)絡(luò)主機:

BEGIN

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (

acl => 'us-oracle-com-permissions.xml',

host => '*.us.oracle.com',?

lower_port => 80,

upper_port => null);?

END

2.將ACL分配給一臺或多臺網(wǎng)絡(luò)主機。ASSIGN_ACL過程將ACL 與一臺網(wǎng)絡(luò)主機和一個端口或端口范圍(可選)相關(guān)聯(lián)。在該示例中,主機參數(shù)允許使用主機名通配符將ACL 分配給域中的所有主機。使用通配符會影響ACL 評估的優(yōu)先級順序。端口的相應(yīng)完全限定主機名在端口的相應(yīng)主機前進(jìn)行評估。完全限定的主機名在部分域名前進(jìn)行評估,子域在頂級域之前進(jìn)行評估。

創(chuàng)建ACL 后,可以將多臺主機分配到同一ACL 中,還可以將多個用戶按任意順序添加到同一ACL 中。

  • 小結(jié)

? 配置口令文件以使用區(qū)分大小寫的口令

? 對表空間進(jìn)行加密

? 配置對網(wǎng)絡(luò)服務(wù)的細(xì)粒度訪問

說明

Oracle加密技術(shù)主要分為兩種,一種是使用包DBMS_CRYPTO來加密解密應(yīng)用數(shù)據(jù),另一個是透明加密技術(shù)(TDE,Oracle10.2開始)。
前者針對應(yīng)用程序數(shù)據(jù)加密,應(yīng)用程序或者函數(shù)的調(diào)用者必須提供加密秘鑰,支持類型限制較多,對數(shù)據(jù)庫整體性能、數(shù)據(jù)安全(登錄到數(shù)據(jù)庫或者提取數(shù)據(jù)文件都是查看到相關(guān)數(shù)據(jù)的明文)意義不大。
后者主要針對對象存儲在數(shù)據(jù)文件中的內(nèi)容加密,或直接表空間加密,應(yīng)用無需調(diào)整,推薦使用表空間透明加密,限制較少。如使用加密技術(shù),需定期備份錢包,避免因外部存儲設(shè)備損壞造成秘鑰丟失,影響數(shù)據(jù)庫數(shù)據(jù)正常使用。
目前Oracle不支持其他加密算法,對數(shù)據(jù)庫本身性能影響較小、限制較小為表空間的透明加密。

兩種加密,具體介紹如下:

DBMS_CRYPTO簡單介紹

DBMS_CRYPTO提供用于加密和解密存儲的數(shù)據(jù)的接口,并且可以與運行網(wǎng)絡(luò)通信的PL / SQL程序結(jié)合使用。它支持多種行業(yè)標(biāo)準(zhǔn)的加密和哈希算法,包括高級加密標(biāo)準(zhǔn)(AES)加密算法。AES已獲得美國國家標(biāo)準(zhǔn)技術(shù)研究院(NIST)的批準(zhǔn),以取代數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)。

支持以下加密算法:
數(shù)據(jù)加密標(biāo)準(zhǔn)(DES),三重DES(3DES,2鍵和3鍵)
高級加密標(biāo)準(zhǔn)(AES)
MD5,MD4和SHA-1加密哈希
MD5和SHA-1消息認(rèn)證碼(MAC)
限制:
該VARCHAR2數(shù)據(jù)類型不直接支持DBMS_CRYPTO。在對類型的數(shù)據(jù)執(zhí)行加密操作之前VARCHAR2,必須將其轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)庫字符集AL32UTF8,然后將其轉(zhuǎn)換為RAW數(shù)據(jù)類型。完成這些轉(zhuǎn)換后,您可以使用DBMS_CRYPTO程序包對其進(jìn)行加密。
密鑰管理是程序化的。也就是說,應(yīng)用程序(或函數(shù)的調(diào)用者)必須提供加密密鑰。這意味著應(yīng)用程序開發(fā)人員必須找到一種安全地存儲和檢索密鑰的方法。該DBMS_OBFUSCATION_TOOLKIT程序包(不推薦使用,替代者是DBMS_CRYPTO)可以處理字符串和原始數(shù)據(jù),需要提交64位密鑰。DES算法本身的有效密鑰長度為56位。

舉例

 

--AES 256數(shù)據(jù)加密解密 declare input_string VARCHAR2 (200) := 'Secret Message'; output_string VARCHAR2 (200); encrypted_raw RAW (2000); -- stores encrypted binary text decrypted_raw RAW (2000); -- stores decrypted binary text num_key_bytes NUMBER := 256/8; -- key length 256 bits (32 bytes) key_bytes_raw RAW (32); -- stores 256-bit encryption key encryption_type PLS_INTEGER := -- total encryption type DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5; begin DBMS_OUTPUT.PUT_LINE ('Original string: ' || input_string); key_bytes_raw := DBMS_CRYPTO.RANDOMBYTES (num_key_bytes); encrypted_raw := DBMS_CRYPTO.ENCRYPT ( src => UTL_I18N.STRING_TO_RAW (input_string, 'AL32UTF8'), typ => encryption_type, key => key_bytes_raw ); -- The encrypted value in the encrypted_raw variable can be used here: decrypted_raw := DBMS_CRYPTO.DECRYPT ( src => encrypted_raw, typ => encryption_type, key => key_bytes_raw ); output_string := UTL_I18N.RAW_TO_CHAR (decrypted_raw, 'AL32UTF8'); DBMS_OUTPUT.PUT_LINE ('Decrypted string: ' || output_string); end;

BLOB的數(shù)據(jù)加密解密。

  • 創(chuàng)建一個有BLOB列的表
  • 插入raw值
  • 加密raw
  • 解密數(shù)據(jù)
 

- 1. Create a table for BLOB column: create table table_lob (id number, loc blob); -- 2. Insert 3 empty lobs for src/enc/dec: insert into table_lob values (1, EMPTY_BLOB()); insert into table_lob values (2, EMPTY_BLOB()); insert into table_lob values (3, EMPTY_BLOB()); set echo on set serveroutput on declare srcdata RAW(1000); srcblob BLOB; encrypblob BLOB; encrypraw RAW(1000); encrawlen BINARY_INTEGER; decrypblob BLOB; decrypraw RAW(1000); decrawlen BINARY_INTEGER; leng INTEGER; begin -- RAW input data 16 bytes srcdata := hextoraw('6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D'); dbms_output.put_line('---'); dbms_output.put_line('input is ' || srcdata); dbms_output.put_line('---'); -- select empty lob locators for src/enc/dec select loc into srcblob from table_lob where id = 1; select loc into encrypblob from table_lob where id = 2; select loc into decrypblob from table_lob where id = 3; dbms_output.put_line('Created Empty LOBS'); dbms_output.put_line('---'); leng := DBMS_LOB.GETLENGTH(srcblob); IF leng IS NULL THEN dbms_output.put_line('Source BLOB Len NULL '); ELSE dbms_output.put_line('Source BLOB Len ' || leng); END IF; leng := DBMS_LOB.GETLENGTH(encrypblob); IF leng IS NULL THEN dbms_output.put_line('Encrypt BLOB Len NULL '); ELSE dbms_output.put_line('Encrypt BLOB Len ' || leng); END IF; leng := DBMS_LOB.GETLENGTH(decrypblob); IF leng IS NULL THEN dbms_output.put_line('Decrypt BLOB Len NULL '); ELSE dbms_output.put_line('Decrypt BLOB Len ' || leng); END IF; -- 3. Write source raw data into blob: DBMS_LOB.OPEN (srcblob, DBMS_LOB.lob_readwrite); DBMS_LOB.WRITEAPPEND (srcblob, 16, srcdata); DBMS_LOB.CLOSE (srcblob); dbms_output.put_line('Source raw data written to source blob'); dbms_output.put_line('---'); leng := DBMS_LOB.GETLENGTH(srcblob); IF leng IS NULL THEN dbms_output.put_line('source BLOB Len NULL '); ELSE dbms_output.put_line('Source BLOB Len ' || leng); END IF; /* * Procedure Encrypt * Arguments: srcblob -> Source BLOB * encrypblob -> Output BLOB for encrypted data * DBMS_CRYPTO.AES_CBC_PKCS5 -> Algo : AES * Chaining : CBC * Padding : PKCS5 * 256 bit key for AES passed as RAW * -> hextoraw('000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F') * IV (Initialization Vector) for AES algo passed as RAW * -> hextoraw('00000000000000000000000000000000') */ DBMS_CRYPTO.Encrypt(encrypblob, srcblob, DBMS_CRYPTO.AES_CBC_PKCS5, hextoraw ('000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F'), hextoraw('00000000000000000000000000000000')); dbms_output.put_line('Encryption Done'); dbms_output.put_line('---'); leng := DBMS_LOB.GETLENGTH(encrypblob); IF leng IS NULL THEN dbms_output.put_line('Encrypt BLOB Len NULL'); ELSE dbms_output.put_line('Encrypt BLOB Len ' || leng); END IF; -- 4. Read encrypblob to a raw: encrawlen := 999; DBMS_LOB.OPEN (encrypblob, DBMS_LOB.lob_readwrite); DBMS_LOB.READ (encrypblob, encrawlen, 1, encrypraw); DBMS_LOB.CLOSE (encrypblob); dbms_output.put_line('Read encrypt blob to a raw'); dbms_output.put_line('---'); dbms_output.put_line('Encrypted data is (256 bit key) ' || encrypraw); dbms_output.put_line('---'); /* * Procedure Decrypt * Arguments: encrypblob -> Encrypted BLOB to decrypt * decrypblob -> Output BLOB for decrypted data in RAW * DBMS_CRYPTO.AES_CBC_PKCS5 -> Algo : AES * Chaining : CBC * Padding : PKCS5 * 256 bit key for AES passed as RAW (same as used during Encrypt) * -> hextoraw('000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F') * IV (Initialization Vector) for AES algo passed as RAW (same as used during Encrypt) * -> hextoraw('00000000000000000000000000000000') */ DBMS_CRYPTO.Decrypt(decrypblob, encrypblob, DBMS_CRYPTO.AES_CBC_PKCS5, hextoraw ('000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F'), hextoraw('00000000000000000000000000000000')); leng := DBMS_LOB.GETLENGTH(decrypblob); IF leng IS NULL THEN dbms_output.put_line('Decrypt BLOB Len NULL'); ELSE dbms_output.put_line('Decrypt BLOB Len ' || leng); END IF; -- Read decrypblob to a raw decrawlen := 999; DBMS_LOB.OPEN (decrypblob, DBMS_LOB.lob_readwrite); DBMS_LOB.READ (decrypblob, decrawlen, 1, decrypraw); DBMS_LOB.CLOSE (decrypblob); dbms_output.put_line('Decrypted data is (256 bit key) ' || decrypraw); dbms_output.put_line('---'); DBMS_LOB.OPEN (srcblob, DBMS_LOB.lob_readwrite); DBMS_LOB.TRIM (srcblob, 0); DBMS_LOB.CLOSE (srcblob); DBMS_LOB.OPEN (encrypblob, DBMS_LOB.lob_readwrite); DBMS_LOB.TRIM (encrypblob, 0); DBMS_LOB.CLOSE (encrypblob); DBMS_LOB.OPEN (decrypblob, DBMS_LOB.lob_readwrite); DBMS_LOB.TRIM (decrypblob, 0); DBMS_LOB.CLOSE (decrypblob); end; / truncate table table_lob; drop table table_lob;

3. 透明加密介紹

3.1 概述

透明數(shù)據(jù)加密(TDE)使您可以加密存儲在表和表空間中的敏感數(shù)據(jù),例如信用卡號。對有權(quán)訪問數(shù)據(jù)的數(shù)據(jù)庫用戶或應(yīng)用程序
透明地解密加密的數(shù)據(jù)。如果存儲介質(zhì)或數(shù)據(jù)文件被盜,TDE有助于保護(hù)存儲在介質(zhì)上的數(shù)據(jù)。
說明:秘鑰通過錢包管理,具體說明可參見本文錢包相關(guān)說明。加密后,沒有錢包,無法直接獲取數(shù)據(jù)文件中的數(shù)據(jù)。如果wallet文件丟失,沒有辦法open錢包,也就是說加密數(shù)據(jù)無法讀取.備份ewallet.p12文件非常重要。

透明數(shù)據(jù)加密(TDE)具有以下優(yōu)點:

  • 作為安全管理員,您可以確保敏感數(shù)據(jù)是安全的,以防存儲媒體或數(shù)據(jù)文件被盜。
  • 實施TDE可幫助您解決與安全相關(guān)的法規(guī)遵從性問題。
  • 您無需創(chuàng)建觸發(fā)器或視圖即可為授權(quán)用戶或應(yīng)用程序解密數(shù)據(jù)。表中的數(shù)據(jù)為數(shù)據(jù)庫用戶和應(yīng)用程序透明地解密。
  • 數(shù)據(jù)庫用戶和應(yīng)用程序不必知道他們正在訪問的數(shù)據(jù)是以加密形式存儲的事實。對數(shù)據(jù)庫用戶和應(yīng)用程序透明地解密數(shù)據(jù)。
  • 無需修改應(yīng)用程序即可處理加密數(shù)據(jù)。數(shù)據(jù)加密和解密由數(shù)據(jù)庫管理。
  • 密鑰管理操作是自動化的。用戶或應(yīng)用程序不需要管理加密密鑰。
3.2 透明加密的類型

透明數(shù)據(jù)加密(TDE)列加密使您能夠加密存儲在選擇表列中的敏感數(shù)據(jù)。TDE表空間加密使您可以加密存儲在表空間中的所有數(shù)據(jù)。
TDE列加密和TDE表空間加密都使用基于密鑰的兩層體系結(jié)構(gòu)。即使檢索到加密數(shù)據(jù),也無法理解,直到發(fā)生授權(quán)解密為止,這對于授權(quán)訪問該表的用戶是自動的。

列的加密過程

如上圖所示,主加密密鑰存儲在數(shù)據(jù)庫外部的外部安全模塊中,并且只能由安全管理員訪問。對于此外部安全模塊,Oracle使用Oracle錢包或硬件安全模塊(HSM),如本章所述。以這種方式存儲主加密密鑰可以防止未經(jīng)授權(quán)的使用。
使用外部安全模塊(錢包/ HSM)可以將常規(guī)程序功能與加密操作分開,從而可以在數(shù)據(jù)庫管理員和安全管理員之間劃分職責(zé)。由于數(shù)據(jù)庫管理員可以知道錢包密碼,因此需要安全管理員提供密碼,從而增強了安全性。

當(dāng)表包含加密列時,無論加密列的數(shù)量如何,都將使用單個表密鑰。所有表的表密鑰均使用數(shù)據(jù)庫服務(wù)器主加密密鑰加密,并存儲在數(shù)據(jù)庫的字典表中。沒有密鑰存儲在明文中。

  • B樹以外的索引類型
  • 通過索引進(jìn)行范圍掃描搜索
  • 外部大對象(BFILE)
  • 同步更改數(shù)據(jù)捕獲
  • 傳輸表空間
  • 原始導(dǎo)入/導(dǎo)出實用程序
  • 此外,您不能使用TDE列加密來加密外鍵約束中使用的列。

表空間加密過程

TDE表空間加密的限制:

  • BFILE不能使用TDE表空間加密來加密外部大對象。這是因為這些文件位于數(shù)據(jù)庫外部。
  • 要執(zhí)行導(dǎo)入和導(dǎo)出操作,請使用Oracle Data Pump。
 

--1 使用錢包(wallet)作為外部安全模塊,保存主密鑰 --oracle建議對TDE使用一個單獨的的錢包 --在sqlnet.ora中使用參數(shù) ENCRYPTION_WALLET_LOCATION指定錢包的位置 ENCRYPTION_WALLET_LOCATION= (SOURCE=(METHOD=FILE)(METHOD_DATA= (DIRECTORY=/u02/app/oracle/product/11.2.0/dbhome_1/wallet))) --生成主密鑰 SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "oracle123"; --打開關(guān)閉錢包 SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "oracle123"; SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "oracle123"; V$ENCRYPTION_WALLET displays information on the status of the wallet and the wallet location for TDE --重置主密鑰 ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "oracle321"; --數(shù)據(jù)庫只有讀取錢包中的主密鑰才能加密解密數(shù)據(jù) 默認(rèn)情況下,TDE 使用具有192位密鑰長度 (AES192) 的 AES 加密算法??梢灾付ǚ悄J(rèn)加密算法 默認(rèn)情況下,TDE使用salt選項,加密之前將隨機碼添加到明文,這樣很難破解加密??梢允褂胣o salt取消隨機碼添加 默認(rèn)情況下,TDE使用SHA-1完整性算法生成Authentication Code (MAC),做完整性檢查??梢允褂胣omac取消完整性檢查, 這樣會提高性能節(jié)省存儲空間。 --注意:可以將錢包配置為autologin方式 --2 列加密 --啟用列加密 CREATE TABLE em ( first_name VARCHAR2(128), last_name VARCHAR2(128), empid NUMBER, salary NUMBER(6) ENCRYPT ); --使用非默認(rèn)加密算法 CREATE TABLE emp ( first_name VARCHAR2(128), last_name VARCHAR2(128), empid NUMBER, salary NUMBER(6) ENCRYPT USING '3DES168' NO SALT ); SQL> ALTER TABLE emp MODIFY (first_name ENCRYPT); --注意:在加密列上創(chuàng)建索引,加密列不能使用salt方式 SQL> ALTER TABLE employee MODIFY (first_name ENCRYPT NO SALT); create index first_name_indx on emp (first_name); --取消列加密 SQL> ALTER TABLE employee MODIFY (first_name DECRYPT); --3 表空間加密 --啟用表空間加密 CREATE TABLESPACE securespace2 DATAFILE '/u02/app/oracle/secure01.dbf' SIZE 10M ENCRYPTION DEFAULT STORAGE(ENCRYPT); --DBA_TABLESPACES: The ENCRYPTED column indicates whether a tablespace is encrypted-- --USER_TABLESPACES: The ENCRYPTED column indicates whether a tablespace is encrypted --注意:You cannot access any encrypted data without the master encryption key --》管理TDE 1 啟用AUTO LOGIN wallet --2 備份和管理主密鑰 --如果沒有主密鑰是不能訪問加密數(shù)據(jù)的,主密鑰存儲在wallet中,需要對wallet做備份 --當(dāng)產(chǎn)生新的主密鑰時必須備份wallet --備份時不應(yīng)同時備份加密數(shù)據(jù)和錢包wallet,應(yīng)單獨備份wallet,以防止惡意用戶同時獲取加密數(shù)據(jù)和wallet錢包 --rman不會備份wallet --rman如果使用了Oracle Secure Backup OSB(如帶庫)會自動排除auto login wallet(cwallet.sso), 但不會排除普通的wallet(ewallet.p12 ),所以使用此備份方式,建議添加以下語句排除wallet exclude name *.p12 --如果存儲主密鑰的wallet丟失或損壞,將備份版本拷貝至適當(dāng)位置即可恢復(fù) --1 如果備份版本是上次重置主密鑰之后版本,無需任何操作 --2 如果備份版本是上次重置主密鑰之前版本,即不包含最新主密鑰,則需要將數(shù)據(jù)庫恢復(fù)至重置主密鑰之前時間點。 之后的數(shù)據(jù)將丟失。 ================================ --》其他加密 --加密數(shù)據(jù)無法使用exp/imp工具移動,只能使用datapump移動數(shù)據(jù), --導(dǎo)出TDE加密 數(shù)據(jù)時,必須打開錢包wallet,因為數(shù)據(jù)需要主密鑰解密 --使用數(shù)據(jù)泵datapump或恢復(fù)管理器rman移動數(shù)據(jù)時,如果使用TDE加密功能,需要wallet。 也可以使用工具自帶的加密功能單獨加密數(shù)據(jù)。 --數(shù)據(jù)泵(datapump)加密 --1 涉及TDE數(shù)據(jù)時,需要wallet錢包打開,只適合本機原地操作。 --導(dǎo)出數(shù)據(jù)后,數(shù)據(jù)以非加密的形式存儲在轉(zhuǎn)儲文件集中 expdp hr/hr TABLES=emp DIRECTORY=DATA_PUMP_DIR DUMPFILE=emp.dmp logfile=emp.expdp ORA-39173: Encrypted data has been stored unencrypted in dump file set. ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "oracle123"; impdp \'/ as sysdba\' DIRECTORY=DATA_PUMP_DIR DUMPFILE=emp.dmp logfile=emp.impdp remap_schema=hr:test --如果想轉(zhuǎn)儲文件集也加密,可以單獨指定以下參數(shù)(TDE數(shù)據(jù)解密后再加密) ENCRYPTION_PASSWORD ENCRYPTION = [ALL | DATA_ONLY | ENCRYPTED_COLUMNS_ONLY | METADATA_ONLY | NONE] ALL enables encryption for all data and metadata in the export operation. DATA_ONLY specifies that only data is written to the dump file set in encrypted format. ENCRYPTED_COLUMNS_ONLY specifies that only encrypted columns are written to the dump file set in encrypted format. To use this option, you must have Oracle Advanced Security transparent data encryption enabled. See Oracle Database Advanced Security Administrator is Guide for more information about transparent data encryption. METADATA_ONLY specifies that only metadata is written to the dump file set in encrypted format. NONE specifies that no data is written to the dump file set in encrypted format. ENCRYPTION不指定默認(rèn)為all --2 不涉及TDE數(shù)據(jù)時,不需要wallet錢包,可單獨加密轉(zhuǎn)儲文件集。適用于所有場景 expdp hr/hr TABLES=employees DIRECTORY=DATA_PUMP_DIR DUMPFILE=employees.dmp logfile=employees.expdp encryption_password=oracle --impdp \'/ as sysdba\' DIRECTORY=DATA_PUMP_DIR DUMPFILE=employees.dmp logfile=employees.impdp remap_schema=hr:test ORA-39174: Encryption password must be supplied. encryption_password=oracle --RMAN備份加密 --1 使用TDE,適合本機原地操作 --1)創(chuàng)建錢包(已創(chuàng)建) --2)打開錢包 SQL> alter system set encryption wallet open identified by oracle; --3)開啟RMAN加密功能 RMAN> configure encryption for database on; --4)備份與恢復(fù)命令不會發(fā)生更改,需要打開錢包 --5)通過命令可以暫時覆蓋永久配置 RMAN> set encryption off; --2 口令模式設(shè)置(不需要錢包),使用與所有場景 RMAN> set encryption on identified by admin only; RMAN> backup datafile 4; RMAN> set decryption identified by admin; --還原時必須解密 RMAN> restore datafile 4; --3 如果創(chuàng)建了錢包,可以使用雙重模式 SQL> alter system set encryption wallet open identified by oracle; RMAN> set encryption on identified by oracle; RMAN> backup datafile 4; SQL> alter system set encryption wallet close; --關(guān)閉錢包 RMAN> set decryption identified by oracle; --錢包、口令任選一個 SQL> alter system set encryption wallet open identified by oracle; RMAN> restore datafile 4; RMAN> recover datafile 4; RMAN> alter database open; --改變rman加密算法 SQL> select algorithm_name from v$rman_encryption_algorithms; RMAN> configure encryption algorithm 'AES192'; RMAN> set encryption algorithm 'AES256'; --relate view --在dba_tablespaces會添加新列encrypted讓你查看狀態(tài) v$encryption_wallet v$encrypted_tablespaces

錢包管理說明

Oracle錢包管理器(Wallet Manager),管理客戶端或服務(wù)器上公共密鑰(public key )的安全認(rèn)證。數(shù)據(jù)庫可以讀取錢包中的密鑰。
Oracle錢包(wallet)是一個可以存儲認(rèn)證和證書的安全軟件,Oracle錢包(wallet)也可作為安全的外部密碼存儲區(qū),使用此特性后,應(yīng)用程序,腳本等都不需要寫出用戶名密碼即可連接數(shù)據(jù)庫。降低了密碼泄露的風(fēng)險。
Wallet 可以使用Oracle Wallet Manger工具來創(chuàng)建,也可以使用orapki 命令來創(chuàng)建,也可以使用SQL 語句來創(chuàng)建。這里最方便的是使用SQL語句。

 

-- 在sqlnet.ora 文件里添加: ENCRYPTION_WALLET_LOCATION 和WALLET_LOCATION參數(shù)。 默認(rèn)位置是:$ORACLE_BASE/admin/$ORACLE_SID/wallet。 --指定ORACLE WALLET的位置,這里使用ORACLE_HOME/network/admin,在sqlnet.ora里添加如下內(nèi)容: WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY= /u01/app/oracle/product/11.2.0/db_1/network/admin) ) ) ENCRYPTION_WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY= /u01/app/oracle/admin/dave/wallet) ) ) SQLNET.WALLET_OVERRIDE = TRUE SSL_CLIENT_AUTHENTICATION = FALSE SSL_VERSION = 0 --添加完之后,重啟listener,使參數(shù)生效。 --創(chuàng)建wallet:包括設(shè)置密碼、生成信任文件、并啟動wallet CONN / AS SYSDBA -- 10g version ALTER SYSTEM SET ENCRYPTIONKEYAUTHENTICATED BY "myPassword"; -- 11g version ALTER SYSTEM SET ENCRYPTIONKEYIDENTIFIED BY "myPassword"; 當(dāng)實例重啟后或者wallet被關(guān)閉后,必須重新open wallets,這樣才能保護(hù)被加密的列. 而在Openwallet之前,數(shù)據(jù)庫必須處于mount 狀態(tài)。 SQL>STARTUP MOUNT; SQL> ALTERSYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "myPassword"; SQL>ALTER DATABASE OPEN; -- 10g version ALTER SYSTEM SET ENCRYPTION WALLET OPEN AUTHENTICATEDBY "myPassword"; -- 11g version ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIEDBY "myPassword"; --關(guān)閉Wallet: ALTER SYSTEM SET ENCRYPTIONWALLET CLOSE IDENTIFIED BY "myPassword"; --使用SQL 創(chuàng)建的wallet 的問題是不能自動登陸,這樣我們在關(guān)閉wallet或者重啟實例后, 都需要手動的來open wallet。 這樣有點麻煩,Oracle 提供了wallet 自動登陸功能,可以在創(chuàng)建wallet指定該屬性, 也可以在創(chuàng)建后使用owm(Oracle wallet manager)來修改。 --也可使用orapki,顯示 orapki wallet display -wallet /u01/app/oracle/admin/dave/encryption_wallet --修改密碼 orapki wallet change_pwd -wallet wallet_location[-oldpwd password ] [-newpwd password] --創(chuàng)建自動登錄 orapki wallet create -wallet wallet_location -auto_login_only 相關(guān)試圖: V$ENCRYPTION_WALLET v$wallet dba_encrypted_columns 文章來源地址http://www.zghlxwxcb.cn/news/detail-638573.html

參考

  • https://docs.oracle.com/cd/E11882_01/network.112/e40393/asotrans.htm#ASOAG10143
  • http://www.xifenfei.com/2016/01/oracle-tde-%E7%AE%80%E5%8D%95%E6%B5%8B%E8%AF%95.html
  • https://www.oracle.com/technetwork/database/security/twp-transparent-data-encrypa
  • https://docs.oracle.com/cd/E11882_01/network.112/e36292/data_encryption.htm#DBSEG80087

到了這里,關(guān)于Oracle DB 安全性 : TDE HSM TCPS Wallet Imperva的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 線程的安全性

    你或許會感到奇怪,線程或者鎖在并發(fā)編程中的作用,類似于鉚釘和工字梁在土木工程中的作用。要建筑一座堅固的橋梁,必須正確地使用大量的鉚釘和工字梁。同理,在構(gòu)建穩(wěn)健的并發(fā)程序時,必須正確地使用線程和鎖。但這些終歸只是一些機制。要編寫線程安全的代碼,

    2024年02月07日
    瀏覽(20)
  • 線程簡介及安全性

    1. 線程的優(yōu)點 發(fā)揮多處理器的強大功能 建模的簡單性 為模型中的每種類型任務(wù)都分配一個專門的線程 異步事件的簡化處理 響應(yīng)更靈敏的用戶界面 2. 線程帶來的風(fēng)險 安全性問題 活躍性問題 如發(fā)生死鎖,無限等待 性能問題 如頻繁的上下文切換:保存與恢復(fù)上下文,丟失局

    2023年04月17日
    瀏覽(25)
  • 【MySQL】-安全性控制

    【MySQL】-安全性控制

    用戶(User) MySQL創(chuàng)建用戶: create user 用戶名 identified by 用戶登錄密碼; 通常用戶名可包含域名,限定用戶在該域名內(nèi)登錄再有效。 alter user語句可重置用戶密碼: ALTER USER user IDENTIFIED BY ‘new_password’; 權(quán)限 MySQL常用的權(quán)限有: all: 所有權(quán)限(grant option除外) alter: alter table權(quán)限 a

    2023年04月26日
    瀏覽(19)
  • 智能合約開發(fā)~~安全性

    最低安全限度: ~ 所有代碼應(yīng)該被存在于一個版本控制系統(tǒng)當(dāng)中,例如 git ~ 所有的代碼修改都應(yīng)該通過拉取請求來進(jìn)行 ~ 所有的拉取請求都應(yīng)該有至少一個審核員。?如果這是一個個人項目,請考慮尋找另一位個人作者和一個交易代碼審核員。 ~ 使用開發(fā)以太坊環(huán)境(請參閱

    2024年01月17日
    瀏覽(13)
  • 數(shù)據(jù)庫——安全性

    數(shù)據(jù)庫——安全性

    智能2112楊陽 1 、設(shè)計用戶子模式 2 、根據(jù)實際需要創(chuàng)建用戶 角色 及 用戶, 并 授權(quán) 3 、針對不同級別的用戶定義不同的 視圖 ,以保證系統(tǒng)的安全性 先創(chuàng)建四類用戶 角色 : 管理員 角色 Cusm 、 客戶 角色 Supp 、供貨商 角色 Admin 、商家銷售工作人員 角色 Salor 。 源碼: cre

    2024年02月04日
    瀏覽(25)
  • 信息安全性測試

    信息安全性測試是確保產(chǎn)品或系統(tǒng)能夠有效地保護(hù)信息和數(shù)據(jù),使得用戶、其他產(chǎn)品或系統(tǒng)的訪問權(quán)限與其授權(quán)類型和級別相一致的一系列檢查過程。信息安全性測試也應(yīng)該是一個持續(xù)的過程,確保信息系統(tǒng)能夠抵御惡意攻擊,并保護(hù)數(shù)據(jù)的完整性、可用性和保密性。通常與

    2024年02月20日
    瀏覽(24)
  • 商用密碼安全性評估

    商用密碼應(yīng)用安全性評估(簡稱“密評”)指在采用商用密碼技術(shù)、產(chǎn)品和服務(wù)集成建設(shè)的網(wǎng)絡(luò)和信息系統(tǒng)中,對其密碼應(yīng)用的合規(guī)性、正確性和有效性等進(jìn)行評估。 01辦理依據(jù) GM/T0054-2018《信息系統(tǒng)密碼應(yīng)用基本要求》 《信息系統(tǒng)密碼測評要求(試行)》 《商用密碼應(yīng)用安

    2024年02月06日
    瀏覽(31)
  • 前端面試:【前端安全】安全性問題與防范措施

    嗨,親愛的前端開發(fā)者!在構(gòu)建Web應(yīng)用程序時,確保安全性是至關(guān)重要的。本文將深入討論前端開發(fā)中的安全性問題,并提供一些防范措施,以確保你的應(yīng)用程序和用戶數(shù)據(jù)的安全性。 前端安全性問題: 跨站腳本攻擊(XSS): XSS攻擊發(fā)生在惡意用戶將惡意腳本注入到網(wǎng)頁中

    2024年02月11日
    瀏覽(37)
  • 安全與道路測試:自動駕駛系統(tǒng)安全性探究

    隨著自動駕駛技術(shù)的迅速發(fā)展,如何確保自動駕駛系統(tǒng)的安全性已成為業(yè)界關(guān)注的焦點。本文將探討自動駕駛系統(tǒng)的潛在風(fēng)險、安全設(shè)計原則和道路測試要求。 自動駕駛系統(tǒng)在改善交通安全和提高出行效率方面具有巨大潛力,但其安全性仍面臨許多挑戰(zhàn),主要包括: 技術(shù)故

    2023年04月25日
    瀏覽(44)
  • AI安全01 人工智能的安全性

    AI安全01 人工智能的安全性

    提問: GPT老師,我想寫一篇閱讀量高一點的信息安全博文,您可以推薦寫作主題嗎? GPT老師: 人工智能與信息安全。 寫在前面: 1? 筆者相關(guān)知識存儲很少,這篇文章是采訪全知全能的GPT老師寫成的萬字長文~內(nèi)容的真實性、正確性、有效性請小伙伴自行鑒別~對于繁雜的對

    2024年02月12日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包