CA5350: Keine schwachen Kryptografiealgorithmen verwenden.
Eigenschaft | Wert |
---|---|
Regel-ID | CA5350 |
Titel | Keine schwachen Kryptografiealgorithmen verwenden. |
Kategorie | Security |
Fix führt oder führt nicht zur Unterbrechung | Nicht unterbrechend |
Standardmäßig in .NET 9 aktiviert | Nein |
Hinweis
Diese Warnung wurde zuletzt im November 2015 aktualisiert.
Ursache
Verschlüsselungsalgorithmen, wie z. B. TripleDES , und Hashalgorithmen, wie z. B. SHA1 und RIPEMD160 , gelten als schwach.
Diese kryptografischen Algorithmen bieten nicht dieselbe Sicherheitsgarantie wie modernere Entsprechungen. Die kryptografischen Hashalgorithmen SHA1 und RIPEMD160 bieten weniger Resistenz gegenüber Konflikten als modernere Hashalgorithmen. Der Verschlüsselungsalgorithmus TripleDES bietet weniger Sicherheit als modernere Verschlüsselungsalgorithmen.
Regelbeschreibung
Unsichere Verschlüsselungsalgorithmen und Hashfunktionen werden heute aus verschiedenen Gründen verwendet, sollten jedoch nicht verwendet werden, um die Vertrauenswürdigkeit der Daten, die sie schützen, zu gewährleisten.
Die Regel wird beim Auffinden von 3DES-, SHA1- oder RIPEMD160-Algorithmen im Code ausgelöst und gibt eine Warnung für den Benutzer zurück.
Behandeln von Verstößen
Verwenden Sie kryptografisch sicherere Optionen:
Verwenden Sie für TripleDES-Verschlüsselung die Aes -Verschlüsselung.
Verwenden Sie für SHA1- oder RIPEMD160-Hashfunktionen diejenigen der SHA-2 -Produktfamilie (z. B. SHA512, SHA384, SHA256).
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie eine Warnung dieser Regel, wenn der für die Daten benötigte Schutzgrad keine Sicherheitsgarantie erfordert.
Unterdrücken einer Warnung
Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.
#pragma warning disable CA5350
// The code that's violating the rule is on this line.
#pragma warning restore CA5350
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdatei auf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.CA5350.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.
Pseudocodebeispiele
Zum Zeitpunkt der Erstellung dieses Dokuments veranschaulicht das folgende Beispiel mit Pseudocode das von dieser Regel erkannte Muster.
Verstoß bei SHA-1-Hashfunktion
using System.Security.Cryptography;
...
var hashAlg = SHA1.Create();
Lösung:
using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();
Verstoß bei RIPEMD160-Hashfunktion
using System.Security.Cryptography;
...
var hashAlg = RIPEMD160Managed.Create();
Lösung:
using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();
Verstoß bei TripleDES-Verschlüsselung
using System.Security.Cryptography;
...
using (TripleDES encAlg = TripleDES.Create())
{
...
}
Lösung:
using System.Security.Cryptography;
...
using (AesManaged encAlg = new AesManaged())
{
...
}