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 8'de varsayılan olarak etkin Hayır

Dekont

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 RIPEMD160 daha modern karma algoritmalarına SHA1 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:

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 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())
{
  ...
}