Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresář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 10 | 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
KeySizejako 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
algNameparametr jakoRSAvýchozí velikost klíče 1024. - Použijete System.Security.Cryptography.CryptoConfig.CreateFromName a zadáte
nameparametr jakoRSAvýchozí velikost klíče 1024. - Použití System.Security.Cryptography.CryptoConfig.CreateFromName a zadání parametru
namejakoRSAa 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);
}
}