Certificados e chaves assimétricas do SQL ServerSQL Server Certificates and Asymmetric Keys

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

A Public Key Cryptography é uma forma de sigilo nas mensagens na qual um usuário cria uma chave pública e uma chave privada.Public Key Cryptography is a form of message secrecy in which a user creates a public key and a private key. A chave privada é mantida em segredo, enquanto que a chave pública pode ser distribuída a outros.The private key is kept secret, whereas the public key can be distributed to others. Embora as chaves estejam matematicamente relacionadas, a chave privada não pode ser obtida facilmente usando a chave pública.Although the keys are mathematically related, the private key cannot be easily derived by using the public key. A chave pública pode ser usada para criptografar os dados que somente a chave privada correspondente será capaz de descriptografar.The public key can be used to encrypt data which only the corresponding private key will be able to decrypt. Isso pode ser usado para criptografar mensagens para o proprietário da chave privada.This can be used for encrypting messages to the owner of the private key. Da mesma forma, o proprietário de uma chave privada pode criptografar dados que só podem ser descriptografados com a chave pública.Similarly the owner of a private key can encrypt data which can only be decrypted with the public key. Esse uso constitui a base de certificados digitais em que informações contidas no certificado são criptografadas pelo proprietário de uma chave privada, permitindo que o autor tenha certeza sobre o conteúdo.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. Devido às chaves de criptografia e de descriptografia serem diferentes, elas são conhecidas como chaves assimétricas.Since the encrypting and decrypting keys are different they are known as asymmetric keys.

Certificados e chaves assimétricas são duas formas de usar a criptografia assimétrica.Certificates and asymmetric keys are both ways to use asymmetric encryption. Os certificados geralmente são usados como contêineres para chaves assimétricas porque podem conter mais informações, como datas de expiração e emissores.Certificates are often used as containers for asymmetric keys because they can contain more information such as expiry dates and issuers. Não há diferenças entre os dois mecanismos para o algoritmo criptográfico, bem como na intensidade dada ao mesmo comprimento de chave.There is no difference between the two mechanisms for the cryptographic algorithm, and no difference in strength given the same key length. Geralmente você usa um certificado para criptografar outros tipos de chaves de criptografia em um banco de dados ou para assinar módulos de código.Generally, you use a certificate to encrypt other types of encryption keys in a database, or to sign code modules.

Os certificados e as chaves assimétricas podem descriptografar dados um do outro.Certificates and asymmetric keys can decrypt data that the other encrypts. Geralmente você usa a criptografia assimétrica para criptografar uma chave simétrica para armazenamento em um banco de dados.Generally, you use asymmetric encryption to encrypt a symmetric key for storage in a database.

Uma chave pública não tem um formato específico como um certificado teria, e você não pode exportá-la para um arquivo.A public key does not have a particular format like a certificate would have, and you cannot export it to a file.

Observação

SQL ServerSQL Server contém recursos que o habilitam a criar e gerenciar certificados e chaves para uso com o servidor e banco de dados.contains features that enable you to create and manage certificates and keys for use with the server and database. SQL ServerSQL Server não pode ser usado para criar e gerenciar certificados e chaves com outros aplicativos ou no sistema operacional.cannot be used to create and manage certificates and keys with other applications or in the operating system.

CertificadosCertificates

Um certificado é um objeto de segurança assinado digitalmente que contém uma chave pública (e, opcionalmente, uma particular) para o SQL ServerSQL Server.A certificate is a digitally signed security object that contains a public (and optionally a private) key for SQL ServerSQL Server. Você pode usar certificados gerados externamente ou o SQL ServerSQL Server pode gerá-los.You can use externally generated certificates or SQL ServerSQL Server can generate certificates.

Observação

SQL ServerSQL Server os certificados estão em conformidade com o padrão de certificado IETF X.509v3.certificates comply with the IETF X.509v3 certificate standard.

Os certificados são úteis devido à opção de exportar e importar chaves para os arquivos do certificado X.509.Certificates are useful because of the option of both exporting and importing keys to X.509 certificate files. A sintaxe para criar certificados leva em conta as opções de criação de certificados, como uma data de expiração.The syntax for creating certificates allows for creation options for certificates such as an expiry date.

