Основные сведения о расширенном управлении ключами (EKM)
В SQL Server наряду с расширенным управлением ключами (EKM) предусмотрена возможность шифрования данных с применением поставщика Microsoft Cryptographic API (MSCAPI) для шифрования и создания ключа. Ключи шифрования для шифрования данных и ключей создаются в контейнерах временных ключей и перед сохранением в базе данных должны быть экспортированы из поставщика. Благодаря этому подходу управление ключами, содержащее иерархию ключей шифрования и резервирование ключей, может быть обработано SQL Server.
При растущих требованиях к соответствию нормативным документам и соблюдению конфиденциальности данных компании используют шифрование в качестве решения, обеспечивающего «глубинную защиту». Использование средств по управлению шифрованием, предусмотренных только в базах данных, часто оказывается нецелесообразным. Поставщики оборудования поставляют продукты, в которых управление ключами компании осуществляется при помощи аппаратных модулей безопасности (HSM). В устройствах, оборудованных аппаратными модулями безопасности, ключи шифрования встроены в оборудование или в программные модули. Это решение является более безопасным, поскольку ключи шифрования хранятся отдельно от зашифрованных данных.
Некоторые поставщики предлагают аппаратные модули безопасности как для управления ключами, так и для ускорения шифрования. В устройствах с аппаратными модулями безопасности в роли посредника между приложением и аппаратным модулем выступают интерфейсы оборудования с серверной обработкой. В своих модулях производители также реализуют поставщики MSCAPI, представленные в качестве оборудования или программного обеспечения. Часто интерфейсы MSCAPI реализуют только подмножество функций, предлагаемых аппаратными модулями. Поставщики также могут предложить программное обеспечение для управления аппаратными модулями безопасности, настройки ключей и доступа к ключам.
Реализации аппаратных модулей безопасности от разных поставщиков отличаются друг от друга. Чтобы использовать их с SQL Server, необходим общий интерфейс. Несмотря на то, что в MSCAPI такой интерфейс предусмотрен, в нем реализована только часть возможностей аппаратных модулей. У этого интерфейса есть и другие ограничения, например отсутствие собственных средств для хранения симметричных ключей, отсутствие сеансоориентированной поддержки.
Расширенное управление ключами SQL Server 2008 позволяет сторонним поставщикам расширенного управления ключами и поставщикам аппаратных модулей безопасности регистрировать свои модули в SQL Server. После регистрации пользователи SQL Server могут использовать ключи шифрования, хранимые в модулях расширенного управления ключами. Таким образом, в SQL Server доступны расширенные возможности шифрования, поддерживаемые этими модулями, такие как массовое шифрование и расшифровка, а также функции управления ключами, например старение или смена ключей.
Конфигурация расширенного управления ключами
Расширенное управление ключами доступно только в следующих выпусках SQL Server: Enterprise, Developer и Evaluation.
По умолчанию расширенное управление ключами отключено. Чтобы включить его, воспользуйтесь командой sp_configure с параметрами, приведенными в следующем примере:
sp_configure 'show advanced', 1
GO
RECONFIGURE
GO
sp_configure 'EKM provider enabled', 1
GO
RECONFIGURE
GO
![]() |
---|
При использовании команды sp_configure для данного параметра в выпусках, отличных от Enterprise, Developer или Evaluation editions, возникнет ошибка. |
Чтобы отключить эту функцию, установите его в значение 0. Дополнительные сведения о настройке параметров сервера см. в разделе sp_configure (Transact-SQL).
Использование расширенного управления ключами
Расширенное управление ключами SQL Server 2008 включает ключи шифрования, защищающие файлы базы данных, хранимые на внешних устройствах, таких как смарт-карты, USB-устройства, модули расширенного управления ключами и аппаратные модули безопасности. Предусмотрена также защита данных от администраторов базы данных (за исключением членов группы sysadmin). Данные могут быть зашифрованы при помощи ключей шифрования, доступ к которым имеет только пользователь базы данных на внешнем модуле расширенного управления ключами или аппаратного модуля безопасности.
Расширенное управление ключами дает следующие преимущества.
Дополнительная проверка подлинности (включая разграничение обязанностей).
Более высокая производительность аппаратного шифрования или расшифровки.
Внешнее создание ключей шифрования.
Внешнее хранение ключей шифрования (физическое разделение данных и ключей.)
Получение ключей шифрования.
Внешнее хранение ключей шифрования (разрешает смену ключа шифрования).
Упрощенное восстановление ключа шифрования.
Управление распространением ключей шифрования.
Безопасное освобождение ключей шифрования.
Расширенное управление ключами можно использовать для сочетания имени пользователя и пароля, а также других методов, определяемых драйвером расширенного управления ключами.
![]() |
---|
Службе технической поддержки Майкрософт для устранения неполадок может потребоваться ключ шифрования от поставщика расширенного управления ключами. Кроме того, при работе над устранением проблем может потребоваться доступ к средствам или процессам, предоставляемым поставщиком. |
Проверка подлинности на устройстве расширенного управления ключами
Модуль расширенного управления ключами может поддерживать несколько типов проверки подлинности. Каждый поставщик предоставляет SQL Server только один тип проверки подлинности, то есть если в модуле поддерживается проверка подлинности Basic или Other, то использоваться может только одна из них, но не обе.
Определяемая устройством расширенного управления ключами обычная проверка подлинности при помощи имени пользователя и пароля
Для тех модулей расширенного управления ключами, в которых поддерживается обычная проверка подлинности на основе пары имя пользователя/пароль, в SQL Server предусмотрена прозрачная проверка подлинности с использованием учетных данных. Дополнительные сведения об учетных данных см. в разделе Учетные данные (компонент Database Engine).
Чтобы получить доступ к модулю расширенного управления ключами на основе имени входа, можно создать для поставщика расширенного управления ключами учетные данные и сопоставить их с именем входа (для учетных записей как Windows, так и SQL Server). Поле Identify учетных данных содержит имя пользователя; в поле secret содержится пароль для подключения к модулю расширенного управления ключами.
При отсутствии учетных данных для поставщика расширенного управления ключами, сопоставленных с именем входа, используются учетные данные, сопоставленные с учетной записью службы SQL Server.
Имени входа может быть сопоставлено несколько учетных данных, если они используются для отдельных поставщиков расширенного управления ключами. У каждого поставщика расширенного управления ключами может быть только один набор учетных данных, сопоставленных одному имени входа. Одни и те же учетные данные могут быть сопоставлены нескольким именам входа.
Другие виды проверки подлинности, зависящей от устройства расширенного управления ключами
В модулях расширенного управления ключами, проверка подлинности в которых отличается от Windows или сочетания пользователь/пароль, проверка подлинности должна осуществляться независимо от SQL Server.
Шифрование и расшифровка при помощи устройства расширенного управления ключами
Следующие функции и возможности позволяют зашифровать и расшифровать данные при помощи симметричных и асимметричных ключей.
Функция или характеристика |
Справочник |
---|---|
Шифрование симметричным ключом |
|
Шифрование асимметричным ключом |
|
EncryptByKey(key_guid, 'cleartext', …) |
|
DecryptByKey(ciphertext, …) |
|
EncryptByAsmKey(key_guid, 'cleartext') |
|
DecryptByAsmKey(ciphertext) |
Шифрование ключей базы данных при помощи ключей расширенного управления ключами
В 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 (компонент Database Engine).
![]() |
---|
Зашифровать один ключ расширенного управления ключами при помощи другого ключа расширенного управления ключами невозможно. |
См. также