Расширенное управление ключами (Extensible Key Management)

Применимо к:SQL Server

SQL Server предоставляет возможности шифрования данных вместе с расширяемым управлением ключами (EKM), используя поставщик API шифрования Майкрософт (MSCAPI) для шифрования и создания ключей. Ключи шифрования для шифрования данных и ключей создаются в контейнерах временных ключей и перед сохранением в базе данных должны быть экспортированы из поставщика. Этот подход позволяет управлять ключами, включающими иерархию ключей шифрования и резервное копирование ключей, обрабатываться SQL Server.

При растущих требованиях к соответствию нормативным документам и соблюдению конфиденциальности данных компании используют шифрование в качестве решения, обеспечивающего «глубинную защиту». Использование средств по управлению шифрованием, предусмотренных только в базах данных, часто оказывается нецелесообразным. Поставщики оборудования поставляют продукты, в которых управление ключами компании осуществляется при помощи аппаратных модулей безопасности (HSM). В устройствах, оборудованных аппаратными модулями безопасности, ключи шифрования встроены в оборудование или в программные модули. Это решение является более безопасным, поскольку ключи шифрования хранятся отдельно от зашифрованных данных.

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

Реализации HSM различаются от поставщика к поставщику, а для их использования с SQL Server требуется общий интерфейс. Несмотря на то, что в MSCAPI такой интерфейс предусмотрен, в нем реализована только часть возможностей аппаратных модулей. У этого интерфейса есть и другие ограничения, например отсутствие собственных средств для хранения симметричных ключей, отсутствие сеансоориентированной поддержки.

Управление расширяемыми ключами SQL Server позволяет сторонним поставщикам EKM/HSM регистрировать модули в SQL Server. При регистрации пользователи SQL Server могут использовать ключи шифрования, хранящиеся в модулях EKM. Это позволяет SQL Server получать доступ к расширенным функциям шифрования, которые поддерживают такие модули, как массовое шифрование и расшифровка, а также функции управления ключами, такие как смена ключей и смена ключей.

При запуске SQL Server на виртуальной машине Azure SQL Server может использовать ключи, хранящиеся в Azure Key Vault. Дополнительные сведения см. в статье Расширенное управление ключами с помощью Azure Key Vault (SQL Server).

Конфигурация расширенного управления ключами

Расширяемое управление ключами недоступно в каждом выпуске Microsoft SQL Server. Сведения о функциях, поддерживаемых различными выпусками SQL Server, см. в статье Возможности, поддерживаемые выпусками SQL Server 2016.

По умолчанию расширенное управление ключами отключено. Чтобы включить его, воспользуйтесь командой sp_configure с параметрами, приведенными в следующем примере:

sp_configure 'show advanced', 1  
GO  
RECONFIGURE  
GO  
sp_configure 'EKM provider enabled', 1  
GO  
RECONFIGURE  
GO  

Заметка

Если вы используете команду sp_configure для этого параметра в выпусках SQL Server, которые не поддерживают EKM, вы получите сообщение об ошибке.

Чтобы отключить эту функцию, задайте значение 0. Дополнительные сведения о настройке параметров сервера см. в sp_configure (Transact-SQL).

Использование расширенного управления ключами

Расширенное управление ключами SQL Server позволяет хранить ключи шифрования, защищающие файлы базы данных, на внешних устройствах, таких как смарт-карты, USB-устройства или модули расширенного управления ключами и аппаратные модули безопасности. Предусмотрена также защита данных от администраторов базы данных (за исключением членов группы sysadmin). Данные могут быть зашифрованы при помощи ключей шифрования, доступ к которым имеет только пользователь базы данных на внешнем модуле расширенного управления ключами или аппаратного модуля безопасности.

Расширенное управление ключами дает следующие преимущества.

  • Дополнительная проверка подлинности (включая разграничение обязанностей).

  • Более высокая производительность аппаратного шифрования или расшифровки.

  • Внешнее создание ключей шифрования.

  • Внешнее хранение ключей шифрования (физическое разделение данных и ключей.)

  • Получение ключей шифрования.

  • Внешнее хранение ключей шифрования (разрешает смену ключа шифрования).

  • Упрощенное восстановление ключа шифрования.

  • Управление распространением ключей шифрования.

  • Безопасное освобождение ключей шифрования.

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

Внимание

