Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 2915|Válasz: 0

[Forrás] ASP.NET Core (22) az IDataProtectionProvider adatvédelemen alapul

[Linket másol]
Közzétéve 2023. 08. 15. 10:21:16 | | | |
Követelmények: A fejlesztési folyamat során gyakran találkozhatsz titkosítási és dekódolási helyzetekkel, például az e-mail hitelesítés titkosított stringet hordozhat, és amikor a felhasználó rákattint a linkre, hogy az interfészhez ugorjon, a rendszer normálisan képes dekódolni a string tartalmát, így megvalósítva az e-mail hitelesítési funkciót.

Elemek generálása PowerShell <machineKey>segítségével
https://www.itsvse.com/thread-10644-1-1.html

Titkosítson adatokat ASP.NET machineKey-vel
https://www.itsvse.com/thread-9535-1-1.html

ASP.NET A machineKey szerepe és annak használata
https://www.itsvse.com/thread-2705-1-1.html

ASP.NET Core adatvédelmi funkciókat kínál:A hiperlink bejelentkezés látható.

Fő csomag

Az adatvédelemben részt vevő fő csomagok a következők, amelyeket szükség szerint hivatkoznak:

  • Microsoft.AspNetCore.DataProtection.Abstractions standard. NET CORE absztrakcióréteg komponenscsomag elnevezése. Tartalmaz jelentős interfész szolgáltatásokat, mint például az IDataProtectionProvider és az IDataProtector.
  • Microsoft.AspNetCore.DataProtection, beleértve a mag kriptográfiai műveleteket, kulcskezelést, konfigurálást és bővíthetőséget.
  • Microsoft.AspNetCore.DataProtection.Extensions extension. Gyári módszert biztosít instancek létrehozására, valamint egy tárolókiterjesztési módszert kulcsokhoz. Ez a csomag nem DI módban is használható.
  • A Microsoft.AspNetCore.DataProtection.SystemWeb <machineKey>kompatibilitást valósít meg a ASP.NET 4.x titkosítási és dekódolási mechanizmusaival.
  • A Microsoft.AspNetCore.Cryptography.KeyDerivation a PBKDF2 jelszó hash-ezési rutinjának megvalósítását biztosítja. Használd, amikor hash titkosításra van szükséged.


IDataProtectionProvider vs IDataProtector

Az IDataProtectionProvider a Microsoft Provider modellén alapul, és példák létrehozásához szükséges szabályzatokat biztosít. Hozz létre IDataProtector objektumot az IDataProtectionProvider.CreateProtector(purpose) metódus segítségével.
Az IDataProtector egy olyan szolgáltatás, amely a titkosításért és a fejtésért felelős, és főként kétféle módszert kínál: védelmet és védelmezés (mindegyik típus számos túlterhelési és kiterjesztési módszert tartalmaz). Egyszerű megértés: a protect titkosításra, az unprotect pedig a dekódolásra szolgál.
Az IDataProtectionProvider Create method paramétere egy string, amely izolációs funkciót biztosít. Az IDataProtectorok, amelyeket nem átjárható stringekkel hoztak létre, eltérő titkosítási eredményt kapnak, még akkor is, ha ugyanazt az objektumot titkosítják. Az IDataProtector maga is egy implicit IDataProtectionProvider, amely a CreateProtector(cél) módszert is biztosítja. Ez azt jelenti, hogy könnyen megvalósíthatóTöbbbérlős alkalmazási mód



Íme néhány dolog, amit érdemes szem előtt tartani:

IDataProtectionProvider és IDataProtector instancesMenetbiztonságCél.
Az unprotect módszer az, hogy értesítik a hívót a kód sikertelenségéről egy kivétel elhelyezésével. A kivételosztály a CryptographicException.

ASP.NET A Core egyszerű adatvédelem

Új interfész került az adatok titkosítására és visszafejtésére, és a kód a következő:

A teszt a következő:



Az IDataProtectionProvider egy singleton minta a következő kóddal:A hiperlink bejelentkezés látható.



Kulcskezelés

