Aanbevelingen voor gegevensversleuteling

Is van toepassing op aanbeveling van Well-Architected Framework Security-controlelijst:

SE:07 Gegevens versleutelen met behulp van moderne industriestandaard methoden om vertrouwelijkheid en integriteit te beschermen. Versleutelingsbereik afstemmen met gegevensclassificaties; prioriteit geven aan systeemeigen platformversleutelingsmethoden.

Als uw gegevens niet zijn beveiligd, kunnen deze met opzet worden gewijzigd, wat leidt tot verlies van integriteit en vertrouwelijkheid.

In deze handleiding worden de aanbevelingen beschreven voor het versleutelen en beveiligen van uw gegevens. Versleuteling is het gebruik van cryptografiealgoritmen om de gegevens onleesbaar te maken en de gegevens te vergrendelen met een sleutel. In de versleutelde status kunnen gegevens niet worden ontcijferd. Het kan alleen worden ontsleuteld met behulp van een sleutel die is gekoppeld aan de versleutelingssleutel.

Definities

Termen Definitie
Certificaten Digitale bestanden met de openbare sleutels voor versleuteling of ontsleuteling.
Coderingssuite Een set algoritmen die worden gebruikt voor het versleutelen en ontsleutelen van gegevens om een netwerkverbinding te beveiligen via TLS (Transport Layer Security).
Confidential Computing Confidential Computing is de beveiliging van gegevens die worden gebruikt door berekeningen uit te voeren in een op hardware gebaseerde, geteste Vertrouwde uitvoeringsomgeving.
Ontsleuteling Het proces waarbij versleutelde gegevens worden ontgrendeld met een geheime code.
Dubbele versleuteling Het proces van het versleutelen van gegevens met behulp van twee of meer onafhankelijke versleutelingslagen.
Versleuteling Het proces waarmee gegevens onleesbaar worden gemaakt en vergrendeld met een geheime code.
Hashing Het proces van het transformeren van gegevens naar tekst of getallen met de bedoeling om informatie te verbergen.
Sleutels Een geheime code die wordt gebruikt om versleutelde gegevens te vergrendelen of te ontgrendelen.
Handtekening Een versleutelde verificatiestempel voor gegevens.
Ondertekenen Het proces van het verifiëren van de authenticiteit van gegevens met behulp van een handtekening.
X.509 Een standaard die de indeling van openbare-sleutelcertificaten definieert.

Belangrijke ontwerpstrategieën

Organisatiemandaten of wettelijke vereisten kunnen versleutelingsmechanismen afdwingen. Er kan bijvoorbeeld een vereiste zijn dat gegevens alleen in de geselecteerde regio moeten blijven en kopieën van de gegevens in die regio moeten worden bewaard.

Deze vereisten zijn vaak het basis minimum. Streven naar een hoger beschermingsniveau. U bent verantwoordelijk voor het voorkomen van vertrouwelijkheidslekken en manipulatie van gevoelige gegevens, ongeacht of het om externe gebruikersgegevens of werknemersgegevens gaat.

Versleutelingsscenario's

Versleutelingsmechanismen moeten de gegevens waarschijnlijk in drie fasen beveiligen:

  • Data-at-rest is alle informatie die in opslagobjecten wordt bewaard.

    Een voorbeeld van het beveiligen van data-at-rest is het gebruik van BitLocker om gegevens te versleutelen die zijn opgeslagen in opslag op een schijf.

  • Gegevens in transit zijn gegevens die worden overgedragen tussen onderdelen, locaties of programma's.

    Een voorbeeld van het beveiligen van gegevens in transit is het versleutelen van gegevens met TLS, zodat pakketten die via openbare en particuliere netwerken worden verplaatst, veilig zijn.

  • Gegevens in gebruik zijn gegevens waaraan actief wordt gewerkt in het geheugen.

    Een voorbeeld van het beveiligen van gegevens die in gebruik zijn, is het versleutelen met confidential computing om gegevens te beveiligen terwijl deze worden verwerkt.

