Dela via


Översikt över ASP.NET Core Data Protection

ASP.NET Core tillhandahåller ett kryptografiskt API för att skydda data, inklusive nyckelhantering och rotation.

Webbappar behöver ofta lagra känsliga data. Windows dataskydds-API (DPAPI) är inte avsett för användning i webbappar.

ASP.NET Core-dataskyddsstacken har utformats för att:

  • Tillhandahålla en inbyggd lösning för de flesta webbscenarier.
  • Åtgärda många av bristerna i det tidigare krypteringssystemet.
  • Fungerar som ersättning för elementet <machineKey> i ASP.NET 1.x–4.x.

Problemuttryck

Jag behöver bevara betrodd information för senare hämtning, men jag litar inte på beständighetsmekanismen. I webbtermer kan detta skrivas som jag behöver skicka tur och retur betrodd status via en obetrodd klient.

Äkthet, integritet och manipulationssäkerhet är krav. Det kanoniska exemplet på detta är en autentisering cookie eller ägartoken. Servern genererar en jag är Groot och har xyz-behörigheter token och skickar den till klienten. Klienten presenterar denna token tillbaka till servern, men servern behöver någon form av försäkran om att klienten inte har förfalskat token.

Konfidentialitet är ett krav. Eftersom det beständiga tillståndet är betrott av servern kan det här tillståndet innehålla information som inte ska lämnas ut till en klient som inte är betrodd. Till exempel:

  • En filväg.
  • En behörighet.
  • Ett handtag eller annan indirekt referens.
  • Vissa serverspecifika data.

Isolering är ett krav. Eftersom moderna appar är komponentbaserade vill enskilda komponenter dra nytta av det här systemet utan hänsyn till andra komponenter i systemet. Anta till exempel att en ägartokenkomponent använder den här stacken. Den bör fungera utan interferens, till exempel från en anti-CSRF-mekanism som också använder samma stack.

Vissa vanliga antaganden kan begränsa kravens omfattning:

  • Alla tjänster som körs inom kryptosystemet är lika betrodda.
  • Data behöver inte genereras eller förbrukas utanför tjänsterna under vår direkta kontroll.
  • Åtgärderna måste vara snabba eftersom varje begäran till webbtjänsten kan gå igenom kryptosystemet en eller flera gånger. Hastighetskravet gör symmetrisk kryptografi idealisk. Asymmetrisk kryptografi används inte förrän det krävs.

Designfilosofi

ASP.NET Core-dataskydd är en enkel att använda dataskyddsstack. Den baseras på följande principer:

  • Enkelhet vid konfiguration. Systemet strävar efter nollkonfiguration. I situationer där utvecklare behöver konfigurera en specifik aspekt, till exempel nyckellagringsplatsen, är dessa specifika konfigurationer inte svåra.
  • Erbjuda ett grundläggande api för konsumenter. API:erna är enkla att använda korrekt och svåra att använda felaktigt.
  • Utvecklare behöver inte lära sig viktiga hanteringsprinciper. Systemet hanterar val av algoritm och nyckellivslängd åt utvecklaren. Utvecklaren har inte åtkomst till råmaterialet.
  • Nycklar skyddas i vila så mycket som möjligt. Systemet räknar ut en lämplig standardskyddsmekanism och tillämpar den automatiskt.

Dataskydds-API:erna är inte i första hand avsedda för obegränsad beständighet av konfidentiella nyttolaster. Andra tekniker, till exempel Windows CNG DPAPI och Azure Rights Management är mer lämpade för scenariot med obegränsad lagring. De har motsvarande starka funktioner för nyckelhantering. Med detta sagt kan api:erna för ASP.NET Core-dataskydd användas för långsiktigt skydd av konfidentiella data.

Publik

Dataskyddssystemet tillhandahåller API:er som riktar sig till tre huvudsakliga målgrupper:

  1. konsument-API:er riktar sig till applikations- och ramverksutvecklare.

    Jag vill inte lära mig mer om hur stacken fungerar eller hur den är konfigurerad. Jag vill bara utföra en åtgärd med hög sannolikhet för att lyckas använda API:erna.

  2. API:erna för konfigurationen riktar sig till app-utvecklare och systemadministratörer.

    måste jag meddela dataskyddssystemet att min miljö kräver icke-standardsökvägar eller inställningar.

  3. API:erna för utökningsbarhet riktar sig till utvecklare som ansvarar för att implementera anpassad princip. Användningen av dessa API:er är begränsad till sällsynta situationer och utvecklare med säkerhetsupplevelse.

    Jag måste ersätta en hel komponent i systemet eftersom jag har verkligt unika beteendekrav. Jag är villig att lära mig ovanligt använda delar av API-ytan för att skapa ett plugin-program som uppfyller mina krav.

Paketlayout

Dataskyddsstacken består av fem paket:

