Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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. Encryptiesleutels voor gegevens- en sleutelversleuteling worden aangemaakt in tijdelijke sleutelcontainers, en je moet ze uit een provider exporteren voordat je ze in de database opslaat. Deze aanpak stelt SQL Server in staat sleutelbeheer te beheren, inclusief een encryptiesleutelhiërarchie en sleutelback-up.
Met de groeiende vraag naar naleving van regelgeving en bezorgdheid over gegevensprivacy maken organisaties gebruik van encryptie als een manier om een gelaagde verdedigingsoplossing te bieden. Deze aanpak is vaak onpraktisch met behulp van alleen hulpprogramma's voor databaseversleutelingsbeheer. Hardwareleveranciers leveren producten die enterprise key management ondersteunen door gebruik te maken van hardware security modules (HSM's). HSM-apparaten slaan versleutelingssleutels op hardware- of softwaremodules op. Deze aanpak is veiliger omdat de encryptiesleutels niet bij de versleutelde data zitten.
Verschillende leveranciers bieden HSM's aan voor zowel sleutelbeheer als encryptieversnelling. 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 een HSM biedt. Leveranciers kunnen ook beheersoftware aanbieden voor HSM's, sleutelconfiguratie en sleuteltoegang.
HSM-implementaties verschillen per leverancier, en het gebruik ervan met SQL Server vereist een gemeenschappelijke interface. Hoewel MSCAPI deze interface biedt, ondersteunt het 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- en HSM-leveranciers hun modules registreren in SQL Server. Nadat een module is geregistreerd, kunnen gebruikers van SQL Server de encryptiesleutels gebruiken die in de module zijn opgeslagen. SQL Server kan vervolgens toegang krijgen tot de geavanceerde encryptiefuncties die deze modules ondersteunen, zoals bulkencryptie en -ontsleuteling, en sleutelbeheerfuncties zoals sleutelveroudering en sleutelrotatie.
Wanneer je SQL Server draait in een Azure VM, kan SQL Server sleutels gebruiken die zijn opgeslagen in Azure Key Vault. Voor meer informatie, zie Extensible Key Management using Azure Key Vault (SQL Server).
EKM-configuratie
Uitbreidbare sleutelbeheer is niet beschikbaar in elke editie van SQL Server. Voor een lijst van functies die door de edities in SQL Server worden ondersteund, zie Edities en ondersteunde functies van SQL Server 2025.
Extensible Key Management is standaard uitgeschakeld. Om deze functie in te schakelen, gebruik je de sp_configure (Transact-SQL) stored procedure met de volgende optie en waarde:
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
Opmerking
Als je sp_configure voor deze optie gebruikt op edities van SQL Server die EKM niet ondersteunen, krijg je een foutmelding.
Om de functie uit te schakelen, zet je de waarde op 0. Zie sp_configure (Transact-SQL) voor meer informatie over het instellen van serveropties.
Hoe gebruik je EKM
SQL Server Extensible Key Management stelt je in staat de encryptiesleutels die de databasebestanden beschermen op te slaan in een off-box apparaat zoals een smartcard, USB-apparaat of EKM/HSM-module. Het beschermt ook data tegen databasebeheerders, behalve voor leden van de sysadmin vaste serverrol. Je kunt data versleutelen door encryptiesleutels te gebruiken waartoe alleen de databasegebruiker toegang heeft op de externe EKM/HSM-module.
Uitbreidbaar sleutelbeheer biedt ook de volgende voordelen:
- Een extra autorisatiecontrole, die scheiding van taken mogelijk maakt.
- Hogere prestaties voor hardware-gebaseerde encryptie en ontsleuteling.
- Genereren van externe versleutelingssleutels.
- Externe opslag van encryptiesleutels, die data en sleutels fysiek scheidt.
- Ophalen van versleutelingssleutels.
- Externe retentie van versleutelingssleutels, wat rotatie van versleutelingssleutels mogelijk maakt.
- 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.
Authenticatie met een EKM-apparaat
Een EKM-module kan meer dan één type verificatie ondersteunen. Elke provider biedt slechts één type authenticatie voor SQL Server. Dat wil zeggen, als de module zowel basis- als andere authenticatietypen ondersteunt, wordt het ene of het ander beschikbaar gesteld, maar niet beide.
EKM-apparaatspecifieke basisauthenticatie met behulp van een gebruikersnaam en wachtwoord
Voor EKM-modules die basisauthenticatie ondersteunen door gebruik te maken van een gebruikersnaam-wachtwoord-paar, biedt SQL Server transparante authenticatie door gebruik te maken van inloggegevens. Zie Referenties (Database Engine) voor meer informatie over referenties.
Je kunt inloggegevens aanmaken voor een EKM-provider en deze koppelen aan een login, hetzij een Windows- of een SQL Server-account, om per login toegang te krijgen tot een EKM-module. Het identity-veld van het credential bevat de gebruikersnaam, en het secret-veld bevat een wachtwoord om verbinding te maken met een EKM-module.
Als er geen login-mapped credential bestaat voor de EKM-provider, gebruikt SQL Server het credential dat aan het serviceaccount is gekoppeld.
Een login kan meerdere inloggegevens aan zich gekoppeld hebben, zolang elk wordt gebruikt voor een aparte EKM-provider. Er mag slechts één gemapte referentie per EKM-provider per login zijn. Je kunt dezelfde inloggegevens aan andere logins koppelen.
Andere typen EKM apparaatspecifieke authenticatie
Voor EKM-modules die andere authenticatie gebruiken dan Windows of gebruikersnaam- en wachtwoordcombinaties, moet je authenticatie onafhankelijk van SQL Server uitvoeren.
Versleuteling en ontsleuteling door een EKM-apparaat
Gebruik de volgende functies en mogelijkheden om data te versleutelen en te ontsleutelen met behulp van symmetrische en asymmetrische sleutels:
| Functie of kenmerk | Reference |
|---|---|
| Symmetrische sleutelversleuteling | CREATE SYMMETRIC KEY (Transact-SQL) |
| Asymmetrische sleutelversleuteling | CREATE ASYMMETRIC KEY (Transact-SQL) |
EncryptByKey(key_guid, 'cleartext', ...) |
ENCRYPTBYKEY (Transact-SQL) |
DecryptByKey(ciphertext, ...) |
DECRYPTBYKEY (Transact-SQL) |
EncryptByAsmKey(key_guid, 'cleartext') |
ENCRYPTBYASYMKEY (Transact-SQL) |
DecryptByAsmKey(ciphertext) |
DECRYPTBYASYMKEY (Transact-SQL) |
Databasesleutelversleuteling met 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.
Het volgende voorbeeld creëert een database-symmetrische sleutel en versleutelt deze door gebruik te maken van een sleutel op een EKM-module.
CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO
-- Open the database key.
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1;
Voor meer informatie over database- en serversleutels in SQL Server, zie SQL Server en database-encryptiesleutels (Database Engine).
Opmerking
Je kunt niet één EKM-sleutel versleutelen met een andere EKM-sleutel.
SQL Server ondersteunt het ondertekenen van modules met asymmetrische sleutels die zijn gegenereerd door een EKM-provider niet.
Verwante onderwerpen
- serverconfiguratieoptie voor ingeschakelde EKM-provider
- TDE inschakelen op SQL Server met behulp van EKM
- Uitbreidbaar sleutelbeheer met behulp van Azure Key Vault (SQL Server)
- SQL Server- en database-versleutelingssleutels (Database Engine)
- CREATE CRYPTOGRAPHIC PROVIDER (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)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- ALTER ASYMMETRIC KEY (Transact-SQL)
- DROP ASYMMETRIC KEY (Transact-SQL)
- CREATE SYMMETRIC KEY (Transact-SQL)
- ALTER SYMMETRIC KEY (Transact-SQL)
- DROP SYMMETRIC KEY (Transact-SQL)
- OPEN SYMMETRIC KEY (Transact-SQL)
- Een back-up maken van SSRS-versleutelingssleutels (SQL Server Reporting Services) en deze herstellen
- Verwijder en maak encryptiesleutels opnieuw aan (Configuration Manager)
- Versleutelingssleutels toevoegen en verwijderen voor uitschaalimplementatie
- Maak een back-up van een service-hoofdsleutel
- Herstel een service-hoofdsleutel
- Maak een database hoofdsleutel aan
- Maak een back-up van een database hoofdsleutel
- Herstel een database-hoofdsleutel
- Maak identieke symmetrische sleutels op twee servers