Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 2915|Atbildi: 0

[Avots] ASP.NET Core (22) pamatā ir IDataProtectionProvider datu aizsardzība

[Kopēt saiti]
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.

Elementu ģenerēšana, izmantojot PowerShell <machineKey>
https://www.itsvse.com/thread-10644-1-1.html

Šifrējiet datus, izmantojot ASP.NET machineKey
https://www.itsvse.com/thread-9535-1-1.html

ASP.NET machineKey loma un kā to izmantot
https://www.itsvse.com/thread-2705-1-1.html

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 &lt;machineKey&gt;
Nākamo:Salīdziniet Tailscale, ZeroTier, WireGuard, OmniEdge un Ngrok ģeotīklu risinājumiem
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com