Partilhar via


Escolha um algoritmo de encriptação

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do Azure do Azure Synapse AnalyticsAnalytics Platform System (PDW)

A encriptação é uma das várias defesas disponíveis para o administrador que pretende proteger uma instância do SQL Server.

Os algoritmos de encriptação definem transformações de dados que não podem ser facilmente revertidas por utilizadores não autorizados. Administradores e programadores podem escolher entre vários algoritmos no SQL Server, 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.

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

Como escolher o algoritmo certo

Nenhum algoritmo único é ideal para todas as situações, e a orientação sobre os méritos de cada uma está fora do âmbito deste artigo. No entanto, aplicam-se os seguintes princípios gerais:

  • A encriptação forte geralmente consome mais recursos de CPU do que a encriptação fraca.

  • As chaves longas geralmente produzem encriptação mais forte do que as chaves curtas.

  • A encriptação assimétrica é mais lenta do que a encriptação simétrica.

  • Palavras-passe longas e complexas são mais fortes do que palavras-passe curtas.

  • A encriptação simétrica é recomendada quando a chave é armazenada apenas localmente. A encriptação assimétrica é recomendada quando as chaves precisam de ser partilhadas através da linha.

  • Se estiveres a encriptar muitos dados, deves encriptá-los usando uma chave simétrica e encriptar a chave simétrica com uma chave assimétrica.

  • Os dados encriptados não podem ser comprimidos, mas os dados comprimidos podem ser encriptados. Se usares compressão, deves comprimir os dados antes de os encriptar.

Para mais informações sobre algoritmos de encriptação e tecnologia de encriptação, consulte Conceitos-chave de segurança.

Algoritmo RC4 obsoleto

O algoritmo RC4 só é suportado para compatibilidade com versões anteriores. Material novo só pode ser encriptado usando RC4 ou RC4_128 quando a base de dados estiver no nível de compatibilidade 90 ou 100 (não recomendado). Em vez disso, use um algoritmo mais recente, como um dos algoritmos AES. No SQL Server 2012 (11.x) e versões posteriores, material encriptado usando RC4 ou RC4_128 pode ser desencriptado 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 automaticamente um sal. Usar repetidamente a mesma chave RC4 é um erro bem conhecido que resulta em encriptação fraca. Por isso, despreciámos as RC4 palavras-chave e RC4_128 . Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso.

Esclarecimento sobre algoritmos DES

DESX foi nomeado incorretamente. As chaves simétricas criadas com ALGORITHM = DESX utilizam, na verdade, 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 SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso.

As chaves simétricas criadas com ALGORITHM = TRIPLE_DES_3KEY utilizam Triple DES com uma chave de 192 bits.

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