CA5385 : Utiliser l’algorithme RSA (Rivest-Shamir-Adleman) avec une taille de clé suffisante
Propriété | Value |
---|---|
Identificateur de la règle | CA5385 |
Titre | Utiliser l’algorithme RSA (Rivest-Shamir-Adleman) avec une taille de clé suffisante |
Catégorie | Sécurité |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | Non |
Cause
Utilisation de l’algorithme de chiffrement asymétrique RSA avec une taille de clé inférieure à 2048 de l’une des manières suivantes :
- Instanciation de toutes les classes descendantes de System.Security.Cryptography.RSA, et spécification du paramètre
KeySize
avec une valeur inférieure à 2048. - Retour de tout objet dont le type est descendant de System.Security.Cryptography.RSA.
- Utilisation de System.Security.Cryptography.AsymmetricAlgorithm.Create sans paramètre qui créerait RSA avec la taille de clé par défaut 1024.
- Utilisation de System.Security.Cryptography.AsymmetricAlgorithm.Create et spécification du paramètre
algName
avec la valeurRSA
avec la taille de clé par défaut 1024. - Utilisation de System.Security.Cryptography.CryptoConfig.CreateFromName et spécification du paramètre
name
avec la valeurRSA
avec la taille de clé par défaut 1024. - Utilisation de System.Security.Cryptography.CryptoConfig.CreateFromName et spécification du paramètre
name
avec la valeurRSA
et spécification de manière explicite de la taille de clé comme étant inférieure à 2048 parargs
.
Description de la règle
Une clé RSA inférieure à 2 048 bits est plus vulnérable aux attaques par force brute.
Comment corriger les violations
Passez à un RSA avec une taille de clé de 2048 au moins, algorithme ECDH ou ECDsa à la place.
Quand supprimer les avertissements
Il n’est pas recommandé de supprimer cette règle, sauf pour des raisons de compatibilité avec les applications et données héritées.
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 CA5385
// The code that's violating the rule is on this line.
#pragma warning restore CA5385
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.CA5385.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.
Exemple
L’extrait de code suivant illustre le modèle détecté par cette règle.
Violation :
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(1024);
}
}
Solution :
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(2048);
}
}