|
|
Publicēts 15.08.2023 10:21:16
|
|
|
|

Prasības: Izstrādes procesā bieži var rasties daži šifrēšanas un atšifrēšanas scenāriji, piemēram, e-pasta autentifikācija var saturēt šifrētu virkni, un, kad lietotājs noklikšķina uz saites, lai pārietu uz saskarni, sistēma var normāli atšifrēt virknes saturu, tādējādi realizējot e-pasta autentifikācijas funkciju.
ASP.NET Core piedāvā datu aizsardzības funkcijas:Hipersaites pieteikšanās ir redzama.
Galvenā pakete
Galvenās datu aizsardzības paketes ir šādas, uz kurām pēc vajadzības tiek norādītas atsauces:
- Microsoft.AspNetCore.DataProtection.Abstractions standarts. NET CORE abstrakcijas slāņa komponentu pakotnes nosaukums. Tas ietver galvenos interfeisa pakalpojumus, piemēram, IDataProtectionProvider un IDataProtector.
- Microsoft.AspNetCore.DataProtection, ieskaitot galvenās kriptogrāfijas operācijas, atslēgu pārvaldību, konfigurēšanu un paplašināmību.
- Microsoft.AspNetCore.DataProtection.Extensions paplašinājums. Nodrošina rūpnīcas metodi instanču izveidei un atslēgu krātuves paplašināšanas metodi. Šī pakotne tiek izmantota režīmā, kas nav DI.
- Microsoft.AspNetCore.DataProtection.SystemWeb ievieš <machineKey>saderību ar šifrēšanas un atšifrēšanas mehānismiem ASP.NET 4.x.
- Microsoft.AspNetCore.Cryptography.KeyDerivation nodrošina PBKDF2 paroles jaukšanas rutīnas ieviešanu. Izmantojiet to, ja nepieciešams izmantot jaucējkodu šifrēšanu.
IDataProtectionProvider vs IDataProtector
IDataProtectionProvider ir balstīts uz Microsoft nodrošinātāja modeli, un to izmanto, lai nodrošinātu instanču izveides politikas. Izveidojiet IDataProtector objektu, izsaucot IDataProtectionProvider.CreateProtector(purpose) metodi. IDataProtector ir pakalpojums, kas atbild par šifrēšanu un atšifrēšanu, kas galvenokārt nodrošina divu veidu metodes: aizsargāt un neaizsargāt (katram tipam ir daudz pārslodzes un paplašināšanas metožu). Vienkārša izpratne ir tāda, ka aizsardzība tiek izmantota šifrēšanai, bet aizsardzība tiek izmantota atšifrēšanai. IDataProtectionProvider metodes izveides parametrs ir virkne, kas nodrošina izolācijas funkcionalitāti. IDataProtectors, kas izveidoti ar nepārvaramām virknēm, iegūs atšķirīgus šifrēšanas rezultātus pat tad, ja tie šifrē vienu un to pašu objektu. IDataProtector pats par sevi ir arī netiešs IDataProtectionProvider, kas nodrošina arī CreateProtector(purpose) metodi. Tas nozīmē, ka to var viegli īstenotVairāku nomnieku lietojumprogrammas režīms。
Tālāk ir norādītas dažas lietas, kas jāpatur prātā.
IDataProtectionProvider un IDataProtector instancesVītņu drošībaMērķa. Atcelšanas metode ir informēt zvanītāju, ka atšifrēšana neizdevās, izmetot izņēmumu. Izņēmuma klase ir CryptographicException.
ASP.NET Core ir vienkārši lietojama datu aizsardzība
Datu šifrēšanai un atšifrēšanai tiek pievienots jauns interfeiss, un kods ir šāds:
Tests ir šāds:
IDataProtectionProvider ir vienreizējs modelis ar šādu kodu:Hipersaites pieteikšanās ir redzama.
Atslēgu pārvaldība
Ja lietotāja profils ir pieejams, atslēga tiek saglabāta%LOCALAPPDATA%\ASP.NET\DataProtection-Keysmape. Ja operētājsistēma ir Windows, atslēga tiek šifrēta miera stāvoklī, izmantojot DPAPI. Kā parādīts zemāk:
Atslēgas dzīve
Pēc noklusējuma atslēgaDzīves cikls ir 90 dienas。 Kad atslēgas derīguma termiņš beidzas, lietojumprogramma automātiski ģenerē jaunu atslēgu un iestata jauno atslēgu kā aktīvo atslēgu. Kamēr deaktivizētās atslēgas paliek sistēmā, jūsu lietojumprogramma var atšifrēt visus ar tām aizsargātos datus. Papildinformāciju skatiet sadaļā Atslēgu pārvaldība.Hipersaites pieteikšanās ir redzama.
Noklusējuma algoritms
Izmantotie noklusējuma slodzes aizsardzības algoritmi ir AES-256-CBC (konfidencialitātei) un HMACSHA256 (autentiskumam). 512 bitu galvenā atslēga, kas mainās ik pēc 90 dienām, tiek izmantota, lai iegūtu divas apakšatslēgas šiem algoritmiem, pamatojoties uz katru lietderīgo slodzi.
ASP.NET atslēgu krātuves nodrošinātājs pakalpojumā Core
Failu sistēma: PersistKeysToFileSystem Azure Storage: PersistKeysToAzureBlobStorage, kurai nepieciešama atsauce: Azure.Extensions.AspNetCore.DataProtection.Blobs Redis krātuve: PersistKeysToStackExchangeRedis, nepieciešama atsauce: Microsoft.AspNetCore.DataProtection.StackExchangeRedis
Atsauce:Hipersaites pieteikšanās ir redzama.
Grupēts un izplatīts
Ja servera atslēga ir nekonsekventa, piemēram: servera A šifrēšana un servera B atšifrēšana, tiks izmests izņēmums (kā parādīts zemāk redzamajā attēlā), un tā pati atslēga ir jāizvieto.
Konfigurējiet to pašu atslēgu šādi:
Kad programma darbojas, tā automātiski ģenerē atslēgas-*.xml atslēgas failu mapē publish_itsvse, saglabājiet šo failu konsekventu dažādos serveros! Kā parādīts zemāk:
ASP.NET Pamata aizsardzības konfigurācija
ASP.NET CORE nodrošina bagātīgu API atbalstu, paroļu noturību, konfigurēšanu un pielāgošanas funkcijas.
- PersistKeysToAzureBlobStorage、ProtectKeysWithAzureKeyVault。 Azure mākoņkrātuves scenārijs.
- PersistKeysToFileSystem。 Lokāla failu sistēmas krātuves shēma, kas reģistrē šifrēšanas algoritmus, atslēgas un atkarības.
- ProtectKeysWith*。 Šifrēšana tiek nodrošināta, izmantojot šīs nosaukumu piešķiršanas metodes paplašinājumus. Piemēram, ProtectKeysWithCertificate
- SetDefaultKeyLifetime。 Pēc noklusējuma iestatiet atslēgas kalpošanas laiku uz 90 dienām.
- SetApplicationName。 Iestatiet programmas nosaukumu. Pēc noklusējuma datu aizsardzības mehānismi ir pilnīgi izolēti no katras lietojumprogrammas. Atslēgu koplietošanu starp lietotnēm var panākt, iestatot vienu un to pašu lietotnes nosaukumu.
- DisableAutomaticKeyGeneration。 Novērst atslēgas automātisku atritināšanu. Daudzas reizes mēs īsti nevēlamies, lai paroles mainītos vai klastera pakalpojumā, mums ir īpašs pakalpojums, kas atbild par atslēgu atjauninājumu atcelšanu, un citām lietderīgajām kravām tas vienkārši jāiegūst no koplietošanas vietas.
- UseCryptographicAlgorithms。 Izmantojiet pielāgotus šifrēšanas un atšifrēšanas algoritmus
Atsauce:Hipersaites pieteikšanās ir redzama.
|
Iepriekšējo:PowerShell izmantošana, lai ģenerētu elementu <machineKey>Nākamo:Salīdziniet Tailscale, ZeroTier, WireGuard, OmniEdge un Ngrok ģeotīklu risinājumiem
|