Доступно с лицензией Workflow Manager.
Базу данных можно защитить путем проектирования безопасной системы, шифрования конфиденциальных активов, а также размещения серверов баз данных за брандмауэром. Однако в случае, когда физические носители (такие как диски и ленты с резервными копиями) украдены, злоумышленник может восстановить базу данных или подключиться к ней и просматривать эти данные. Одним из решений является шифрование конфиденциальных данных в базе данных и защита ключей, используемых для шифрования данных с помощью сертификатов. Это предотвращает использования данных лицами без ключей, но этот вид защиты должен быть спланирован заранее.
Прозрачное шифрование данных (TDE) позволяет шифровать конфиденциальные данные, такие как номера кредитных карт, хранящиеся в таблицах и FileGroups. Зашифрованные данные явно расшифрованы для пользователя базы данных или приложения, которое имеет доступ к данным. TDE помогает защитить данные, хранящиеся на устройствах, в случае похищения носителя данных или файла данных. SQL Server использует аутентификацию, авторизацию и механизмы аудита для защиты данных в базе данных, но не в операционной системе файлов данных, где хранятся данные. Для защиты этих файлов данных SQL Server обеспечивает TDE. TDE шифрует конфиденциальные данные, хранящихся в файлах данных. Для предотвращения несанкционированной расшифровки, TDE хранит ключи шифрования в модуле защиты внешне по отношению к базе данных.
TDE выполняет в режиме реального времени I/O шифрование и дешифрование файлов данных и журналов. Шифрование использует ключ шифрования (DEK) базы данных, который хранится в базе данных загрузочной записи для доступа во время восстановления. DEK – это симметричный ключ, защищенный с помощью сертификата, хранящегося в основной базе данных сервера, или асимметричный ключ, защищенный модулем Encryption Key Manager (EKM). TDE защищает данные в состоянии покоя, т.е. файлы данных и журналов. Он предоставляет возможность соответствовать множеству законов, нормативных актов и руководящих принципов, разработанных в различных отраслях промышленности. Это позволяет разработчикам программного обеспечения шифровать данные с использованием алгоритмов Американского стандарта шифрования (AES) и 3DES, не изменяя существующие приложения.
Файлы базы данных шифруются на уровне страницы. Страницы в зашифрованной базе данных шифруются перед тем, как они записываются на диск, и расшифровываются при считывании в память. TDE не увеличивает размер зашифрованной базы данных.
Преимущества использования TDE
- Как администратор по вопросам безопасности, вы можете быть уверены, что в случае кражи носителя для хранения данных или файла данных, любые конфиденциальные сведения будут в безопасности.
- Применение прозрачного шифрования данных (TDE) поможет вам решить вопросы, имеющие отношение к соблюдению мер безопасности.
- Вам не придется создавать некую схему или механизм, который обеспечивал бы запуск шифрования данных для авторизованного пользователя или приложения. Данные из таблиц прозрачно дешифруются для пользователя базы данных и для приложения.
- Пользователям баз данных, как и приложениям, не надо знать о том, что доступные им данные хранятся в зашифрованном виде. Данные прозрачно дешифруются для пользователей базы данных и для приложений.
- Приложениям не требуется какая-либо модификация для обработки зашифрованных данных. Шифрование и дешифрование данных управляется базой данных.
- Операции управления ключом шифрования автоматизированы. Ни пользователь, ни приложение не имеют никакого отношения к управлению ключами шифрования.
Чтобы использовать TDE, выполните следующие действия в SQL Server Management Studio.
- Создайте мастер-ключ.
- Создайте или получите сертификат, защищенный мастер-ключом.
- Создайте ключ шифрования базы данных и защитите его сертификатом.
- Установите базу данных, чтобы использовать шифрование.
Пример TDE
Вы можете использовать команды, приведенные ниже, для настройки TDE. Вы можете выбрать пароль для мастер-ключа, и при резервном копировании главного ключа, вы можете выбрать папку и имя файла.
Пример TDE
USE master
GO
/* Verify master key */
SELECT * FROM sys.symmetric_keys WHERE name LIKE '%MS_DatabaseMasterKey%'
GO
/* If there are no records found, then it means there was no predefined Master Key.
To create a Master Key, you can execute the below mentioned TSQL code. */
/* Create master key */
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'wmx$$@admin';
GO
/* Backup master key */
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'wmx$$@admin';
GO
BACKUP MASTER KEY TO FILE = 'D:\mssqlbackup\master\masterkey.mk'
ENCRYPTION BY PASSWORD = 'wmx$$@admin';
GO
/* Create Certificate */
CREATE CERTIFICATE wmx_cert WITH SUBJECT = 'WMX Server Certificate';
GO
/* Verify Certificate */
SELECT * FROM sys.certificates where [name] = 'wmx_cert'
GO
/* Backup certificate */
BACKUP CERTIFICATE wmx_cert TO FILE = 'D:\mssqlbackup\master\wmx.cer'
WITH PRIVATE KEY (
FILE = 'D:\mssqlbackup\master\wmx.pvk',
ENCRYPTION BY PASSWORD = 'wmx$$@admin');
GO
--use wmx database
USE wmxdb
GO
/* Create Encryption key */
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE wmx_cert;
GO
/* Encrypt database */
ALTER DATABASE wmxdb SET ENCRYPTION ON;
GO
/* Verify Encryption */
SELECT
DB_NAME(database_id) AS DatabaseName
,Encryption_State AS EncryptionState
,key_algorithm AS Algorithm
,key_length AS KeyLength
FROM sys.dm_database_encryption_keys
GO
SELECT
NAME AS DatabaseName
,IS_ENCRYPTED AS IsEncrypted
FROM sys.databases where name ='wmxdb'
GO