De voorgaande keuzes sluiten elkaar niet uit. Ze worden vaak samen gebruikt in de context van de hele oplossing. Eén fase kan fungeren als een compenserende controle. U moet bijvoorbeeld gegevens isoleren om manipulatie te voorkomen wanneer gegevens uit het geheugen worden gelezen.

Bereik van versleuteling

Classificeer gegevens op doel en gevoeligheidsniveau om te bepalen welke gegevens u moet versleutelen. Voor gegevens die moeten worden versleuteld, bepaalt u het vereiste beveiligingsniveau. Hebt u end-to-end TLS-versleuteling nodig voor alle gegevens die worden overgedragen? Welke Azure-functies voldoen aan uw vereisten voor data-at-rest? Moet u gegevens op elk opslagpunt dubbel versleutelen? Hoe implementeert u gegevensbeveiliging?

Het is belangrijk om uw versleutelingsbeslissingen in evenwicht te houden, omdat er aanzienlijke compromissen zijn.

Afweging: elke versleutelingshop kan prestatielatentie veroorzaken. Operationele complexiteiten kunnen optreden met betrekking tot probleemoplossing en waarneembaarheid. Herstel kan een uitdaging zijn.

Bereik deze compromissen. Anticiperen op compromissen voor gegevens die als gevoelig zijn geclassificeerd. Vereisten kunnen zelfs de afwegingen bepalen, bijvoorbeeld als een bepaald type gegevens moet worden versleuteld en opgeslagen binnen bepaalde drempelwaarden.

Er zijn gevallen waarin versleuteling niet mogelijk is vanwege technische beperkingen, investeringen of andere redenen. Zorg ervoor dat deze redenen duidelijk, geldig en gedocumenteerd zijn.

Sterke versleutelingsmechanismen moeten niet uw enige vorm van verdediging zijn. Implementeer processen voor het voorkomen van gegevensdiefstal, de juiste testmethoden en anomaliedetectie.

Zie Aanbevelingen over gegevensclassificatie voor meer informatie over classificatie.

Systeemeigen versleutelingsmechanismen

De meeste Azure-services bieden een basisniveau van versleuteling. Verken de door het platform geleverde versleutelingsopties.

Het wordt ten zeerste aanbevolen om platformmogelijkheden niet uit te schakelen om uw eigen functionaliteit te ontwikkelen. Platformversleutelingsfuncties maken gebruik van moderne industriestandaarden, zijn ontwikkeld door experts en zijn sterk getest.

Als u in zeldzame gevallen de door het platform geleverde versleuteling moet vervangen, evalueert u de voor- en nadelen en gebruikt u cryptografische algoritmen volgens de industriestandaard.

Ontwikkelaars moeten cryptografie-API's gebruiken die zijn ingebouwd in het besturingssysteem in plaats van niet-platformcryptografiebibliotheken. Voor .NET volgt u het .NET-cryptografiemodel.

Versleutelingssleutels

Standaard maken Azure-services gebruik van door Microsoft beheerde versleutelingssleutels voor het versleutelen en ontsleutelen van gegevens. Azure is verantwoordelijk voor sleutelbeheer.

U kunt kiezen voor door de klant beheerde sleutels. Azure gebruikt nog steeds uw sleutels, maar u bent verantwoordelijk voor sleutelbewerkingen. U hebt de flexibiliteit om sleutels te wijzigen wanneer u dat wilt. Ontsleuteling is een overtuigende reden om door de klant beheerde sleutels te gebruiken.

U moet sterke versleuteling koppelen aan sterke ontsleuteling. Vanuit het oogpunt van beveiliging is het beveiligen van een ontsleutelingssleutel belangrijk, omdat rotatie een veelgebruikte manier is om de straal van de ontploffing te beheren als een sleutel is gecompromitteerd. Bewaak de toegang om afwijkende toegang en activiteiten te detecteren.

Sleutels gescheiden van versleutelde gegevens opslaan. Deze ontkoppeling zorgt ervoor dat de inbreuk van de ene entiteit geen invloed heeft op de andere. Als u door de klant beheerde sleutels gebruikt, slaat u deze op in een sleutelarchief. Zeer gevoelige gegevens opslaan in een beheerde HSM (Hardware Security Module).

Beide winkels worden beveiligd met toegang op basis van identiteit. Met deze functie kunt u toegang weigeren, zelfs tot het platform.

Standaardversleutelingsalgoritmen

Gebruik cryptografiealgoritmen die goed zijn ingesteld en de industriestandaarden volgen in plaats van aangepaste implementaties te maken.

Industriestandaarden voor algoritmen vereisen dat versleutelingsschema's een bepaald niveau van entropie hebben. De entropiebronnen worden geïnjecteerd tijdens de versleuteling. Entropie maakt het algoritme sterk en maakt het moeilijk voor een aanvaller om informatie te extraheren. Bepaal de toegestane drempelwaarden voor entropie. Versleutelingsprocedures zijn processorintensief. Zoek de juiste balans, zodat u de rekencycli die aan de versleuteling worden besteed, maximaliseert ten opzichte van de algemene prestatiedoelen van de rekenaanvraag.

Afweging: als u een algoritme kiest dat zeer complex is of dat meer dan een redelijke hoeveelheid entropie injecteert, verslechtert dit de prestaties van uw systeem.

Hashes en controlesommen

Hashing is doorgaans een techniek voor foutdetectie. U kunt ook hashing gebruiken voor beveiliging, omdat hiermee wijzigingen in gegevens worden gedetecteerd die mogelijk worden veroorzaakt door manipulatie. Hash-functies zijn gebaseerd op cryptografie, maar ze gebruiken geen sleutels. Hash-functies gebruiken algoritmen om controlesommen te produceren. Controlesommen kunnen gegevens vergelijken om de integriteit ervan te controleren.

Toepassingen moeten gebruikmaken van de SHA-2-familie van hash-algoritmen, zoals SHA-256, SHA-384 of SHA-512.

Inactieve gegevens

Informatieopslagobjecten classificeren en beveiligen in overeenstemming met de interne en externe nalevingsvereisten. Zie de volgende aanbevelingen:

  • Gegevens versleutelen met behulp van systeemeigen opties die beschikbaar zijn voor opslagservices, gegevensarchieven en andere resources die worden gebruikt om gegevens te behouden. Versleutel deze gegevens zelfs als u gegevens slechts tijdelijk opslaat in deze opslagservices of resources. Versleutel ook uw back-upgegevens om hetzelfde beveiligingsniveau te behouden als de oorspronkelijke bron.

    Zie Data-at-rest-beveiliging voor meer informatie.

  • Gebruik dubbele versleuteling. Als uw bedrijfsvereisten een hogere zekerheid vereisen, kunt u dubbele versleuteling uitvoeren. Versleutel gegevens in twee of meer lagen met behulp van onafhankelijke door de klant beheerde sleutels. Sla de gegevens op in een beheerde HSM. Als u de gegevens wilt lezen, hebt u toegang tot beide sleutels nodig. Als de ene sleutel is gecompromitteerd, worden de gegevens nog steeds beveiligd met de andere sleutel. Deze techniek is gericht op het verhogen van de kosten voor aanvallers.

    U kunt ook platformversleuteling gebruiken om gegevens te verdubbelen. Met platformversleuteling worden de opslagmedia op infrastructuurniveau beveiligd en past u een andere versleutelingslaag toe op gegevensniveau. Een message broker-service heeft bijvoorbeeld platformversleuteling via door Microsoft beheerde sleutels die de berichtenpijp beschermen. Met deze methode kunt u de berichten versleutelen met door de klant beheerde sleutels.

    Gebruik meer dan één versleutelingssleutel. Gebruik een sleutelversleutelingssleutel (KEK) om uw gegevensversleutelingssleutel (DEK) te beveiligen.

  • Gebruik op identiteit gebaseerde toegangsbeheer om de toegang tot gegevens te beheren. Voeg netwerkfirewalls toe om een extra beveiligingslaag te bieden die onverwachte en onveilige toegang blokkeert.

    Zie Aanbevelingen voor identiteits- en toegangsbeheer voor meer informatie.

  • Sleutels opslaan in een beheerde HSM met toegangsbeheer met de minste bevoegdheden. Scheid de gegevens van de sleutels tot de gegevens.

  • Sla een beperkte hoeveelheid gegevens op, zodat u alleen versleutelt wat nodig is. Uw gegevens mogen niet langer actief zijn dan uw versleutelingscyclus. Wanneer gegevens niet meer nodig zijn, verwijdert u de versleutelde gegevens zonder dat u de ontsleutelingscycli hoeft te besteden.

Actieve gegevens

  • Veilige protocollen gebruiken voor client-servercommunicatie. Transportprotocollen hebben een ingebouwde beveiligingslaag. TLS is de industriestandaard voor het uitwisselen van gegevens tussen client- en servereindpunten.

    Gebruik geen versies die lager zijn dan TLS 1.2. Migreer oplossingen ter ondersteuning van TLS 1.2 en gebruik deze versie standaard. Alle Azure-services ondersteunen TLS 1.2 op openbare HTTPS-eindpunten.

    Risico: oudere clients die TLS 1.2 niet ondersteunen, werken mogelijk niet goed als compatibiliteit met eerdere versies niet wordt ondersteund.

    Alle websitecommunicatie moet HTTPS gebruiken, ongeacht de gevoeligheid van de overgedragen gegevens. Tijdens een handshake van een client-server onderhandelt u over het gebruik van het BELEID VOOR HTTP Strict Transport Security (HSTS), zodat HTTPS-transport wordt gehandhaafd en tijdens de communicatie niet naar HTTP wordt overgebracht. Dit beleid beschermt tegen man-in-the-middle-aanvallen.

    Ondersteuning voor HSTS is voor nieuwere versies. Mogelijk wordt de compatibiliteit met oudere browsers met eerdere versies verbroken.

    Notitie

    U kunt ook protocollen versleutelen om beveiligde verbindingen voor databases tot stand te brengen. Azure SQL Database ondersteunt bijvoorbeeld het TDS-protocol (Tabular Data Stream), dat een TLS-handshake integreert.

    Een coderingssuite is een set algoritmen die worden gebruikt om de handshake tussen de client en de server te standaardiseren. De coderingen zorgen ervoor dat de uitwisseling wordt versleuteld en geverifieerd. De keuze van coderingen is afhankelijk van de TLS-versie die door de server wordt gebruikt. Voor sommige services, zoals Azure Application Gateway, kunt u de versie van TLS en de coderingssuites kiezen die u wilt ondersteunen. Implementeer coderingssuites die gebruikmaken van de Advanced Encryption Standard (AES) als een symmetrische blokcodering. AES-128, AES-192 en AES-256 zijn acceptabel.

  • De levenscyclus van certificaten beheren. Certificaten hebben een vooraf bepaalde levensduur. Bewaar geen certificaten met een lange levensduur en laat ze niet vanzelf verlopen. Implementeer een proces waarmee certificaten met een acceptabele frequentie worden vernieuwd. U kunt het proces automatiseren voor verlengingen die met korte intervallen plaatsvinden.

    Notitie

    Als u certificaat vastmaken gebruikt, moet u vertrouwd raken met de beperkingen voor flexibiliteit en certificaatbeheer.

    Uw werkstroom mag niet toestaan dat ongeldige certificaten worden geaccepteerd in de omgeving. Het proces voor het vastmaken van certificaten moet certificaten valideren en die validatiecontrole afdwingen. U moet toegangslogboeken controleren om ervoor te zorgen dat de ondertekeningssleutel met de juiste machtigingen wordt gebruikt.

    Als een sleutel is gecompromitteerd, moet het certificaat onmiddellijk worden ingetrokken. Een certificeringsinstantie (CA) biedt een certificaatintrekkingslijst (CRL) die aangeeft welke certificaten ongeldig zijn gemaakt voordat ze verlopen. De validatiecontrole moet rekening houden met CRL's.

    Afweging: Het validatieproces voor certificering kan omslachtig zijn en omvat meestal een CA. Bepaal de gegevens die u met certificaten moet versleutelen. Voor andere typen communicatie bepaalt u of u gelokaliseerde compenserende besturingselementen kunt implementeren om beveiliging toe te voegen.

    Eén manier om besturingselementen te lokaliseren is met wederzijdse TLS (mTLS). Er wordt vertrouwen in beide richtingen tussen de client en de server tot stand gebracht. Zowel de client als de server hebben hun eigen certificaten en elk certificaat wordt geverifieerd met hun openbare of persoonlijke sleutelpaar. Met mTLS bent u niet afhankelijk van de externe CA. De afweging is de extra complexiteit van het beheren van twee certificaten.

  • Dubbele versleuteling van VPN-verbindingen indien nodig. Voer dubbele versleuteling uit om diepgaande verdediging toe te voegen aan uw VPN-tunnel. Wanneer u twee VPN-servers gebruikt, kunt u het IP-adres tussen de servers verbergen en ook het IP-adres tussen de server en de bestemming verbergen. Tijdens dit proces worden gegevens in overdracht ook tweemaal versleuteld.

    Afweging: vergeleken met enkelvoudige VPN-instellingen zijn dubbele VPN-instellingen vaak duurder en zijn verbindingen vaak trager.

  • Processen voor logboekregistratie en bewaking implementeren. Houd toegangsresources bij waarin informatie over clients wordt opgeslagen, zoals het bron-IP-adres, de poort en het protocol. Gebruik deze informatie om afwijkingen te detecteren.

