Certificados e chaves assimétricas do SQL Server

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System)

A Public Key Cryptography é uma forma de sigilo nas mensagens na qual um usuário cria uma chave pública e uma chave privada. A chave privada é mantida em segredo, enquanto que a chave pública pode ser distribuída a outros. Embora as chaves estejam matematicamente relacionadas, a chave privada não pode ser obtida facilmente usando a chave pública. A chave pública pode ser usada para criptografar os dados que somente a chave privada correspondente será capaz de descriptografar. Isso pode ser usado para criptografar mensagens para o proprietário da chave privada. Da mesma forma, o proprietário de uma chave privada pode criptografar dados que só podem ser descriptografados com a chave pública. 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. Devido às chaves de criptografia e de descriptografia serem diferentes, elas são conhecidas como chaves assimétricas.

Certificados e chaves assimétricas são duas formas de usar a criptografia assimétrica. 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. Não há diferenças entre os dois mecanismos para o algoritmo criptográfico, bem como na intensidade dada ao mesmo comprimento de chave. 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.

Os certificados e as chaves assimétricas podem descriptografar dados um do outro. Geralmente você usa a criptografia assimétrica para criptografar uma chave simétrica para armazenamento em um banco de dados.

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.

Observação

O SQL Server contém recursos que o habilitam a criar e gerenciar certificados e chaves para uso com o servidor e banco de dados. O SQL Server não pode ser usado para criar e gerenciar certificados e chaves com outros aplicativos ou no sistema operacional.

Certificados

Um certificado é um objeto de segurança assinado digitalmente que contém uma chave pública (e, opcionalmente, uma particular) para o SQL Server. Você pode usar certificados gerados externamente ou o SQL Server pode gerá-los.

Observação

Os certificados do SQL Server estão em conformidade com o padrão de certificado IETF X.509v3.

Os certificados são úteis devido à opção de exportar e importar chaves para os arquivos do certificado X.509. A sintaxe para criar certificados leva em conta as opções de criação de certificados, como uma data de expiração.

Usando um certificado no 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. A tabela a seguir lista recursos adicionais para certificados no SQL Server.

Tópico Descrição
CREATE CERTIFICATE (Transact-SQL) Explica o comando para a criação de certificados.
Identificar a origem dos pacotes com assinaturas digitais Mostra informações sobre como usar certificados para assinar pacotes de software.
Usar certificados para um ponto de extremidade de Espelhamento de Banco de Dados (Transact-SQL) Abrange informações sobre como usar certificados com espelhamento de banco de dados.

Chaves assimétricas

As chaves assimétricas são usadas para oferecer segurança às chaves simétricas. Elas também podem ser usadas para a criptografia de dados limitada e para assinar digitalmente objetos de banco de dados. Uma chave assimétrica consiste em uma chave privada e uma chave pública correspondente. Para obter mais informações sobre chaves assimétricas, veja 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. Elas também não têm opções de expiração. As chaves assimétricas não podem criptografar conexões.

Usando uma chave assimétrica no SQL Server

As chaves assimétricas podem ser usadas para auxiliar na proteção de dados ou na assinatura de texto não criptografado. A tabela a seguir lista recursos adicionais para chaves assimétricas no SQL Server.

Tópico Descrição
CREATE ASYMMETRIC KEY (Transact-SQL) Explica o comando para a criação de chaves assimétricas.
SIGNBYASYMKEY (Transact-SQL) Exibe as opções de assinatura de objetos.

Ferramentas

A Microsoft fornece ferramentas e utilitários que gerarão certificados e arquivos de chave com nomes seguros. Estas ferramentas oferecem maior flexibilidade no processo de geração de chaves do que a sintaxe do SQL Server. Você pode usá-las para criar chaves RSA com comprimentos de chaves mais complexas e importá-las para o SQL Server. A tabela a seguir mostra onde encontrar essas ferramentas.

Ferramenta Finalidade
New-SelfSignedCertificate Cria certificados autoassinados.
makecert Cria certificados Preterido em favor de New-SelfSignedCertificate.
sn Cria nomes seguros para chaves simétricas.

Escolher um algoritmo de criptografia

CREATE SYMMETRIC KEY (Transact-SQL)

CREATE CERTIFICATE (Transact-SQL)

Confira também

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