Сертификаты SQL Server и асимметричные ключи

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

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

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

В отличие от сертификата, открытый ключ не имеет определенного формата, и его нельзя экспортировать в файл.

ПримечаниеПримечание

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

Сертификаты

Сертификат представляет собой объект безопасности с цифровой подписью, который содержит открытый (и необязательно закрытый) ключ для SQL Server. Можно использовать сертификаты, сформированные внешними средствами, или сертификаты, созданные SQL Server.

ПримечаниеПримечание

Сертификаты SQL Server соответствуют стандарту сертификатов IETF X.509v3.

Сертификаты полезны благодаря возможности выполнить как экспорт ключей в файлы сертификатов X.509, так и импорт из них. Синтаксис, применяемый при создании сертификатов, позволяет вводить параметры создания для сертификатов, например дату окончания действия.

Использование сертификата в SQL Server

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

Тема

Описание

Инструкция CREATE CERTIFICATE (Transact-SQL)

Содержит описание команды создания сертификатов.

Сертификаты и компонент Service Broker

Отображает сведения о применении сертификатов с компонентом Service Broker.

Использование цифровых подписей с пакетами

Содержит сведения об использовании сертификатов для подписывания программных пакетов.

Сертификаты для безопасности диалога

Описывает использование сертификатов с диалогами.

Использование сертификатов для зеркального отображения базы данных

Содержит сведения об использовании сертификатов с зеркальным отображением базы данных.

Шифрование соединений с SQL Server

Объясняет, как шифровать соединения с SQL Server.

Асимметричные ключи

Асимметричные ключи используются для защиты симметричных ключей. Их можно также использовать для ограниченного шифрования данных и цифрового подписывания объектов базы данных. Асимметричный ключ состоит из закрытого ключа и соответствующего открытого ключа. Дополнительные сведения об асимметричных ключах см. в разделе CREATE ASYMMETRIC KEY (Transact-SQL).

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

Использование асимметричного ключа в SQL Server

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

Тема

Описание

CREATE ASYMMETRIC KEY (Transact-SQL)

Содержит описание команды создания асимметричных ключей.

SignByAsymKey (Transact-SQL)

Отображает параметры для подписывания объектов.

Средства

Корпорация Майкрософт предоставляет средства и программы, которые создают сертификаты и файлы ключа для строгого имени. Эти средства обеспечивают более гибкий процесс создания ключа, чем синтаксис SQL Server. С помощью этих средств можно создать ключи RSA большей длины, а затем импортировать их в SQL Server. В следующей таблице показано, где найти эти средства.

Средство

Назначение

makecert

Создает сертификаты.

sn

Создает строгие имена для симметричных ключей.