Для устранения неполадок в технической поддержке Майкрософт может потребоваться ключ шифрования от поставщика EKM. Кроме того, при работе над устранением проблем может потребоваться доступ к средствам или процессам, предоставляемым поставщиком.

Проверка подлинности на устройстве расширенного управления ключами

Модуль расширенного управления ключами может поддерживать несколько типов проверки подлинности. Каждый поставщик предоставляет только один тип проверки подлинности sql Server, то есть если модуль поддерживает базовые или другие типы проверки подлинности, он предоставляет один или другой, но не оба.

Определяемая устройством расширенного управления ключами обычная проверка подлинности при помощи имени пользователя и пароля

Для этих модулей EKM, поддерживающих обычную проверку подлинности с помощью пары имени пользователя и пароля , SQL Server обеспечивает прозрачную проверку подлинности с помощью учетных данных. Дополнительные сведения об учетных данных см. в разделе "Учетные данные" (ядро СУБД).

Учетные данные можно создать для поставщика EKM и сопоставить с именем входа (как учетными записями Windows, так и SQL Server), чтобы получить доступ к модулю EKM по каждому входу. Поле identity учетных данных содержит имя пользователя; в поле secret содержится пароль для подключения к модулю расширенного управления ключами.

Если для поставщика EKM нет сопоставленных учетных данных для входа, используются учетные данные, сопоставленные с учетной записью службы SQL Server.

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

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

Для модулей EKM с проверкой подлинности, отличной от сочетаний паролей Windows или пользователей, проверка подлинности должна выполняться независимо от SQL Server.

Шифрование и расшифровка при помощи устройства расширенного управления ключами

Следующие функции и возможности позволяют зашифровать и расшифровать данные при помощи симметричных и асимметричных ключей.

Функция или характеристика Ссылка
Шифрование симметричным ключом CREATE SYMMETRIC KEY (Transact-SQL)
Шифрование асимметричным ключом CREATE ASYMMETRIC KEY (Transact-SQL)
EncryptByKey(key_guid, 'cleartext', ...) ENCRYPTBYKEY (Transact-SQL)
DecryptByKey(ciphertext, ...) DECRYPTBYKEY (Transact-SQL)
EncryptByAsmKey(key_guid, 'cleartext') ENCRYPTBYASYMKEY (Transact-SQL)
DecryptByAsmKey(ciphertext) DECRYPTBYASYMKEY (Transact-SQL)

Шифрование ключей базы данных при помощи ключей расширенного управления ключами

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

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

CREATE SYMMETRIC KEY Key1  
WITH ALGORITHM = AES_256  
ENCRYPTION BY EKM_AKey1;  
GO  
--Open database key  
OPEN SYMMETRIC KEY Key1  
DECRYPTION BY EKM_AKey1  

Дополнительные сведения о ключах базы данных и сервера в SQL Server см. в разделе SQL Server и ключи шифрования базы данных (ядро СУБД).

Заметка

Зашифровать один ключ расширенного управления ключами при помощи другого ключа расширенного управления ключами невозможно.

SQL Server не поддерживает модули подписывания с асимметричными ключами, созданными поставщиком EKM.

Включенный параметр конфигурации сервера поставщика расширенного управления ключами

Включение прозрачного шифрования данных в SQL Server с помощью расширенного управления ключами

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

См. также

CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
sys.cryptographic_providers (Transact-SQL)
sys.dm_cryptographic_provider_sessions (Transact-SQL)
sys.dm_cryptographic_provider_properties (Transact-SQL)
sys.dm_cryptographic_provider_algorithms (Transact-SQL)
sys.dm_cryptographic_provider_keys (Transact-SQL)
sys.credentials (Transact-SQL)
CREATE CREDENTIAL (Transact-SQL)
ALTER LOGIN (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
OPEN SYMMETRIC KEY (Transact-SQL)
Резервное копирование и восстановление ключей шифрования служб Reporting Services
Удаление и повторное создание ключей шифрования (диспетчер конфигурации служб SSRS)
Добавление и удаление ключей шифрования для масштабного развертывания (диспетчер конфигурации служб SSRS)
Создание резервной копии главного ключа службы
Восстановление главного ключа службы
Создание главного ключа базы данных
Создание резервной копии главного ключа базы данных
Восстановление главного ключа базы данных
Создание идентичных симметричных ключей на двух серверах