Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
| Właściwości | Wartość |
|---|---|
| Identyfikator reguły | CA5385 |
| Tytuł | Użyj algorytmu Rivest-Shamir-Adleman (RSA) z wystarczającym rozmiarem klucza |
| Kategoria | Bezpieczeństwo |
| Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
| Domyślnie włączone na platformie .NET 10 | Nie. |
Przyczyna
Użycie algorytmu szyfrowania asymetrycznego RSA z rozmiarem klucza mniejszym niż 2048 w jeden z następujących sposobów:
- Utworzenie wystąpienia wszystkich klas potomnych i określenie parametru System.Security.Cryptography.RSA
KeySizejako mniejszego niż 2048. - Zwracanie dowolnego obiektu, którego typ jest elementem podrzędnym System.Security.Cryptography.RSA.
- Użycie System.Security.Cryptography.AsymmetricAlgorithm.Create bez parametru, który tworzy rsA z domyślnym rozmiarem klucza 1024.
- Używanie System.Security.Cryptography.AsymmetricAlgorithm.Create i określanie parametru
algNametak jakRSAw przypadku domyślnego rozmiaru klucza 1024. - Używanie System.Security.Cryptography.CryptoConfig.CreateFromName i określanie parametru
nametak jakRSAw przypadku domyślnego rozmiaru klucza 1024. - Użycie System.Security.Cryptography.CryptoConfig.CreateFromName i określenie parametru jako
namei określenie rozmiaruRSAklucza jako mniejszego niż 2048 jawnie przezargs.
Opis reguły
Klucz RSA mniejszy niż 2048 bitów jest bardziej podatny na ataki siłowe.
Jak naprawić naruszenia
Przełącz się do algorytmu RSA z co najmniej 2048 rozmiarem klucza, algorytmem ECDH lub ECDsa.
Kiedy pomijać ostrzeżenia
Nie zaleca się pomijania tej reguły, chyba że ze względu na zgodność ze starszymi aplikacjami i danymi.
Pomijanie ostrzeżenia
Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable CA5385
// The code that's violating the rule is on this line.
#pragma warning restore CA5385
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.CA5385.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.
Przykład
Poniższy fragment kodu ilustruje wzorzec wykryty przez tę regułę.
Naruszenie:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(1024);
}
}
Rozwiązanie:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(2048);
}
}