Gegevens in gebruik

Voor workloads met een hoge beveiliging worden segmentatie, isolatie en least-priviledge aanbevolen ontwerppatronen.

In de context van beveiliging in gebruik vereisen hardwaregrenzen mogelijk versleuteling van gegevens terwijl deze worden gebruikt in de fysieke CPU en het geheugen om isolatie van VM's, hostbeheercode en andere onderdelen te garanderen.

Versleuteling en ontsleuteling van gegevens mogen alleen binnen deze isolatiegrenzen worden uitgevoerd.

Strengere beveiligings- of regelgevingsvereisten kunnen ook cryptografisch ondertekend bewijs op basis van hardware vereisen dat gegevens worden versleuteld terwijl ze in gebruik zijn. Dit kan worden verkregen via attestation.

Het gebruik van moderne beveiliging en privacymaatregelen is een algemene vereiste voor wettelijke workloads. Confidential Computing is een dergelijke technologie die de vereiste ondersteunt. Specifieke services in Azure bieden de mogelijkheid om gegevens te beveiligen terwijl deze worden berekend. Zie Azure Facilitat: Azure Confidential Compute voor meer informatie.

Houd rekening met de end-endlevenscyclus van gegevens die u beveiligt tijdens de levensduur van gegevens die vaak door meerdere systemen worden verplaatst, zorg ervoor dat alle onderdelen van een oplossing de vereiste beveiligingsniveaus kunnen bieden of zorg ervoor dat uw strategie voor gegevensbeheer de juiste segmentatie of maskering biedt.

Azure-facilitering

In de volgende secties worden Azure-services en -functies beschreven die u kunt gebruiken om uw gegevens te versleutelen.

Door klant beheerde sleutels

Door de klant beheerde sleutels opslaan in Azure Key Vault of in een Key Vault beheerde HSM.

Key Vault behandelt de sleutels als elk ander geheim. Op rollen gebaseerd toegangsbeheer van Azure (RBAC) heeft toegang tot de sleutels via een machtigingsmodel. Dit op identiteit gebaseerde besturingselement moet worden gebruikt met Key Vault-toegangsbeleid.

Zie Toegang bieden tot Key Vault sleutels, certificaten en geheimen met behulp van RBAC voor meer informatie.

Azure Key Vault Premium en Managed-HSM breidt het aanbod verder uit door mogelijkheden voor confidential computing en Secure Key Release op te geven, die een beleid ondersteunen om ervoor te zorgen dat een sleutel alleen wordt vrijgegeven aan een workload die cryptografisch kan bewijzen dat deze wordt uitgevoerd binnen een Trusted Execution Environment (TEE).

