Rekommendationer för datakryptering
Gäller för rekommendationen för checklistan för välarkitekterat ramverkssä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ästa och låsa data med en nyckel. I det krypterade tillståndet kan data inte dechiffreras. Den kan bara dekrypteras med hjälp av en nyckel som är kopplad till krypteringsnyckeln.
Definitioner
Villkor | Definition |
---|---|
Certifikat | Digitala filer som innehåller de offentliga nycklarna för kryptering eller dekryptering. |
Chiffreringssvit | 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åss 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äsbara och låsta med en hemlig kod. |
Hashing | Processen att transformera data till text eller siffror med avsikten 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 autentiseringsstämpel för data. |
Signering | Processen 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 endast måste finnas kvar i den valda regionen och att kopior av data bevaras i den regionen.
Dessa krav är ofta basminimum. 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.
Krypteringsmekanismer behöver sannolikt 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.
Fastställa krypteringskrav
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 avgör 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 introducera prestandafördröjning. Driftkomplexiteter 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. Se till 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.
Använda inbyggda krypteringsmekanismer
De flesta Azure-tjänster tillhandahåller en basnivå av kryptering. 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.
För sällsynta tillfällen, om du behöver ersätta krypteringen som tillhandahålls av plattformen, 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-plattformiga kryptografibibliotek. För .NET följer du .NET-kryptografimodellen.
Välj en metod för 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 viktiga åtgärder. Du har flexibiliteten att ändra nycklar när du vill. Dekryptering är en övertygande anledning att använda kundhanterade nycklar.
Du bör parkoppla 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 explosionsradien om en nyckel komprometteras. Övervaka åtkomsten för att identifiera avvikande åtkomst och aktiviteter.
Lagra nycklar åtskilda från krypterade data. Den här avkopplingen hjälper till att säkerställa att kompromissen för 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 arkiven skyddas med identitetsbaserad åtkomst. Med den här funktionen kan du neka åtkomst, även till plattformen.
Använda 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 entropinivå. Entropikällorna matas in under krypteringen. Entropi 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 entropi. Krypteringsprocedurerna är processorintensiva. Hitta rätt balans så att du maximerar de beräkningscykler som spenderas på 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 injicerar mer än en rimlig mängd entropi försämras systemets prestanda.
Använda hashvärden och kontrollsummor
Vanligtvis är hashning en teknik för felidentifiering. Du kan också använda hashning för säkerhet eftersom den identifierar ändringar i 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 för dem.
Program bör använda SHA-2-serien med hashalgoritmer, till exempel SHA-256, SHA-384 eller SHA-512.
Kryptera data i vila
Klassificera och skydda informationslagringsobjekt i enlighet med de interna och externa efterlevnadskraven. Se följande rekommendationer:
Kryptera data med hjälp av inbyggda 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 Data i viloskydd.
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 angriparens kostnader.
Du kan också använda plattformsbaserad kryptering för att dubbelkryptering av data. Kryptering som tillhandahålls av plattformen 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 meddelanderöret. 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. Avgränsa 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 leva längre än krypteringscykeln. När data inte längre behövs tar du bort krypterade data utan att spendera dekrypteringscykler.
Kryptera 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 handskakning mellan klient och server förhandlar du om användningen av HSTS-principen (HTTP Strict Transport Security) så att HTTPS-transporten underhålls och inte släpps 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.
Kommentar
Du kan också kryptera protokoll för att upprätta säkra anslutningar för databaser. Azure SQL Database har till exempel stöd för 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. Chiffer ser till att utbytet är krypterat och autentiserat. 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 den version av TLS och de chiffersviter som du vill stödja. Implementera chiffersviter som använder Advanced Encryption Standard (AES) som ett symmetriskt block chiffer. AES-128, AES-192 och AES-256 är godtagbara.
Hantera livscykeln för certifikat. Certifikat har en förutbestämd livslängd. Behåll inte långlivade certifikat och låt dem inte gå ut 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.
Kommentar
Om du använder pinning av certifikat kan du bekanta dig med flexibilitets- och certifikathanteringsbegränsningarna.
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 åtkomstloggar 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. Verifieringskontrollen bör ta hänsyn till CRL:er.
Kompromiss: Certifieringsverifieringsprocessen 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 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 i 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-installationer är dubbla VPN-installationer ofta dyrare och anslutningarna ä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.
Kryptera data som används
För arbetsbelastningar med hög säkerhet rekommenderar vi designmönster för segmentering, isolering och lägsta behörighet.
När det gäller användningsskydd kan maskinvarugränser kräva kryptering av data medan de används i den fysiska processorn och minnet för att säkerställa isolering av virtuella datorer, värdhanteringskod 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. Konfidentiell databehandling är en sådan teknik som stöder kravet. Specifika tjänster i Azure erbjuder möjligheten att skydda data medan de beräknas. Mer information finns i Azure Facilitation: Azure Confidential Compute.
Tänk på att slutlivscykeln för data 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 funktioner för konfidentiell databehandling 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 till 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 på serversidan och kryptering 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 exportprocessen.
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- eller TLS-certifikat (Secure Sockets Layer). 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.
Konfidentiella virtuella datorer erbjuder en hel virtuell dator som körs i en TEE, minnet och körningen av CPU-innehållet i den virtuella datorn krypteras och erbjuder 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 virtuella datorer 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 betrodd beräkningsbas (TCB) 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 den ger den skyddsnivå som krävs 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 lösning för nyckel- och certifikathantering. 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.
Relaterade länkar
- .NET-kryptografimodell
- Azure Disk Encryption
- Lagringskryptering för vilande data
- Fäst certifikat i Azure-tjänster
- Ge åtkomst till Key Vault-nycklar, certifikat och hemligheter med hjälp av RBAC
- Översikt över krypteringsalternativ för hanterade diskar
- Transparent datakryptering
- Översikt över Trust Platform Module
- Konfidentiell databehandling i Azure
Communitylänkar
Säkerhetskontrollista
Se den fullständiga uppsättningen rekommendationer.