Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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())
{
...
}