Администрирование
13
Окт
2

Transparent Data Encryption

TDE – Transparent Data Encryption – прозрачное шифрование данных в SQL Server’е. TDE позволяет шифровать базы данных целиком, тем самым предотвращая несанкционированный доступ файлам самой БД и файлов резервных копий. Когда страница данных сбрасывается из оперативной памяти на диск, она шифруется. Когда страница загружается обратно в оперативную память, она расшифровывается. Таким образом, база данных на диске оказывается полностью зашифрованной, а в оперативной памяти нет. Основным преимуществом TDE является то, что шифрование и расшифровка выполняются абсолютно прозрачно для приложений.

Это может потребоваться для защиты конфиденциальных данных, такие как номера кредитных карт. TDE не шифрует данные, передаваемые по сети.

Поддерживается только в SQL Enterprise Edition.

Вы можете выбрать следующие алгоритмы шифрования: DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128-bit RC4, DESX, 128-bit AES, 192-bit AES, and 256-bit AES

Чтобы включить TDE на БД CRM выполните следующие шаги:

  • Сначала создайте Master Key – он требуется чтобы создать TDE сертификат, который используется для создания ключа шифрования, который используется для шифрования:
    USE master;
    GO
    CREATE MASTER KEY
    ENCRYPTION BY PASSWORD = '1qaz@WSX';
    GO
    

    Примечание: пароль должен отвечать требованиям политике паролей windows;

  • Создайте TDE сертификат – он используется для создания симметричного ключа для шифрования данных:
    USE master;
    CREATE CERTIFICATE CRMCertificate
    WITH SUBJECT = 'TDE CRM Certificate'
    GO
    
  • Создайте ключ шифрования на уровне БД:
    USE superfirma_MSCRM;
    CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_192
    ENCRYPTION BY SERVER CERTIFICATE CRMCertificate
    GO
    
  • Включаем TDE для БД:
    ALTER DATABASE superfirma_MSCRM
    SET ENCRYPTION ON
    
  • Проверяем для каких БД включено шифрование:
    SELECT DB_NAME (DATABASE_ID), encryption_state
    FROM SYS.dm_database_encryption_keys
    



Очень важно: обязательно сделайте резервную копию сертификата (и храните ее не только на SQL Server’е) – без него вы не сможете использовать свои файлы базы данных / файлы резервных копий. И в случае падения сервера вы не сможете восстановить Ваши данные. Бэкап можно сделать так:

USE master
GO
BACKUP CERTIFICATE CRMCertificate
TO FILE = 'C:\tdeCert.certbak'
WITH PRIVATE KEY
(
FILE ='CRMCertificate',
ENCRYPTION BY PASSWORD = '1qaz@WSX'
);
GO

Примечания:

  • Если задействовать TDE на какой-либо базе данных в экземпляр SQL сервера, то TempDB также будет зашифрована. И это может оказать влияние на производительность;
  • TDE ухудшает производительность примерно на 10% (http://technet.microsoft.com/en-us/library/gg554657.aspx).


Более подробно об всем этом: http://msdn.microsoft.com/en-us/library/bb934049.aspx

Комментарии (2)
  • Andrey 13.10.2013

    По номерам кред.карт — не совсем корректно. TDE не предотвращает доступ к данным — т.е. легальный пользователь все-таки может получить доступ к номерам (тем более, администратор БД). В то же время, регулятор требует, чтобы номер хранился в зашифрованном виде (а так же, ряд дополнительных требований), что не является задачей TDE

  • slivka_83 13.10.2013

    >предотвращая несанкционированный доступ файлам самой БД и файлов резервных копий.

    Кто-то не внимательно читал (не буедм показывать пальцем 🙂

*

code