Rekommendationer för datakryptering

Gäller för rekommendationer om checklista för Well-Architected Framework-säkerhet:

SE:07 Kryptera data med hjälp av moderna branschstandardmetoder för att skydda konfidentialitet och integritet. Justera krypteringsomfånget med dataklassificeringar. prioritera interna plattformskrypteringsmetoder.

Om dina data inte skyddas kan de ändras på ett skadligt sätt, vilket leder till förlust av integritet och konfidentialitet.

Den här guiden beskriver rekommendationerna för att kryptera och skydda dina data. Kryptering är processen att använda kryptografialgoritmer för att göra data oläsliga och låsa data med en nyckel. I krypterat tillstånd kan data inte dechiffreras. Den kan bara dekrypteras med hjälp av en nyckel som är kopplad till krypteringsnyckeln.

Definitioner

Termer Definition
Certifikat Digitala filer som innehåller de offentliga nycklarna för kryptering eller dekryptering.
Chiffersvit En uppsättning algoritmer som används för att kryptera och dekryptera information för att skydda en nätverksanslutning via TLS (Transport Layer Security).
Konfidentiell databehandling Konfidentiell databehandling är skyddet av data som används genom att utföra beräkningar i en maskinvarubaserad, intygad betrodd körningsmiljö.
Dekryptering Processen där krypterade data låse upp med en hemlig kod.
Dubbel kryptering Processen för att kryptera data med hjälp av två eller flera oberoende krypteringslager.
Kryptering Den process genom vilken data görs oläsliga och låsta med en hemlig kod.
Hashing Processen att transformera data till text eller siffror med avsikt att dölja information.
Nycklar En hemlig kod som används för att låsa eller låsa upp krypterade data.
Signatur En krypterad stämpel för autentisering av data.
Signering Processen för att verifiera datas äkthet med hjälp av en signatur.
X.509 En standard som definierar formatet för offentliga nyckelcertifikat.

Viktiga designstrategier

Organisationsmandat eller regelkrav kan framtvinga krypteringsmekanismer. Det kan till exempel finnas ett krav på att data bara ska finnas kvar i den valda regionen och att kopior av data bevaras i den regionen.

Dessa krav är ofta det grundläggande minimumet. Sträva efter en högre skyddsnivå. Du ansvarar för att förhindra sekretessläckor och manipulering av känsliga data, oavsett om det är externa användardata eller anställdas data.

Krypteringsscenarier

Krypteringsmekanismer behöver förmodligen skydda data i tre steg:

  • Vilande data är all information som lagras i lagringsobjekt.

    Ett exempel på att skydda vilande data är att använda BitLocker för att kryptera data som sparas till lagring på en disk.

  • Data under överföring är information som överförs mellan komponenter, platser eller program.

    Ett exempel på att skydda data under överföring är att kryptera data med TLS så att paket som flyttas över offentliga och privata nätverk är säkra.

  • Data som används är data som aktivt bearbetas i minnet.

    Ett exempel på att skydda data som används är kryptering med konfidentiell databehandling för att skydda data när de bearbetas.

Föregående alternativ utesluter inte varandra. De används ofta tillsammans i kontexten för hela lösningen. Ett steg kan fungera som en kompenserande kontroll. Du kan till exempel behöva isolera data för att förhindra manipulering när data läses från minnet.

Krypteringsomfång

Klassificera data efter dess syfte och känslighetsnivå för att avgöra vilka data du behöver kryptera. För data som ska krypteras fastställer du vilken skyddsnivå som krävs. Behöver du TLS-kryptering från slutpunkt till slutpunkt för alla data under överföring? Vilka Azure-funktioner kan uppfylla dina krav för vilande data? Behöver du dubbelkryptering av data vid varje lagringsplats? Hur implementerar du informationsskydd?

Det är viktigt att balansera dina krypteringsbeslut eftersom det finns betydande kompromisser.

Kompromiss: Varje krypteringshopp kan medföra prestandafördröjning. Driftskomplexiteter kan uppstå i samband med felsökning och observerbarhet. Återställning kan vara en utmaning.

Omfång för dessa kompromisser. Förutse kompromisser för data som klassificeras som känsliga. Kraven kan till och med avgöra kompromisserna, till exempel om en viss typ av data måste krypteras och lagras inom vissa tröskelvärden.

Det finns fall då kryptering inte är möjligt på grund av tekniska begränsningar, investeringar eller andra orsaker. Kontrollera att dessa orsaker är tydliga, giltiga och dokumenterade.

Starka krypteringsmekanismer bör inte vara din enda form av försvar. Implementera processer för datastöldsskydd, lämpliga testmetoder och avvikelseidentifiering.

Information om klassificering finns i Rekommendationer om dataklassificering.

Interna krypteringsmekanismer

De flesta Azure-tjänster tillhandahåller en grundläggande krypteringsnivå. Utforska krypteringsalternativ som tillhandahålls av plattformen.

Vi rekommenderar starkt att du inte inaktiverar plattformsfunktioner för att utveckla dina egna funktioner. Plattformskrypteringsfunktioner använder moderna branschstandarder, utvecklas av experter och är mycket testade.

Om du i sällsynta fall behöver ersätta den plattformsbaserade krypteringen utvärderar du för- och nackdelarna och använder kryptografiska algoritmer av branschstandard.

Utvecklare bör använda kryptografi-API:er som är inbyggda i operativsystemet i stället för icke-plattformsformade kryptografibibliotek. För .NET följer du kryptografimodellen .NET.

Krypteringsnycklar

Som standard använder Azure-tjänster Microsoft-hanterade krypteringsnycklar för att kryptera och dekryptera data. Azure ansvarar för nyckelhantering.

Du kan välja kundhanterade nycklar. Azure använder fortfarande dina nycklar, men du är ansvarig för nyckelåtgärder. Du har flexibiliteten att ändra nycklar när du vill. Dekryptering är ett övertygande skäl att använda kundhanterade nycklar.

Du bör koppla stark kryptering med stark dekryptering. Ur ett säkerhetsperspektiv är det viktigt att skydda en dekrypteringsnyckel eftersom rotation är ett vanligt sätt att kontrollera sprängradien om en nyckel komprometteras. Övervaka åtkomst för att identifiera avvikande åtkomst och aktiviteter.

Lagra nycklar separat från krypterade data. Den här avkopplingen säkerställer att kompromissen av en entitet inte påverkar den andra. Om du använder kundhanterade nycklar lagrar du dem i ett nyckelarkiv. Lagra mycket känsliga data i en hanterad maskinvarusäkerhetsmodul (HSM).

Båda butikerna skyddas med identitetsbaserad åtkomst. Med den här funktionen kan du neka åtkomst, även till plattformen.

Standardkrypteringsalgoritmer

Använd kryptografialgoritmer som är väletablerade och följer branschstandarder i stället för att skapa anpassade implementeringar.

Branschstandarder för algoritmer kräver att krypteringsscheman har en viss entropynivå. Entropinkällorna matas in under krypteringen. Entropy gör algoritmen stark och gör det svårt för en angripare att extrahera information. Fastställ de tolerabla tröskelvärdena för entropy. Krypteringsprocedurer är processorintensiva. Hitta rätt balans så att du maximerar de beräkningscykler som används för krypteringen i förhållande till de övergripande prestandamålen för beräkningsbegäran.

Kompromiss: Om du väljer en algoritm som är mycket komplex eller matar in mer än en rimlig mängd entropin försämras systemets prestanda.

Hashar och kontrollsummor

Hashning är vanligtvis en teknik för felidentifiering. Du kan också använda hashning för säkerhet eftersom den identifierar ändringar av data som kan orsakas av manipulering. Hash-funktioner baseras på kryptografi, men de använder inte nycklar. Hash-funktioner använder algoritmer för att skapa kontrollsummor. Kontrollsummor kan jämföra data för att verifiera integriteten hos dem.

Program bör använda SHA-2-serien med hashalgoritmer, till exempel SHA-256, SHA-384 eller SHA-512.

Vilande data

Klassificera och skydda informationslagringsobjekt i enlighet med de interna och externa efterlevnadskraven. Se följande rekommendationer:

  • Kryptera data med hjälp av interna alternativ som tillhandahålls för lagringstjänster, datalager och andra resurser som används för att bevara data. Kryptera dessa data även om du lagrar data i dessa lagringstjänster eller resurser endast tillfälligt. Kryptera även dina säkerhetskopierade data för att upprätthålla samma säkerhetsnivå som den ursprungliga källan.

    Mer information finns i Vilande dataskydd.

  • Använd dubbel kryptering. Om dina affärskrav kräver högre säkerhet kan du utföra dubbel kryptering. Kryptera data i två eller flera lager med hjälp av oberoende kundhanterade nycklar. Lagra data i en hanterad HSM. Om du vill läsa data behöver du åtkomst till båda nycklarna. Om en nyckel komprometteras skyddar den andra nyckeln fortfarande data. Den här tekniken syftar till att öka risken för angripare.

    Du kan också använda plattformsbaserad kryptering för att dubbelkryptering av data. Plattformsbaserad kryptering skyddar lagringsmediet på infrastrukturnivå och du tillämpar ytterligare ett krypteringslager på datanivå. En meddelandekötjänst har till exempel plattformsbaserad kryptering via Microsoft-hanterade nycklar som skyddar meddelandepipan. Med den här metoden kan du kryptera meddelandena med kundhanterade nycklar.

    Använd mer än en krypteringsnyckel. Använd en nyckelkrypteringsnyckel (KEK) för att skydda din datakrypteringsnyckel (DEK).

  • Använd identitetsbaserade åtkomstkontroller för att styra åtkomsten till data. Lägg till nätverksbrandväggar för att ge ett extra säkerhetslager som blockerar oväntad och osäker åtkomst.

    Mer information finns i Rekommendationer för identitets- och åtkomsthantering.

  • Lagra nycklar i en hanterad HSM som har åtkomstkontroll med minst behörighet. Separera data från nycklarna till data.

  • Lagra begränsad mängd data så att du bara krypterar det som behövs. Dina data bör inte vara längre än krypteringscykeln. När data inte längre behövs tar du bort krypterade data utan utgiftsdekrypteringscykler.

