Sdílet prostřednictvím


Přehled základní ochrany dat ASP.NET

ASP.NET Core poskytuje kryptografické rozhraní API pro ochranu dat, včetně správy klíčů a obměny.

Webové aplikace často potřebují ukládat citlivá data. Rozhraní API pro ochranu dat Windows (DPAPI) není určené pro použití ve webových aplikacích.

Zásobník ochrany dat ASP.NET Core byl navržen tak, aby:

  • Poskytuje integrované řešení pro většinu webových scénářů.
  • Řeší řadu nedostatků předchozího šifrovacího systému.
  • Slouží jako náhrada <machineKey> prvku v ASP.NET 1.x - 4.x.

Popis problému

Potřebuji zachovat důvěryhodné informace pro pozdější načtení, ale nedůvěřuji mechanismu trvalosti. Z webového hlediska to může být napsané jako potřebuji uskutečnit obousměrný přenos důvěryhodného stavu přes nedůvěryhodného klienta.

Ověření pravosti, integrity a zabezpečení proti neoprávněné manipulaci jsou požadavky. Kanonický příklad je ověřovací cookie nebo nosný token. Server vygeneruje token I am Groot a má oprávnění xyz a odešle ho klientovi. Klient tento token prezentuje zpět na server, ale server potřebuje určitou jistotu, že klient token nezakřel.

Důvěrnost je požadavek. Vzhledem k tomu, že trvalý stav je serverem důvěryhodný, může tento stav obsahovat informace, které by neměly být zpřístupněny nedůvěryhodnému klientovi. Příklad:

  • Cesta souboru.
  • Oprávnění.
  • Ukazatel nebo jiný nepřímý odkaz
  • Některá data specifická pro server.

Izolace je požadavek. Vzhledem k tomu, že moderní aplikace jsou součástí, jednotlivé komponenty chtějí tento systém využívat bez ohledu na jiné součásti systému. Zvažte například komponentu nosného tokenu, která používá tento technologický stack. Měl by fungovat bez jakéhokoli rušení, například mechanismem anti-CSRF, který používá také stejný zásobník.

Některé běžné předpoklady můžou zúžit rozsah požadavků:

  • Všechny služby provozující v rámci kryptografického systému jsou stejně důvěryhodné.
  • Data nemusí být generována ani spotřebována mimo naše přímé řízení.
  • Operace musí být rychlé, protože každý požadavek na webovou službu může procházet kryptografickým systémem jednou nebo vícekrát. Požadavek na rychlost činí symetrickou kryptografii ideální. Asymetrická kryptografie se nepoužívá, dokud se nevyžaduje.

Filozofie návrhu

ASP.NET Základní ochrana dat je snadno použitelný zásobník ochrany dat. Vychází z následujících principů:

  • Snadná konfigurace. Systém se snaží o nulovou konfiguraci. V situacích, kdy vývojáři potřebují nakonfigurovat konkrétní aspekt, například úložiště klíčů, nejsou tyto konkrétní konfigurace obtížné.
  • Nabízí základní rozhraní API pro uživatele. Rozhraní API jsou navržena tak, že je snadné je správně používat a obtížné je používat nesprávně.
  • Vývojáři se nemusí učit klíčové principy správy. Systém zpracovává výběr algoritmu a životnost klíče jménem vývojáře. Vývojář nemá přístup k surovinovým materiálům.
  • Klíče jsou v klidovém stavu chráněny co nejvíce. Systém zjistí vhodný výchozí ochranný mechanismus a automaticky ho použije.

Rozhraní API ochrany dat nejsou primárně určená pro neomezenou trvalost důvěrných datových částí. Další technologie, jako je Windows CNG DPAPI a Azure Rights Management, jsou vhodnější pro scénář neomezeného ukládání dat. Mají odpovídající silné možnosti správy klíčů. To znamená, že rozhraní API ASP.NET základní ochrany dat se dají použít k dlouhodobé ochraně důvěrných dat.

Cílová skupina

Systém ochrany dat poskytuje rozhraní API, která cílí na tři hlavní cílové skupiny:

  1. Rozhraní spotřebitelských API cílí na vývojáře aplikací a rámců.

    Nechci se dozvědět, jak zásobník funguje nebo jak je nakonfigurovaný. Chci provést určitou operaci s vysokou pravděpodobností úspěšného použití rozhraní API.

  2. Rozhraní konfigurace API je určeno pro vývojáře aplikací a správce systému.

    Potřebuji říct systému ochrany dat, že moje prostředí vyžaduje jiné než výchozí cesty nebo nastavení.

  3. Rozhraní API rozšiřitelnosti je určené pro vývojáře, kteří mají na starosti implementaci vlastní politiky. Použití těchto rozhraní API je omezené na vzácné situace a vývojáře se zkušenostmi se zabezpečením.

    Potřebuji nahradit celou komponentu v systému, protože mám skutečně jedinečné požadavky na chování. Jsem ochotný naučit se méně často používané části rozhraní API, aby se vytvořil modul plug-in, který splňuje moje požadavky.

Rozložení balíčku

