CA5401: Gebruik CreateEncryptor niet met niet-standaard IV
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA5401 |
Titel | CreateEncryptor niet gebruiken met niet-standaard IV |
Categorie | Beveiliging |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Nee |
Gebruiken System.Security.Cryptography.SymmetricAlgorithm.CreateEncryptor met niet-standaardwaarde rgbIV
.
Symmetrische versleuteling moet altijd een niet-herhaalbare initialisatievector gebruiken om woordenlijstaanvallen te voorkomen.
Deze regel is vergelijkbaar met CA5402, maar bij analyse wordt bepaald dat de initialisatievector absoluut de standaardwaarde is.
Gebruik de standaardwaarde rgbIV
, dat wil gezegd, de overbelasting van de System.Security.Cryptography.SymmetricAlgorithm.CreateEncryptor waarde die geen parameter heeft.
Het is veilig om een waarschuwing van deze regel te onderdrukken als:
- De
rgbIV
parameter is gegenereerd door System.Security.Cryptography.SymmetricAlgorithm.GenerateIV. - U weet zeker dat het
rgbIV
echt willekeurig en niet herhaalbaar is.
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 CA5401
// The code that's violating the rule is on this line.
#pragma warning restore CA5401
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.CA5401.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod(byte[] rgbIV)
{
AesCng aesCng = new AesCng();
aesCng.IV = rgbIV;
aesCng.CreateEncryptor();
}
}
using System.Security.Cryptography;
class ExampleClass
{
public void ExampleMethod()
{
AesCng aesCng = new AesCng();
aesCng.CreateEncryptor();
}
}
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven: