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é, protože potřebuji přes nedůvěryhodného klienta zaokrouhlit důvěryhodný stav.

Ověření pravosti, integrity a manipulace je požadavek. Kanonický příklad je ověřovací cookie nebo nosný token. Server vygeneruje I am Groot a má token 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í.
  • Popisovač 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é tokeny, která používá tento zásobník. Měl by fungovat bez jakéhokoli zásahu, například z mechanismu 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 přímočará, aby správně používala a špatně se používala.
  • 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 chráněny rest 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 úložiště. 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í API příjemců cílí na vývojáře aplikací a architektur.

    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 cílí na vývojáře, kteří mají na starosti implementaci vlastních zásad. 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 napsané, protože potřebuji přes nedůvěryhodného klienta zaokrouhlit důvěryhodný stav.

Ověření pravosti, integrity a manipulace je požadavek. Kanonický příklad je ověřovací cookie nebo nosný token. Server vygeneruje I am Groot a má token 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í.
  • Popisovač 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é tokeny, která používá tento zásobník. Měl by fungovat bez jakéhokoli zásahu, například z mechanismu 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 přímočará, aby správně používala a špatně se používala.
  • 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 chráněny rest 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 úložiště. 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í API příjemců cílí na vývojáře aplikací a architektur.

    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 cílí na vývojáře, kteří mají na starosti implementaci vlastních zásad. 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