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.
| Eigenschappen | Weergegeven als |
|---|---|
| Regel-id | CA5358 |
| Titel | Onveilige coderingsmodi niet gebruiken |
| Categorie | Beveiliging |
| Oplossing is brekend of niet-brekend | Niet-brekend |
| Standaard ingeschakeld in .NET 9 | Nee |
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 ECB bijvoorbeeld een blok zonder opmaak wilt versleutelen, wordt altijd dezelfde coderingstekst geproduceerd, zodat u gemakkelijk kunt zien of twee versleutelde berichten identiek zijn. Het gebruik van goedgekeurde modi kan deze onnodige risico's voorkomen.
Schendingen oplossen
- 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 Codeanalysewaarschuwingen onderdrukken voor meer informatie.
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
};
}
}