Zásobník ochrany dat se skládá z pěti balíčků:

Další materiály

ASP.NET Core poskytuje kryptografické rozhraní API pro ochranu dat, včetně správy klíčů a obměny.

Webové aplikace často potřebují ukládat citlivá data. Rozhraní API pro ochranu dat Windows (DPAPI) není určené pro použití ve webových aplikacích.

Zásobník ochrany dat ASP.NET Core byl navržen tak, aby:

  • Poskytuje integrované řešení pro většinu webových scénářů.
  • Řeší řadu nedostatků předchozího šifrovacího systému.
  • Slouží jako náhrada <machineKey> prvku v ASP.NET 1.x - 4.x.

Popis problému

Potřebuji zachovat důvěryhodné informace pro pozdější načtení, ale nedůvěřuji mechanismu trvalosti. Z webového hlediska to může být napsáno jako potřebuji přenést důvěryhodný stav zpět přes nedůvěryhodného klienta.

Ověření pravosti, integrita a ochrana proti manipulaci jsou požadavky. Kanonickým příkladem je ověřovací cookie nebo přenosový token. Server vygeneruje token I am Groot a má oprávnění xyz a odešle ho klientovi. Klient tento token prezentuje zpět na server, ale server potřebuje určitou jistotu, že klient token nezakřel.

Důvěrnost je požadavek. Vzhledem k tomu, že trvalý stav je serverem důvěryhodný, může tento stav obsahovat informace, které by neměly být zpřístupněny nedůvěryhodnému klientovi. Příklad:

  • Cesta k souboru.
  • Oprávnění.
  • Identifikátor nebo jiný nepřímý odkaz
  • Některá data specifická pro server.

Izolace je požadavek. Vzhledem k tomu, že moderní aplikace jsou součástí, jednotlivé komponenty chtějí tento systém využívat bez ohledu na jiné součásti systému. Zvažte například komponentu nosného tokenu používající tento zásobník. Mělo by fungovat bez jakéhokoli rušení, například ze strany anti-CSRF mechanismu, který také používá stejný zásobník.

Některé běžné předpoklady můžou zúžit rozsah požadavků:

  • Všechny služby provozující v rámci kryptografického systému jsou stejně důvěryhodné.
  • Data nemusí být generována ani spotřebována mimo naše přímé řízení.
  • Operace musí být rychlé, protože každý požadavek na webovou službu může procházet kryptografickým systémem jednou nebo vícekrát. Požadavek na rychlost činí symetrickou kryptografii ideální. Asymetrická kryptografie se nepoužívá, dokud se nevyžaduje.

Filozofie návrhu

ASP.NET Základní ochrana dat je snadno použitelný zásobník ochrany dat. Vychází z následujících principů:

  • Snadná konfigurace. Systém se snaží o nulovou konfiguraci. V situacích, kdy vývojáři potřebují nakonfigurovat konkrétní aspekt, například úložiště klíčů, nejsou tyto konkrétní konfigurace obtížné.
  • Nabízí základní rozhraní API pro uživatele. Rozhraní API jsou snadno použitelná správným způsobem a těžko použitelná nesprávným způsobem.
  • Vývojáři se nemusí učit klíčové principy správy. Systém zpracovává výběr algoritmu a životnost klíče jménem vývojáře. Vývojář nemá přístup k surovinovým materiálům.
  • Klíče jsou v klidovém stavu chráněny co nejvíce. Systém zjistí vhodný výchozí ochranný mechanismus a automaticky ho použije.

Rozhraní API pro ochranu dat nejsou primárně určená pro neomezené uchovávání důvěrných datových částí. Další technologie, jako Windows CNG DPAPI a Azure Rights Management, jsou vhodnější pro scénář časově neomezeného ukládání. Mají odpovídající silné možnosti správy klíčů. To znamená, že rozhraní API ASP.NET základní ochrany dat se dají použít k dlouhodobé ochraně důvěrných dat.

Cílová skupina

Systém ochrany dat poskytuje rozhraní API, která cílí na tři hlavní cílové skupiny:

  1. Rozhraní spotřebitelské API cílí na vývojáře aplikací a frameworků.

    Nechci se dozvědět, jak zásobník funguje nebo jak je nakonfigurovaný. Chci provést určitou operaci s vysokou pravděpodobností úspěšného použití rozhraní API.

  2. Rozhraní API konfigurace cílí na vývojáře aplikací a správce systému.

    Potřebuji říct systému ochrany dat, že moje prostředí vyžaduje jiné než výchozí cesty nebo nastavení.

  3. Rozhraní API rozšiřitelnosti jsou určena pro vývojáře, kteří mají na starosti implementaci vlastní politiky. Použití těchto rozhraní API je omezené na vzácné situace a vývojáře se zkušenostmi se zabezpečením.

    Potřebuji nahradit celou komponentu v systému, protože mám skutečně jedinečné požadavky na chování. Jsem ochotný naučit se méně často používané části rozhraní API, aby se vytvořil modul plug-in, který splňuje moje požadavky.

Rozložení balíčku

Zásobník ochrany dat se skládá z pěti balíčků:

Další materiály