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


CA5350: Ne használjon gyenge titkosítási algoritmusokat

Tulajdonság Érték
Szabályazonosító CA5350
Cím Ne használjon gyenge titkosítási algoritmusokat
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 9-ben Nem

Feljegyzés

Ez a figyelmeztetés legutóbb 2015 novemberében frissült.

Ok

A titkosítási algoritmusok, például TripleDES a kivonatoló algoritmusok, például SHA1 a RIPEMD160 gyengenek minősülő algoritmusok.

Ezek a titkosítási algoritmusok nem biztosítanak annyi biztonsági garanciát, mint a modernebb társaik. Titkosítási kivonatoló algoritmusok SHA1 , és RIPEMD160 kevesebb ütközési ellenállást biztosítanak, mint a modern kivonatoló algoritmusok. A titkosítási algoritmus TripleDES kevesebb biztonsági bitet biztosít, mint a modernebb titkosítási algoritmusok.

Szabály leírása

A gyenge titkosítási algoritmusokat és kivonatolási függvényeket ma több okból is használják, de nem szabad az általuk védett adatok titkosságát garantálni.

A szabály akkor aktiválódik, amikor 3DES, SHA1 vagy RIPEMD160 algoritmusokat talál a kódban, és figyelmeztetést ad a felhasználónak.

Szabálysértések kijavítása

Használjon kriptográfiailag erősebb lehetőségeket:

  • A TripleDES-titkosításhoz használjon Aes titkosítást.

  • SHA1 vagy RIPEMD160 kivonatolási függvényekhez használja az SHA-2 családban lévő függvényeket (például SHA512: , SHA384és SHA256).

Mikor kell letiltani a figyelmeztetéseket?

A szabály figyelmeztetésének mellőzése, ha az adatokhoz szükséges védelmi szint nem igényel biztonsági garanciát.

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 CA5350
// The code that's violating the rule is on this line.
#pragma warning restore CA5350

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.CA5350.severity = none

További információ: Kódelemzési figyelmeztetések letiltása.

Példák pszeudokódokra

Az írás idejére az alábbi pszeudokód-minta a szabály által észlelt mintát mutatja be.

SHA-1 kivonatolási szabálysértés

using System.Security.Cryptography;
...
var hashAlg = SHA1.Create();

Solution

using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();

RIPEMD160 kivonatolási szabálysértés

using System.Security.Cryptography;
...
var hashAlg = RIPEMD160Managed.Create();

Solution

using System.Security.Cryptography;
...
var hashAlg = SHA256.Create();

TripleDES-titkosítás megsértése

using System.Security.Cryptography;
...
using (TripleDES encAlg = TripleDES.Create())
{
  ...
}

Solution

using System.Security.Cryptography;
...
using (AesManaged encAlg = new AesManaged())
{
  ...
}