Usando um certificado no SQL ServerUsing a Certificate in SQL Server

Os certificados podem ser usados para auxiliar nas conexões seguras, no espelhamento de banco de dados, para assinar pacotes e outros objetos ou para criptografar dados ou conexões.Certificates can be used to help secure connections, in database mirroring, to sign packages and other objects, or to encrypt data or connections. A tabela a seguir lista recursos adicionais para certificados no SQL ServerSQL Server.The following table lists additional resources for certificates in SQL ServerSQL Server.

TópicoTopic DescriçãoDescription
CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL) Explica o comando para a criação de certificados.Explains the command for creating certificates.
Identificar a origem dos pacotes com assinaturas digitaisIdentify the Source of Packages with Digital Signatures Mostra informações sobre como usar certificados para assinar pacotes de software.Shows information about how to use certificates to sign software packages.
Usar certificados para um ponto de extremidade de espelhamento de banco de dados (Transact-SQL)Use Certificates for a Database Mirroring Endpoint (Transact-SQL) Abrange informações sobre como usar certificados com espelhamento de banco de dados.Covers information about how to use certificates with Database Mirroring.

Chaves assimétricasAsymmetric Keys

As chaves assimétricas são usadas para oferecer segurança às chaves simétricas.Asymmetric keys are used for securing symmetric keys. Elas também podem ser usadas para a criptografia de dados limitada e para assinar digitalmente objetos de banco de dados.They can also be used for limited data encryption and to digitally sign database objects. Uma chave assimétrica consiste em uma chave privada e uma chave pública correspondente.An asymmetric key consists of a private key and a corresponding public key. Para obter mais informações sobre chaves assimétricas, veja CREATE ASYMMETRIC KEY (Transact-SQL).For more information about asymmetric keys, see CREATE ASYMMETRIC KEY (Transact-SQL).

As chaves assimétricas podem ser importadas dos arquivos de chave com nomes seguros, mas não podem ser exportadas.Asymmetric keys can be imported from strong name key files, but they cannot be exported. Elas também não têm opções de expiração.They also do not have expiry options. As chaves assimétricas não podem criptografar conexões.Asymmetric keys cannot encrypt connections.

Usando uma chave assimétrica no SQL ServerUsing an Asymmetric Key in SQL Server

As chaves assimétricas podem ser usadas para auxiliar na proteção de dados ou na assinatura de texto não criptografado.Asymmetric keys can be used to help secure data or sign plaintext. A tabela a seguir lista recursos adicionais para chaves assimétricas no SQL ServerSQL Server.The following table lists additional resources for asymmetric keys in SQL ServerSQL Server.

TópicoTopic DescriçãoDescription
CREATE ASYMMETRIC KEY (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL) Explica o comando para a criação de chaves assimétricas.Explains the command for creating asymmetric keys.
SIGNBYASYMKEY (Transact-SQL)SIGNBYASYMKEY (Transact-SQL) Exibe as opções de assinatura de objetos.Displays the options for signing objects.

FerramentasTools

MicrosoftMicrosoft fornece ferramentas e utilitários que gerarão certificados e arquivos de chave com nomes seguros.provides tools and utilities that will generate certificates and strong name key files. Estas ferramentas oferecem maior flexibilidade no processo de geração de chaves do que a sintaxe do SQL ServerSQL Server .These tools offer a richer amount of flexibility in the key generation process than the SQL ServerSQL Server syntax. Você pode usá-las para criar chaves RSA com comprimentos de chaves mais complexas e importá-las para o 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. A tabela a seguir mostra onde encontrar essas ferramentas.The following table explains shows where to find these tools.

FerramentaTool FinalidadePurpose
makecertmakecert Cria certificadosCreates certificates.
snsn Cria nomes seguros para chaves simétricas.Creates strong names for symmetric keys.

Escolher um algoritmo de criptografiaChoose an Encryption Algorithm

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

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

Consulte TambémSee Also

sys.certificates (Transact-SQL) sys.certificates (Transact-SQL)
TDE (Transparent Data Encryption)Transparent Data Encryption (TDE)