CA5385: 十分なキー サイズの Rivest–Shamir–Adleman (RSA) アルゴリズムを使用します
プロパティ | 値 |
---|---|
ルール ID | CA5385 |
Title | 十分なキー サイズの Rivest–Shamir–Adleman (RSA) アルゴリズムを使用します |
[カテゴリ] | Security |
修正が中断か中断なしであるか | なし |
.NET 9 では既定で有効 | いいえ |
原因
キー サイズが 2048 未満の非対称暗号化アルゴリズム RSA が次のいずれかの方法で使用されました。
- System.Security.Cryptography.RSA の子孫クラスをインスタンス化し、2048 未満として
KeySize
パラメーターを指定します。 - 型が System.Security.Cryptography.RSA の子孫である何らかのオブジェクトを返します。
- 既定のキー サイズ 1024 で RSA を作成する、パラメーターなしの System.Security.Cryptography.AsymmetricAlgorithm.Create を使用します。
- System.Security.Cryptography.AsymmetricAlgorithm.Create を使用し、
algName
パラメーターをRSA
として指定し、既定のキー サイズ 1024 を指定します。 - System.Security.Cryptography.CryptoConfig.CreateFromName を使用し、
name
パラメーターをRSA
として指定し、既定のキー サイズ 1024 を指定します。 - System.Security.Cryptography.CryptoConfig.CreateFromName を使用し、
name
パラメーターをRSA
として指定し、args
によって明示的に 2048 より小さいキー サイズを指定します。
規則の説明
2048 ビットよりも小さい RSA キーは、ブルート フォース攻撃に対する脆弱性が高くなります。
違反の修正方法
少なくとも 2048 のキー サイズ、ECDH または ECDsa アルゴリズムを使用する RSA に切り替えます。
どのようなときに警告を抑制するか
レガシ アプリケーションおよびデータとの互換性を目的としない限り、この規則を抑制することはお勧めしません。
警告を抑制する
単一の違反を抑制するだけの場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、規則をもう一度有効にします。
#pragma warning disable CA5385
// The code that's violating the rule is on this line.
#pragma warning restore CA5385
ファイル、フォルダー、またはプロジェクトの規則を無効にするには、構成ファイルでその重要度を none
に設定します。
[*.{cs,vb}]
dotnet_diagnostic.CA5385.severity = none
詳細については、「コード分析の警告を抑制する方法」を参照してください。
例
次のコード スニペットで、この規則により検出されたパターンを示しています。
違反:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(1024);
}
}
解決方法:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(2048);
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET