Прозрачное шифрование данных (TDE) для рабочей области Workflow Manager в SQL Server

Уровень сложности: Начальный Требования к данным: ArcGIS Tutorial Data for Desktop

Базу данных можно защитить путем проектирования безопасной системы, шифрования конфиденциальных активов, а также размещения серверов баз данных за брандмауэром. Однако в случае, когда физические носители (такие как диски и ленты с резервными копиями) украдены, злоумышленник может восстановить или подключиться к базе данных и просматривать эти данные. Одним из решений является шифрование конфиденциальных данных в базе данных и защита ключей, используемых для шифрования данных с помощью сертификатов. Это предотвращает использования данных лицами без ключей, но этот вид защиты должен быть спланирован заранее.

Прозрачное шифрование данных (Transparent Data Encryption (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.

Шаги:
  1. Создайте мастер-ключ.
  2. Создайте или получите сертификат, защищенный мастер-ключом.
  3. Создайте ключ шифрования базы данных и защитите его сертификатом.
  4. Установите базу данных, чтобы использовать шифрование.

Пример 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
5/10/2014