CA5385: Gunakan algoritma Rivest–Shamir–Adleman (RSA) dengan ukuran kunci yang memadai
Properti | Nilai |
---|---|
ID Aturan | CA5385 |
Judul | Gunakan algoritma Rivest–Shamir–Adleman (RSA) dengan ukuran kunci yang memadai |
Golongan | Keamanan |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | No |
Penyebab
Menggunakan RSA algoritma enkripsi asimetris dengan ukuran kunci kurang dari 2048 dengan salah satu cara berikut:
- Membuat instans kelas turunan System.Security.Cryptography.RSA dan menentukan
KeySize
parameter kurang dari 2048. - Mengembalikan objek apa pun yang jenisnya adalah turunan dari System.Security.Cryptography.RSA.
- Menggunakan System.Security.Cryptography.AsymmetricAlgorithm.Create tanpa parameter yang akan membuat RSA dengan ukuran kunci default 1024.
- Menggunakan System.Security.Cryptography.AsymmetricAlgorithm.Create dan menentukan
algName
parameter sepertiRSA
dengan ukuran kunci default 1024. - Menggunakan System.Security.Cryptography.CryptoConfig.CreateFromName dan menentukan
name
parameter sepertiRSA
dengan ukuran kunci default 1024. - Menggunakan System.Security.Cryptography.CryptoConfig.CreateFromName dan menentukan
name
parameter sebagaiRSA
dan menentukan ukuran kunci yang lebih kecil dari 2048 secara eksplisit olehargs
.
Deskripsi aturan
Kunci RSA yang lebih kecil dari 2048 bit lebih rentan terhadap serangan brute force.
Cara memperbaiki pelanggaran
Beralih ke RSA dengan setidaknya ukuran kunci 2048, algoritma ECDH atau ECDsa sebagai gantinya.
Kapan harus menekan peringatan
Tidak disarankan untuk menekan aturan ini kecuali untuk kompatibilitas dengan aplikasi dan data warisan.
Menyembunyikan peringatan
Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan arahan praprosedur ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturannya.
#pragma warning disable CA5385
// The code that's violating the rule is on this line.
#pragma warning restore CA5385
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA5385.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.
Contoh
Cuplikan kode berikut mengilustrasikan pola yang terdeteksi oleh aturan ini.
Pelanggaran:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(1024);
}
}
Solusi:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(2048);
}
}