|
|
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.
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 <machineKey> elem generálásáraKövetkező:Hasonlítsd össze a Tailscale-t, ZeroTier-t, WireGuard-ot, OmniEdge-et és Ngrokot geohálózati megoldások szempontjából
|