CA5350 : N’utilisez pas d’algorithmes de chiffrement faibles
Propriété | Value |
---|---|
Identificateur de la règle | CA5350 |
Titre | N’utilisez pas d’algorithmes de chiffrement faibles |
Catégorie | Sécurité |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | Non |
Notes
Cet avertissement a été mis à jour pour la dernière fois en novembre 2015.
Cause
Les algorithmes de chiffrement, tels que TripleDES , et les algorithmes de hachage, tels que SHA1 et RIPEMD160 , sont considérés comme faibles.
Ces algorithmes de chiffrement n’offrent pas autant de sécurité que leurs équivalents plus modernes. Les algorithmes de chiffrement et de hachage SHA1 et RIPEMD160 offrent moins de résistance aux collisions que les algorithmes de hachage plus modernes. L’algorithme de chiffrement TripleDES fournit moins de bits de sécurité que les algorithmes de chiffrement plus modernes.
Description de la règle
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.
La règle se déclenche et lève un avertissement quand elle trouve des algorithmes 3DES, SHA1 ou RIPEMD160 dans le code.
Comment corriger les violations
Utilisez des options de chiffrement plus fortes :
Pour le chiffrement TripleDES, utilisez le chiffrement Aes .
Pour les algorithmes de hachage SHA1 et RIPEMD160, utilisez des algorithmes de la famille SHA-2 (par exemple, SHA512, SHA384, SHA256).
Quand supprimer les avertissements
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é.
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable CA5350
// The code that's violating the rule is on this line.
#pragma warning restore CA5350
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.CA5350.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.
Exemples de pseudo-code
Au moment de l’écriture de cet article, l’exemple de pseudo-code suivant illustre le schéma détecté par cette règle.
Violation de hachage SHA-1
using System.Security.Cryptography;
...
var hashAlg = SHA1.Create();
Solution :
using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();
Violation de hachage RIPEMD160
using System.Security.Cryptography;
...
var hashAlg = RIPEMD160Managed.Create();
Solution :
using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();
Violation de chiffrement TripleDES
using System.Security.Cryptography;
...
using (TripleDES encAlg = TripleDES.Create())
{
...
}
Solution :
using System.Security.Cryptography;
...
using (AesManaged encAlg = new AesManaged())
{
...
}