Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| Eigenschap | Waarde |
|---|---|
| Regel-id | CA5358 |
| Titel | Onveilige coderingsmodi niet gebruiken |
| Categorie | Beveiliging |
| Fix kan brekend of niet-brekend zijn | Niet-brekend |
| Standaard ingeschakeld in .NET 10 | Nee |
| Toepasselijke talen | C# en Visual Basic |
Oorzaak
Gebruik van een van de volgende onveilige versleutelingsmodi die niet zijn goedgekeurd:
- System.Security.Cryptography.CipherMode.ECB
- System.Security.Cryptography.CipherMode.OFB
- System.Security.Cryptography.CipherMode.CFB
Beschrijving van regel
Deze modi zijn kwetsbaar voor aanvallen en kunnen leiden tot blootstelling van gevoelige informatie. Als u bijvoorbeeld ECB gebruikt om een plaintext-blok te versleutelen, leidt dit altijd tot dezelfde cijfertekst, waardoor het gemakkelijk is om te achterhalen of twee geëncrypteerde berichten identiek zijn. Het gebruik van goedgekeurde modi kan deze onnodige risico's voorkomen.
Hoe schendingen op te lossen
- Gebruik alleen goedgekeurde modi (System.Security.Cryptography.CipherMode.CBC, System.Security.Cryptography.CipherMode.CTS).
Wanneer waarschuwingen onderdrukken
Het is veilig om een waarschuwing van deze regel te onderdrukken als:
- Cryptografie-experts hebben het gebruik van de coderingsmodus beoordeeld en goedgekeurd.
- Waarnaar wordt verwezen CipherMode , wordt niet gebruikt voor een cryptografische bewerking.
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 CA5358
// The code that's violating the rule is on this line.
#pragma warning restore CA5358
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.CA5358.severity = none
Zie voor meer informatie Hoe codeanalysewaarschuwingen te onderdrukken.
Voorbeelden van pseudocode
ECB toewijzen aan mode-eigenschap
using System.Security.Cryptography;
class ExampleClass
{
private static void ExampleMethod()
{
RijndaelManaged rijn = new RijndaelManaged
{
Mode = CipherMode.ECB
};
}
}
De waarde ECB gebruiken
using System;
using System.Security.Cryptography;
class ExampleClass
{
private static void ExampleMethod()
{
Console.WriteLine(CipherMode.ECB);
}
}
Oplossing
using System.Security.Cryptography;
class ExampleClass
{
private static void ExampleMethod()
{
RijndaelManaged rijn = new RijndaelManaged
{
Mode = CipherMode.CBC
};
}
}