CA5358: Ne használjon nem biztonságos titkosítási módokat
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA5358 |
Cím | Ne használjon nem biztonságos titkosítási módokat |
Kategória | Biztonság |
A javítás kompatibilitástörő vagy nem törik | Nem törés |
Alapértelmezés szerint engedélyezve a .NET 8-ban | Nem |
Ok
A következő, nem jóváhagyott, nem biztonságos titkosítási módok egyikének használata:
- System.Security.Cryptography.CipherMode.ECB
- System.Security.Cryptography.CipherMode.OFB
- System.Security.Cryptography.CipherMode.CFB
Szabály leírása
Ezek a módok sebezhetőek a támadásokkal szemben, és bizalmas információknak való kitettséget okozhatnak. Egy egyszerű szöveges blokk titkosításával ECB
például mindig ugyanazt a titkosítási szöveget hozza létre, így könnyen megállapíthatja, hogy két titkosított üzenet azonos-e. A jóváhagyott módok használata elkerülheti ezeket a szükségtelen kockázatokat.
Szabálysértések kijavítása
- Csak jóváhagyott módokat használjon (System.Security.Cryptography.CipherMode.CBC, System.Security.Cryptography.CipherMode.CTS).
Mikor kell letiltani a figyelmeztetéseket?
A szabály figyelmeztetését nyugodtan letilthatja, ha:
- A titkosítási szakértők áttekintették és jóváhagyták a titkosítási mód használatát.
- A hivatkozott CipherMode nem titkosítási művelethez használatos.
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable CA5358
// The code that's violating the rule is on this line.
#pragma warning restore CA5358
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none
a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.CA5358.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.
Példák pszeudokódokra
EKB hozzárendelése módtulajdonhoz
using System.Security.Cryptography;
class ExampleClass {
private static void ExampleMethod () {
RijndaelManaged rijn = new RijndaelManaged
{
Mode = CipherMode.ECB
};
}
}
Az EKB értékének használata
using System;
using System.Security.Cryptography;
class ExampleClass
{
private static void ExampleMethod()
{
Console.WriteLine(CipherMode.ECB);
}
}
Megoldás
using System.Security.Cryptography;
class ExampleClass {
private static void ExampleMethod () {
RijndaelManaged rijn = new RijndaelManaged
{
Mode = CipherMode.CBC
};
}
}
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: