Delen via


Aanbevelingen voor gegevensversleuteling

Is van toepassing op de aanbeveling van de bronarchitected Framework Security-controlelijst:

SE:07 Versleutel gegevens met behulp van moderne industriestandaardmethoden om vertrouwelijkheid en integriteit te beschermen. Versleutelingsbereik uitlijnen met gegevensclassificaties; prioriteit geven aan systeemeigen platformversleutelingsmethoden.

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

In deze handleiding worden de aanbevelingen voor het versleutelen en beveiligen van uw gegevens beschreven. Versleuteling is het proces van 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

Voorwaarde Definitie
Certificaten Digitale bestanden die de openbare sleutels bevatten voor versleuteling of ontsleuteling.
Coderingssuite Een set algoritmen die worden gebruikt voor het versleutelen en ontsleutelen van informatie 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 hardwaregebaseerde, geteste vertrouwde uitvoeringsomgeving.
Ontsleuteling Het proces waarin 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.
Toetsen Een geheime code die wordt gebruikt voor het vergrendelen of ontgrendelen van versleutelde gegevens.
Handtekening Een versleutelde zegel van verificatie op gegevens.
Ondertekenen Het proces van het verifiëren van de echtheid van gegevens met behulp van een handtekening.
X.509 Een standaard waarmee de indeling van certificaten van openbare sleutels wordt gedefinieerd.

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 dat kopieën van de gegevens in die regio worden onderhouden.

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 externe gebruikersgegevens of werknemersgegevens zijn.

Versleutelingsmechanismen moeten de gegevens waarschijnlijk in drie fasen beveiligen:

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

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

  • Gegevens die onderweg zijn, zijn informatie die wordt overgedragen tussen onderdelen, locaties of programma's.

    Een voorbeeld van het beveiligen van gegevens tijdens overdracht is het versleutelen van gegevens met TLS, zodat pakketten die worden verplaatst via openbare en privénetwerken 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 versleutelen met vertrouwelijke 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.

Versleutelingsvereisten bepalen

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 onderweg zijn? Welke Azure-functies kunnen 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 te verdelen, omdat er aanzienlijke compromissen zijn.

Compromis: elke versleutelingshop kan leiden tot prestatielatentie. Operationele complexiteit kan optreden in relatie tot probleemoplossing en waarneembaarheid. Herstel kan een uitdaging zijn.

Beperk deze compromissen. Verwacht afwegingen 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 mogen niet uw enige vorm van verdediging zijn. Implementeer processen voor preventie van gegevensdiefstal, juiste testmethoden en anomaliedetectie.

Zie Aanbevelingen voor gegevensclassificatie voor meer informatie over classificatie.

Systeemeigen versleutelingsmechanismen gebruiken

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

Het wordt ten zeerste aanbevolen dat u platformmogelijkheden niet uitschakelt om uw eigen functionaliteit te ontwikkelen. Platformversleutelingsfuncties maken gebruik van moderne industriestandaarden, worden ontwikkeld door experts en worden sterk getest.

Als u voor zeldzame gevallen de door het platform geleverde versleuteling moet vervangen, evalueert u de voor- en nadelen en gebruikt u cryptografische algoritmen van 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.

Een benadering voor versleutelingssleutels kiezen

Azure-services maken standaard 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 wilt. Ontsleuteling is een aantrekkelijke reden om door de klant beheerde sleutels te gebruiken.

U moet sterke versleuteling koppelen met sterke ontsleuteling. Vanuit een beveiligingsperspectief is het beveiligen van een ontsleutelingssleutel belangrijk omdat rotatie een veelgebruikte manier is om de straalstraal te beheren als een sleutel wordt aangetast. Bewaak de toegang om afwijkende toegang en activiteiten te detecteren.

Sla sleutels gescheiden van versleutelde gegevens op. Deze ontkoppeling helpt ervoor te zorgen dat het compromis 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. Sla zeer gevoelige gegevens op in een beheerde HSM (Hardware Security Module).

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

Standaardversleutelingsalgoritmen gebruiken

Gebruik cryptografiealgoritmen die goed zijn ingesteld en voldoen aan industriestandaarden 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 versleuteling. Entropie maakt het algoritme sterk en maakt het moeilijk voor een aanvaller om informatie te extraheren. Bepaal de tolerantiedrempels van entropie. Versleutelingsprocedures zijn processorintensief. Zoek het juiste evenwicht, zodat u de rekencycli die zijn besteed aan de versleuteling maximaliseer, ten opzichte van de algemene prestatiedoelen van de rekenaanvraag.

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

Hashes en controlesommen gebruiken

Hashing is doorgaans een techniek voor foutdetectie. U kunt hashing ook 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-serie hash-algoritmen, zoals SHA-256, SHA-384 of SHA-512.

Data-at-rest versleutelen

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

  • Versleutel gegevens met behulp van systeemeigen opties die worden geleverd voor opslagservices, gegevensarchieven en andere resources die worden gebruikt om gegevens te behouden. Versleutel deze gegevens zelfs als u gegevens in deze opslagservices of resources slechts tijdelijk opslaat. Versleutel uw back-upgegevens ook 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. Gegevens in twee of meer lagen versleutelen 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 nodig tot beide sleutels. Als de ene sleutel is aangetast, worden de gegevens nog steeds beveiligd met de andere sleutel. Deze techniek is gericht op het verhogen van de kosten van aanvallers.

    U kunt ook platformversleuteling gebruiken om gegevens dubbel te versleutelen. Met platformversleuteling worden de opslagmedia op infrastructuurniveau beschermd en past u een andere versleutelingslaag toe op gegevensniveau. Een message broker-service heeft bijvoorbeeld platformversleuteling via door Microsoft beheerde sleutels waarmee de berichtenpijp wordt beschermd. 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.

  • Op identiteit gebaseerde toegangsbeheer gebruiken 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 minimale bevoegdheden. Scheid de gegevens van de sleutels tot de gegevens.

  • Sla beperkte hoeveelheid gegevens op, zodat u alleen versleutelt wat nodig is. Uw gegevens mogen niet langer leven dan uw versleutelingscyclus. Wanneer gegevens niet meer nodig zijn, verwijdert u de versleutelde gegevens zonder cycli voor het ontsleutelen van uitgaven.

Actieve gegevens versleutelen

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

    Gebruik geen versies lager 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 HSTS-beleid (Http Strict Transport Security), zodat HTTPS-transport wordt onderhouden en niet tijdens de communicatie naar HTTP wordt weggestreept. Dit beleid beschermt tegen man-in-the-middle-aanvallen.

    Ondersteuning voor HSTS is voor nieuwere versies. U kunt compatibiliteit met eerdere versies met oudere browsers verbreken.

    Notitie

    U kunt protocollen ook 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-toepassing 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 symmetrische blokcodering. AES-128, AES-192 en AES-256 zijn aanvaardbaar.

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

    Notitie

    Als u certificaatpinning gebruikt, moet u vertrouwd raken met de flexibiliteits- en certificaatbeheerbeperkingen.

    In uw werkstroom mogen ongeldige certificaten niet worden geaccepteerd in de omgeving. Het proces voor het vastmaken van certificaten moet certificaten valideren en die validatiecontrole afdwingen. Controleer de toegangslogboeken om ervoor te zorgen dat de ondertekeningssleutel met de juiste machtigingen wordt gebruikt.

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

    Compromis: het certificeringsvalidatieproces kan lastig zijn en omvat meestal een CA. Bepaal de gegevens die u moet versleutelen met certificaten. Bepaal voor andere typen communicatie of u gelokaliseerde compenserende besturingselementen kunt implementeren om beveiliging toe te voegen.

    Een manier om besturingselementen te lokaliseren is met wederzijdse TLS (mTLS). Er wordt een vertrouwensrelatie in beide richtingen tussen de client en de server tot stand brengt. 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. Het compromis 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 het IP-adres ook verbergen tussen de server en de bestemming. Tijdens dit proces worden gegevens die onderweg zijn ook tweemaal versleuteld.

    Compromis: vergeleken met enkele VPN-instellingen zijn dubbele VPN-instellingen vaak duurder en verbindingen zijn vaak trager.

  • Logboekregistratie- en bewakingsprocessen implementeren. Houd toegangsbeheerbronnen bij die informatie over clients opslaan, zoals hun bron-IP, poort en protocol. Gebruik deze informatie om afwijkingen te detecteren.

Gegevens versleutelen die in gebruik zijn

Voor hoge beveiligingsworkloads worden segmentatie, isolatie en minimale bevoegdheden aanbevolen voor ontwerppatronen.

In de context van in-use-beveiliging kunnen hardwaregrenzen versleuteling van gegevens vereisen terwijl deze in gebruik zijn 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 vereisten voor beveiliging of regelgeving kunnen ook hardwaregebaseerde, cryptografische ondertekende bewijzen vereisen dat gegevens worden versleuteld terwijl ze in gebruik zijn. Dit kan worden verkregen via attestation. Confidential Computing is een dergelijke technologie die ondersteuning biedt voor de vereiste. Specifieke services in Azure bieden de mogelijkheid om gegevens te beveiligen terwijl deze worden berekend. Zie Azure-facilitering: Azure Confidential Compute voor meer informatie.

Houd rekening met de end-endlevenscyclus van gegevens die u beveiligt door meerdere systemen in de levensduur, zorg ervoor dat alle onderdelen van een oplossing de vereiste beveiligingsniveaus kunnen bieden of ervoor zorgen 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

Sla door de klant beheerde sleutels op in Azure Key Vault of in een door 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 beheer op basis van identiteit 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 verbetert het aanbod verder door vertrouwelijke computing-mogelijkheden en Secure Key Release toe te passen die een beleid ondersteunt om ervoor te zorgen dat een sleutel alleen wordt vrijgegeven aan een workload die cryptografisch kan bewijzen dat deze wordt uitgevoerd in een TRUSTED Execution Environment (TEE).

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

    Zie Storage-versleuteling voor meer informatie.

  • Azure Virtual Machines bevat 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 en versleuteling aan de serverzijde op de host kunnen gegevens alleen beveiligen nadat deze zijn geëxporteerd. U moet echter gegevens beveiligen 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 versleutelingsopties voor beheerde schijven voor meer informatie.

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

Beveiliging tegen gegevens in transit

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

Beveiliging voor in gebruik van gegevens

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

  • Vertrouwelijke virtuele machines bieden een volledige virtuele machine die wordt uitgevoerd in een TEE, het geheugen en het uitvoeren van CPU-inhoud van de virtuele machine worden versleuteld met een eenvoudige 'lift & shift'-benadering voor het verplaatsen van ongewijzigde toepassingen met hoge beveiligingsvereisten naar Azure. Elke vertrouwelijke Azure-VM heeft een eigen toegewezen TPM (Virtual 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 in Azure Container Instances (ACI) bieden de mogelijkheid om niet-gewijzigde containers in een TEE uit te voeren en te beheren, zodat klanten kunnen profiteren van in-use-beveiliging. Containeraanbiedingen zijn gebouwd op vertrouwelijke virtuele machines en profiteren van dezelfde beveiliging.

  • Application Enclave-oplossingen zijn speciaal gebouwde toepassingen die gebruikmaken van specifieke CPU-extensies die worden aangeboden door SKU's van virtuele machines 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 beveiligingsniveau biedt via een proces dat attestation wordt genoemd.

Geheimenbeheer

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

Opmerking

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

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

Controlelijst voor beveiliging

Raadpleeg de volledige set aanbevelingen.

Controlelijst voor beveiliging