Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
SQL Server предоставляет возможности шифрования данных вместе с расширяемым управлением ключами (EKM), используя поставщик API шифрования Майкрософт (MSCAPI) для шифрования и создания ключей. Ключи для шифрования данных и ключей создаются во временных контейнерах ключей и должны быть экспортированы из поставщика криптографических служб перед сохранением в базе данных. Этот подход позволяет управлению ключами, включая иерархию ключей шифрования и резервное копирование ключей, осуществляться SQL Server.
При растущих требованиях к соответствию нормативным документам и соблюдению конфиденциальности данных компании используют шифрование в качестве решения, обеспечивающего «глубинную защиту». Такой подход часто оказывается непрактичным, если использовать только средства управления шифрованием базы данных. Поставщики оборудования поставляют продукты, в которых управление ключами компании осуществляется при помощи аппаратных модулей безопасности (HSM). В устройствах, оборудованных аппаратными модулями безопасности, ключи шифрования встроены в оборудование или в программные модули. Это решение является более безопасным, поскольку ключи шифрования хранятся отдельно от зашифрованных данных.
Некоторые поставщики предлагают аппаратные модули безопасности как для управления ключами, так и для ускорения шифрования. Устройства HSM используют аппаратные интерфейсы, а серверный процесс выступает посредником между приложением и HSM. Производители также реализуют поставщиков MSCAPI для своих модулей, которые могут быть аппаратными или программными. MSCAPI часто предоставляет лишь часть функциональности, которую предоставляет 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
Расширяемое управление ключами недоступно в каждом выпуске 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).
Как использовать EKM
Система расширяемого управления ключами SQL Server позволяет хранить ключи шифрования, используемые для защиты файлов базы данных, на внешнем устройстве, таком как смарт-карта, USB-устройство или модуль EKM/HSM. Предусмотрена также защита данных от администраторов базы данных (за исключением членов группы sysadmin). Данные могут быть зашифрованы при помощи ключей шифрования, доступ к которым имеет только пользователь базы данных на внешнем модуле расширенного управления ключами или аппаратного модуля безопасности.
Расширенное управление ключами дает следующие преимущества.
Дополнительная проверка авторизации (обеспечивает разграничение обязанностей).
Более высокая производительность аппаратного шифрования или расшифровки.
Внешнее создание ключей шифрования.
Внешнее хранение ключей шифрования (физическое разделение данных и ключей.)
Получение ключей шифрования.
Внешнее хранение ключей шифрования (разрешает смену ключа шифрования).
Упрощенное восстановление ключа шифрования.
Управление распространением ключей шифрования.
Безопасное освобождение ключей шифрования.
Расширенное управление ключами можно использовать для сочетания имени пользователя и пароля, а также других методов, определяемых драйвером расширенного управления ключами.
Внимание
Для устранения неполадок в технической поддержке Майкрософт может потребоваться ключ шифрования от поставщика EKM. Кроме того, при работе над устранением проблем может потребоваться доступ к средствам или процессам, предоставляемым поставщиком.
Аутентификация с использованием устройства EKM
Модуль расширенного управления ключами может поддерживать несколько типов проверки подлинности. Каждый поставщик предоставляет только один тип проверки подлинности sql Server, то есть если модуль поддерживает базовые или другие типы проверки подлинности, он предоставляет один или другой, но не оба.
Базовая аутентификация EKM для конкретного устройства с использованием имени пользователя и пароля
Для этих модулей EKM, поддерживающих обычную проверку подлинности с помощью пары имени пользователя и пароля , SQL Server обеспечивает прозрачную проверку подлинности с помощью учетных данных. Дополнительные сведения об учетных данных см. в разделе "Учетные данные" (ядро СУБД).
Для поставщика EKM можно создать учетные данные и сопоставить их с учетной записью входа (как Windows, так и SQL Server) для доступа к модулю EKM отдельно для каждой учетной записи входа. Поле identity учетных данных содержит имя пользователя; поле secret содержит пароль для подключения к модулю EKM.
Если для поставщика EKM нет сопоставленных учетных данных для входа, используются учетные данные, сопоставленные с учетной записью службы SQL Server.
С одной учетной записью может быть сопоставлено несколько учетных данных, если они используются для разных поставщиков EKM. Для каждого имени входа у каждого поставщика EKM может быть только один набор сопоставленных учетных данных. Одни и те же учетные данные могут быть сопоставлены с другими именами входа.
Другие типы аутентификации EKM для конкретного устройства
Для модулей EKM, использующих аутентификацию, отличную от Windows или комбинаций имени пользователя и пароля, аутентификация должна выполняться независимо от SQL Server.
Шифрование и дешифрование с помощью устройства EKM
Следующие функции и возможности позволяют зашифровать и расшифровать данные при помощи симметричных и асимметричных ключей.
| Функция или характеристика | Справочные материалы |
|---|---|
| Шифрование симметричным ключом | 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) |
Шифрование ключей базы данных с помощью ключей EKM
SQL Server может использовать ключи 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 в SQL Server с помощью EKM
Расширенное управление ключами с помощью 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)
Создание резервной копии главного ключа службы
Восстановление главного ключа службы
Создание главного ключа базы данных
Создание резервной копии главного ключа базы данных
Восстановление главного ключа базы данных
Создание идентичных симметричных ключей на двух серверах