Delen via


SQL Server- en databaseversleutelingssleutels (database-engine)

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. De sleutel wordt door SQL Server gebruikt om gevoelige gegevens te versleutelen die zijn opgeslagen in SQL Server. Openbare en persoonlijke sleutels worden gemaakt door het besturingssysteem en worden gebruikt om de symmetrische sleutel te beveiligen. 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 databasesleutels

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.

Hoofdsleutel van service

De hoofdsleutel van de service is de hoofdmap van de SQL Server-versleutelingshiërarchie. De SMK wordt automatisch gegenereerd wanneer het SQL Server-exemplaar voor het eerst wordt gestart en wordt gebruikt voor het versleutelen van een gekoppeld serverwachtwoord, referenties en de hoofdsleutel van de database in elke database. De SMK wordt versleuteld met behulp van de lokale computersleutel met behulp van de Windows Data Protection API (DPAPI). De DPAPI gebruikt een sleutel die is afgeleid van de Windows-referenties van het SQL Server-serviceaccount en de referenties van de computer. De hoofdsleutel van de service kan alleen worden ontsleuteld door het serviceaccount waaronder deze is gemaakt of door een principal die toegang heeft tot de referenties van de computer.

De servicehoofdsleutel kan alleen worden geopend door het Windows-serviceaccount waaronder deze is gemaakt of door een principal met toegang tot zowel de naam van het serviceaccount als het bijbehorende wachtwoord.

SQL Server maakt gebruik van het AES-versleutelingsalgoritmen om de servicehoofdsleutel (SMK) en de databasehoofdsleutel (DMK) te beveiligen. AES is een nieuwere versleutelingsalgoritmen dan 3DES die in eerdere versies worden gebruikt. Na het upgraden van een exemplaar van de database-engine naar SQL Server moeten de SMK en DMK opnieuw worden gegenereerd om de hoofdsleutels te upgraden naar AES. Zie ALTER 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 hoofdsleutel van de database is een symmetrische sleutel die wordt gebruikt voor het beveiligen van de persoonlijke sleutels van certificaten en asymmetrische sleutels die aanwezig zijn in de database. Het kan ook worden gebruikt om gegevens te versleutelen, maar heeft lengtebeperkingen die het minder praktisch maken voor gegevens dan het gebruik van een asymmetrische sleutel. Als u de automatische ontsleuteling van de databasehoofdsleutel wilt inschakelen, wordt een kopie van de sleutel versleuteld met behulp van de SMK. Deze wordt opgeslagen in zowel de database waar deze wordt gebruikt als in de hoofdsysteemdatabase .

De kopie van de DMK die in de hoofdsysteemdatabase is opgeslagen, wordt op de achtergrond bijgewerkt wanneer de DMK wordt gewijzigd. Deze standaardwaarde kan echter worden gewijzigd met behulp van de optie DROP ENCRYPTION BY SERVICE MASTER KEY van de instructie ALTER MASTER KEY . Een DMK die niet is versleuteld door de hoofdsleutel van de service, moet worden geopend met behulp van de INSTRUCTIE OPEN MASTER KEY en een wachtwoord.

SQL Server- en databasesleutels beheren

Het beheren van versleutelingssleutels bestaat uit het maken van nieuwe databasesleutels, het maken van een back-up van de server- en databasesleutels en het weten wanneer en hoe u de sleutels kunt herstellen, verwijderen of wijzigen.

Als u symmetrische sleutels wilt beheren, kunt u de hulpprogramma's in SQL Server gebruiken om het volgende te doen:

  • Maak een back-up van een kopie van de server- en databasesleutels, zodat u deze kunt gebruiken om een serverinstallatie te herstellen of als onderdeel van een geplande migratie.

  • Een eerder opgeslagen sleutel herstellen naar een database. Hierdoor kan een nieuw serverexemplaren toegang krijgen tot bestaande gegevens die niet oorspronkelijk zijn versleuteld.

  • Verwijder de versleutelde gegevens in een database in het onwaarschijnlijke geval dat u geen toegang meer hebt tot versleutelde gegevens.

  • Maak sleutels opnieuw en versleutel gegevens opnieuw in het onwaarschijnlijke geval dat de sleutel is aangetast. Als best practice voor beveiliging moet u de sleutels regelmatig (bijvoorbeeld om de paar maanden) opnieuw maken 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

Voor toegang tot objecten die zijn beveiligd met de hoofdsleutel van de service, is het SQL Server-serviceaccount vereist dat is gebruikt om de sleutel of het computeraccount (computeraccount) te maken. Dat wil gezegd, het computeraccount dat is gekoppeld aan het systeem waarop de sleutel is gemaakt. U kunt het SQL Server-serviceaccount of het computeraccount wijzigen zonder toegang tot de sleutel te verliezen. Als u echter beide wijzigt, verliest u de toegang tot de hoofdsleutel van de service. Als u geen toegang meer hebt tot de hoofdsleutel van de service zonder een van deze twee elementen, kunt u geen gegevens en objecten ontsleutelen die zijn versleuteld met behulp van de oorspronkelijke sleutel.

Verbindingen die zijn beveiligd met de hoofdsleutel van de service kunnen niet worden hersteld zonder de servicehoofdsleutel.

Toegang tot objecten en gegevens die zijn beveiligd met de hoofdsleutel van de database, vereisen alleen het wachtwoord dat wordt gebruikt om de sleutel te beveiligen.

Waarschuwing

Als u alle toegang tot de sleutels die eerder zijn beschreven, verliest u de toegang tot de objecten, verbindingen en gegevens die door deze sleutels zijn beveiligd. U kunt de hoofdsleutel van de service herstellen, zoals beschreven in de koppelingen die hier worden weergegeven, of u kunt teruggaan naar het oorspronkelijke versleutelingssysteem om de toegang te herstellen. Er is geen 'achterdeur' om de toegang te herstellen.

In deze sectie

Extensible Key Management (EKM)
Hierin wordt uitgelegd hoe u sleutelbeheersystemen van derden gebruikt met SQL Server.

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

TDE inschakelen op SQL Server met behulp van EKM

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

Een kolom met gegevens versleutelen

CREATE MASTER KEY (Transact-SQL)

ALTER SERVICE MASTER KEY (Transact-SQL)

Een databasehoofdsleutel herstellen

Zie ook

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)
Transparent Data Encryption (TDE)