Megosztás a következőn keresztül:


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:

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

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
        };
    }
}