Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
| Özellik | Değer |
|---|---|
| Kural Kimliği | CA5385 |
| Başlık | Yeterli anahtar boyutuna sahip Rivest–Shamir–Adleman (RSA) algoritmasını kullan |
| Kategori | Güvenlik |
| Düzeltme bozucu ya da bozmayan olabilir | Kesintisiz |
| .NET 10'da varsayılan olarak etkin | Hayır |
| Geçerli diller | C# ve Visual Basic |
Neden
Anahtar boyutu 2048'den küçük olan asimetrik şifreleme algoritması RSA'sını aşağıdaki yollardan biriyle kullanma:
-
System.Security.Cryptography.RSA öğesinin alt sınıflarının örneğini oluşturma ve
KeySizeparametresini 2048'den küçük olarak belirtme. - System.Security.Cryptography.RSA öğesinin alt sınıfı olan herhangi bir nesneyi döndürme.
- Parametre olmadan System.Security.Cryptography.AsymmetricAlgorithm.Create kullanmak, varsayılan anahtar boyutu 1024 olan bir RSA oluşturur.
-
System.Security.Cryptography.AsymmetricAlgorithm.Create kullanarak ve
RSAile varsayılan anahtar boyutunu 1024 olarakalgNameparametresini belirtme. -
System.Security.Cryptography.CryptoConfig.CreateFromName kullanarak ve
RSAparametresini varsayılan anahtar boyutu 1024 olannameolarak belirterek. -
System.Security.Cryptography.CryptoConfig.CreateFromName kullanarak ve
nameparametresiniRSAolarak belirterek, anahtar boyutunuargstarafından açıkça 2048'den küçük olarak belirtme.
Kural açıklaması
2048 bitten küçük bir RSA anahtarı deneme yanılma saldırılarına karşı daha savunmasızdır.
İhlalleri düzeltme
Bunun yerine en az 2048 anahtar boyutu, ECDH veya ECDsa algoritması olan bir RSA'ya geçin.
Uyarıların ne zaman bastırılması gerekiyor?
Eski uygulamalar ve verilerle uyumluluk sağlamadığı sürece bu kuralın gizlenmesi önerilmez.
Uyarıyı gizleme
Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.
#pragma warning disable CA5385
// The code that's violating the rule is on this line.
#pragma warning restore CA5385
Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini noneolarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.CA5385.severity = none
Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.
Örnek
Aşağıdaki kod parçacığı, bu kural tarafından algılanan deseni gösterir.
Ihlal:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(1024);
}
}
Çözüm:
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
RSACng rsaCng = new RSACng(2048);
}
}