CA5385: Gebruik het algoritme Van Rivest-Shamir–Adleman (RSA) met voldoende sleutelgrootte
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA5385 |
Titel | Gebruik het algoritme Van Rivest-Shamir–Adleman (RSA) met voldoende sleutelgrootte |
Categorie | Beveiliging |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Nee |
Oorzaak
Het gebruik van asymmetrische versleutelingsalgoritmen RSA met sleutelgrootte kleiner dan 2048 op een van de volgende manieren:
- Instantieer eventuele onderliggende klassen van System.Security.Cryptography.RSA en geef de
KeySize
parameter op als kleiner dan 2048. - Retourneert een object waarvan het type afstammeling System.Security.Cryptography.RSAis.
- Zonder System.Security.Cryptography.AsymmetricAlgorithm.Create parameter gebruiken om RSA te maken met de standaardsleutelgrootte 1024.
- De parameter gebruiken System.Security.Cryptography.AsymmetricAlgorithm.Create en opgeven
algName
zoalsRSA
bij de standaardsleutelgrootte 1024. - De parameter gebruiken System.Security.Cryptography.CryptoConfig.CreateFromName en opgeven
name
zoalsRSA
bij de standaardsleutelgrootte 1024. - Het gebruik System.Security.Cryptography.CryptoConfig.CreateFromName en opgeven van de
name
parameter alsRSA
en het opgeven van de sleutelgrootte als kleiner dan 2048 expliciet doorargs
.
Beschrijving van regel
Een RSA-sleutel kleiner dan 2048 bits is kwetsbaarder voor beveiligingsaanvallen.
Schendingen oplossen
Schakel over naar een RSA met in plaats daarvan ten minste 2048 sleutelgrootte, ECDH of ECDsa-algoritme.
Wanneer waarschuwingen onderdrukken
Het wordt afgeraden deze regel te onderdrukken, tenzij deze compatibel is met verouderde toepassingen en gegevens.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA5385
// The code that's violating the rule is on this line.
#pragma warning restore CA5385
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none
ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA5385.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.
Opmerking
Het volgende codefragment illustreert het patroon dat door deze regel is gedetecteerd.
Schending:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(1024);
}
}
Oplossing:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(2048);
}
}