Escolher um algoritmo de criptografia

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)

A criptografia é uma das muitas defesas 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. O SQL Server permite que administradores e desenvolvedores escolham entre vários algoritmos, incluindo DES, Triplo DES, TRIPLE_DES_3KEY, RC2, RC4, RC4 de 128 bits, DESX, AES de 128 bits, AES de 192 bits e AES de 256 bits.

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 menos.

Como escolher o algoritmo certo

Nenhum algoritmo é ideal para todas as situações e a orientação sobre os méritos de cada um está além do escopo deste artigo. 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 é recomendada quando a chave é armazenada apenas localmente. A criptografia assimétrica é recomendada quando as chaves precisam ser compartilhadas.

  • 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.

Veja mais informações sobre os algoritmos de criptografia e sobre a tecnologia de criptografia em Conceitos de segurança de chave.

Algoritmo RC4 preterido

O algoritmo RC4 tem suporte somente para compatibilidade com versões anteriores. Material novo 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 recomendado). Use um algoritmo mais recente; por exemplo, um dos algoritmos AES. No SQL Server 2012 (11.x) e em 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_128KEY_GUID em blocos de dados diferentes resulta na mesma chave RC4 porque o SQL Server não fornece um sal automaticamente. O uso da mesma chave RC4 repetidamente é um erro bem conhecido que resulta em criptografia fraca. Portanto preterimos as palavras-chave RC4 e RC4_128. Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

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 DES triplo com uma chave de 192 bits. O algoritmo DESX não é fornecido. Esse recurso será removido em uma versão futura do 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 DES triplo com uma chave de 192 bits.

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