Ha a felhasználói profil elérhető, a kulcs megmarad a következők számára:%LOCALAPPDATA%\ASP.NET\DataProtection-Keysmappa. Ha az operációs rendszer Windows, a kulcsot nyugalmi állapotban DPAPI-val titkosítják. Ahogy az alábbiakban látható:



Kulcsélet

Alapértelmezés szerint a kulcsAz életciklus 90 nap。 Amikor a kulcs lejár, az alkalmazás automatikusan generál egy új kulcsot, és az új kulcsot aktív kulcsként állítja be. Amíg a kikapcsolt kulcsok a rendszerben maradnak, az alkalmazásod dekódolhat minden általuk védett adatot. További információért lásd: kulcskezelés.A hiperlink bejelentkezés látható.

Alapértelmezett algoritmus

Az alapértelmezett terhelésvédelmi algoritmusok az AES-256-CBC (titoktartás miatt) és a HMACSHA256 (az autentiás védelem miatt). Az 512 bites főkulcs, amely 90 naponta változik, két alkulcsot vezet le ezekhez az algoritmusokhoz minden hasznos rada alapján.

ASP.NET kulcstároló szolgáltató a Core-ban

Fájlrendszer: PersistKeysToFileSystem
Azure Storage: PersistKeysToAzureBlobStorage, amelyhez hivatkozás szükséges: Azure.Extensions.AspNetCore.DataProtection.Blobs
Redis storage: PersistKeysToStackExchangeRedis, referencia szükséges: Microsoft.AspNetCore.DataProtection.StackExchangeRedis

Utalás:A hiperlink bejelentkezés látható.

Klaszterezett és elosztott

Ha a szerverkulcs következetlen, például szerver A titkosítása és szerver B titkosítása, kivétel kerül (ahogy az alábbi ábrán látható), és ugyanazt a kulcsot kell telepíteni.



Ugyanazt a kulcsot a következőképpen konfiguráljuk:

Amint a program elindul, automatikusan generál egy kulcs-*.xml kulcsfájlt a publish_itsvse mappa alatt, tartsd ezt a fájlt következetesen különböző szervereken! Ahogy az alábbiakban látható:



ASP.NET Magvédelmi konfiguráció

ASP.NET CORE gazdag API támogatást, jelszó tartósságot, konfigurálást és testreszabási funkciókat kínál.

  • PersistKeysToAzureBlobStorage、ProtectKeysWithAzureKeyVault。 Azure felhőalapú tárolási forgatókönyv.
  • PersistKeysToFileSystem。 Helyi fájlrendszer tárolási rendszer, amely titkosítási algoritmusokat, kulcsokat és függőségeket rögzít.
  • ProtectKeysWith*。 A titkosítást ennek a nevezési módszernek a kiterjesztései biztosítják. Például ProtectKeysWithCertificate
  • SetDefaultKeyLifetime。 Állítsd be a kulcs élettartamát alapértelmezés szerint 90 napra.
  • SetApplicationName。 Állítsd be az alkalmazás nevét. Alapértelmezés szerint az adatvédelmi mechanizmusok minden alkalmazástól teljesen elszigeteltek. Az alkalmazások közötti kulcsmegosztás ugyanaz az alkalmazásnév beállításával érhető el.
  • DisableAutomaticKeyGeneration。 Megakadályozza, hogy a kulcsot automatikusan visszaverje. Sokszor nem szeretnénk, ha a jelszavak megváltoznának, vagy egy klaszterszolgáltatásban, van egy dedikált szolgáltatásunk, amely a kulcsfontosságú frissítések visszahúzásáért felelős, és más hasznos terheknek csak egy megosztott helyről kell megszerezniük a jelszavakat.
  • UseCryptographicAlgorithms。 Használjon egyedi titkosítási és dekódolási algoritmusokat


Utalás:A hiperlink bejelentkezés látható.





Előző:Használd PowerShell-t a &lt;machineKey&gt; elem generálására
Következő:Hasonlítsd össze a Tailscale-t, ZeroTier-t, WireGuard-ot, OmniEdge-et és Ngrokot geohálózati megoldások szempontjából
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com