Изучение принципов прозрачного шифрования данных

Завершено

Прозрачное шифрование данных Microsoft SQL Server (TDE) шифрует все данные в целевой базе данных на уровне страницы. Данные шифруются по мере записи на страницу данных на диске и расшифровываются при чтении в память, что приводит ко всем страницам данных на диске, зашифрованным.

TDE не шифрует данные на уровне таблицы или столбца. Любой пользователь с соответствующими разрешениями может читать, копировать и предоставлять общий доступ к данным. Шифрование неактивных данных защищает от восстановления резервной копии на незащищенном сервере или копировании файлов базы данных и журналов транзакций на другой незащищенный сервер. Во время операции резервного копирования не происходит расшифровка.

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

Схема, показывающая архитектуру прозрачного шифрования данных.

Базы данных, созданные в Базе данных SQL Azure после мая 2017 г., автоматически включили TDE. Для баз данных, созданных до мая 2017 г., необходимо включить TDE вручную. Для Управляемого экземпляра SQL Azure служба TDE включена по умолчанию для баз данных, созданных после февраля 2019 г. Базам данных, созданным до февраля 2019 года, требуется включить TDE вручную.

Чтобы включить TDE в базе данных SQL Azure, измените базу данных на портале Azure. Включите шифрование на панели Прозрачное шифрование данных.

Снимок экрана: параметры прозрачного шифрования данных для базы данных SQL Azure.

По умолчанию базы данных в базе данных SQL Azure шифруются с помощью предоставленного корпорацией Майкрософт сертификата (управляемый службой ключ). Azure также предлагает вариант "Принести собственный ключ" (BYOK), позволяющий использовать управляемый клиентом ключ, созданный вашей компанией и отправленный в Azure Key Vault. Если ключ, управляемый клиентом, удаляется из Azure, подключения к базе данных закрыты, а доступ к базе данных запрещен.

Включение TDE в базе данных Microsoft SQL Server является простым процессом, так как требуются только несколько команд T-SQL. Для этого необходимо выполнить следующие шаги:

  1. Задайте главный ключ в базе данных master, используя команду CREATE MASTER KEY ENCRYPTION.
  2. Создайте сертификат в базе данных master с помощью CREATE CERTIFICATE команды.
  3. Создайте ключ шифрования базы данных в базе данных с помощью CREATE DATABASE ENCRYPTION KEY команды.
  4. Включите ключ шифрования с помощью ALTER DATABASE команды.
USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<your-pwd>';
GO

CREATE CERTIFICATE MyServerCert
    WITH SUBJECT = 'TDEDemo_Certificate';
GO

USE [TDE_Demo];
GO

CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO

ALTER DATABASE TDE_Demo SET ENCRYPTION ON;
GO

После включения TDE требуется время для шифрования базы данных, так как каждая страница должна быть прочитана, зашифрована и записана обратно на диск. Чем больше база данных, тем дольше занимает этот процесс. Этот фоновый процесс выполняется с низким приоритетом, чтобы избежать перегрузки операций ввода-вывода или ЦП системы.

Сертификат, используемый TDE, должен быть вручную резервирован и сохранен безопасно. SQL Server интегрируется с корпоративными диспетчерами ключей (EKM), такими как Azure Key Vault для управления ключами шифрования. Управление сертификатом имеет решающее значение, так как если он потерян и база данных должна быть восстановлена из резервной копии, восстановление завершается ошибкой, так как база данных не может быть прочитана.

Примечание.

Чтобы использовать TDE с базами данных в группе доступности Always On, необходимо создать резервную копию сертификата, используемого для шифрования базы данных, а затем восстановить ее на других серверах в группе доступности, где будут размещаться копии базы данных.

Ключи, управляемые клиентом

Вы также можете использовать BYOK и воспользоваться преимуществами хранилища ключей Azure. Преимущества использования ключей, управляемых клиентом, :

  • Полный и детализированный контроль над использованием и управлением предохранителем TDE
  • Прозрачность использования предохранителя TDE
  • Возможность реализации разделения обязанностей в управлении ключами и данными в организации
  • Администратор хранилища ключей может отозвать разрешения доступа к ключам, чтобы сделать зашифрованную базу данных недоступной
  • Централизованное управление ключами в AKV
  • Больше доверия от конечных клиентов, так как AKV разработан таким образом, чтобы корпорация Майкрософт не видела или извлекает ключи шифрования.

Вы также можете воспользоваться управляемым пользователем удостоверением (UMI) с ключами, управляемыми клиентом для TDE, которые:

  • Позволяет предварительно выполнять проверку подлинности доступа к хранилищу ключей для логических серверов SQL Azure, создавая управляемое удостоверение, назначаемое пользователем, и предоставляя ему доступ к хранилищу ключей, даже перед созданием сервера или базы данных.
  • Позволяет создавать логический сервер SQL Azure с включенным TDE и CMK.
  • Позволяет назначать одно и то же управляемое удостоверение, назначаемое пользователем нескольким серверам, устраняя необходимость отдельно включить управляемое удостоверение, назначаемое системой для каждого логического сервера SQL Azure, и предоставить ему доступ к хранилищу ключей.
  • Предоставляет возможность принудительного применения CMK во время создания сервера с помощью встроенной политики Azure.

Автоматическая смена ключей введена для ключей, управляемых клиентом, с помощью TDE. При включении сервер постоянно проверяет хранилище ключей для любых новых версий ключа, используемых в качестве средства защиты TDE. Если обнаружена новая версия ключа, средство защиты TDE на сервере автоматически поворачивается на последнюю версию ключа в течение 60 минут.

Шифрование дисков Azure

Помимо этих функций безопасности SQL Server, виртуальные машины Azure включают дополнительный уровень безопасности, Шифрование дисков Azure, — функцию, которая помогает защищать данные, а также выполнять обязательства организации и обеспечить соответствие требованиям. Если вы используете TDE, данные защищаются несколькими уровнями шифрования с помощью Шифрования дисков Azure.