Поделиться через


Ключи шифрования SQL Server и базы данных (ядро СУБД)

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

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

Приложения для ключей SQL Server и базы данных

SQL Server имеет два первичных приложения для ключей: главный ключ службы (SMK), созданный в экземпляре SQL Server и для экземпляра SQL Server, а также главный ключ базы данных (DMK), используемый для базы данных.

SMK создается автоматически при первом запуске экземпляра SQL Server и используется для шифрования пароля связанного сервера, учетных данных и главного ключа базы данных. SMK шифруется с помощью ключа локального компьютера с помощью API защиты данных Windows (DPAPI). DPAPI использует ключ, производный от учетных данных Windows учетной записи службы SQL Server и учетных данных компьютера. Главный ключ службы можно расшифровать только учетной записью службы, в которой она была создана или субъектом с доступом к учетным данным компьютера.

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

При создании главный ключ шифруется с помощью алгоритма Triple DES и пароля, предоставленного пользователем. Чтобы включить автоматическую расшифровку главного ключа, копия ключа шифруется с помощью SMK. Он хранится как в базе данных, где она используется, так и в системной master базе данных.

Копия основного ключа базы данных (DMK), хранящаяся в master системной базе данных, незаметно обновляется при изменении DMK. Однако это значение по умолчанию можно изменить с помощью DROP ENCRYPTION BY SERVICE MASTER KEY параметра инструкции ALTER MASTER KEY . DmK, который не зашифрован главным ключом службы, должен быть открыт с помощью OPEN MASTER KEY инструкции и пароля.

Управление ключами SQL Server и базой данных

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

Для управления симметричными ключами можно использовать средства, включенные в SQL Server, для выполнения следующих действий:

  • Создайте резервную копию ключей сервера и базы данных, чтобы их можно было использовать для восстановления установки сервера или в рамках запланированной миграции.

  • Восстановите ранее сохраненный ключ в базе данных. Это позволяет новому экземпляру сервера получить доступ к существующим данным, которые изначально не шифруются.

  • Удалите зашифрованные данные в базе данных в маловероятном случае, если вы больше не сможете получить доступ к зашифрованным данным.

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

  • Добавьте или удалите экземпляр сервера из развертывания горизонтального масштабирования сервера, где несколько серверов совместно используют одну базу данных и ключ, обеспечивающий обратимое шифрование для этой базы данных.

Важные сведения о безопасности

Для доступа к объектам, защищенным главным ключом службы, требуется учетная запись службы SQL Server, которая использовалась для создания ключа или учетной записи компьютера (компьютера). То есть компьютер привязан к системе, в которой был создан ключ. Вы можете изменить учетную запись службы SQL Server или учетную запись компьютера без потери доступа к ключу. Однако при изменении обоих вы потеряете доступ к главному ключу службы. Если вы теряете доступ к главному ключу службы без одного из этих двух элементов, вы не сможете расшифровать данные и объекты, зашифрованные с помощью исходного ключа.

Подключения, защищенные с помощью главного ключа службы, не могут быть восстановлены без главного ключа службы.

Доступ к объектам и данным, защищенным с помощью главного ключа базы данных, требует только пароля, который используется для защиты ключа.

Осторожность

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

В этом разделе

Главный ключ службы
Содержит краткое описание главного ключа сервиса и его рекомендуемых практик.

Расширенное управление ключами (EKM)
Объясняет, как использовать сторонние системы управления ключами с SQL Server.

Создание резервной копии главного ключа службы

Восстановление главного ключа службы

Создание главного ключа базы данных

Резервное копирование главного ключа базы данных

Восстановление главного ключа базы данных

Создание идентичных симметричных ключей на двух серверах

Расширенное управление ключами с помощью Azure Key Vault (SQL Server)

Включение TDE с помощью EKM

CREATE MASTER KEY (Transact-SQL)

ИЗМЕНИТЬ КЛЮЧ СЕРВИСА MASTER (Transact-SQL)

Восстановление главного ключа базы данных

См. также

Резервное копирование и восстановление ключей шифрования служб Reporting Services
Удаление и повторное создание ключей шифрования (диспетчер конфигурации SSRS)
Добавление и удаление ключей шифрования для развертывания Scale-Out (диспетчер конфигурации SSRS)
Прозрачное шифрование данных (TDE)