Delen via


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