CA5385: Použijte algoritmus Rivest–Shamir–Adleman (RSA) s dostatečnou velikostí klíče
Vlastnost | Hodnota |
---|---|
ID pravidla | CA5385 |
Název | Použijte algoritmus RSA (Rivest-Shamir-Adleman) s dostatečnou velikostí klíče. |
Kategorie | Zabezpečení |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 8 | No |
Příčina
Použití asymetrického šifrovacího algoritmu RSA s velikostí klíče menší než 2048 jedním z následujících způsobů:
- Vytvoření instance všech potomků tříd System.Security.Cryptography.RSA a určení parametru
KeySize
jako menší než 2048. - Vrácení libovolného objektu System.Security.Cryptography.RSA, jehož typ je potomkem .
- Použití System.Security.Cryptography.AsymmetricAlgorithm.Create bez parametru, který by vytvořil RSA s výchozí velikostí klíče 1024.
- Použijete System.Security.Cryptography.AsymmetricAlgorithm.Create a zadáte
algName
parametr jakoRSA
výchozí velikost klíče 1024. - Použijete System.Security.Cryptography.CryptoConfig.CreateFromName a zadáte
name
parametr jakoRSA
výchozí velikost klíče 1024. - Použití System.Security.Cryptography.CryptoConfig.CreateFromName a zadání parametru
name
jakoRSA
a určení velikosti klíče jako menší než 2048 explicitně .args
Popis pravidla
Klíč RSA menší než 2048 bitů je zranitelnější vůči útokům hrubou silou.
Jak opravit porušení
Místo toho přepněte na RSA s alespoň velikostí klíče 2048, algoritmem ECDH nebo ECDsa.
Kdy potlačit upozornění
Nedoporučuje se potlačit toto pravidlo, pokud není kompatibilní se staršími aplikacemi a daty.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA5385
// The code that's violating the rule is on this line.
#pragma warning restore CA5385
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none
konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA5385.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.
Příklad
Následující fragment kódu znázorňuje vzor zjištěný tímto pravidlem.
Porušení:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(1024);
}
}
Řešení:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(2048);
}
}