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


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

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

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

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

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

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

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

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

Расширенное управление ключами поддерживается не во всех выпусках 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 , не поддерживающих расширенное управление ключами, то возникнет ошибка.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Внимание!

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

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

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

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

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

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

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

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

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

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

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

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 не поддерживает модули подписания и асимметричные ключи, сформированные из поставщика расширенного управления ключами.

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

Включение TDE с помощью расширенного управления ключами

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