See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 2915|Vastuse: 0

[Allikas] ASP.NET Core (22) põhineb IDataProtectionProvider andmekaitsel

[Kopeeri link]
Postitatud 15.08.2023 10:21:16 | | | |
Nõuded: Arendusprotsessi käigus võib sageli tekkida krüpteerimise ja dekrüpteerimise stsenaariume, näiteks e-posti autentimine võib kanda krüpteeritud stringi ning kui kasutaja klõpsab lingil, et liidesesse hüpata, saab süsteem stringi sisu normaalselt dekrüpteerida, realiseerides seeläbi e-posti autentimise funktsiooni.

Genereeri elemente PowerShelli <machineKey>abil
https://www.itsvse.com/thread-10644-1-1.html

Andmete krüpteerimine ASP.NET masinavõtmega
https://www.itsvse.com/thread-9535-1-1.html

ASP.NET MachineKey roll ja selle kasutamine
https://www.itsvse.com/thread-2705-1-1.html

ASP.NET Core pakub andmekaitse funktsioone:Hüperlingi sisselogimine on nähtav.

Põhipakett

Andmekaitsega seotud peamised paketid on järgmised, millele viidatakse vastavalt vajadusele:

  • Microsoft.AspNetCore.DataProtection.Abstractions standard. NET CORE abstraktsioonikihi komponendi pakendi nimetamine. See sisaldab olulisi liideseteenuseid nagu IDataProtectionProvider ja IDataProtector.
  • Microsoft.AspNetCore.DataProtection, sealhulgas põhikrüptograafilised operatsioonid, võtmehaldus, seadistamine ja laiendatavus.
  • Microsoft.AspNetCore.DataProtection.Extensions extension. Pakub tehase meetodit instantside loomiseks ja salvestuslaienduse meetodit võtmetele. Seda paketti kasutatakse mitte-DI režiimis.
  • Microsoft.AspNetCore.DataProtection.SystemWeb rakendab <machineKey>ühilduvust ASP.NET 4.x krüpteerimis- ja dekrüpteerimismehhanismidega.
  • Microsoft.AspNetCore.Cryptography.KeyDerivation pakub PBKDF2 parooli räsimise rutiini rakendust. Kasuta seda, kui vajad räsi krüpteerimist.


IDataProtectionProvider vs IDataProtector

IDataProtectionProvider põhineb Microsofti Provider mudelil ja seda kasutatakse instantside loomise poliitikate pakkumiseks. Loo IDataProtector objekt, kutsudes IDataProtectionProvider.CreateProtector(purpose) meetodit.
IDataProtector on teenus, mis vastutab krüpteerimise ja dekrüpteerimise eest ning pakub peamiselt kahte tüüpi meetodeid: kaitse ja kaitse eemaldamine (igal tüübil on palju ülekoormuse ja laiendusmeetodeid). Lihtne arusaam on, et kaitset kasutatakse krüpteerimiseks ja unprotect dekrüpteerimiseks.
IDataProtectionProvideri Create meetodi parameeter on string, mis pakub isoleerimisfunktsionaalsust. IDataProtectorid, mis on loodud mitteläbitavate stringidega, saavad erinevad krüpteerimistulemused isegi siis, kui nad krüpteerivad sama objekti. IDataProtector ise on samuti kaudne IDataProtectionProvider, mis pakub ka CreateProtector(eesmärk) meetodit. See tähendab, et seda saab hõlpsasti rakendadaMitme üürniku rakendusrežiim



Siin on mõned asjad, mida meeles pidada:

IDataProtectionProvider ja IDataProtector instantsidKeermeohutusMärklaud.
Kaitseta eemaldamise meetod on teavitada helistajat, et dekrüpteerimine ebaõnnestus, visates erandi. Erandiklass on CryptographicException.

ASP.NET Core on lihtne kasutada andmekaitset

Lisatakse uus liides andmete krüpteerimiseks ja dekrüpteerimiseks ning kood on järgmine:

Test on järgmine:



IDataProtectionProvider on üksikmuster järgmise koodiga:Hüperlingi sisselogimine on nähtav.



Võtmete haldamine

Kui kasutajaprofiil on saadaval, säilitatakse võti%LOCALAPPDATA%\ASP.NET\DataProtection-KeysKausta. Kui operatsioonisüsteem on Windows, krüpteeritakse võti puhkeolekus DPAPI-ga. Nagu allpool näidatud:



Võtmeelu

Vaikimisi on võtiElutsükkel on 90 päeva。 Kui võti aegub, genereerib rakendus automaatselt uue võtme ja määrab selle aktiivseks võtmeks. Nii kaua kui deaktiveeritud võtmed jäävad süsteemi, saab teie rakendus dekrüpteerida kõik nende poolt kaitstud andmed. Lisateabe saamiseks vaata võtmehaldust.Hüperlingi sisselogimine on nähtav.

Vaikimisi algoritm

Vaikimisi kasutatavad koormuskaitse algoritmid on AES-256-CBC (konfidentsiaalsuse jaoks) ja HMACSHA256 (autentsuse jaoks). 512-bitine peavõti, mis vahetub iga 90 päeva järel, kasutatakse nende algoritmide jaoks iga koormuse põhjal kahe alamvõtme tuletamiseks.

ASP.NET võtmehoidja Core'is

Failisüsteem: PersistKeysToFileSystem
Azure Storage: PersistKeysToAzureBlobStorage, mis nõuab viite: Azure.Extensions.AspNetCore.DataProtection.Blobs
Redis salvestus: PersistKeysToStackExchangeRedis, viide vajalik: Microsoft.AspNetCore.DataProtection.StackExchangeRedis

Viide:Hüperlingi sisselogimine on nähtav.

Klasterdatud ja hajutatud

Kui serveri võti on ebajärjekindel, näiteks server A krüpteerimine ja server B dekrüpteerimine, lisatakse erand (nagu alloleval joonisel näidatud) ning sama võti tuleb rakendada.



Seadista sama võti järgmiselt:

Kui programm käivitub, genereerib see automaatselt key-*.xml võtmefaili publish_itsvse kausta alla, hoia see fail erinevates serverites ühtlane! Nagu allpool näidatud:



ASP.NET Tuumakaitse konfiguratsioon

ASP.NET CORE pakub rikkalikku API tuge, paroolide püsivust, seadistamist ja kohandamisfunktsioone.

  • PersistKeysToAzureBlobStorage、ProtectKeysWithAzureKeyVault。 Azure pilvesalvestuse stsenaarium.
  • PersistKeysToFileSystem。 Kohalik failisüsteemi salvestusskeem, mis salvestab krüpteerimisalgoritme, võtmeid ja sõltuvusi.
  • ProtectKeysWith*。 Krüpteerimine toimub selle nimetamismeetodi laienduste kaudu. Näiteks ProtectKeysWithCertificate
  • SetDefaultKeyLifetime。 Sea võtme elueaks vaikimisi 90 päeva.
  • SetApplicationName。 Määra rakenduse nimi. Vaikimisi on andmekaitsemehhanismid igast rakendusest täiesti isoleeritud. Võtmete jagamist rakenduste vahel saab saavutada, määrates sama rakenduse nime.
  • DisableAutomaticKeyGeneration。 Takista võtme automaatset tagasikeeramist. Sageli ei taha me paroole muutuda klastriteenuses, meil on spetsiaalne teenus, mis vastutab võtmeuuenduste tagasipööramise eest ja teised koormused peavad selle lihtsalt jagatud kohast kätte saama.
  • UseCryptographicAlgorithms。 Kasuta kohandatud krüpteerimis- ja dekrüpteerimisalgoritme


Viide:Hüperlingi sisselogimine on nähtav.





Eelmine:Kasuta PowerShelli, et genereerida element &lt;machineKey&gt;
Järgmine:Võrdle Tailscale'i, ZeroTieri, WireGuardi, OmniEdge'i ja Ngroki geovõrgulahenduste jaoks
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com