Data under överföring

  • Använd säkra protokoll för klient-server-kommunikation. Transportprotokoll har ett inbyggt säkerhetslager. TLS är branschstandarden för utbyte av data mellan klient- och serverslutpunkter.

    Använd inte versioner som är lägre än TLS 1.2. Migrera lösningar för att stödja TLS 1.2 och använd den här versionen som standard. Alla Azure-tjänster stöder TLS 1.2 på offentliga HTTPS-slutpunkter.

    Risk: Äldre klienter som inte stöder TLS 1.2 kanske inte fungerar korrekt om bakåtkompatibilitet inte stöds.

    All webbplatskommunikation bör använda HTTPS, oavsett känsligheten för de överförda data. Under en klient-server-handskakning förhandlar du om användningen av HSTS-principen (HTTP Strict Transport Security) så att HTTPS-transporten underhålls och inte tas bort till HTTP under kommunikationen. Den här principen skyddar mot man-in-the-middle-attacker.

    Stöd för HSTS är för nyare versioner. Du kan bryta bakåtkompatibiliteten med äldre webbläsare.

    Anteckning

    Du kan också kryptera protokoll för att upprätta säkra anslutningar för databaser. Till exempel stöder Azure SQL Database TDS-protokollet (Tabular Data Stream), som integrerar en TLS-handskakning.

    En chiffersvit är en uppsättning algoritmer som används för att standardisera handskakningen mellan klienten och servern. Chifferen ser till att utbytet krypteras och autentiseras. Valet av chiffer beror på vilken TLS-version servern använder. För vissa tjänster, till exempel Azure Application Gateway, kan du välja vilken version av TLS och chiffersviter som du vill stödja. Implementera chiffersviter som använder Advanced Encryption Standard (AES) som symmetriskt blockchiffrering. AES-128, AES-192 och AES-256 är godtagbara.

  • Hantera livscykeln för certifikat. Certifikat har en fördefinierad livslängd. Behåll inte långlivade certifikat och låt dem inte upphöra att gälla på egen hand. Implementera en process som förnyar certifikat med en acceptabel frekvens. Du kan automatisera processen för förnyelser som sker med korta intervall.

    Anteckning

    Om du använder certifikatstiftning kan du bekanta dig med begränsningarna för agilitet och certifikathantering.

    Arbetsflödet bör inte tillåta att ogiltiga certifikat godkänns i miljön. Processen för att fästa certifikat bör verifiera certifikat och framtvinga verifieringskontrollen. Du bör övervaka åtkomstloggarna för att säkerställa att signeringsnyckeln används med rätt behörigheter.

    Om en nyckel komprometteras måste certifikatet återkallas omedelbart. En certifikatutfärdare (CA) tillhandahåller en lista över återkallade certifikat (CRL) som anger de certifikat som är ogiltiga innan de upphör att gälla. Valideringskontrollen bör ta hänsyn till CRL:er.

    Kompromiss: Certifieringsvalideringsprocessen kan vara besvärlig och omfattar vanligtvis en certifikatutfärdare. Fastställ de data som du måste kryptera med certifikat. För andra typer av kommunikation kontrollerar du om du kan implementera lokaliserade kompenserande kontroller för att lägga till säkerhet.

    Ett sätt att lokalisera kontroller är med ömsesidig TLS (mTLS). Det upprättar förtroende i båda riktningarna mellan klienten och servern. Både klienten och servern har sina egna certifikat, och varje certifikat autentiseras med deras offentliga eller privata nyckelpar. Med mTLS är du inte beroende av den externa ca:en. Kompromissen är den extra komplexiteten med att hantera två certifikat.

  • Dubbelkryptera VPN-anslutningar om det behövs. Utför dubbel kryptering för att lägga till skydd på djupet i VPN-tunneln. När du använder två VPN-servrar kan du dölja IP-adressen mellan servrarna och även dölja IP-adressen mellan servern och målet. Under den här processen krypteras även data under överföring två gånger.

    Kompromiss: Jämfört med enskilda VPN-konfigurationer är dubbla VPN-konfigurationer ofta dyrare och anslutningarna går ofta långsammare.

  • Implementera loggnings- och övervakningsprocesser. Håll reda på åtkomstinloggningsresurser som lagrar information om klienter, till exempel deras käll-IP, port och protokoll. Använd den här informationen för att identifiera avvikelser.

Data som används

För arbetsbelastningar med hög säkerhet rekommenderas designmönster, segmentering, isolering och minsta behörighet.

När det gäller användningsskydd kan maskinvarugränser kräva kryptering av data när de används i den fysiska processorn och minnet för att säkerställa isolering av virtuella datorer, kod för värdhantering och andra komponenter.

Kryptering och dekryptering av data får endast göras inom dessa isoleringsgränser.

Strängare säkerhetskrav eller regelkrav kan också kräva maskinvarubaserade, kryptografiskt signerade bevis för att data krypteras under användning. Detta kan erhållas genom attestering.

Användning av moderna säkerhets- och sekretessåtgärder är ett vanligt krav för regelmässiga arbetsbelastningar. Konfidentiell databehandling är en sådan teknik som stöder kravet. Specifika tjänster i Azure erbjuder möjligheten att skydda data när de beräknas. Mer information finns i Azure Facilitation: Azure Confidential Compute.

Överväg att livscykeln för data i slutänden som du skyddar data ofta rör sig genom flera system under dess livslängd, se till att alla komponenter i en lösning kan tillhandahålla de skyddsnivåer som krävs eller se till att din datahanteringsstrategi ger lämplig segmentering eller maskering.

Azure-underlättande

I följande avsnitt beskrivs Azure-tjänster och funktioner som du kan använda för att kryptera dina data.

Kundhanterade nycklar

Lagra kundhanterade nycklar i Azure Key Vault eller i en Key Vault hanterad HSM.

Key Vault behandlar nycklarna som alla andra hemligheter. Rollbaserade åtkomstkontroller i Azure (RBAC) får åtkomst till nycklarna via en behörighetsmodell. Den här identitetsbaserade kontrollen måste användas med Key Vault åtkomstprinciper.

