CA5350: Gebruik geen zwakke cryptografische algoritmen
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA5350 |
Titel | Gebruik geen zwakke cryptografische algoritmen |
Categorie | Beveiliging |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Nr. |
Notitie
Deze waarschuwing is voor het laatst bijgewerkt op november 2015.
Oorzaak
Versleutelingsalgoritmen zoals TripleDES en hash-algoritmen zoals SHA1 en RIPEMD160 worden beschouwd als zwak.
Deze cryptografische algoritmen bieden niet zoveel zekerheid als modernere tegenhangers. Cryptografische hash-algoritmen SHA1 en RIPEMD160 bieden minder botsingsweerstand dan moderne hash-algoritmen. Het versleutelingsalgoritmen TripleDES bieden minder bits van beveiliging dan moderne versleutelingsalgoritmen.
Beschrijving van regel
Zwakke versleutelingsalgoritmen en hashfuncties worden tegenwoordig gebruikt om een aantal redenen, maar ze mogen niet worden gebruikt om de vertrouwelijkheid van de gegevens die ze beschermen te garanderen.
De regel wordt geactiveerd wanneer er 3DES-, SHA1- of RIPEMD160-algoritmen in de code worden gevonden en een waarschuwing voor de gebruiker wordt weergegeven.
Schendingen oplossen
Cryptografisch sterkere opties gebruiken:
Gebruik Aes versleuteling voor TripleDES-versleuteling.
Voor SHA1- of RIPEMD160 hash-functies gebruikt u de functies in de SHA-2-familie (bijvoorbeeld SHA512, SHA384en SHA256).
Wanneer waarschuwingen onderdrukken
Onderdrukt een waarschuwing van deze regel wanneer het beveiligingsniveau dat nodig is voor de gegevens geen beveiligingsgarantie vereist.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA5350
// The code that's violating the rule is on this line.
#pragma warning restore CA5350
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none
ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA5350.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.
Voorbeelden van pseudocode
Vanaf het moment van schrijven illustreert het volgende pseudocodevoorbeeld het patroon dat door deze regel is gedetecteerd.
Schending van SHA-1-hashing
using System.Security.Cryptography;
...
var hashAlg = SHA1.Create();
Oplossing:
using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();
schending van hash-RIPEMD160
using System.Security.Cryptography;
...
var hashAlg = RIPEMD160Managed.Create();
Oplossing:
using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();
Schending van tripleDES-versleuteling
using System.Security.Cryptography;
...
using (TripleDES encAlg = TripleDES.Create())
{
...
}
Oplossing:
using System.Security.Cryptography;
...
using (AesManaged encAlg = new AesManaged())
{
...
}