CA5385: RSA-Algorithmus (Rivest – Shamir – Adleman) mit ausreichender Schlüsselgröße verwenden
Eigenschaft | Wert |
---|---|
Regel-ID | CA5385 |
Titel | RSA-Algorithmus (Rivest – Shamir – Adleman) mit ausreichender Schlüsselgröße verwenden |
Kategorie | Security |
Fix führt oder führt nicht zur Unterbrechung | Nicht unterbrechend |
Standardmäßig in .NET 9 aktiviert | No |
Ursache
Die Verwendung des asymmetrischen RSA-Verschlüsselungsalgorithmus mit einer Schlüsselgröße von weniger als 2048 Bits auf eine der folgenden Arten:
- Instanziieren aller abgeleiteten Klassen von System.Security.Cryptography.RSA und Angeben des Parameters
KeySize
mit einem Wert unter 2048 Bits - Zurückgeben eines beliebigen Objekts, dessen Typ von System.Security.Cryptography.RSA abgeleitet ist
- Verwenden von System.Security.Cryptography.AsymmetricAlgorithm.Create ohne Parameter – dadurch wird der RSA-Schlüssel mit der Standardschlüsselgröße 1024 Bits erstellt
- Verwenden von System.Security.Cryptography.AsymmetricAlgorithm.Create und Angeben des Parameters
algName
alsRSA
mit der Standardschlüsselgröße von 1024 Bits - Verwenden von System.Security.Cryptography.CryptoConfig.CreateFromName und Angeben des Parameters
name
alsRSA
mit der Standardschlüsselgröße von 1024 Bits - Verwenden von System.Security.Cryptography.CryptoConfig.CreateFromName, Angeben des Parameters
name
alsRSA
und explizites Angeben einer Schlüsselgröße von weniger als 2048 Bits durchargs
Regelbeschreibung
Ein RSA-Schlüssel, der kleiner als 2048 Bits ist, ist anfälliger für Brute-Force-Angriffe.
Behandeln von Verstößen
Wechseln Sie stattdessen zu einem RSA-Schlüssel mit einer Größe von mindestens 2048 Bits oder zu einem ECDH- oder ECDSA-Algorithmus.
Wann sollten Warnungen unterdrückt werden?
Es wird nicht empfohlen, diese Regel zu unterdrücken, solange keine Gründe im Hinblick auf die Kompatibilität mit Legacyanwendungen und -daten vorliegen.
Unterdrücken einer Warnung
Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.
#pragma warning disable CA5385
// The code that's violating the rule is on this line.
#pragma warning restore CA5385
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdatei auf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.CA5385.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.
Beispiel
Der folgende Ausschnitt veranschaulicht das von dieser Regel erkannte Muster.
Verstoß:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(1024);
}
}
Lösung:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(2048);
}
}