CA5350: Zayıf Şifreleme Algoritmaları Kullanmayın
Özellik | Değer |
---|---|
Kural Kimliği | CA5350 |
Başlık | Zayıf Şifreleme Algoritmaları Kullanmayın |
Kategori | Güvenlik |
Hataya neden olan veya bozulmayan düzeltme | Hataya neden olmayan |
.NET 9'da varsayılan olarak etkin | Hayır |
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 şifrelemeyi kullanın Aes .
SHA1 veya RIPEMD160 karma işlevleri için SHA-2 ailesindekileri SHA256
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 none
olarak 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 yazma zamanından itibaren aşağıdaki sahte kod örneği, bu kural tarafından algılanan deseni gösterir.
SHA-1 Karma İhlali
using System.Security.Cryptography;
...
var hashAlg = SHA1.Create();
Çözüm:
using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();
RIPEMD160 Karma İ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())
{
...
}