CA5350 : N’utilisez pas d’algorithmes de chiffrement faiblesCA5350: Do Not Use Weak Cryptographic Algorithms

TypeNameTypeName DoNotUseWeakCryptographicAlgorithmsDoNotUseWeakCryptographicAlgorithms
CheckIdCheckId CA5350CA5350
CategoryCategory Microsoft.CryptographyMicrosoft.Cryptography
Modification avec ruptureBreaking Change Sans ruptureNon Breaking

Note

Cet avertissement a été mis à jour pour la dernière fois en novembre 2015.This warning was last updated on November 2015.

CauseCause

Les algorithmes de chiffrement, tels que TripleDES , et les algorithmes de hachage, tels que SHA1 et RIPEMD160 , sont considérés comme faibles.Encryption algorithms such as TripleDES and hashing algorithms such as SHA1 and RIPEMD160 are considered to be weak.

Ces algorithmes de chiffrement n’offrent pas autant de sécurité que leurs équivalents plus modernes.These cryptographic algorithms do not provide as much security assurance as more modern counterparts. Les algorithmes de chiffrement et de hachage SHA1 et RIPEMD160 offrent moins de résistance aux collisions que les algorithmes de hachage plus modernes.Cryptographic hashing algorithms SHA1 and RIPEMD160 provide less collision resistance than more modern hashing algorithms. L’algorithme de chiffrement TripleDES fournit moins de bits de sécurité que les algorithmes de chiffrement plus modernes.The encryption algorithm TripleDES provides fewer bits of security than more modern encryption algorithms.

Description de la règleRule Description

Des algorithmes de chiffrement et des fonctions de hachage faibles sont utilisés aujourd’hui pour plusieurs raisons, mais ils ne doivent pas servir à garantir la confidentialité des données qu’ils protègent.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 règle se déclenche et lève un avertissement quand elle trouve des algorithmes 3DES, SHA1 ou RIPEMD160 dans le code.The rule triggers when it finds 3DES, SHA1 or RIPEMD160 algorithms in the code and throws a warning to the user.

Comment corriger les violationsHow to Fix Violations

Utilisez des options de chiffrement plus fortes :Use cryptographically stronger options:

  • Pour le chiffrement TripleDES, utilisez le chiffrement Aes .For TripleDES encryption, use Aes encryption.

  • Pour les fonctions de hachage SHA1 ou RIPEMD160, utilisez celles dans les SHA-2 famille (par exemple, SHA512, SHA384, SHA256).For SHA1 or RIPEMD160 hashing functions, use ones in the SHA-2 family (e.g. SHA512, SHA384, SHA256).

Quand supprimer les avertissementsWhen to Suppress Warnings

Supprimez un avertissement de cette règle quand le niveau de protection nécessaire pour les données ne nécessite pas une garantie de sécurité.Suppress a warning from this rule when the level of protection needed for the data does not require a security guarantee.

Exemple de pseudo-codePseudo-code Example

Au moment de l’écriture de cet article, l’exemple de pseudo-code suivant illustre le schéma détecté par cette règle.As of the time of this writing, the following pseudo-code sample illustrates the pattern detected by this rule.

Violation de hachage SHA-1SHA-1 Hashing Violation

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

SolutionSolution

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

RIPEMD160RIPEMD160

Violation de hachageHashing Violation

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

SolutionSolution

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

Violation de chiffrement TripleDESTripleDES Encryption Violation

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

SolutionSolution

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