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, která může být destruktivní nebo nedestruktivní | Nezlomitelný |
| Povoleno ve výchozím nastavení v .NET 10 | Ne |
| Příslušné jazyky | C# a Visual Basic |
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átit libovolný objekt, jehož typ je potomkem System.Security.Cryptography.RSA.
- Použití System.Security.Cryptography.AsymmetricAlgorithm.Create bez parametru, který by vytvořil RSA s výchozí velikostí klíče 1024.
- Při použití System.Security.Cryptography.AsymmetricAlgorithm.Create a specifikaci parametru
algNamejakoRSAs výchozí velikostí klíče 1024. - Pomocí System.Security.Cryptography.CryptoConfig.CreateFromName specifikujte parametr
namejakoRSAs vý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ě pomocí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);
}
}