Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
ASP.NET Core titkosítási API-t biztosít az adatok védelméhez, beleértve a kulcskezelést és a rotációt.
A webalkalmazások gyakran bizalmas adatokat tárolnak. A Windows adatvédelmi API (DPAPI) nem webalkalmazásokban való használatra készült.
A ASP.NET Core adatvédelmi verem a következőre lett tervezve:
- A legtöbb webes forgatókönyvhöz biztosítson beépített megoldást.
- Az előző titkosítási rendszer számos hiányosságának elhárítása.
- Az ASP.NET 1.x - 4.x elemek helyettesítésére szolgáljon a
<machineKey>
elem.
Probléma leírása
A későbbi lekéréshez meg kell őriznem a megbízható adatokat, de nem bízom a megőrzési mechanizmusban. Webes értelemben ez úgy írható, hogy egy nem megbízható ügyfélen keresztül kell átutaznom a megbízható állapotot.
A hitelesség, az integritás és az illetéktelen hozzáférés-ellenőrzés követelmény. A kanonikus példa erre egy hitelesítési cookie vagy hordozó token. A kiszolgáló létrehoz egy „Groot vagyok, és xyz engedélyekkel rendelkezem” feliratú jogkivonatot, és elküldi az ügyfélnek. Az ügyfél visszaadja a jogkivonatot a kiszolgálónak, de a kiszolgálónak valamilyen biztosítékra van szüksége, hogy az ügyfél nem hamisított jogkivonatot.
A bizalmasság követelmény. Mivel a kiszolgáló megbízhatónak tartja a fenntartott állapotot, ez az állapot olyan információkat tartalmazhat, amelyeket nem szabad közzétenni egy nem megbízható ügyfél számára. Például:
- Fájl elérési útja.
- Egy engedély.
- Fogópont vagy más közvetett hivatkozás.
- Néhány kiszolgálóspecifikus adat.
Az elkülönítés követelmény. Mivel a modern alkalmazások összetevők, az egyes összetevők a rendszer más összetevőire való tekintet nélkül szeretnék kihasználni ezt a rendszert. Például fontolja meg egy tulajdonosi jogkivonat-összetevő használatát ezzel a stackkel. Interferencia nélkül kell működnie, például egy CSRF-ellenes mechanizmussal szemben, amely szintén ugyanazt a technológiai keretrendszert használja.
Néhány gyakori feltételezés szűkítheti a követelmények hatókörét:
- A kriptorendszeren belül működő összes szolgáltatás egyformán megbízható.
- Az adatokat nem kell a közvetlen irányításunk alatt álló szolgáltatásokon kívül létrehozni vagy felhasználni.
- A műveleteknek gyorsnak kell lenniük, mivel a webszolgáltatásnak küldött minden kérés egy vagy több alkalommal áthaladhat a kriptorendszeren. A sebességkövetelmény ideálissá teszi a szimmetrikus titkosítást. Az aszimmetrikus titkosítás csak akkor használható, ha szükség van rá.
Tervezési filozófia
ASP.NET Core adatvédelem egy könnyen használható adatvédelmi rendszer. A következő alapelveken alapul:
- Könnyű konfigurálás. A rendszer a nulla konfigurációra törekszik. Olyan helyzetekben, amikor a fejlesztőknek konfigurálniuk kell egy adott aspektust, például a kulcstárházat, ezek az adott konfigurációk nem nehézkesek.
- Kínáljon egy alapszintű, fogyasztó számára elérhető API-t. Az API-k könnyen használhatók helyesen, és nehéz őket helytelenül használni.
- A fejlesztőknek nem kell megtanulniuk a fő felügyeleti alapelveket. A rendszer kezeli az algoritmusok kiválasztását és a kulcs élettartamát a fejlesztő nevében. A fejlesztő nem rendelkezik hozzáféréssel a nyersanyaghoz.
- A kulcsok a lehető legnagyobb mértékben védettek. A rendszer kitalál egy megfelelő alapértelmezett védelmi mechanizmust, és automatikusan alkalmazza.
Az adatvédelmi API-k elsősorban nem a bizalmas hasznos adatok határozatlan ideig történő megőrzésére szolgálnak. Más technológiák, például a Windows CNG DPAPI és az Azure Rights Management jobban megfelelnek a határozatlan idejű tárolás forgatókönyvének. Ennek megfelelően erős kulcskezelési képességekkel rendelkeznek. Ennek ellenére a ASP.NET Core adatvédelmi API-k a bizalmas adatok hosszú távú védelmére használhatók.
Célközönség
Az adatvédelmi rendszer olyan API-kat biztosít, amelyek három fő célközönséget céloznak meg:
A fogyasztói API-k alkalmazás- és keretrendszerfejlesztőket céloznak meg.
Nem akarom megtanulni, hogyan működik a verem vagy hogyan van beállítva. Csak olyan műveletet szeretnék végrehajtani, amely nagy valószínűséggel használja sikeresen az API-kat.
A konfigurációs API-k alkalmazásfejlesztőket és rendszergazdákat céloznak meg.
Meg kell mondanom az adatvédelmi rendszernek, hogy a környezetem nem alapértelmezett elérési utakat vagy beállításokat igényel.
A bővíthetőségi API-k az egyéni szabályzatok implementálásáért felelős fejlesztőket célják. Ezeknek az API-knak a használata ritka helyzetekre és biztonsági tapasztalattal rendelkező fejlesztőkre korlátozódik.
Egy teljes összetevőt kell lecserélnem a rendszeren belül, mert valóban egyedi viselkedési követelményekkel rendelkezem. Hajlandó vagyok megtanulni az API felület ritkán használt részeit, hogy olyan beépülő modult építsek, amely megfelel a követelményeknek.
Csomagelrendezés
Az adatvédelmi verem öt csomagból áll:
Microsoft.AspNetCore.DataProtection.Abstractions a következőket tartalmazza:
- IDataProtectionProvider és IDataProtector interfészeket az adatvédelmi szolgáltatások létrehozásához.
- Hasznos bővítménymetelyek az ilyen típusok használatához. például : IDataProtector.Protect
Ha az adatvédelmi rendszer máshol van példányosítva, és az API-t használja, hivatkozzon
Microsoft.AspNetCore.DataProtection.Abstractions
rá.A Microsoft.AspNetCore.DataProtection az adatvédelmi rendszer alapvető implementációját tartalmazza, beleértve a következőket:
- Alapvető titkosítási műveletek.
- Kulcskezelés.
- Konfiguráció és bővíthetőség.
Az adatvédelmi rendszer példányosításához hivatkozzon a(z)
Microsoft.AspNetCore.DataProtection
elemre. Előfordulhat, hogy a következő esetekben kell hivatkoznia az adatvédelmi rendszerre:- Hozzáadás egy IServiceCollection-hez.
- A viselkedés módosítása vagy kiterjesztése.
A Microsoft.AspNetCore.DataProtection.Extensions további API-kat tartalmaz, amelyeket a fejlesztők hasznosnak találnak, de nem tartoznak az alapcsomaghoz. Ez a csomag például a következőket tartalmazza:
- Gyári módszerek az adatvédelmi rendszer példányosítására, hogy a kulcsokat függőséginjektálás nélkül tárolja a fájlrendszer egy pontján. Lásd a(z) DataProtectionProvider.
- A védett adatok élettartamának korlátozására szolgáló kiterjesztési módszerek. Lásd a(z) ITimeLimitedDataProtector.
A Microsoft.AspNetCore.DataProtection.SystemWeb telepíthető egy meglévő ASP.NET 4.x-alkalmazásba, hogy átirányítsa a műveleteit
<machineKey>
az új ASP.NET Core adatvédelmi verem használatára. További információ: A ASP.NET machineKey cseréje a ASP.NET Core-ban.A Microsoft.AspNetCore.Cryptography.KeyDerivation a PBKDF2 jelszókivonatolási rutinjának implementálását biztosítja, és olyan rendszerek használhatják, amelyeknek biztonságosan kell kezelniük a felhasználói jelszavakat. További információ: Kivonatjelszavak a ASP.NET Core-ban.
További erőforrások
ASP.NET Core titkosítási API-t biztosít az adatok védelméhez, beleértve a kulcskezelést és a rotációt.
A webalkalmazások gyakran bizalmas adatokat tárolnak. A Windows adatvédelmi API (DPAPI) nem webalkalmazásokban való használatra készült.
A ASP.NET Core adatvédelmi verem a következőre lett tervezve:
- A legtöbb webes forgatókönyvhöz biztosítson beépített megoldást.
- Az előző titkosítási rendszer számos hiányosságának elhárítása.
- Szolgáljon az ASP.NET 1.x - 4.x
<machineKey>
elem helyettesítőjeként.
Probléma leírása
A későbbi lekéréshez meg kell őriznem a megbízható adatokat, de nem bízom a megőrzési mechanizmusban. Webes értelemben ez úgy írható, hogy egy nem megbízható kliensen keresztül kell a megbízható állapotot oda-vissza küldeni.
A hitelesség, az integritás és az illetéktelen hozzáférés-ellenőrzés követelmény. Erre a kanonikus példa egy hitelesítési cookie vagy hordozó token. A kiszolgáló létrehoz egy Groot vagyok, és xyz jogosultságaim vannak jogkivonatot, és elküldi az ügyfélnek. Az ügyfél visszaadja a jogkivonatot a kiszolgálónak, de a kiszolgálónak valamilyen biztosítékra van szüksége, hogy az ügyfél nem hamisított jogkivonatot.
A bizalmasság követelmény. Mivel a kiszolgáló megbízhatónak tartja a fenntartott állapotot, ez az állapot olyan információkat tartalmazhat, amelyeket nem szabad közzétenni egy nem megbízható ügyfél számára. Például:
- Fájl elérési útja.
- Egy engedély.
- Fogópont vagy más közvetett hivatkozás.
- Néhány kiszolgálóspecifikus adat.
Az elkülönítés követelmény. Mivel a modern alkalmazások összetevők, az egyes összetevők a rendszer más összetevőire való tekintet nélkül szeretnék kihasználni ezt a rendszert. Fontolja meg például egy hozzáférési token komponens használatát ezzel a veremmel. Interferencia nélkül kell működnie, például egy CSRF-ellenes mechanizmus által, amely szintén ugyanazt a stacket használja.
Néhány gyakori feltételezés szűkítheti a követelmények hatókörét:
- A kriptorendszeren belül működő összes szolgáltatás egyformán megbízható.
- Az adatokat nem kell a közvetlen irányításunk alatt álló szolgáltatásokon kívül létrehozni vagy felhasználni.
- A műveleteknek gyorsnak kell lenniük, mivel a webszolgáltatásnak küldött minden kérés egy vagy több alkalommal áthaladhat a kriptorendszeren. A sebességkövetelmény ideálissá teszi a szimmetrikus titkosítást. Az aszimmetrikus titkosítás csak akkor használható, ha szükség van rá.
Tervezési filozófia
ASP.NET Core adatvédelem egy könnyen használható adatvédelmi rendszer. A következő alapelveken alapul:
- Könnyű konfigurálás. A rendszer a nulla konfigurációra törekszik. Olyan helyzetekben, amikor a fejlesztőknek konfigurálniuk kell egy adott aspektust, például a kulcstárházat, ezek az adott konfigurációk nem nehézkesek.
- Kínáljon egy alapszintű, fogyasztó számára elérhető API-t. Az API-k könnyen helyesen használhatók és nehéz őket helytelenül használni.
- A fejlesztőknek nem kell megtanulniuk a fő felügyeleti alapelveket. A rendszer kezeli az algoritmusok kiválasztását és a kulcs élettartamát a fejlesztő nevében. A fejlesztő nem rendelkezik hozzáféréssel a nyersanyaghoz.
- A kulcsok tárolt állapotukban a lehető legnagyobb mértékben védettek. A rendszer kitalál egy megfelelő alapértelmezett védelmi mechanizmust, és automatikusan alkalmazza.
Az adatvédelmi API-k elsősorban nem a bizalmas hasznos adatok határozatlan ideig történő megőrzésére szolgálnak. Más technológiák, például a Windows CNG DPAPI és az Azure Rights Management jobban megfelelnek a határozatlan idejű tárolás forgatókönyvének. Ennek megfelelően erős kulcskezelési képességekkel rendelkeznek. Ennek ellenére a ASP.NET Core adatvédelmi API-k a bizalmas adatok hosszú távú védelmére használhatók.
Célközönség
Az adatvédelmi rendszer olyan API-kat biztosít, amelyek három fő célközönséget céloznak meg:
A fogyasztói API-k alkalmazás- és keretrendszerfejlesztőket céloznak meg.
Nem akarom megtudni, hogyan működik a verem, vagy hogyan van konfigurálva. Csak olyan műveletet szeretnék végrehajtani, amely nagy valószínűséggel használja sikeresen az API-kat.
A konfigurációs API-k alkalmazásfejlesztőket és rendszergazdákat céloznak meg.
Meg kell mondanom az adatvédelmi rendszernek, hogy a környezetem nem alapértelmezett elérési utakat vagy beállításokat igényel.
A bővíthetőségi API-k az egyéni szabályzatok implementálásáért felelős fejlesztőket célják. Ezeknek az API-knak a használata ritka helyzetekre és biztonsági tapasztalattal rendelkező fejlesztőkre korlátozódik.
Egy teljes összetevőt kell lecserélnem a rendszeren belül, mert valóban egyedi viselkedési követelményekkel rendelkezem. Hajlandó vagyok megtanulni az API felület ritkán használt részeit, hogy olyan beépülő modult építsek, amely megfelel a követelményeknek.
Csomagelrendezés
Az adatvédelmi verem öt csomagból áll:
Microsoft.AspNetCore.DataProtection.Abstractions a következőket tartalmazzák:
- IDataProtectionProvider és IDataProtector interfészeket az adatvédelmi szolgáltatások létrehozásához.
- Hasznos bővítménymetelyek az ilyen típusok használatához. például : IDataProtector.Protect
Ha az adatvédelmi rendszer máshol van példányosítva, és Ön az API-t használja, vegye figyelembe
Microsoft.AspNetCore.DataProtection.Abstractions
.A Microsoft.AspNetCore.DataProtection az adatvédelmi rendszer alapvető implementációját tartalmazza, beleértve a következőket:
- Alapvető titkosítási műveletek.
- Kulcskezelés.
- Konfiguráció és bővíthetőség.
Az adatvédelmi rendszer példányosításához hivatkozzon a
Microsoft.AspNetCore.DataProtection
-re. Előfordulhat, hogy a következő esetekben kell hivatkoznia az adatvédelmi rendszerre:- Hozzáadása egy IServiceCollection-hez.
- A viselkedés módosítása vagy kiterjesztése.
A Microsoft.AspNetCore.DataProtection.Extensions további API-kat tartalmaz, amelyeket a fejlesztők hasznosnak találnak, de nem tartoznak az alapcsomaghoz. Ez a csomag például a következőket tartalmazza:
- Gyári módszerek az adatvédelmi rendszer példányosítására, hogy a kulcsokat függőséginjektálás nélkül tárolja a fájlrendszer egy pontján. Lásd a(z) DataProtectionProvider.
- A védett terhelések élettartamának korlátozására szolgáló bővítési módszerek. Lásd a(z) ITimeLimitedDataProtector.
A Microsoft.AspNetCore.DataProtection.SystemWeb telepíthető egy meglévő ASP.NET 4.x-alkalmazásba, hogy átirányítsa a műveleteit
<machineKey>
az új ASP.NET Core adatvédelmi verem használatára. További információ: A ASP.NET machineKey cseréje a ASP.NET Core-ban.A Microsoft.AspNetCore.Cryptography.KeyDerivation a PBKDF2 jelszókivonatolási rutinjának implementálását biztosítja, és olyan rendszerek használhatják, amelyeknek biztonságosan kell kezelniük a felhasználói jelszavakat. További információ: Kivonatjelszavak a ASP.NET Core-ban.