Ytterligare resurser

ASP.NET Core tillhandahåller ett kryptografiskt API för att skydda data, inklusive nyckelhantering och rotation.

Webbappar behöver ofta lagra känsliga data. Windows dataskydds-API (DPAPI) är inte avsett för användning i webbappar.

ASP.NET Core-dataskyddsstacken har utformats för att:

  • Tillhandahålla en inbyggd lösning för de flesta webbscenarier.
  • Åtgärda många av bristerna i det tidigare krypteringssystemet.
  • Fungerar som ersättning för elementet <machineKey> i ASP.NET 1.x–4.x.

Problemuttryck

Jag behöver bevara betrodd information för senare hämtning, men jag litar inte på beständighetsmekanismen. I webbtermer kan detta skrivas som jag behöver återföra ett betrott tillstånd via en icke-betrodd klient.

Äkthet, integritet och manipuleringssäkerhet är krav. Det kanoniska exemplet på detta är en autentisering cookie eller bärare-token. Servern genererar en jag är Groot och har xyz-behörigheter token och skickar den till klienten. Klienten presenterar denna token tillbaka till servern, men servern behöver någon form av försäkran om att klienten inte har förfalskat token.

Konfidentialitet är ett krav. Eftersom det beständiga tillståndet är betrott av servern kan det här tillståndet innehålla information som inte ska lämnas ut till en klient som inte är betrodd. Till exempel:

  • En filsökväg.
  • En behörighet.
  • Ett handtag eller annan indirekt referens.
  • Vissa serverspecifika data.

Isolering är ett krav. Eftersom moderna appar är komponentbaserade vill enskilda komponenter dra nytta av det här systemet utan hänsyn till andra komponenter i systemet. Anta till exempel att en ägartokenkomponent använder den här stacken. Den bör fungera utan interferens, till exempel från en anti-CSRF-mekanism som också använder samma stack.

Vissa vanliga antaganden kan begränsa kravens omfattning:

  • Alla tjänster som körs inom kryptosystemet är lika betrodda.
  • Data behöver inte genereras eller förbrukas utanför tjänsterna under vår direkta kontroll.
  • Åtgärderna måste vara snabba eftersom varje begäran till webbtjänsten kan gå igenom kryptosystemet en eller flera gånger. Hastighetskravet gör symmetrisk kryptografi idealisk. Asymmetrisk kryptografi används inte förrän det krävs.

Designfilosofi

ASP.NET Core-dataskydd är en enkel att använda dataskyddsstack. Den baseras på följande principer:

  • Lätt att konfigurera. Systemet strävar efter nollkonfiguration. I situationer där utvecklare behöver konfigurera en specifik aspekt, till exempel nyckellagringsplatsen, är dessa specifika konfigurationer inte svåra.
  • Erbjuda ett grundläggande api för konsumenter. API:erna är enkla att använda korrekt men svåra att använda fel.
  • Utvecklare behöver inte lära sig viktiga hanteringsprinciper. Systemet hanterar val av algoritm och nyckellivslängd åt utvecklaren. Utvecklaren har inte åtkomst till råmaterialet.
  • Nycklar skyddas i vila så mycket som möjligt. Systemet räknar ut en lämplig standardskyddsmekanism och tillämpar den automatiskt.

Dataskydds-API:erna är inte i första hand avsedda för obegränsad beständighet av konfidentiella nyttolaster. Andra tekniker, till exempel Windows CNG DPAPI och Azure Rights Management är mer lämpade för scenariot med obegränsad lagring. De har motsvarande starka funktioner för nyckelhantering. Med detta sagt kan api:erna för ASP.NET Core-dataskydd användas för långsiktigt skydd av konfidentiella data.

Publik

Dataskyddssystemet tillhandahåller API:er som riktar sig till tre huvudsakliga målgrupper:

  1. konsument-API:er målprogram- och ramverksutvecklare.

    Jag vill inte lära mig mer om hur stacken fungerar eller hur den är konfigurerad. Jag vill bara utföra en åtgärd med hög sannolikhet för att använda API:erna framgångsrikt.

  2. API:erna för konfiguration målprogramutvecklare och systemadministratörer.

    måste jag meddela dataskyddssystemet att min miljö kräver icke-standardsökvägar eller inställningar.

  3. API:erna för utökningsbarhet riktar sig till utvecklare som ansvarar för att implementera anpassad princip. Användningen av dessa API:er är begränsad till sällsynta situationer och utvecklare med säkerhetsupplevelse.

    Jag måste ersätta en hel komponent i systemet eftersom jag har verkligt unika beteendekrav. Jag är villig att lära mig ovanligt använda delar av API-ytan för att skapa ett plugin-program som uppfyller mina krav.

Paketlayout

Dataskyddsstacken består av fem paket:

Ytterligare resurser