|
|
Julkaistu 15.8.2023 10.21.16
|
|
|
|

Vaatimukset: Kehitysprosessin aikana saatat usein kohdata salaus- ja purkutilanteita, esimerkiksi sähköpostin tunnistautuminen voi sisältää salatun merkkijonon, ja kun käyttäjä klikkaa linkkiä siirtyäkseen rajapintaan, järjestelmä voi purkaa merkkijonon sisällön normaalisti, jolloin sähköpostin todennustoiminto toteutuu.
ASP.NET Core tarjoaa tietosuojaominaisuuksia:Hyperlinkin kirjautuminen on näkyvissä.
Pääpaketti
Tietosuojaan liittyvät pääasialliset paketit ovat seuraavat, joihin viitataan tarpeen mukaan:
- Microsoft.AspNetCore.DataProtection.Abstractions standardi. NET CORE -abstraktiokerroksen komponenttipakettien nimeäminen. Se sisältää merkittäviä liitäntäpalveluita, kuten IDataProtectionProvider ja IDataProtector.
- Microsoft.AspNetCore.DataProtection, mukaan lukien ydinkryptografiset toiminnot, avainten hallinta, konfigurointi ja laajennettavuus.
- Microsoft.AspNetCore.DataProtection.Extensions extension. Tarjoaa tehdasmenetelmän instanssien luomiseen ja avainten tallennuslaajennuksen. Tätä pakettia käytetään ei-DI-tilassa.
- Microsoft.AspNetCore.DataProtection.SystemWeb <machineKey>toteuttaa yhteensopivuuden salaus- ja purkumekanismien kanssa ASP.NET 4.x:ssä.
- Microsoft.AspNetCore.Cryptography.KeyDerivation tarjoaa PBKDF2-salasanan hajautusrutiinin toteutuksen. Käytä sitä, kun tarvitset hash-salausta.
IDataProtectionProvider vs IDataProtector
IDataProtectionProvider perustuu Microsoftin Provider-malliin ja sitä käytetään tarjoamaan käytäntöjä instanssien luomiseksi. Luo IDataProtector-objekti kutsumalla IDataProtectionProvider.CreateProtector(purpose) -metodia. IDataProtector on palvelu, joka vastaa salauksesta ja purkusta, ja tarjoaa pääasiassa kahta tyyppiä menetelmiä: suojaa ja suojaa poistamista (jokaisessa tyypissä on useita ylikuormitus- ja laajennusmenetelmiä). Yksinkertainen ymmärrys on, että suojaa käytetään salaukseen ja unprotektiota purkuun. IDataProtectionProviderin Create method -parametri on merkkijono, joka tarjoaa eristystoiminnallisuuden. IDataProtectorit, jotka on luotu ei-läpäisevillä merkkijonoilla, saavat erilaisia salaustuloksia, vaikka ne salaisivat saman objektin. IDataProtector itsessään on myös implisiittinen IDataProtectionProvider, joka tarjoaa myös CreateProtector(purpose)-menetelmän. Tämä tarkoittaa, että se voidaan toteuttaa helpostiMonivuokralainen sovellustila。
Tässä muutama asia, jotka kannattaa pitää mielessä:
IDataProtectionProvider- ja IDataProtector-instanssitKierteen turvallisuusKohde. Suojaamisen poistomenetelmä on ilmoittaa soittajalle, että purku epäonnistui heittämällä poikkeus. Poikkeusluokka on CryptographicException.
ASP.NET Core on helppokäyttöinen tietosuoja
Uusi rajapinta lisätään datan salaamiseen ja purkuun, ja koodi on seuraava:
Testi on seuraava:
IDataProtectionProvider on yksittäinen malli, jolla on seuraava koodi:Hyperlinkin kirjautuminen on näkyvissä.
Avainten hallinta
Jos käyttäjäprofiili on käytettävissä, avain säilyy%LOCALAPPDATA%\ASP.NET\DataProtection-Keyskansio. Jos käyttöjärjestelmä on Windows, avain salataan levossa DPAPI:lla. Kuten alla on esitetty:
Avainelämä
Oletuksena avainElinkaari on 90 päivää。 Kun avain vanhenee, sovellus luo automaattisesti uuden avaimen ja asettaa uuden avaimen aktiiviseksi avaimeksi. Niin kauan kuin deaktivoidut avaimet pysyvät järjestelmässä, sovelluksesi voi purkaa kaikki niiden suojaamat tiedot. Lisätietoja löytyy avainten hallinnasta.Hyperlinkin kirjautuminen on näkyvissä.
Oletusalgoritmi
Oletuskuormansuojausalgoritmit ovat AES-256-CBC (luottamuksellisuuden vuoksi) ja HMACSHA256 (aitouden vuoksi). 512-bittinen pääavain, joka vaihtuu 90 päivän välein, käytetään kahden aliavaimen johtamiseen näille algoritmeille kunkin hyötykuorman perusteella.
ASP.NET avainvarastointipalveluntarjoaja Coressa
Tiedostojärjestelmä: PersistKeysToFileSystem Azure Storage: PersistKeysToAzureBlobStorage, joka vaatii viitteen: Azure.Extensions.AspNetCore.DataProtection.Blobs Redis-tallennus: PersistKeysToStackExchangeRedis, viite vaaditaan: Microsoft.AspNetCore.DataProtection.StackExchangeRedis
Viittaus:Hyperlinkin kirjautuminen on näkyvissä.
Klusteroitu ja hajautettu
Jos palvelinavain on epäjohdonmukainen, esimerkiksi: palvelin A salaus ja palvelin B purku, poikkeus (kuten alla olevassa kuvassa näkyy), ja sama avain on otettava käyttöön.
Määritä sama näppäin seuraavasti:
Kun ohjelma käynnistyy, se luo automaattisesti avain-*.xml-näppäintiedoston publish_itsvse-kansion alle, pidä tämä tiedosto johdonmukaisena eri palvelimilla! Kuten alla on esitetty:
ASP.NET Ytimen suojauskonfiguraatio
ASP.NET CORE tarjoaa monipuolisen API-tuen, salasanan säilymisen, konfiguroinnin ja räätälöintitoiminnot.
- PersistKeysToAzureBlobStorage、ProtectKeysWithAzureKeyVault。 Azure-pilvitallennustilanne.
- PersistKeysToFileSystem。 Paikallinen tiedostojärjestelmän tallennusjärjestelmä, joka tallentaa salausalgoritmeja, avaimia ja riippuvuuksia.
- ProtectKeysWith*。 Salaus toteutetaan tämän nimitysmenetelmän laajennusten kautta. Esimerkiksi ProtectKeysWithCertificate
- SetDefaultKeyLifetime。 Aseta avaimen elinkaareksi oletuksena 90 päivää.
- SetApplicationName。 Aseta sovelluksen nimi. Oletuksena tietosuojamekanismit ovat täysin erillään jokaisesta sovelluksesta. Avainten jakaminen sovellusten välillä onnistuu asettamalla sama sovelluksen nimi.
- DisableAutomaticKeyGeneration。 Estä avaimen automaattinen palauttaminen. Monesti emme halua salasanan muuttuvan klusteripalvelussa, vaan meillä on oma palvelu, joka vastaa avainpäivitysten palauttamisesta, ja muiden kuormien tarvitsee vain saada se jaetusta paikasta.
- UseCryptographicAlgorithms。 Käytä räätälöityjä salaus- ja purkualgoritmeja
Viittaus:Hyperlinkin kirjautuminen on näkyvissä.
|
Edellinen:Käytä PowerShelliä <machineKey>-elementin luomiseenSeuraava:Vertaa Tailscalea, ZeroTieria, WireGuardia, OmniEdgeä ja Ngrokia geoverkkoratkaisuihin
|