Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Van toepassing op:SQL Server
SQL Server gebruikt versleutelingssleutels om gegevens, referenties en verbindingsgegevens te beveiligen die zijn opgeslagen in een serverdatabase. SQL Server heeft twee soorten sleutels: symmetrisch en asymmetrisch. Symmetrische sleutels gebruiken hetzelfde wachtwoord om gegevens te versleutelen en te ontsleutelen. Asymmetrische sleutels gebruiken één wachtwoord voor het versleutelen van gegevens (de openbare sleutel genoemd) en een andere om gegevens te ontsleutelen (de persoonlijke sleutel genoemd).
In SQL Server bevatten versleutelingssleutels een combinatie van openbare, persoonlijke en symmetrische sleutels die worden gebruikt om gevoelige gegevens te beveiligen. De symmetrische sleutel wordt gemaakt tijdens de initialisatie van SQL Server wanneer u het SQL Server-exemplaar voor het eerst start. SQL Server gebruikt de sleutel om gevoelige gegevens te versleutelen die in SQL Server zijn opgeslagen. Het besturingssysteem maakt de publieke en private sleutels aan, en zij beschermen de symmetrische sleutel. Er wordt een openbaar en persoonlijk sleutelpaar gemaakt voor elk SQL Server-exemplaar waarin gevoelige gegevens in een database worden opgeslagen.
Toepassingen voor SQL Server en sleutels voor databases
SQL Server heeft twee primaire toepassingen voor sleutels: een servicehoofdsleutel (SMK) die is gegenereerd op en voor een SQL Server-exemplaar en een databasehoofdsleutel (DMK) die wordt gebruikt voor een database.
Servicehoofdsleutel
De service-masterkey is de basis van de SQL Server-versleutelingshiërarchie. SQL Server genereert de SMK bij de eerste start van de instantie en gebruikt deze om gekoppelde serverwachtwoorden, inloggegevens en de database-hoofdsleutel in elke database te versleutelen.
De SMK wordt versleuteld met behulp van de lokale machinesleutel of de Windows Data Protection API (DPAPI). DPAPI gebruikt een sleutel die is afgeleid van de Windows-inloggegevens van het SQL Server-serviceaccount. Omdat de sleutel op beide manieren beveiligd is, kan de service master key worden geopend door het serviceaccount waaronder deze is aangemaakt, of door een principal die toegang heeft tot de machinegegevens.
SQL Server gebruikt het AES-encryptie-algoritme om de service-mastersleutel en de databasemastersleutel te beschermen. AES verving het 3DES-algoritme dat werd gebruikt in versies vóór SQL Server 2012 (11.x). Nadat je een instantie van de Database Engine hebt geüpgraded vanuit een van die eerdere versies, genereer je de SMK en DMK opnieuw om de hoofdsleutels naar AES te upgraden. Zie ALTER SERVICEALTER SERVICE MASTER KEY (Transact-SQL) en ALTER MASTER KEY (Transact-SQL) voor meer informatie over het opnieuw genereren van de SMK.
Hoofdsleutel van database
De database master key is een symmetrische sleutel die de privésleutels van certificaten en asymmetrische sleutels die in de database aanwezig zijn, beschermt. Het kan ook data versleutelen, maar heeft lengtebeperkingen waardoor het minder praktisch is voor data dan asymmetrische versleuteling. Om automatische ontsleuteling van de databasehoofdsleutel mogelijk te maken, wordt een kopie van de sleutel versleuteld met behulp van de SMK. SQL Server slaat die kopie zowel op in de database waar de sleutel wordt gebruikt als in de master systeemdatabase.
De kopie van de DMK die in de master systeemdatabase is opgeslagen, wordt stilletjes bijgewerkt telkens wanneer de DMK verandert. Je kunt deze standaard wijzigen door de optie DROP ENCRYPTION BY SERVICE MASTER KEY van ALTER MASTER KEY (Transact-SQL) te gebruiken. Een DMK die niet door de service-hoofdsleutel is versleuteld, moet worden geopend met OPEN MASTER KEYOPEN MASTER KEY (Transact-SQL) en een wachtwoord.
Beheer van SQL Server- en databasesleutels
Het beheren van encryptiesleutels houdt in dat je nieuwe databasesleutels maakt, de server- en databasesleutels back-uppt, en weet wanneer en hoe je de sleutels moet herstellen, verwijderen of wijzigen.
Om symmetrische sleutels te beheren, gebruik je de tools die in SQL Server zijn opgenomen om de volgende taken uit te voeren:
- Maak een back-up van de server- en databasesleutels zodat je ze kunt gebruiken om een serverinstallatie te herstellen of als onderdeel van een geplande migratie.
- Een eerder opgeslagen sleutel herstellen naar een database. Het herstellen van de sleutel stelt een nieuwe serverinstantie in staat toegang te krijgen tot bestaande gegevens die deze instantie oorspronkelijk niet heeft versleuteld.
- Verwijder de versleutelde gegevens in een database in het onwaarschijnlijke geval dat u geen toegang meer hebt tot versleutelde gegevens.
- Maak sleutels opnieuw aan en versleutel gegevens opnieuw voor het onwaarschijnlijke geval dat de sleutel wordt gecompromitteerd. Als best practice voor beveiliging kun je de sleutels periodiek opnieuw aanmaken, bijvoorbeeld elke paar maanden, om de server te beschermen tegen aanvallen die proberen de sleutels te ontcijferen.
- Een serverexemplementatie toevoegen aan of verwijderen uit een uitschaalimplementatie van een server waarbij meerdere servers zowel één database als de sleutel delen die omkeerbare versleuteling voor die database biedt.
Belangrijke beveiligingsinformatie
Om toegang te krijgen tot objecten die beveiligd zijn door de service master key, heb je ofwel het SQL Server-serviceaccount nodig dat je hebt gebruikt om de sleutel aan te maken, of het computeraccount (machine) dat gekoppeld is aan het systeem waar je de sleutel hebt aangemaakt. Je kunt het SQL Server-serviceaccount of het computeraccount wijzigen zonder de toegang tot de sleutel te verliezen. Als je echter beide accounts verandert, verlies je de toegang tot de service master key. Als je de toegang tot de service master key verliest zonder een van deze twee elementen, kun je geen data en objecten decrypten die de originele sleutel heeft versleuteld.
Je kunt geen verbindingen herstellen die zijn beveiligd met de service master key tenzij je die sleutel hebt.
Om toegang te krijgen tot objecten en gegevens die beveiligd zijn met de database master key, heb je alleen het wachtwoord nodig dat helpt de sleutel te beveiligen.
Waarschuwing
Als je alle toegang verliest tot de sleutels die in dit artikel worden beschreven, verlies je ook de toegang tot de objecten, verbindingen en data die door die sleutels zijn beveiligd. Je kunt de service master key herstellen zoals beschreven in Restore the service master key, of je kunt teruggaan naar het oorspronkelijke versleutelingssysteem om de toegang terug te krijgen. Er is geen achterdeurtje om de toegang terug te krijgen.
Verwante onderwerpen
- EKM (Extensible Key Management)
- Uitbreidbaar sleutelbeheer met behulp van Azure Key Vault (SQL Server)
- TDE inschakelen op SQL Server met behulp van EKM
- Maak een database hoofdsleutel aan
- Maak een back-up van een database hoofdsleutel
- Herstel een database-hoofdsleutel
- Maak een back-up van de service-hoofdsleutel
- Herstel de hoofdsleutel van de service
- Maak identieke symmetrische sleutels op twee servers
- Versleutel een kolom met gegevens
- TDE (Transparent Data Encryption)
- CREATE MASTER KEY (Transact-SQL)
- ALTER SERVICE ALTER SERVICE MASTER 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