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

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data WarehouseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data Warehouse

Криптография с открытым ключом представляет собой форму обеспечения конфиденциальности сообщений, подразумевающую создание открытого и закрытого ключей.Public Key Cryptography is a form of message secrecy in which a user creates a public key and a private key. Закрытый ключ хранится в секрете, а открытый ключ передается другим лицам.The private key is kept secret, whereas the public key can be distributed to others. Хотя ключи математически связаны, закрытый ключ нельзя легко вычислить с помощью открытого ключа.Although the keys are mathematically related, the private key cannot be easily derived by using the public key. Открытый ключ можно использовать для шифрования данных, которые сможет расшифровать только соответствующий закрытый ключ.The public key can be used to encrypt data which only the corresponding private key will be able to decrypt. Это может использоваться для шифрования сообщений для владельца закрытого ключа.This can be used for encrypting messages to the owner of the private key. Аналогичным образом владелец закрытого ключа может шифровать данные, которые могут быть расшифрованы только с помощью открытого ключа.Similarly the owner of a private key can encrypt data which can only be decrypted with the public key. Такое использование — это основа цифровых сертификатов, в которых сведения, содержащиеся в сертификате, зашифрованы владельцем закрытого ключа, подразумеваемым автором содержимого.This use forms the basis of digital certificates in which information contained in the certificate is encrypted by the owner of a private key, assuring the author of the contents. Поскольку ключи шифрования и расшифровки разные, они называются асимметричными ключами.Since the encrypting and decrypting keys are different they are known as asymmetric keys.

Как сертификаты, так и асимметричные ключи представляют собой способы асимметричного шифрования.Certificates and asymmetric keys are both ways to use asymmetric encryption. Сертификаты часто используются как контейнеры для асимметричных ключей, так как они могут содержать дополнительные данные, например о датах окончания действия и поставщиках.Certificates are often used as containers for asymmetric keys because they can contain more information such as expiry dates and issuers. Не существует различий между двумя механизмами для алгоритма шифрования, равно как и различий в надежности при одинаковой длине ключа.There is no difference between the two mechanisms for the cryptographic algorithm, and no difference in strength given the same key length. Как правило, сертификат используется для шифрования других типов ключей шифрования в базе данных, или подписи программных модулей.Generally, you use a certificate to encrypt other types of encryption keys in a database, or to sign code modules.

Сертификаты и асимметричные ключи можно применять для расшифровки данных, зашифрованных другим способом.Certificates and asymmetric keys can decrypt data that the other encrypts. Обычно асимметричный ключ используется для шифрования симметричного ключа перед его сохранением в базе данных.Generally, you use asymmetric encryption to encrypt a symmetric key for storage in a database.

В отличие от сертификата, открытый ключ не имеет определенного формата, и его нельзя экспортировать в файл.A public key does not have a particular format like a certificate would have, and you cannot export it to a file.

Примечание

SQL ServerSQL Server имеет функции, которые позволяют создавать сертификаты и ключи для использования с сервером и базой данных, а также управлять этими сертификатами и ключами.contains features that enable you to create and manage certificates and keys for use with the server and database. SQL ServerSQL Server нельзя использовать для создания сертификатов и ключей (и управления сертификатами и ключами) с другими приложениями или в операционной системе.cannot be used to create and manage certificates and keys with other applications or in the operating system.

СертификатыCertificates

Сертификат представляет собой объект безопасности с цифровой подписью, который содержит открытый (и необязательно закрытый) ключ для SQL ServerSQL Server.A certificate is a digitally signed security object that contains a public (and optionally a private) key for SQL ServerSQL Server. Можно использовать сертификаты, сформированные внешними средствами, или сертификаты, созданные SQL ServerSQL Server .You can use externally generated certificates or SQL ServerSQL Server can generate certificates.

Примечание

SQL ServerSQL Server Сертификаты соответствуют стандарту сертификатов IETF X.509v3.certificates comply with the IETF X.509v3 certificate standard.

Сертификаты полезны благодаря возможности выполнить как экспорт ключей в файлы сертификатов X.509, так и импорт из них.Certificates are useful because of the option of both exporting and importing keys to X.509 certificate files. Синтаксис, применяемый при создании сертификатов, позволяет вводить параметры создания для сертификатов, например дату окончания действия.The syntax for creating certificates allows for creation options for certificates such as an expiry date.

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

