Share via


Uitbreidbaar sleutelbeheer (Extensible Key Management, EKM)

Van toepassing op:SQL Server

SQL Server biedt mogelijkheden voor gegevensversleuteling samen met Extensible Key Management (EKM), met behulp van de Microsoft Cryptographic API (MSCAPI) provider voor versleuteling en sleutelgeneratie. Versleutelingssleutels voor gegevens- en sleutelversleuteling worden gemaakt in tijdelijke sleutelcontainers en moeten worden geëxporteerd van een provider voordat ze in de database worden opgeslagen. Met deze methode kan het sleutelbeheer, dat een versleutelingssleutelhiërarchie en sleutelback-up omvat, door SQL Server worden afgehandeld.

Met de groeiende vraag naar naleving van regelgeving en bezorgdheid voor gegevensprivacy, maken organisaties gebruik van versleuteling als een manier om een diepgaande verdedigingsoplossing te bieden. Deze aanpak is vaak onpraktisch met behulp van alleen hulpprogramma's voor databaseversleutelingsbeheer. Hardwareleveranciers bieden producten die bedrijfssleutelbeheer aanpakken met behulp van Hardware Security Modules (HSM). HSM-apparaten slaan versleutelingssleutels op hardware- of softwaremodules op. Dit is een veiligere oplossing omdat de versleutelingssleutels niet samen met de versleutelde gegevens worden opgeslagen.

Een aantal leveranciers bieden HSM voor zowel sleutelbeheer als versleutelingsversnelling. HSM-apparaten gebruiken hardware-interfaces met een serverproces als intermediair tussen een toepassing en een HSM. Leveranciers implementeren ook MSCAPI-providers via hun modules, die mogelijk hardware of software zijn. MSCAPI biedt vaak slechts een subset van de functionaliteit die wordt aangeboden door een HSM. Leveranciers kunnen ook beheersoftware bieden voor HSM, sleutelconfiguratie en toegang tot sleutels.

HSM-implementaties variëren van leverancier tot leverancier en voor gebruik met SQL Server is een gemeenschappelijke interface vereist. Hoewel de MSCAPI deze interface biedt, ondersteunt deze slechts een subset van de HSM-functies. Het heeft ook andere beperkingen, zoals het onvermogen om systeemeigen symmetrische sleutels te behouden en een gebrek aan sessiegerichte ondersteuning.

Met sql Server Extensible Key Management kunnen externe EKM-/HSM-leveranciers hun modules registreren in SQL Server. Bij registratie kunnen SQL Server-gebruikers de versleutelingssleutels gebruiken die zijn opgeslagen in EKM-modules. Hierdoor heeft SQL Server toegang tot de geavanceerde versleutelingsfuncties die deze modules ondersteunen, zoals bulkversleuteling en ontsleuteling, en sleutelbeheerfuncties zoals sleutelveroudering en sleutelrotatie.

Bij het uitvoeren van SQL Server in een Azure-VM kan SQL Server sleutels gebruiken die zijn opgeslagen in Azure Key Vault. Zie Extensible Key Management met Behulp van Azure Key Vault (SQL Server) voor meer informatie.

EKM-configuratie

Extensible Key Management is niet beschikbaar in elke editie van Microsoft SQL Server. Zie Functies die worden ondersteund door de edities van SQL Server 2016voor een lijst met functies die worden ondersteund door de edities van SQL Server 2016.

Extensible Key Management is standaard uitgeschakeld. Als u deze functie wilt inschakelen, gebruikt u de opdracht sp_configure met de volgende optie en waarde, zoals in het volgende voorbeeld:

sp_configure 'show advanced', 1  
GO  
RECONFIGURE  
GO  
sp_configure 'EKM provider enabled', 1  
GO  
RECONFIGURE  
GO  

Opmerking

Als u de opdracht sp_configure voor deze optie gebruikt in edities van SQL Server die geen ondersteuning bieden voor EKM, krijgt u een foutmelding.

Als u de functie wilt uitschakelen, stelt u de waarde in op 0. Zie sp_configure (Transact-SQL) voor meer informatie over het instellen van serveropties.

EKM gebruiken

Met SQL Server Extensible Key Management kunnen de versleutelingssleutels die de databasebestanden beveiligen, worden opgeslagen op een off-box-apparaat, zoals een smartcard, EEN USB-apparaat of een EKM/HSM-module. Hiermee kunt u ook gegevensbeveiliging van databasebeheerders (behalve leden van de sysadmin-groep) inschakelen. Gegevens kunnen worden versleuteld met behulp van versleutelingssleutels waartoe alleen de databasegebruiker toegang heeft op de externe EKM/HSM-module.

Uitbreidbaar sleutelbeheer biedt ook de volgende voordelen:

  • Aanvullende autorisatiecontrole (scheiding van taken mogelijk maken).

  • Hogere prestaties voor op hardware gebaseerde versleuteling/ontsleuteling.

  • Genereren van externe versleutelingssleutels.

  • Opslag van externe versleutelingssleutels (fysieke scheiding van gegevens en sleutels).

  • Ophalen van versleutelingssleutels.

  • Bewaren van externe versleutelingssleutels (maakt rotatie van versleutelingssleutels mogelijk).

  • Eenvoudiger herstel van versleutelingssleutels.

  • Beheerbare distributie van versleutelingssleutels.

  • Veilige verwijdering van versleutelingssleutels.

U kunt Extensible Key Management gebruiken voor een combinatie van gebruikersnaam en wachtwoord of andere methoden die zijn gedefinieerd door het EKM-stuurprogramma.

Waarschuwing

Voor het oplossen van problemen kan de technische ondersteuning van Microsoft de versleutelingssleutel van de EKM-provider vereisen. Mogelijk moet u ook toegang krijgen tot hulpprogramma's of processen van leveranciers om een probleem op te lossen.

