Доступно с лицензией Production Mapping.
Прозрачное шифрование данных (Transparent Data Encryption (TDE) позволяет шифровать конфиденциальные данные, такие как номера кредитных карт, хранящиеся в таблицах и табличных областях. Зашифрованные данные явно расшифрованы для пользователя базы данных или приложения, которое имеет доступ к данным. TDE помогает защитить данные, хранящиеся на носителе, в случае кражи носителя или файла данных. Oracle использует аутентификацию, авторизацию и механизмы проверки для защиты данных в базе данных, но не в файлах данных операционной системы, где хранятся данные. Для защиты этих файлов данных в Oracle предусмотрено TDE. TDE шифрует конфиденциальные данные, хранящихся в файлах данных. Для предотвращения несанкционированной расшифровки, TDE хранит ключи шифрования в модуле защиты внешне по отношению к базе данных.
Преимущества использования TDE включают следующие:
- Как администратор по вопросам безопасности, вы можете быть уверены, что в случае кражи носителя для хранения данных или файла данных, любые конфиденциальные сведения будут в безопасности.
- Применение прозрачного шифрования данных (TDE) поможет вам решить вопросы, имеющие отношение к соблюдению мер безопасности.
- Вам не придется создавать некую схему или механизм, который обеспечивал бы запуск шифрования данных для авторизованного пользователя или приложения. Данные из таблиц прозрачно дешифруются для пользователя базы данных и для приложения.
- Пользователям баз данных, как и приложениям, не надо знать о том, что доступные им данные хранятся в зашифрованном виде. Данные прозрачно дешифруются для пользователей базы данных и для приложений.
- Приложениям не требуется какая-либо модификация для обработки зашифрованных данных. Шифрование и дешифрование данных управляется базой данных.
- Операции управления ключом шифрования автоматизированы. Ни пользователь, ни приложение не имеют никакого отношения к управлению ключами шифрования.
Более подробно о настройке табличного пространства TDE см. в документации к Oracle.
Для выполнения прозрачного шифрования данных (TDE) используется один из этих методов.
Oracle 12c
Более подробно о настройке табличного пространства TDE см. в документации к Oracle.
Настройка TDE вручную
Ниже приведены шаги по настройке TDE вручную.
- Создайте директорию хранилища ключей.
mkdir $ORACLE_HOME/admin/$ORACLE_SID/wallet
- Модифицируйте файл SQLNET.ORA, если вы хотите управлять бумажником шифрования.
Местоположением бумажника шифрования по умолчанию является $ORACLE_BASE/admin/<global_db_name>/wallet. Если вы хотите разрешить Oracle управлять бумажником в местоположении по умолчанию, то вам не требуется устанавливать параметр ENCRYPTION_WALLET_LOCATION в файле sqlnet.ora.
Для Windows
ENCRYPTION_WALLET_LOCATION= (SOURCE= (METHOD=FILE) (METHOD_DATA= (DIRECTORY=C:/oracle/admin/%ORACLE_SID%/wallet/)))
Для Linux
ENCRYPTION_WALLET_LOCATION= (SOURCE= (METHOD=FILE) (METHOD_DATA= (DIRECTORY=/app/oracle/admin/$ORACLE_SID/wallet/)))
- Проверьте параметр инициализации COMPATIBLE на соответствие правильному номеру версии. Он должен иметь значение 12.x.
ORA> sqlplus /nolog SQL> connect /as sysdba Connected. SQL> select instance_name,status,database_status from v$instance; INSTANCE_NAME STATUS DATABASE_STATUS ---------------- ------------ ----------------- mcs1 OPEN ACTIVE SQL> show parameter compatible NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ compatible string 12.1.0.0.0
- Создайте хранилище ключей.
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE 'C:\oracle\admin\mcs1\wallet' IDENTIFIED BY "mcs1$admin"; --the ewallet.p12 file, which contains the keystore, appears in the keystore location.
- Откройте основанное на использовании паролей хранилище ключей.
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "mcs1$admin" CONTAINER=ALL; -- check the status SELECT WRL_PARAMETER,STATUS,WALLET_TYPE FROM V$ENCRYPTION_WALLET;
- Создайте резервную копию основанного на использовании паролей программного хранилища ключей.
ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE USING 'keystore_bkp' IDENTIFIED BY "mcs1$admin"; SELECT WRL_PARAMETER,STATUS,WALLET_TYPE FROM V$ENCRYPTION_WALLET;
- Создайте мастер-ключ шифрования.
Создайте мастер-ключ к CDB и ко всем PDBs.
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "mcs1$admin" WITH BACKUP USING 'masterkey_all_bkp' CONTAINER=ALL; SELECT KEY_ID,KEYSTORE_TYPE,CREATOR,CREATOR_INSTANCE_NAME,CREATOR_PDBNAME FROM V$ENCRYPTION_KEYS;
Экспортируйте мастер-ключ.
ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS WITH SECRET "mcs1.exp$admin" TO 'C:\oracle\admin\mcs1\wallet\masterkey_cdb_exp.bkp' IDENTIFIED BY "mcs1$admin";
- Дополнительно создайте мастер-ключ для текущего контейнера. Если вы завершили шаг 7, то вы можете пропустить этот шаг.
Контейнерная база данных (CDB):
ALTER SESSION SET CONTAINER = CDB$ROOT; SHOW CON_NAME SELECT SYS_CONTEXT('USERENV', 'CON_NAME') FROM dual; ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "mcs1$admin" WITH BACKUP USING 'masterkey_cdb_backup' CONTAINER=CURRENT; SELECT KEY_ID,KEYSTORE_TYPE,CREATOR,CREATOR_INSTANCE_NAME,CREATOR_PDBNAME FROM V$ENCRYPTION_KEYS; --export master key ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS WITH SECRET "mcs1.exp$admin" TO 'C:\oracle\admin\mcs1\wallet\masterkey_cdb_exp.bkp' IDENTIFIED BY "mcs1$admin";
Сменная база данных (PDB): bathypdb
ALTER SESSION SET CONTAINER = bathypdb; SHOW CON_NAME SELECT SYS_CONTEXT('USERENV', 'CON_NAME') FROM dual; ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "mcs1$admin" WITH BACKUP USING 'masterkey_bathypdb_backup' CONTAINER=CURRENT; SELECT KEY_ID,KEYSTORE_TYPE,CREATOR,CREATOR_INSTANCE_NAME,CREATOR_PDBNAME FROM V$ENCRYPTION_KEYS; --export master key ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS WITH SECRET "mcs1.exp$admin" TO 'C:\oracle\admin\mcs1\wallet\masterkey_bathypdb_exp.bkp' IDENTIFIED BY "mcs1$admin";
Проверьте статус
SELECT * FROM V$ENCRYPTION_WALLET; SELECT * FROM V$ENCRYPTION_KEYS; SELECT WRL_PARAMETER,STATUS,WALLET_TYPE FROM V$ENCRYPTION_WALLET; SELECT KEY_ID,KEYSTORE_TYPE,CREATOR,CREATOR_INSTANCE_NAME,CREATOR_PDBNAME FROM V$ENCRYPTION_KEYS;
- Установите локальное хранилище ключей учетных записей для автоматического входа в систему.
ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE 'C:\oracle\admin\mcs1\wallet' IDENTIFIED BY "mcs1$admin"; SELECT WRL_PARAMETER,STATUS,WALLET_TYPE FROM V$ENCRYPTION_WALLET; --the cwallet.sso file appears in the keystore location. The ewallet.p12 file is the password-based wallet. --Note: --Do not remove the PKCS#12 wallet (ewallet.p12 file) after you create the auto login keystore (.sso file). --You must have the PKCS#12 wallet to regenerate or rekey the TDE master encryption key in the future. --By default, this file is located in the $ORACLE_HOME/admin/ORACLE_SID/wallet directory.
- Откройте хранилище ключей учетных записей для автоматического входа в систему.
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN CONTAINER=ALL; -- check the status SELECT WRL_PARAMETER,STATUS,WALLET_TYPE FROM V$ENCRYPTION_WALLET;
- Рекомендуется проверять состояние конфигурации TDE с использованием следующих выражений SQL.
SELECT * FROM V$ENCRYPTION_WALLET; SELECT * FROM V$ENCRYPTION_KEYS; SELECT WRL_PARAMETER,STATUS,WALLET_TYPE FROM V$ENCRYPTION_WALLET; SELECT KEY_ID,KEYSTORE_TYPE FROM V$ENCRYPTION_KEYS; SELECT KEY_ID FROM V$ENCRYPTION_KEYS; SELECT KEYSTORE_TYPE FROM V$ENCRYPTION_KEYS; SELECT WRL_PARAMETER FROM V$ENCRYPTION_WALLET; SELECT STATUS FROM V$ENCRYPTION_WALLET; SELECT * FROM V$ENCRYPTED_TABLESPACES; SELECT TABLESPACE_NAME, ENCRYPTED FROM DBA_TABLESPACES; SELECT * FROM DBA_ENCRYPTED_COLUMNS;
Oracle 11.2
Более подробно о настройке табличного пространства TDE см. в документации к Oracle.
Для выполнения прозрачного шифрования данных (TDE) используется один из этих методов.
Настройка TDE Oracle Enterprise Manager
Ниже приводятся шаги для настройки TDE с использованием Oracle Enterprise Manager (OEM).
- Создайте каталог бумажника.
mkdir C:\oracle\admin\wallets OEM > login as sys / sysdba OEM > Server > Transparent Data Encryption Advanced Options > Change Location Host Credentials Username: <DOMAIN>\dbs_ora Password: xxxxxxx Configuration Method: File System Encryption Wallet Directory: C:\oracle\admin\wallets OK Create Wallet > Local Auto-Open Wallet > Create Host Credentials Username: <DOMAIN>\dbs_ora Password: xxxxxxx Wallet Password: walletadmin Continue
- Выполните резервное копирование каталога бумажника.
cd C:\oracle\admin zip -r wallets wallets
Настройка TDE вручную
Ниже приведены шаги по настройке TDE вручную.
- Из командного окна создайте каталог бумажника.
mkdir C:\oracle\admin\wallets
- Добавьте местоположение бумажника в файл sqlnet.ora.
ENCRYPTION_WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = C:\oracle\admin\wallets\$ORACLE_SID)
- Используя Oracle SQL*Plus или Oracle SQL Developer, создайте главный ключ.
alter system set encryption key identified by "walletadmin";
- Используя Oracle SQL*Plus или Oracle SQL Developer, проверьте статус бумажника.
select * from "v$encryption_wallet";
- Из командного окна настройте бумажник на автоматический вход.
set ORACLE_SID=prodlibdb orapki wallet create -wallet C:\oracle\admin\wallets -auto_login -pwd walletadmin
- Из командного окна выполните резервное копирование каталога бумажника.
cd C:\oracle\admin zip -r wallets wallets