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 | CA5350 |
| Başlık | Zayıf Şifreleme Algoritmaları Kullanmayın |
| 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 |
Not
Bu uyarı en son Kasım 2015'te güncelleştirildi.
Neden
gibi TripleDES şifreleme algoritmaları ve gibi SHA1RIPEMD160 karma algoritmaları zayıf olarak kabul edilir.
Bu şifreleme algoritmaları, daha modern karşılıklar kadar güvenlik güvencesi sağlamaz. Şifreleme karma algoritmaları ve SHA1 daha modern karma algoritmalarına RIPEMD160 kıyasla daha az çakışma direnci sağlar. Şifreleme algoritması TripleDES , daha fazla modern şifreleme algoritmasına kıyasla daha az güvenlik sağlar.
Kural açıklaması
Zayıf şifreleme algoritmaları ve karma işlevleri günümüzde çeşitli nedenlerle kullanılmaktadır, ancak korudukları verilerin gizliliğini garanti etmek için kullanılmamalıdır.
Kural kodda 3DES, SHA1 veya RIPEMD160 algoritmaları bulduğunda tetiklenir ve kullanıcıya bir uyarı oluşturur.
İhlalleri düzeltme
Şifreleme açısından daha güçlü seçenekleri kullanın:
TripleDES şifrelemesi için Aes şifrelemeyi kullanın.
SHA1 veya RIPEMD160 karma işlevleri için, (örneğin, SHA512, SHA384, ve SHA256 gibi) SHA-2 ailesindeki karma işlevleri kullanın.
Uyarıların ne zaman bastırılması gerekiyor?
Veriler için gereken koruma düzeyi güvenlik garantisi gerektirmediğinde bu kuraldan bir uyarıyı gizleyin.
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 CA5350
// The code that's violating the rule is on this line.
#pragma warning restore CA5350
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.CA5350.severity = none
Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.
Sahte kod örnekleri
Bu yazı yazıldığı sırada, aşağıdaki sahte kod örneği bu kural tarafından algılanan şablonu gösterir.
SHA-1 Hash İhlali
using System.Security.Cryptography;
...
var hashAlg = SHA1.Create();
Çözüm:
using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();
RIPEMD160 Karma Fonksiyonu İhlali
using System.Security.Cryptography;
...
var hashAlg = RIPEMD160Managed.Create();
Çözüm:
using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();
TripleDES Şifreleme İhlali
using System.Security.Cryptography;
...
using (TripleDES encAlg = TripleDES.Create())
{
...
}
Çözüm:
using System.Security.Cryptography;
...
using (AesManaged encAlg = new AesManaged())
{
...
}