Megosztás a következőn keresztül:


ASP.NET Core Data Protection áttekintése

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:

  1. 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.

  2. 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.

  3. 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:

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:

  1. 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.

  2. 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.

  3. 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:

További erőforrások