Verificatie met een EKM-apparaat

Een EKM-module kan meer dan één type verificatie ondersteunen. Elke provider maakt slechts één type verificatie beschikbaar voor SQL Server, dat wil gezegd als de module ondersteuning biedt voor basis- of andere verificatietypen, wordt er een of de andere weergegeven, maar niet beide.

EKM Device-Specific basisverificatie met behulp van gebruikersnaam/wachtwoord

Voor die EKM-modules die basisverificatie ondersteunen met behulp van een gebruikersnaam/wachtwoordpaar , biedt SQL Server transparante verificatie met behulp van referenties. Zie Referenties (Database Engine) voor meer informatie over referenties.

Er kunnen referentiegegevens worden aangemaakt voor een EKM-provider en toegewezen aan een aanmelding (zowel Windows- als SQL Server-accounts) om per aanmelding toegang te krijgen tot een EKM-module. Het identiteitsveld van de referentie bevat de gebruikersnaam; het geheime veld bevat een wachtwoord om verbinding te maken met een EKM-module.

Als er geen aanmeldingsreferentie is toegewezen voor de EKM-provider, wordt de referentie gebruikt die is toegewezen aan het SQL Server-serviceaccount.

Aan een login kunnen meerdere referenties zijn toegewezen, zolang ze worden gebruikt voor verschillende EKM-providers. Er mag slechts één gemapte referentie per EKM-provider per login zijn. Dezelfde referentie kan worden toegewezen aan andere aanmeldingen.

Andere typen EKM-apparaatspecifieke authenticatie

Voor EKM-modules met andere verificatie dan Windows- of combinaties van gebruikers-/wachtwoord moet verificatie onafhankelijk van SQL Server worden uitgevoerd.

Versleuteling en ontsleuteling door een EKM-apparaat

U kunt de volgende functies en functies gebruiken om gegevens te versleutelen en ontsleutelen met behulp van symmetrische en asymmetrische sleutels:

Functie of kenmerk Reference
Symmetrische sleutelversleuteling SYMMETRISCHE SLEUTEL (Transact-SQL) maken
Asymmetrische sleutel-encryptie ASYMMETRISCHE SLEUTEL (Transact-SQL) maken
EncryptByKey(key_guid, 'cleartext', ...) ENCRYPTBYKEY (Transact-SQL)
DecryptByKey(coderingstekst, ...) DECRYPTBYKEY (Transact-SQL)
EncryptByAsmKey(key_guid, 'platte tekst') ENCRYPTBYASYMKEY (Transact-SQL)
DecryptByAsmKey (coderingstekst) DECRYPTBYASYMKEY (Transact-SQL)

Versleuteling van databasesleutels door EKM-sleutels

SQL Server kan EKM-sleutels gebruiken om andere sleutels in een database te versleutelen. U kunt zowel symmetrische als asymmetrische sleutels maken en gebruiken op een EKM-apparaat. U kunt systeemeigen symmetrische sleutels (niet-EKM) versleutelen met asymmetrische EKM-sleutels.

In het volgende voorbeeld wordt een symmetrische databasesleutel gemaakt en versleuteld met behulp van een sleutel in een EKM-module.

CREATE SYMMETRIC KEY Key1  
WITH ALGORITHM = AES_256  
ENCRYPTION BY EKM_AKey1;  
GO  
--Open database key  
OPEN SYMMETRIC KEY Key1  
DECRYPTION BY EKM_AKey1  

Zie SQL Server en Database Encryption Keys (Database Engine) voor meer informatie over database- en serversleutels in SQL Server.

Opmerking

U kunt één EKM-sleutel niet versleutelen met een andere EKM-sleutel.

SQL Server biedt geen ondersteuning voor ondertekeningsmodules met asymmetrische sleutels die zijn gegenereerd door de EKM-provider.

Serverconfiguratieoptie voor EKM-provider ingeschakeld

TDE inschakelen op SQL Server met behulp van EKM

Uitbreidbaar sleutelbeheer met behulp van Azure Key Vault (SQL Server)

Zie ook

CRYPTOGRAFISCHE PROVIDER MAKEN (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
sys.cryptographic_providers (Transact-SQL)
sys.dm_cryptographic_provider_sessions (Transact-SQL)
sys.dm_cryptographic_provider_properties (Transact-SQL)
sys.dm_cryptographic_provider_algorithms (Transact-SQL)
sys.dm_cryptographic_provider_keys (Transact-SQL)
sys.credentials (Transact-SQL)
CREATE CREDENTIAL (Transact-SQL)
ALTER LOGIN (Transact-SQL)
ASYMMETRISCHE SLEUTEL (Transact-SQL) maken
ASYMMETRISCHE SLEUTEL (Transact-SQL)
ASYMMETRISCHE SLEUTEL (Transact-SQL)
SYMMETRISCHE SLEUTEL (Transact-SQL) maken
SYMMETRISCHE SLEUTEL WIJZIGEN (Transact-SQL)
DROP SYMMETRISCHE TOETS (Transact-SQL)
OPENEN SYMMETRISCHE SLEUTEL (Transact-SQL)
Back-ups maken van Reporting Services-versleutelingssleutels en deze herstellen
Versleutelingssleutels verwijderen en opnieuw maken (SSRS Configuration Manager)
Versleutelingssleutels toevoegen en verwijderen voor Scale-Out-implementatie (SSRS Configuration Manager)
Een back-up maken van de servicehoofdsleutel
De servicehoofdsleutel herstellen
Een databasehoofdsleutel maken
Een back-up maken van een databasehoofdsleutel
Een databasehoofdsleutel herstellen
Identieke symmetrische sleutels maken op twee servers