|
|
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.
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 <machineKey>Järgmine:Võrdle Tailscale'i, ZeroTieri, WireGuardi, OmniEdge'i ja Ngroki geovõrgulahenduste jaoks
|