Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
SQL Server предоставляет возможности шифрования данных вместе с расширяемым управлением ключами (EKM), используя поставщик API шифрования Майкрософт (MSCAPI) для шифрования и создания ключей. Ключи шифрования данных и ключей создаются во временных контейнерах ключей, и их необходимо экспортировать из провайдера перед хранением в базе данных. Этот подход позволяет SQL Server управлять ключами, включая иерархию ключей шифрования и резервное копирование ключей.
В связи с растущим спросом на соблюдение нормативных требований и заботой о конфиденциальности данных организации используют шифрование как способ предоставления решения по многоуровневой защите. Такой подход часто оказывается непрактичным, если использовать только средства управления шифрованием базы данных. Производители аппаратного обеспечения предоставляют продукты, которые обеспечивают управление корпоративными ключами с помощью аппаратных модулей безопасности (HSM). В устройствах, оборудованных аппаратными модулями безопасности, ключи шифрования встроены в оборудование или в программные модули. Этот подход более безопасен, поскольку ключи шифрования не хранятся вместе с зашифрованными данными.
Несколько поставщиков предлагают HSM как для управления ключами, так и для ускорения шифрования. Устройства HSM используют аппаратные интерфейсы, а серверный процесс выступает посредником между приложением и HSM. Производители также реализуют поставщиков MSCAPI для своих модулей, которые могут быть аппаратными или программными. MSCAPI часто предлагает лишь часть функций, которые предлагает HSM. Поставщики также могут предоставлять программное обеспечение для управления HSM, конфигурацию ключей и доступ к ключам.
Реализации HSM различаются у разных производителей, и для их использования с SQL Server требуется общий интерфейс. Хотя MSCAPI предоставляет этот интерфейс, он поддерживает только часть функций HSM. У этого интерфейса есть и другие ограничения, например отсутствие собственных средств для хранения симметричных ключей, отсутствие сеансоориентированной поддержки.
SQL Server Extensible Key Management позволяет сторонним производителям EKM и HSM регистрировать свои модули в SQL Server. После регистрации модуля пользователи SQL Server могут использовать ключи шифрования, хранящиеся на нём. SQL Server затем может использовать расширенные функции шифрования, которые поддерживают эти модули, такие как массовое шифрование и расшифровка, а также функции управления ключами, такие как старение ключа и вращение ключа.
Когда вы запускаете SQL Server в Azure VM, SQL Server может использовать ключи, хранящиеся в Azure Key Vault. Для получения дополнительной информации см. раздел Extensible Key Management using Azure Key Vault (SQL Server).
Конфигурация ЭКМ
Extensible Key Management доступно не во всех редакциях SQL Server. Список функций, поддерживаемых редакциями SQL Server, см. раздел Редакции и поддерживаемые функции SQL Server 2025.
По умолчанию расширенное управление ключами отключено. Чтобы включить эту функцию, используйте хранимую процедуру sp_configure (Transact-SQL) со следующей опцией и значением:
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 Extensible Key Management позволяет хранить ключи шифрования, защищающие файлы базы данных, на внешних устройствах, таких как смарт-карта, USB-устройство или модуль EKM/HSM. Он также защищает данные от администраторов баз данных, за исключением членов фиксированной серверной роли sysadmin. Вы можете шифровать данные, используя ключи шифрования на внешнем модуле EKM/HSM, к которым может получить доступ только пользователь базы данных.
Расширенное управление ключами дает следующие преимущества.
- Дополнительная проверка авторизации, которая позволяет разделить обязанности.
- Более высокая производительность для аппаратного шифрования и расшифровки.
- Внешнее создание ключей шифрования.
- Внешнее хранилище ключей шифрования, которое физически разделяет данные и ключи.
- Получение ключей шифрования.
- Внешнее хранение ключа шифрования, что позволяет выполнять ротацию ключа шифрования.
- Упрощенное восстановление ключа шифрования.
- Управление распространением ключей шифрования.
- Безопасное освобождение ключей шифрования.
Расширенное управление ключами можно использовать для сочетания имени пользователя и пароля, а также других методов, определяемых драйвером расширенного управления ключами.
Внимание
Для устранения неполадок в технической поддержке Майкрософт может потребоваться ключ шифрования от поставщика EKM. Кроме того, при работе над устранением проблем может потребоваться доступ к средствам или процессам, предоставляемым поставщиком.
Аутентификация с помощью устройства EKM
Модуль расширенного управления ключами может поддерживать несколько типов проверки подлинности. Каждый провайдер поддерживает только один тип аутентификации для SQL Server. То есть, если модуль поддерживает как базовые, так и другие типы аутентификации, он предоставляет один из них, но не оба.
Базовая аутентификация для устройств EKM с использованием имени пользователя и пароля
Для модулей EKM, поддерживающих базовую аутентификацию с помощью пары имени пользователя и пароля, SQL Server обеспечивает прозрачную аутентификацию с помощью учетных данных. Дополнительные сведения об учетных данных см. в разделе "Учетные данные" (ядро СУБД).
Вы можете создать учетные данные для провайдера EKM и сопоставить их с именем входа, будь то учетная запись Windows или SQL Server, чтобы получить доступ к модулю EKM для каждого имени входа. Поле identity учетных данных содержит имя пользователя, а поле secret — пароль для подключения к модулю EKM.
Если для провайдера EKM нет учетных данных, сопоставленных с именем входа, SQL Server использует учетные данные, сопоставленные с сервисной учетной записью.
Учетная запись может иметь несколько учетных данных доступа, связанных с ней, при условии, что каждые из них используются для отдельного провайдера 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.
Следующий пример создаёт симметричный ключ базы данных и шифрует его с помощью ключа на модуле EKM.
CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO
-- Open the 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)
- SQL Server и ключи шифрования баз данных (ядро СУБД)
- CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- ALTER CRYPTOGRAPHIC PROVIDER (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)
- Системные удостоверения (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)
- Резервное копирование и восстановление ключей шифрования SQL Server Reporting Services (SSRS)
- Удаление и повторное создание ключей шифрования (Configuration Manager)
- Добавление и удаление ключей шифрования для развертывания масштабируемых систем
- Резервная копия мастер-ключа сервиса
- Восстановить сервисный мастер-ключ
- Создание мастер-ключа базы данных
- Резервное копирование главного ключа базы данных
- Восстановить мастер-ключ базы данных
- Создавать идентичные симметричные ключи на двух серверах