Data-at-rest-beveiliging
  • Azure Storage versleutelt uw gegevens automatisch met blokcoderingen wanneer de gegevens worden opgeslagen in een opslagaccount. Voor Azure Blob Storage en Azure Queue Storage biedt Storage ook versleuteling aan de clientzijde via bibliotheken.

    Zie Opslagversleuteling voor meer informatie.

  • Azure Virtual Machines heeft schijfbestanden die fungeren als virtuele opslagvolumes. U kunt de bestanden van de virtuele schijf versleutelen, zodat de inhoud niet kan worden geopend.

    Beheerde schijven kunnen worden geëxporteerd vanuit de portal. Versleuteling aan de serverzijde en versleuteling op de host kunnen gegevens pas beschermen nadat deze zijn geëxporteerd. U moet echter gegevens beschermen tijdens het exportproces. U kunt Azure Disk Encryption gebruiken om uw gegevens tijdens het exportproces te beveiligen en te beveiligen.

    Azure biedt verschillende versleutelingsopties voor beheerde schijven. Zie Overzicht van opties voor versleuteling van beheerde schijven voor meer informatie.

  • SQL Database biedt een functie voor transparante gegevensversleuteling die wordt gebruikt om een databasebestand op paginaniveau te versleutelen.

Gegevens-in-transit-beveiliging

Met Key Vault kunt u openbare en persoonlijke SSL-certificaten (Secure Sockets Layer) of TLS inrichten, beheren en implementeren. U kunt de certificaten gebruiken met Azure en met uw interne verbonden resources.

Bescherming van gegevens in gebruik

Specifieke services in Azure bieden de mogelijkheid om gegevens te beveiligen terwijl deze worden berekend binnen de fysieke CPU en het geheugen van een host met behulp van Azure Confidential Computing.

  • Vertrouwelijke Virtual Machines een volledige virtuele machine bieden die in een TEE wordt uitgevoerd. Het geheugen en de cpu-inhoud van de virtuele machine worden versleuteld en bieden een eenvoudige lift & shift-benadering voor het verplaatsen van ongewijzigde toepassingen met hoge beveiligingsvereisten naar Azure. Elke vertrouwelijke Azure-VM heeft een eigen toegewezen virtuele TPM (Trust Platform Module). Versleuteling wordt uitgevoerd terwijl de onderdelen van het besturingssysteem veilig worden opgestart.

  • Vertrouwelijke AKS-werkknooppunten, Vertrouwelijke containers op AKS of Vertrouwelijke containers op Azure Container Instances (ACI) bieden de mogelijkheid om ongewijzigde containers in een TEE uit te voeren en te beheren, zodat klanten kunnen profiteren van beveiliging tijdens gebruik. Containeraanbiedingen zijn gebaseerd op Vertrouwelijke Virtual Machines en profiteren van dezelfde beveiliging.

  • Application Enclave-oplossingen zijn speciaal gebouwde toepassingen die gebruikmaken van specifieke CPU-extensies die worden aangeboden door virtuele-machine-SKU's die Ondersteuning bieden voor Intel Software Guard Extensions (SGX). Deze bieden een zeer gedetailleerde Trusted Compute Base (TCB), maar vereisen dat toepassingen specifiek worden gecodeerd om te profiteren van de functies.

  • Secure Key Release kan worden gecombineerd met deze technologieën om ervoor te zorgen dat versleutelde gegevens alleen worden ontsleuteld binnen een TEE, wat bewijst dat het het vereiste beschermingsniveau biedt via een proces dat attestation wordt genoemd.

Geheimenbeheer

U kunt Key Vault gebruiken om tokens, wachtwoorden, certificaten, API-sleutels en andere geheimen veilig op te slaan en te beheren. Gebruik Key Vault als oplossing voor sleutel- en certificaatbeheer. Premium SKU ondersteunt HSM's.

Voorbeeld

In het volgende voorbeeld ziet u versleutelingsoplossingen die u kunt gebruiken voor het beheren van sleutels, certificaten en geheimen.

Diagram met versleutelingsoplossingen voor het beheren van sleutels, certificaten en geheimen.

Controlelijst voor beveiliging

Raadpleeg de volledige set aanbevelingen.

Controlelijst voor beveiliging