Escolher um algoritmo de criptografiaChoose an Encryption Algorithm

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 ServerSQL Server.Encryption is one of several defenses-in-depth that are available to the administrator who wants to secure an instance of SQL ServerSQL Server.

Algoritmos de criptografia definem transformações de dados que não podem ser invertidas facilmente por usuários não autorizados.Encryption algorithms define data transformations that cannot be easily reversed by unauthorized users. SQL ServerSQL 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. allows administrators and developers to choose from among several algorithms, including DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128-bit RC4, DESX, 128-bit AES, 192-bit AES, and 256-bit AES.

Observação

A partir do SQL Server 2016SQL Server 2016, todos os algoritmos, exceto AES_128, AES_192 e AES_256, foram preteridos.Beginning with SQL Server 2016SQL Server 2016, all algorithms other than AES_128, AES_192, and AES_256 are deprecated. Para usar algoritmos mais antigos (não recomendado) você deve definir o nível de compatibilidade do banco de dados para 120 ou inferior.To use older algorithms (not recommended) you must set the database to database compatibility level 120 or lower.

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 ServerSQL Server .No single algorithm is ideal for all situations, and guidance on the merits of each is beyond the scope of SQL ServerSQL Server Books Online. Porém, os seguintes princípios gerais se aplicam:However, the following general principles apply:

  • A criptografia segura geralmente consome mais recursos da CPU que criptografia menos segura.Strong encryption generally consumes more CPU resources than weak encryption.

  • As chaves extensas geralmente produzem uma criptografia mais segura que as chaves mais curtas.Long keys generally yield stronger encryption than short keys.

  • A criptografia assimétrica é mais fraca que a criptografia simétrica, que usa o mesmo comprimento de chave mas é relativamente lenta.Asymmetric encryption is weaker than symmetric encryption using the same key length, but it is relatively slow.

  • Codificações em bloco com chaves extensas são mais seguras que codificações em fluxo.Block ciphers with long keys are stronger than stream ciphers.

  • Senhas longas e complexas são mais seguras que senhas curtas.Long, complex passwords are stronger than short passwords.

  • 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.If you are encrypting lots of data, you should encrypt the data using a symmetric key, and encrypt the symmetric key with an asymmetric key.

  • Dados criptografados não podem ser compactados, mas dados compactados podem ser criptografados.Encrypted data cannot be compressed, but compressed data can be encrypted. Se você usar compactação, deverá compactar os dados antes de criptografá-los.If you use compression, you should compress data before encrypting it.

Importante

O algoritmo RC4 tem suporte somente para compatibilidade com versões anteriores.The RC4 algorithm is only supported for backward compatibility. 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.New material can only be encrypted using RC4 or RC4_128 when the database is in compatibility level 90 or 100. (Não recomendável.) Use um algoritmo mais recente; por exemplo, um dos algoritmos AES.(Not recommended.) Use a newer algorithm such as one of the AES algorithms instead. No SQL Server 2012SQL Server 2012 e versões posteriores, o material criptografado por meio do algoritmo RC4 ou RC4_128 pode ser descriptografado em qualquer nível de compatibilidade.In SQL Server 2012SQL Server 2012 and higher material encrypted using RC4 or RC4_128 can be decrypted in any compatibility level.

O uso repetido do mesmo RC4 ou RC4_128 KEY_GUID em blocos de dados diferentes resulta na mesma chave RC4 porque o SQL ServerSQL Server não fornece um salt automaticamente.Repeated use of the same RC4 or RC4_128 KEY_GUID on different blocks of data will result in the same RC4 key because SQL ServerSQL Server does not provide a salt automatically. O uso da mesma chave RC4 repetidamente é um erro bem conhecido que resulta em criptografia muito fraca.Using the same RC4 key repeatedly is a well-known error that will result in very weak encryption. Portanto, preterimos as palavras-chave RC4 e RC4_128.Therefore, we have deprecated the RC4 and RC4_128 keywords. Esse recurso será removido em uma versão futura do Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. Não utilize esse recurso em desenvolvimentos novos e modifique, assim que possível, os aplicativos que atualmente o utilizam.Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

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.For more information about encryption algorithms and encryption technology, see Key Security Concepts in the .NET Framework Developer's Guide on MSDN.

Esclarecimento em relação aos algoritmos DES:Clarification regarding DES algorithms:

  • O DESX foi nomeado incorretamente.DESX was incorrectly named. As chaves simétricas criadas com ALGORITHM = DESX na verdade usam a cifra TRIPLE DES com uma chave de 192 bits.Symmetric keys created with ALGORITHM = DESX actually use the TRIPLE DES cipher with a 192-bit key. O algoritmo DESX não é fornecido.The DESX algorithm is not provided. Esse recurso será removido em uma versão futura do Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

  • As chaves simétricas criadas com ALGORITHM = TRIPLE_DES_3KEY usam TRIPLE DES com uma chave de 192 bits.Symmetric keys created with ALGORITHM = TRIPLE_DES_3KEY use TRIPLE DES with a 192-bit key.

  • As chaves simétricas criadas com ALGORITHM = TRIPLE_DES usam TRIPLE DES com uma chave de 128 bits.Symmetric keys created with ALGORITHM = TRIPLE_DES use TRIPLE DES with a 128-bit key.

Tarefas relacionadasRelated Tasks

Criptografando com o uso de uma chave simétrica.Encrypting using a symmetric key. CREATE SYMMETRIC KEY (Transact-SQL)CREATE SYMMETRIC KEY (Transact-SQL)
Criptografando com o uso de uma chave assimétrica.Encrypting using an asymmetric key. CREATE ASYMMETRIC KEY (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL)
Criptografando com o uso de um certificado.Encrypting using a certificate. CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL)
Criptografando arquivos de banco de dados com o uso de criptografia transparente de dados.Encrypting database files using transparent data encryption. TDE (Transparent Data Encryption)Transparent Data Encryption (TDE)
Como criptografar uma coluna de uma tabela.How to encrypt one column of a table. Criptografar uma coluna de dadosEncrypt a Column of Data

Consulte tambémSee Also

Criptografia do SQL Server SQL Server Encryption
Hierarquia de criptografia Encryption Hierarchy