Перемещение зашифрованных баз данных
Основной причиной шифрования базы данных является предотвращение
несанкционированного доступа к данным. Нельзя просто присоединить
файлы из зашифрованной базы данных на другой сервер и читать данные.
Если необходимо переместить зашифрованную базу данных на другой
сервер, необходимо также переместить соответствующие ключи и
сертификаты [5].
Ниже перечислены шаги для перемещения базы данных с поддержкой TDE:
1.
На исходном сервере отключите базу данных, которую требуется
переместить.
2.
Скопируйте или переместите файлы базы данных в то же расположение
на целевом сервере.
3.
Создайте DMK в базе данных master на целевом сервере.
4.
Используйте инструкцию CREATE CERTIFICATE для создания
сертификата сервера на сервере назначения из резервной копии
исходного (оригинального) сертификата сервера и его закрытого ключа.
5.
Присоедините базу данных на целевом сервере.
Расширенное управление ключами
В корпоративной среде с соблюдением требований высокого уровня
безопасности управление ключами шифрования на уровне отдельного
сервера базы данных может оказаться непрактичным [5].
Многие организации приняли корпоративное решение, которое позволяет им
управлять ключами шифрования и сертификатов с помощью поставщика
аппаратных модулей безопасности (hardware security modules, HSMs) для
безопасного хранения ключей. SQL Server поддерживает расширенное
управление ключами (EKM), что дает возможность регистрировать модули
от сторонних поставщиков в SQL Server и позволяет использовать ключи
шифрования, хранящиеся на них.
Чтобы использовать ключи от стороннего поставщика EKM для реализации
TDE, необходимо выполнить следующие задачи:
1.
По умолчанию расширенное управление ключами отключено. Чтобы
включить его, воспользуйтесь системной хранимой процедурой
sp_configure с параметрами, приведенными в следующем примере:
86
sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
sp_configure 'EKM provider enabled', 1
GO
RECONFIGURE
GO
2.
Создание провайдера служб шифрования из файла, предоставляемого
поставщиком EKM:
CREATE CRYPTOGRAPHIC PROVIDER EKM_Provider
FROM FILE = 'S:\EKM_Files\EKMKey.dll' ;
3.
Создание учетной записи для системных администраторов:
CREATE CREDENTIAL EKM_Credential
WITH IDENTITY = 'EKM_Admin',
SECRET = 'Pa$$w0rd'
FOR CRYPTOGRAPHIC PROVIDER EKM_Provider ;
4.
Добавьте учетную запись для имени входа, которое будет использоваться
для настройки шифрования:
ALTER LOGIN [ADVENTUREWORKS\DBAdmin]
ADD CREDENTIAL EKM_Credential ;
5.
Создайте асимметричный ключ, хранящийся в поставщике EKM:
USE master ;
GO
CREATE ASYMMETRIC KEY EKM_Login_Key
FROM PROVIDER EKM_Provider
WITH ALGORITHM = RSA_512,
PROVIDER_KEY_NAME = 'SQL_Server_Key' ;
6.
Создание учетных данных для компонента Database Engine для
использования при выполнении шифрования и расшифровки.
CREATE CREDENTIAL EKM_TDE_Credential
WITH IDENTITY = 'TDE_DB',
SECRET = 'Pa$$w0rd'
FOR CRYPTOGRAPHIC PROVIDER EKM_Provider ;
7.
Создайте имя входа, используемое при TDE и добавить учетные данные.
CREATE LOGIN EKM_Login
FROM ASYMMETRIC KEY EKM_Login_Key ;
GO
ALTER LOGIN EKM_Login
ADD CREDENTIAL EKM_TDE_Credential ;
8.
Создание ключа шифрования базы данных для шифрования базы данных.
USE AdventureWorks ;
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER ASYMMETRIC KEY EKM_Login_Key ;
9.
Включите TDE для базы данных.
ALTER DATABASE AdventureWorks
SET ENCRYPTION ON ;
87
Do'stlaringiz bilan baham: |