CA5350: não use algoritmos criptográficos fracosCA5350: Do Not Use Weak Cryptographic Algorithms

NomeDoTipoTypeName DoNotUseWeakCryptographicAlgorithmsDoNotUseWeakCryptographicAlgorithms
CheckIdCheckId CA5350CA5350
CategoriaCategory Microsoft.CryptographyMicrosoft.Cryptography
Alteração SignificativaBreaking Change Não separávelNon Breaking

Note

Esse aviso foi atualizado pela última vez em novembro de 2015.This warning was last updated on November 2015.

CausaCause

Algoritmos de criptografia, como TripleDES e, como os algoritmos de hash SHA1 e RIPEMD160 são considerados fracos.Encryption algorithms such as TripleDES and hashing algorithms such as SHA1 and RIPEMD160 are considered to be weak.

Esses algoritmos de criptografia não oferecem tanta garantia de segurança como equivalentes mais modernas.These cryptographic algorithms do not provide as much security assurance as more modern counterparts. Criptografia de algoritmos de hash SHA1 e RIPEMD160 fornecem menos resistência a colisão de mais moderno de algoritmos de hash.Cryptographic hashing algorithms SHA1 and RIPEMD160 provide less collision resistance than more modern hashing algorithms. O algoritmo de criptografia TripleDES fornece menos bits de segurança que algoritmos de criptografia mais modernos.The encryption algorithm TripleDES provides fewer bits of security than more modern encryption algorithms.

Descrição da regraRule description

Algoritmos de criptografia fraca e funções de hash são usadas atualmente por uma série de motivos, mas não deve ser usados para garantir a confidencialidade dos dados que eles protegem.Weak encryption algorithms and hashing functions are used today for a number of reasons, but they should not be used to guarantee the confidentiality of the data they protect.

A regra dispara quando ele localiza o 3DES, SHA1 ou RIPEMD160 algoritmos no código e gera um aviso ao usuário.The rule triggers when it finds 3DES, SHA1 or RIPEMD160 algorithms in the code and throws a warning to the user.

Como corrigir violaçõesHow to fix violations

Use opções criptograficamente mais fortes:Use cryptographically stronger options:

  • Para criptografia TripleDES, use Aes criptografia.For TripleDES encryption, use Aes encryption.

  • Para funções de hash SHA1 ou RIPEMD160, use os dos SHA-2 família (por exemplo, SHA512, SHA384, SHA256).For SHA1 or RIPEMD160 hashing functions, use ones in the SHA-2 family (e.g. SHA512, SHA384, SHA256).

Quando suprimir avisosWhen to suppress warnings

Suprima um aviso nessa regra, quando o nível de proteção necessário para os dados não requer uma garantia de segurança.Suppress a warning from this rule when the level of protection needed for the data does not require a security guarantee.

Exemplos de código pseudoPseudo-code examples

No momento da redação deste artigo, o exemplo de pseudocódigo a seguir ilustra o padrão de detectadas por essa regra.As of the time of this writing, the following pseudo-code sample illustrates the pattern detected by this rule.

Violação de hash SHA-1SHA-1 Hashing Violation

using System.Security.Cryptography;
...
var hashAlg = SHA1.Create();

Solução:Solution:

using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();

RIPEMD160 Violação de hashRIPEMD160 Hashing Violation

using System.Security.Cryptography;
...
var hashAlg = RIPEMD160Managed.Create();

Solução:Solution:

using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();

Violação de criptografia TripleDESTripleDES Encryption Violation

using System.Security.Cryptography;
...
using (TripleDES encAlg = TripleDES.Create())
{
  ...
}

Solução:Solution:

using System.Security.Cryptography;
...
using (AesManaged encAlg = new AesManaged())
{
  ...
}