CA5350: No use algoritmos criptográficos no segurosCA5350: Do Not Use Weak Cryptographic Algorithms

TypeNameTypeName DoNotUseWeakCryptographicAlgorithmsDoNotUseWeakCryptographicAlgorithms
Identificador de comprobaciónCheckId CA5350CA5350
CategoríaCategory Microsoft.CryptographyMicrosoft.Cryptography
Cambio problemáticoBreaking Change No trascendentalNon Breaking

Note

Esta advertencia se actualizó por última vez en noviembre de 2015.This warning was last updated on November 2015.

MotivoCause

Los algoritmos de cifrado como TripleDES y los algoritmos hash como SHA1 y RIPEMD160 se consideran no seguros.Encryption algorithms such as TripleDES and hashing algorithms such as SHA1 and RIPEMD160 are considered to be weak.

Estos algoritmos criptográficos no proporcionan tantas garantías de seguridad como sus equivalentes más modernos.These cryptographic algorithms do not provide as much security assurance as more modern counterparts. Los algoritmos hash criptográfico SHA1 y RIPEMD160 proporcionan menos resistencia a colisiones que los algoritmos hash más modernos.Cryptographic hashing algorithms SHA1 and RIPEMD160 provide less collision resistance than more modern hashing algorithms. El algoritmo de cifrado TripleDES proporciona menos bits de seguridad que los algoritmos de cifrado más modernos.The encryption algorithm TripleDES provides fewer bits of security than more modern encryption algorithms.

Descripción de la reglaRule description

Las funciones hash y los algoritmos de cifrado no seguros se usan hoy en día por varios motivos, pero no deben usarse para garantizar la confidencialidad o la integridad de los datos que protegen.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.

La regla se desencadena cuando encuentra los algoritmos 3DES, SHA1 o RIPEMD160 en el código y lanza una advertencia al usuario.The rule triggers when it finds 3DES, SHA1 or RIPEMD160 algorithms in the code and throws a warning to the user.

Cómo corregir infraccionesHow to fix violations

Use opciones de criptografía más segura:Use cryptographically stronger options:

  • Para el cifrado TripleDES, use el cifrado Aes .For TripleDES encryption, use Aes encryption.

  • Para las funciones hash SHA1 o RIPEMD160, use los de la SHA-2 familia (por ejemplo, SHA512, SHA384, SHA256).For SHA1 or RIPEMD160 hashing functions, use ones in the SHA-2 family (e.g. SHA512, SHA384, SHA256).

Cuándo Suprimir advertenciasWhen to suppress warnings

Suprima una advertencia de esta regla cuando el nivel de protección necesario para los datos no requiera una garantía de seguridad.Suppress a warning from this rule when the level of protection needed for the data does not require a security guarantee.

Ejemplos de pseudocódigoPseudo-code examples

En el momento de redactar este artículo, el ejemplo de pseudocódigo siguiente muestra el patrón que esta regla detecta.As of the time of this writing, the following pseudo-code sample illustrates the pattern detected by this rule.

Infracción de hash SHA-1SHA-1 Hashing Violation

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

Solución:Solution:

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

Infracción de hash RIPEMD160RIPEMD160 Hashing Violation

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

Solución:Solution:

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

Infracción de cifrado TripleDESTripleDES Encryption Violation

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

Solución:Solution:

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