Mer information finns i Ge åtkomst till Key Vault nycklar, certifikat och hemligheter med hjälp av RBAC.

Azure Key Vault Premium och Managed-HSM förbättrar erbjudandet ytterligare genom att inkludera konfidentiella databehandlingsfunktioner och säker nyckelversion som stöder en princip för att säkerställa att en nyckel bara släpps till en arbetsbelastning som kryptografiskt kan bevisa att den körs i en betrodd körningsmiljö (TEE).

Skydd mot vilande data
  • Azure Storage krypterar automatiskt dina data med block chiffer när data sparas på ett lagringskonto. För Azure Blob Storage och Azure Queue Storage tillhandahåller Storage även kryptering på klientsidan via bibliotek.

    Mer information finns i Lagringskryptering.

  • Azure Virtual Machines har diskfiler som fungerar som virtuella lagringsvolymer. Du kan kryptera de virtuella diskfilerna så att innehållet inte kan nås.

    Hanterade diskar kan exporteras från portalen. Kryptering och kryptering på serversidan på värden kan endast skydda data när de har exporterats. Du bör dock skydda data under exportprocessen. Du kan använda Azure Disk Encryption för att skydda dina data under exporten.

    Azure erbjuder flera krypteringsalternativ för hanterade diskar. Mer information finns i Översikt över krypteringsalternativ för hanterade diskar.

  • SQL Database erbjuder en transparent datakrypteringsfunktion som används för att kryptera en databasfil på sidnivå.

Skydd mot data under överföring

Med Key Vault kan du etablera, hantera och distribuera offentliga och privata SSL-certifikat (Secure Sockets Layer) eller TLS-certifikat. Du kan använda certifikaten med Azure och med dina interna anslutna resurser.

Skydd mot användning av data

Specifika tjänster i Azure erbjuder möjligheten att skydda data medan de beräknas i den fysiska processorn och minnet hos en värd med hjälp av konfidentiell databehandling i Azure.

  • Konfidentiellt Virtual Machines erbjuder en hel virtuell dator som körs i en TEE, krypteras minnet och körningen av CPU-innehållet på den virtuella datorn med en enkel "lift & shift"-metod för att flytta oförändrade program med höga säkerhetskrav till Azure. Varje konfidentiell virtuell Azure-dator har en egen dedikerad TPM (Virtual Trust Platform Module). Kryptering utförs medan operativsystemkomponenterna startas på ett säkert sätt.

  • Konfidentiella AKS-arbetsnoder, konfidentiella containrar på AKS eller konfidentiella containrar på Azure Container Instances (ACI) ger möjlighet att köra och hantera oförändrade containrar i en TEE som gör det möjligt för kunder att dra nytta av användningsskydd. Containererbjudanden är inbyggda konfidentiella Virtual Machines och har samma skydd.

  • Application Enclave-lösningar är specialbyggda program som utnyttjar specifika CPU-tillägg som erbjuds av SKU:er för virtuella datorer som stöder Intel Software Guard-tillägg (SGX), dessa erbjuder en mycket detaljerad TCB (Trusted Compute Base) men kräver att program kodas specifikt för att dra nytta av funktionerna.

  • Säker nyckelversion kan kombineras med dessa tekniker för att säkerställa att krypterade data bara dekrypteras i en TEE som bevisar att det ger den nödvändiga skyddsnivån genom en process som kallas attestering.

Hemlighetshantering

Du kan använda Key Vault för att lagra och kontrollera åtkomsten till token, lösenord, certifikat, API-nycklar och andra hemligheter på ett säkert sätt. Använd Key Vault som en nyckel- och certifikathanteringslösning. Premium SKU stöder HSM:er.

Exempel

I följande exempel visas krypteringslösningar som du kan använda för att hantera nycklar, certifikat och hemligheter.

Diagram som visar krypteringslösningar för hantering av nycklar, certifikat och hemligheter.

Säkerhetskontrollista

Se den fullständiga uppsättningen rekommendationer.

Säkerhetskontrollista