Доступно с лицензией Data Reviewer.
Вы можете принять некоторые меры предосторожности для защиты базы данных, такие как проектирование безопасной системы, шифрование конфиденциальных активов, а также создание брандмауэра вокруг серверов баз данных. Однако в случае, когда физические носители (такие как диски и ленты с резервными копиями) украдены, злоумышленник может восстановить или подключиться к базе данных и просматривать эти данные. Одним из решений является шифрование конфиденциальных данных в базе данных и защита ключей, используемых для шифрования данных с помощью сертификатов. Это предотвращает использования данных лицами без ключей, но этот вид защиты должен быть спланирован заранее.
Прозрачное шифрование данных (Transparent Data Encryption (TDE) позволяет шифровать конфиденциальные данные, такие как номера кредитных карт, хранящиеся в таблицах и табличных областях. Зашифрованные данные явно расшифрованы для пользователя базы данных или приложения, которое имеет доступ к данным. TDE помогает защитить данные, хранящиеся на носителе, в случае кражи носителя или файла данных. Oracle использует аутентификацию, авторизацию и механизмы проверки для защиты данных в базе данных, но не в файлах данных операционной системы, где хранятся данные. Для защиты этих файлов данных в Oracle предусмотрено TDE. TDE шифрует конфиденциальные данные, хранящихся в файлах данных. Для предотвращения несанкционированной расшифровки, TDE хранит ключи шифрования в модуле защиты внешне по отношению к базе данных.
С Oracle новые табличные пространства могут быть определены как зашифрованные. Определение табличного пространства, как зашифрованного, означает, что будут зашифрованы физические файлы данных, созданные в операционной системе. Любые таблицы, индексы и другие объекты, заданные в новой табличной области, будут по умолчанию шифроваться без дополнительно требуемого пространства для хранения. Данные автоматически шифруются при записи на диск и автоматически дешифруются, когда становятся доступными приложению.
Преимущества использования TDE включают следующие:
- Как администратор по вопросам безопасности, вы можете быть уверены, что в случае кражи носителя для хранения данных или файла данных, любые конфиденциальные сведения будут в безопасности.
- Применение прозрачного шифрования данных (TDE) поможет вам решить вопросы, имеющие отношение к соблюдению мер безопасности.
- Вам не придется создавать некую схему или механизм, который обеспечивал бы запуск шифрования данных для авторизованного пользователя или приложения. Данные из таблиц прозрачно дешифруются для пользователя базы данных и для приложения.
- Пользователям баз данных, как и приложениям, не надо знать о том, что доступные им данные хранятся в зашифрованном виде. Данные прозрачно дешифруются для пользователей базы данных и для приложений.
- Приложениям не требуется какая-либо модификация для обработки зашифрованных данных. Шифрование и дешифрование данных управляется базой данных.
- Операции управления ключом шифрования автоматизированы. Ни пользователь, ни приложение не имеют никакого отношения к управлению ключами шифрования.
Oracle 12x
Более подробно о настройке табличного пространства 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): revpdb
ALTER SESSION SET CONTAINER = revpdb; SHOW CON_NAME SELECT SYS_CONTEXT('USERENV', 'CON_NAME') FROM dual; ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "mcs1$admin" WITH BACKUP USING 'masterkey_revpdb_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_revpdb_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).
Для выполнения прозрачного шифрования данных (TDE) используется один из этих методов.
- Создайте каталог бумажника.
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=revdb orapki wallet create -wallet C:\oracle\admin\wallets -auto_login -pwd walletadmin
- Из командного окна выполните резервное копирование каталога бумажника.
cd C:\oracle\admin zip -r wallets wallets