Escolher um algoritmo de criptografia
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
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_128
KEY_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.