Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Propriété | Value |
---|---|
Identificateur de la règle | CA5401 |
Titre | Ne pas utiliser CreateEncryptor avec une valeur IV non définie par défaut |
Catégorie | Sécurité |
Le correctif est cassant ou non cassant | Sans rupture |
Activée par défaut dans .NET 9 | Non |
Utilisation de System.Security.Cryptography.SymmetricAlgorithm.CreateEncryptor avec un rgbIV
différent de la valeur par défaut.
Le chiffrement symétrique doit toujours utiliser un vecteur d’initialisation non répétable pour empêcher les attaques par dictionnaire.
Cette règle est similaire à CA5402, mais l’analyse détermine que le vecteur d’initialisation est bien celui par défaut.
Utilisez la valeur rgbIV
par défaut. Autrement dit, utilisez la surcharge du System.Security.Cryptography.SymmetricAlgorithm.CreateEncryptor qui n’a aucun paramètre.
Vous pouvez supprimer sans risque un avertissement de cette règle si :
rgbIV
a été généré par System.Security.Cryptography.SymmetricAlgorithm.GenerateIV.rgbIV
est vraiment aléatoire et non reproductible.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 CA5401
// The code that's violating the rule is on this line.
#pragma warning restore CA5401
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.CA5401.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod(byte[] rgbIV)
{
AesCng aesCng = new AesCng();
aesCng.IV = rgbIV;
aesCng.CreateEncryptor();
}
}
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
AesCng aesCng = new AesCng();
aesCng.CreateEncryptor();
}
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenant