Доступно с лицензией Production Mapping.
Вы можете принять некоторые меры предосторожности для защиты базы данных, такие как проектирование безопасной системы, шифрование конфиденциальных активов, а также создание брандмауэра вокруг серверов баз данных. Однако в случае, когда физические носители (такие как диски и ленты с резервными копиями) украдены, злоумышленник может восстановить или подключиться к базе данных и просматривать эти данные. Одним из решений является шифрование конфиденциальных данных в базе данных и защита ключей, используемых для шифрования данных с помощью сертификатов. Это предотвращает использования данных лицами без ключей, но этот вид защиты должен быть спланирован заранее.
Прозрачное шифрование данных (Transparent Data Encryption (TDE) позволяет шифровать конфиденциальные данные, такие как номера кредитных карт, хранящиеся в таблицах и табличных областях. Зашифрованные данные явно расшифрованы для пользователя базы данных или приложения, которое имеет доступ к данным. TDE помогает защитить данные, хранящиеся на носителе, в случае кражи носителя или файла данных. Oracle использует аутентификацию, авторизацию и механизмы проверки для защиты данных в базе данных, но не в файлах данных операционной системы, где хранятся данные. Для защиты этих файлов данных в Oracle предусмотрено TDE. TDE шифрует конфиденциальные данные, хранящихся в файлах данных. Для предотвращения несанкционированной расшифровки, TDE хранит ключи шифрования в модуле защиты внешне по отношению к базе данных.
With Oracle, new tablespaces can be defined as encrypted. Defining a tablespace as encrypted means the physical data files created on the operating system will be encrypted. Any tables, indexes, and other objects defined in the new tablespace will be encrypted by default, with no additional storage space requirements. Data is automatically encrypted when it is written to disk and automatically decrypted when accessed by the application.
Преимущества использования TDE включают следующие:
- Как администратор по вопросам безопасности, вы можете быть уверены, что в случае кражи носителя для хранения данных или файла данных, любые конфиденциальные сведения будут в безопасности.
- Применение прозрачного шифрования данных (TDE) поможет вам решить вопросы, имеющие отношение к соблюдению мер безопасности.
- Вам не придется создавать некую схему или механизм, который обеспечивал бы запуск шифрования данных для авторизованного пользователя или приложения. Данные из таблиц прозрачно дешифруются для пользователя базы данных и для приложения.
- Пользователям баз данных, как и приложениям, не надо знать о том, что доступные им данные хранятся в зашифрованном виде. Данные прозрачно дешифруются для пользователей базы данных и для приложений.
- Приложениям не требуется какая-либо модификация для обработки зашифрованных данных. Шифрование и дешифрование данных управляется базой данных.
- Операции управления ключом шифрования автоматизированы. Ни пользователь, ни приложение не имеют никакого отношения к управлению ключами шифрования.
Для выполнения прозрачного шифрования данных (TDE) используется один из этих методов.
Oracle 12c
Более подробно о настройке табличного пространства TDE см. в документации к Oracle.
Configuring TDE manually
Ниже приведены шаги по настройке 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";
- Optionally create the master key for the current container. You can skip this step if you completed step 7.
Container Database (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";
Pluggable Database (PDB):pmpdb
ALTER SESSION SET CONTAINER = pmpdb; SHOW CON_NAME SELECT SYS_CONTEXT('USERENV', 'CON_NAME') FROM dual; ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "mcs1$admin" WITH BACKUP USING 'masterkey_pmpdb_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_pmpdb_exp.bkp' IDENTIFIED BY "mcs1$admin";
Check status
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) используется один из этих методов.
Configuring TDE Oracle Enterprise Manager
- Создайте каталог бумажника.
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
Configuring TDE manually
Ниже приведены шаги по настройке 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";
- From the command window, set the wallet to auto login.
set ORACLE_SID=pmdb orapki wallet create -wallet C:\oracle\admin\wallets -auto_login -pwd walletadmin
- Из командного окна выполните резервное копирование каталога бумажника.
cd C:\oracle\admin zip -r wallets wallets