|
|
Objavljeno na 15. 08. 2023 10:21:16
|
|
|
|

Zahteve: Med razvojem se lahko pogosto srečate z nekaterimi scenariji šifriranja in dešifriranja, na primer, avtentikacija elektronske pošte lahko vsebuje šifriran niz, in ko uporabnik klikne povezavo za prehod na vmesnik, lahko sistem normalno dešifrira vsebino niza, s čimer se uresniči funkcija avtentikacije e-pošte.
ASP.NET Core ponuja funkcije varstva podatkov:Prijava do hiperpovezave je vidna.
Glavni paket
Glavni paketi, vključeni v varstvo podatkov, so naslednji in so navedeni po potrebi:
- Standard Microsoft.AspNetCore.DataProtection.Abstractions. Poimenovanje paketov komponent na plasti abstrakcije NET CORE. Vključuje glavne vmesne storitve, kot sta IDataProtectionProvider in IDataProtector.
- Microsoft.AspNetCore.DataProtection, vključno z osnovnimi kriptografskimi operacijami, upravljanjem ključev, konfiguracijo in razširljivostjo.
- Razširitev Microsoft.AspNetCore.DataProtection.Extensions. Omogoča tovarniško metodo za ustvarjanje primerkov in metodo razširitve shranjevanja za ključe. Ta paket se uporablja v ne-DI načinu.
- Microsoft.AspNetCore.DataProtection.SystemWeb implementira <machineKey>združljivost z mehanizmi šifriranja in dešifriranja v ASP.NET 4.x.
- Microsoft.AspNetCore.Cryptography.KeyDerivation omogoča implementacijo rutine za zgoščevanje gesel PBKDF2. Uporabi ga, ko moraš uporabiti šifriranje s zgoščenim ključem.
IDataProtectionProvider proti IDataProtector
IDataProtectionProvider temelji na Microsoftovem modelu Provider in se uporablja za zagotavljanje politik za ustvarjanje primerkov. Ustvarite objekt IDataProtector z klicem metode IDataProtectionProvider.CreateProtector(purpose). IDataProtector je storitev, odgovorna za šifriranje in dešifriranje, ki večinoma ponuja dve vrsti metod: protect in unprotect (vsaka vrsta ima več metod preobremenitve in razširitve). Preprosto razumevanje je, da se protect uporablja za šifriranje, unprotect pa za dešifriranje. Parameter metode Create pri IDataProtectionProvider je niz, ki zagotavlja izolacijsko funkcionalnost. IDataProtectorji, ustvarjeni z neprehodnimi nizi, bodo dobili različne rezultate šifriranja, tudi če šifrirajo isti objekt. IDataProtector je prav tako implicitni IDataProtectionProvider, ki prav tako omogoča metodo CreateProtector(purpose). To pomeni, da ga je mogoče enostavno implementiratiVečnajemniški način aplikacije。
Tukaj je nekaj stvari, ki jih je treba upoštevati:
Instance IDataProtectionProvider in IDataProtectorVarnost navojaCilj. Metoda nezaščitene je obveščanje klicatelja, da dešifriranje ni uspelo, tako da vržemo izjemo. Razred izjem je CryptographicException.
ASP.NET Core je enostaven za uporabo zaščite podatkov
Dodan je nov vmesnik za šifriranje in dešifriranje podatkov, koda pa je naslednja:
Test je naslednji:
IDataProtectionProvider je enojni vzorec z naslednjo kodo:Prijava do hiperpovezave je vidna.
Upravljanje ključev
Če je uporabniški profil na voljo, se ključ ohrani na%LOCALAPPDATA%\ASP.NET\DataProtection-Keysmapa. Če je operacijski sistem Windows, je ključ šifriran v mirovanju z uporabo DPAPI. Kot je prikazano spodaj:
Ključna življenjska doba
Privzeto je ključŽivljenjski cikel traja 90 dni。 Ko ključ poteče, aplikacija samodejno ustvari nov ključ in nastavi nov ključ kot aktivni ključ. Dokler deaktivirani ključi ostanejo v sistemu, lahko vaša aplikacija dešifrira vse podatke, ki jih ti ključi ščitijo. Za več informacij glejte upravljanje ključev.Prijava do hiperpovezave je vidna.
Privzeti algoritem
Privzeti algoritmi za zaščito obremenitve so AES-256-CBC (za zaupnost) in HMACSHA256 (za pristnost). 512-bitni glavni ključ, ki se spreminja vsakih 90 dni, se uporablja za izpeljavo dveh podključev za te algoritme glede na vsak vsebinski paket.
ASP.NET ponudnik shranjevanja ključev v Core
Datotečni sistem: PersistKeysToFileSystem Azure Storage: PersistKeysToAzureBlobStorage, kar zahteva referenco: Azure.Extensions.AspNetCore.DataProtection.Blobs Redis shranjevanje: PersistKeysToStackExchangeRedis, potrebna referenca: Microsoft.AspNetCore.DataProtection.StackExchangeRedis
Referenčni:Prijava do hiperpovezave je vidna.
Združena in distribuirana
Če je strežniški ključ neskladen, na primer: šifriranje strežnika A in dešifriranje strežnika B, se zavrže izjema (kot je prikazano na spodnji sliki) in isti ključ je treba namestiti.
Nastavite isti ključ takole:
Ko program teče, samodejno ustvari datoteko ključa-*.xml pod mapo publish_itsvse, ohrani to datoteko dosledno na različnih strežnikih! Kot je prikazano spodaj:
ASP.NET Konfiguracija zaščite jedra
ASP.NET CORE nudi bogato podporo za API, ohranjanje gesel, konfiguracijo in možnosti prilagajanja.
- PersistKeysToAzureBlobStorage、ProtectKeysWithAzureKeyVault。 Azure cloud storage scenarij.
- PersistKeysToFileSystem。 Lokalna shema shranjevanja datotečnih sistemov, ki beleži algoritme šifriranja, ključe in odvisnosti.
- ProtectKeysWith*。 Šifriranje je zagotovljeno z razširitvami te metode poimenovanja. Na primer, ProtectKeysWithCertificate
- SetDefaultKeyLifetime。 Privzeto nastavite življenjsko dobo ključa na 90 dni.
- SetApplicationName。 Nastavi ime aplikacije. Privzeto so mehanizmi za zaščito podatkov popolnoma izolirani od vsake aplikacije. Deljenje ključev med aplikacijami je mogoče doseči z nastavitvijo istega imena aplikacije.
- DisableAutomaticKeyGeneration。 Preprečite, da se ključ samodejno vrne nazaj. Velikokrat ne želimo, da se gesla spreminjajo, ali pa v gručasti storitvi imamo namensko storitev, ki je odgovorna za povrnitev posodobitev ključev, drugi paketi pa potrebujejo le prenos iz skupnega mesta.
- UseCryptographicAlgorithms。 Uporabite prilagojene algoritme za šifriranje in dešifriranje
Referenčni:Prijava do hiperpovezave je vidna.
|
Prejšnji:Uporabite PowerShell za generiranje elementa <machineKey>Naslednji:Primerjajte Tailscale, ZeroTier, WireGuard, OmniEdge in Ngrok za geo-mrežne rešitve
|