Escolher um algoritmo de criptografia

Aplica-se a:yesSQL Server (todas as versões compatíveis) YesBanco de Dados SQL do Azure YesInstância Gerenciada de SQL do Azure yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

A criptografia é um dos muitos recursos de proteção que estão disponíveis para o administrador que deseja oferecer segurança a uma instância do SQL Server.

Os algoritmos de criptografia definem as transformações de dados que não podem ser facilmente revertidas por usuários não autorizados. SQL Server permite que administradores e desenvolvedores escolham entre diversos algoritmos, incluindo DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, RC4 de 128 bits, DESX, AES de 128 bits, AES de 192 bits e AES de 256 bits.

Observação

A partir do SQL Server 2016 (13.x), todos os algoritmos, exceto AES_128, AES_192 e AES_256, foram preteridos. Para usar algoritmos mais antigos (não recomendado) você deve definir o nível de compatibilidade do banco de dados para 120 ou inferior.

Nenhum algoritmo é ideal para todas as situações e informações sobre o benefício de cada um está além do escopo dos Manuais Online do SQL Server . Porém, os seguintes princípios gerais se aplicam:

  • A criptografia segura geralmente consome mais recursos da CPU que criptografia menos segura.

  • As chaves extensas geralmente produzem uma criptografia mais segura que as chaves mais curtas.

  • A criptografia assimétrica é mais lenta que a criptografia simétrica.

  • Senhas longas e complexas são mais seguras que senhas curtas.

  • A criptografia simétrica é geralmente recomendada quando a chave é armazenada somente localmente, enquanto a criptografia assimétrica é recomendada quando chaves precisam ser compartilhadas pela rede.

  • Se você estiver criptografando muitos dados, deve criptografá-los usando uma chave simétrica e criptografar a chave simétrica com uma chave assimétrica.

  • Dados criptografados não podem ser compactados, mas dados compactados podem ser criptografados. Se você usar compactação, deverá compactar os dados antes de criptografá-los.

Importante

O algoritmo RC4 tem suporte somente para compatibilidade com versões anteriores. O novo material só pode ser criptografado por meio do algoritmo RC4 ou RC4_128 quando o banco de dados está no nível de compatibilidade 90 ou 100. (Não recomendável.) Use um algoritmo mais recente; por exemplo, um dos algoritmos AES. No SQL Server 2012 (11.x) e versões posteriores, o material criptografado por meio do algoritmo RC4 ou RC4_128 pode ser descriptografado em qualquer nível de compatibilidade.

O uso repetido do mesmo RC4 ou RC4_128 KEY_GUID em blocos de dados diferentes resulta na mesma chave RC4 porque o SQL Server não fornece um salt automaticamente. O uso da mesma chave RC4 repetidamente é um erro bem conhecido que resulta em criptografia muito fraca. Portanto, preterimos as palavras-chave RC4 e RC4_128. Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

Para obter mais informações sobre os algoritmos de criptografia e sobre a tecnologia de criptografia, consulte Conceitos de segurança de chave no Guia do desenvolvedor do .NET Framework do MSDN.

Esclarecimento em relação aos algoritmos DES:

  • O DESX foi nomeado incorretamente. As chaves simétricas criadas com ALGORITHM = DESX na verdade usam a cifra TRIPLE DES com uma chave de 192 bits. O algoritmo DESX não é fornecido. Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

  • As chaves simétricas criadas com ALGORITHM = TRIPLE_DES_3KEY usam TRIPLE DES com uma chave de 192 bits.

  • As chaves simétricas criadas com ALGORITHM = TRIPLE_DES usam TRIPLE DES com uma chave de 128 bits.

Tarefa Type
Criptografando com o uso de uma chave simétrica. CREATE SYMMETRIC KEY (Transact-SQL)
Criptografando com o uso de uma chave assimétrica. CREATE ASYMMETRIC KEY (Transact-SQL)
Criptografando com o uso de um certificado. CREATE CERTIFICATE (Transact-SQL)
Criptografando arquivos de banco de dados com o uso de criptografia transparente de dados. TDE (Transparent Data Encryption)
Como criptografar uma coluna de uma tabela. Criptografar uma coluna de dados

Consulte Também

Criptografia do SQL Server
Hierarquia de criptografia