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


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

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

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

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

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

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

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

Конфигурация EKM

Расширяемое управление ключами недоступно в каждом выпуске MicrosoftSQL Server. Список функций, поддерживаемых выпусками SQL Server, см. в разделе "Функции, поддерживаемые выпусками SQL Server 2014".

По умолчанию расширяемое управление ключами отключено. Чтобы включить эту функцию, используйте команду 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).

Использование EKM

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

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

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

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

  • Создание внешнего ключа шифрования.

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

  • Извлечение ключа шифрования.

  • Хранение внешнего ключа шифрования (включает смену ключа шифрования).

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

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

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

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

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

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

Проверка подлинности с помощью устройства EKM

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

EKM Device-Specific обычная проверка подлинности с помощью имени пользователя или пароля

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

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

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

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

Другие типы аутентификации EKM Device-Specific

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

Шифрование и расшифровка с помощью устройства EKM

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

Функция или особенность Справка
Шифрование симметричного ключа СОЗДАТЬ СИММЕТРИЧНЫЙ КЛЮЧ (Transact-SQL)
Асимметричное шифрование ключа СОЗДАТЬ АСИММЕТРИЧНЫЙ КЛЮЧ (Transact-SQL)
EncryptByKey(key_guid, "cleartext", ...) ENCRYPTBYKEY (Transact-SQL)
DecryptByKey(ciphertext, ...) DECRYPTBYKEY (Transact-SQL)
EncryptByAsmKey(key_guid, 'открытый текст') ENCRYPTBYASYMKEY (Transact-SQL)
DecryptByAsmKey(ciphertext) DECRYPTBYASYMKEY (Transact-SQL)

Шифрование ключей баз данных по ключам EKM

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

В следующем примере создается симметричный ключ базы данных и шифруется его с помощью ключа в модуле 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 и ключи шифрования базы данных (ядро СУБД).

Замечание

Нельзя зашифровать один ключ EKM с другим ключом EKM.

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

Активированный параметр конфигурации сервера поставщика EKM

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

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

См. также

СОЗДАНИЕ КРИПТОГРАФИЧЕСКОГО ПРОВАЙДЕРА (Transact-SQL)
УДАЛИТЬ КРИПТОГРАФИЧЕСКОГО ПОСТАВЩИКА (Transact-SQL)
ИЗМЕНЕНИЕ КРИПТОГРАФИЧЕСКОГО ПРОВАЙДЕРА (Transact-SQL)
sys.криптографические_поставщики (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)
ИЗМЕНИТЬ ВХОД (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ИЗМЕНИТЬ АСИММЕТРИЧНЫЙ КЛЮЧ (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
СОЗДАТЬ СИММЕТРИЧНЫЙ КЛЮЧ (Transact-SQL)
ALTER СИММЕТРИЧНЫЙ КЛЮЧ (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
OPEN SYMMETRIC KEY (Transact-SQL)
Резервное копирование и восстановление ключей шифрования служб Reporting Services
Удаление и повторное создание ключей шифрования (диспетчер конфигурации SSRS)
Добавление и удаление ключей шифрования для развертывания Scale-Out (диспетчер конфигурации SSRS)
Создание резервной копии главного ключа службы
Восстановление главного ключа службы
Создание главного ключа базы данных
Резервное копирование главного ключа базы данных
Восстановление главного ключа базы данных
Создание идентичных симметричных ключей на двух серверах