Сертификаты могут использоваться для защиты соединений, при зеркальном отображении баз данных, подписывании пакетов и других объектов, шифровании данных или соединений.Certificates can be used to help secure connections, in database mirroring, to sign packages and other objects, or to encrypt data or connections. В следующей таблице перечислены дополнительные ресурсы для сертификатов в SQL ServerSQL Server.The following table lists additional resources for certificates in SQL ServerSQL Server.

РазделTopic ОписаниеDescription
CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL) Содержит описание команды создания сертификатов.Explains the command for creating certificates.
Определение источника пакетов с помощью цифровых подписейIdentify the Source of Packages with Digital Signatures Содержит сведения об использовании сертификатов для подписывания программных пакетов.Shows information about how to use certificates to sign software packages.
Использование сертификатов для конечной точки зеркального отображения базы данных (Transact-SQL)Use Certificates for a Database Mirroring Endpoint (Transact-SQL) Содержит сведения об использовании сертификатов с зеркальным отображением базы данных.Covers information about how to use certificates with Database Mirroring.

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

Асимметричные ключи используются для защиты симметричных ключей.Asymmetric keys are used for securing symmetric keys. Их можно также использовать для ограниченного шифрования данных и цифрового подписывания объектов базы данных.They can also be used for limited data encryption and to digitally sign database objects. Асимметричный ключ состоит из закрытого ключа и соответствующего открытого ключа.An asymmetric key consists of a private key and a corresponding public key. Дополнительные сведения об асимметричных ключах см. в разделе CREATE ASYMMETRIC KEY (Transact-SQL).For more information about asymmetric keys, see CREATE ASYMMETRIC KEY (Transact-SQL).

Асимметричные ключи можно импортировать из файлов ключа для строгого имени, но их нельзя экспортировать.Asymmetric keys can be imported from strong name key files, but they cannot be exported. Они также не имеют даты окончания действия.They also do not have expiry options. Асимметричные ключи нельзя применять для шифрования соединений.Asymmetric keys cannot encrypt connections.

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

Асимметричные ключи можно использовать для защиты данных или подписывания незашифрованного текста.Asymmetric keys can be used to help secure data or sign plaintext. В следующей таблице перечислены дополнительные ресурсы для асимметричных ключей в SQL ServerSQL Server.The following table lists additional resources for asymmetric keys in SQL ServerSQL Server.

РазделTopic ОписаниеDescription
CREATE ASYMMETRIC KEY (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL) Содержит описание команды создания асимметричных ключей.Explains the command for creating asymmetric keys.
SIGNBYASYMKEY (Transact-SQL)SIGNBYASYMKEY (Transact-SQL) Отображает параметры для подписывания объектов.Displays the options for signing objects.

ИнструментыTools

MicrosoftMicrosoft предоставляет средства и программы, которые создают сертификаты и файлы ключа для строгого имени.provides tools and utilities that will generate certificates and strong name key files. Эти средства обеспечивают более гибкий процесс создания ключа, чем синтаксис SQL ServerSQL Server .These tools offer a richer amount of flexibility in the key generation process than the SQL ServerSQL Server syntax. С помощью этих средств можно создать ключи RSA большей длины, а затем импортировать их в SQL ServerSQL Server.You can use these tools to create RSA keys with more complex key lengths and then import them into SQL ServerSQL Server. В следующей таблице показано, где найти эти средства.The following table shows where to find these tools.

ИнструментTool НазначениеPurpose
New-SelfSignedCertificateNew-SelfSignedCertificate Создает самозаверяющие сертификаты.Creates self-signed certificates.
makecertmakecert Создает сертификаты.Creates certificates. Вместо него рекомендуется использовать New-SelfSignedCertificate.Deprecated in favor of New-SelfSignedCertificate.
snsn Создает строгие имена для симметричных ключей.Creates strong names for symmetric keys.

Выбор алгоритма шифрованияChoose an Encryption Algorithm

CREATE SYMMETRIC KEY (Transact-SQL)CREATE SYMMETRIC KEY (Transact-SQL)

CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL)

См. также:See Also

sys.certificates (Transact-SQL) sys.certificates (Transact-SQL)
Прозрачное шифрование данных (TDE)Transparent Data Encryption (TDE)