Verschlüsseln von Wiederherstellungsdaten in der Datenbank

Gilt für: Configuration Manager (Current Branch)

Wenn Sie eine BitLocker-Verwaltungsrichtlinie erstellen, stellt Configuration Manager den Wiederherstellungsdienst an einem Verwaltungspunkt bereit. Auf der Seite Clientverwaltung der BitLocker-Verwaltungsrichtlinie sichert der Client beim Konfigurieren der BitLocker-Verwaltungsdienste Schlüsselwiederherstellungsinformationen in der Standortdatenbank. Diese Informationen umfassen BitLocker-Wiederherstellungsschlüssel, Wiederherstellungspakete und TPM-Kennworthashes. Wenn Benutzer von ihrem geschützten Gerät gesperrt werden, können Sie diese Informationen verwenden, um den Zugriff auf das Gerät wiederherzustellen.

Da diese Informationen vertraulich sind, müssen Sie sie schützen. Configuration Manager erfordert eine HTTPS-Verbindung zwischen dem Client und dem Wiederherstellungsdienst, um die Daten während der Übertragung über das Netzwerk zu verschlüsseln. Weitere Informationen finden Sie unter Verschlüsseln von Wiederherstellungsdaten über das Netzwerk.

Erwägen Sie auch die Verschlüsselung dieser Daten, wenn sie in der Standortdatenbank gespeichert werden. Wenn Sie ein SQL Server-Zertifikat installieren, verschlüsselt Configuration Manager Ihre Daten in SQL.

Wenn Sie kein BitLocker-Verwaltungsverschlüsselungszertifikat erstellen möchten, aktivieren Sie die Nur-Text-Speicherung der Wiederherstellungsdaten. Wenn Sie eine BitLocker-Verwaltungsrichtlinie erstellen, aktivieren Sie die Option Zulassen, dass Wiederherstellungsinformationen als Nur-Text gespeichert werden.

Hinweis

Eine weitere Sicherheitsebene besteht darin, die gesamte Standortdatenbank zu verschlüsseln. Wenn Sie die Verschlüsselung für die Datenbank aktivieren, gibt es keine funktionalen Probleme in Configuration Manager.

Verschlüsseln Sie mit Vorsicht, insbesondere in großen Umgebungen. Abhängig von den von Ihnen verschlüsselten Tabellen und der SQL-Version kann eine Leistungsbeeinträchtigung von bis zu 25 % auftreten. Aktualisieren Sie Ihre Sicherungs- und Wiederherstellungspläne, damit Sie die verschlüsselten Daten erfolgreich wiederherstellen können.

Hinweis

Configuration Manager werden niemals Wiederherstellungsinformationen für Geräte aus der Datenbank entfernt oder gelöscht, auch wenn der Client inaktiv oder gelöscht ist. Dieses Verhalten ist aus Sicherheitsgründen. Dies ist hilfreich in Szenarien, in denen ein Gerät gestohlen, aber später wiederhergestellt wird. Bei großen Umgebungen beträgt die Auswirkung auf die Datenbankgröße etwa 9 KB Daten pro verschlüsseltem Volume.

SQL Server-Verschlüsselungszertifikat

Verwenden Sie dieses SQL Server-Zertifikat für Configuration Manager zum Verschlüsseln von BitLocker-Wiederherstellungsdaten in der Standortdatenbank. Sie können ein selbstsigniertes Zertifikat mithilfe eines Skripts in SQL Server erstellen.

Alternativ können Sie ihren eigenen Prozess verwenden, um dieses Zertifikat zu erstellen und bereitzustellen, sofern es die folgenden Anforderungen erfüllt:

  • Der Name des BitLocker-Verwaltungsverschlüsselungszertifikats muss sein BitLockerManagement_CERT.

  • Verschlüsseln Sie dieses Zertifikat mit einem Datenbankhauptschlüssel.

  • Die folgenden SQL Server Benutzer*innen control-Berechtigungen für das Zertifikat benötigen:

    • RecoveryAndHardwareCore
    • RecoveryAndHardwareRead
    • RecoveryAndHardwareWrite
  • Stellen Sie dasselbe Zertifikat für jede Standortdatenbank in Ihrer Hierarchie bereit.

  • Erstellen Sie das Zertifikat mit der neuesten Version von SQL Server.

    Wichtig

    • Zertifikate, die mit SQL Server 2016 oder höher erstellt wurden, sind mit SQL Server 2014 oder früheren Versionen kompatibel.
    • Zertifikate, die mit SQL Server 2014 oder früher erstellt wurden, sind nicht mit SQL Server 2016 oder höher kompatibel.

Verwalten des Verschlüsselungszertifikats bei SQL Server Upgrade

Wenn sich Ihre Standortdatenbank auf SQL Server 2014 oder früher befindet, führen Sie vor dem Upgrade SQL Server auf Version 2016 oder höher das folgende Verfahren aus, um das Zertifikat auf eine unterstützte Version zu rotieren.

  1. Auf einer Instanz von SQL Server mit der neuesten verfügbaren Version mindestens Version 2016:

    1. Erstellen eines neuen Zertifikats

    2. Sichern des neuen Zertifikats

  2. Auf der SQL Server-Instanz mit der verschlüsselten Standortdatenbank, die Sie aktualisieren möchten:

    1. Verschieben Sie das vorhandene Zertifikat auf dem Standortdatenbankserver SQL Server Instanz in einen anderen Namen.

    2. Stellen Sie das neue Zertifikat wieder her.

    3. Rotieren Sie das neue Zertifikat für das vorhandene Zertifikat ein. Verwenden der bereitgestellten SQL-Funktion [RecoveryAndHardwareCore].[RecryptKey]

Wichtig

Wenn Sie SQL Server aktualisieren, bevor Sie das Zertifikat rotieren, wenden Sie sich an Microsoft-Support, um Unterstützung bei der Problembesprechung zu erhalten.

Sie können diesen Prozess auch verwenden, wenn Ihre geschäftlichen Anforderungen angeben, dass Sie dieses Zertifikat regelmäßig erneuern müssen.

Beispielskripts

Diese SQL-Skripts sind Beispiele zum Erstellen und Bereitstellen eines BitLocker-Verwaltungsverschlüsselungszertifikats in der Configuration Manager Standortdatenbank.

Zertifikat erstellen

Dieses Beispielskript führt die folgenden Aktionen aus:

  • Erstellt ein Zertifikat.
  • Legt die Berechtigungen fest
  • Erstellt einen Datenbankhauptschlüssel.

Bevor Sie dieses Skript in einer Produktionsumgebung verwenden, ändern Sie die folgenden Werte:

  • Name der Standortdatenbank (CM_ABC)
  • Kennwort zum Erstellen des Hauptschlüssels (MyMasterKeyPassword)
  • Ablaufdatum des Zertifikats (20391022)
USE CM_ABC
IF NOT EXISTS (SELECT name FROM sys.symmetric_keys WHERE name = '##MS_DatabaseMasterKey##')
BEGIN
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MyMasterKeyPassword'
END

IF NOT EXISTS (SELECT name from sys.certificates WHERE name = 'BitLockerManagement_CERT')
BEGIN
    CREATE CERTIFICATE BitLockerManagement_CERT AUTHORIZATION RecoveryAndHardwareCore
    WITH SUBJECT = 'BitLocker Management',
    EXPIRY_DATE = '20391022'

    GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareRead
    GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareWrite
END

Hinweis

Das Ablaufdatum des Zertifikats wird nicht von SQL Server überprüft oder erzwungen, wenn das Zertifikat wie hier für die Datenbankverschlüsselung verwendet wird.

Wenn Ihre geschäftlichen Anforderungen angeben, dass Sie dieses Zertifikat regelmäßig erneuern, verwenden Sie dasselbe Verfahren, um das Verschlüsselungszertifikat bei SQL Server Upgrade zu verwalten.

Sichern des Zertifikats

Dieses Beispielskript sichert ein Zertifikat. Wenn Sie das Zertifikat in einer Datei speichern, können Sie es in anderen Standortdatenbanken in der Hierarchie wiederherstellen .

Bevor Sie dieses Skript in einer Produktionsumgebung verwenden, ändern Sie die folgenden Werte:

  • Name der Standortdatenbank (CM_ABC)
  • Dateipfad und -name (C:\BitLockerManagement_CERT_KEY)
  • Schlüsselkennwort exportieren (MyExportKeyPassword)
USE CM_ABC
BACKUP CERTIFICATE BitLockerManagement_CERT TO FILE = 'C:\BitLockerManagement_CERT'
    WITH PRIVATE KEY ( FILE = 'C:\BitLockerManagement_CERT_KEY',
        ENCRYPTION BY PASSWORD = 'MyExportKeyPassword')

Wichtig

Sichern Sie das Zertifikat immer. Falls Sie die Standortdatenbank wiederherstellen müssen, müssen Sie möglicherweise das Zertifikat wiederherstellen, um den Zugriff auf die Wiederherstellungsschlüssel wiederherzustellen.

Speichern Sie die exportierte Zertifikatdatei und das zugehörige Kennwort an einem sicheren Speicherort.

Zertifikat wiederherstellen

Dieses Beispielskript stellt ein Zertifikat aus einer Datei wieder her. Verwenden Sie diesen Prozess, um ein Zertifikat bereitzustellen, das Sie für eine andere Standortdatenbank erstellt haben.

Bevor Sie dieses Skript in einer Produktionsumgebung verwenden, ändern Sie die folgenden Werte:

  • Name der Standortdatenbank (CM_ABC)
  • Hauptschlüsselkennwort (MyMasterKeyPassword)
  • Dateipfad und -name (C:\BitLockerManagement_CERT_KEY)
  • Schlüsselkennwort exportieren (MyExportKeyPassword)
USE CM_ABC
IF NOT EXISTS (SELECT name FROM sys.symmetric_keys WHERE name = '##MS_DatabaseMasterKey##')
BEGIN
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MyMasterKeyPassword'
END

IF NOT EXISTS (SELECT name from sys.certificates WHERE name = 'BitLockerManagement_CERT')
BEGIN

CREATE CERTIFICATE BitLockerManagement_CERT AUTHORIZATION RecoveryAndHardwareCore
FROM FILE  = 'C:\BitLockerManagement_CERT'
    WITH PRIVATE KEY ( FILE = 'C:\BitLockerManagement_CERT_KEY',
        DECRYPTION BY PASSWORD = 'MyExportKeyPassword')

GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareRead
GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareWrite
END

Überprüfen des Zertifikats

Verwenden Sie dieses SQL-Skript, um zu überprüfen, ob SQL Server das Zertifikat mit den erforderlichen Berechtigungen erfolgreich erstellt hat.

USE CM_ABC
declare @count int
select @count = count(distinct u.name) from sys.database_principals u
join sys.database_permissions p on p.grantee_principal_id = u.principal_id or p.grantor_principal_id = u.principal_id
join sys.certificates c on c.certificate_id = p.major_id
where u.name in('RecoveryAndHardwareCore', 'RecoveryAndHardwareRead', 'RecoveryAndHardwareWrite') and
c.name = 'BitLockerManagement_CERT' and p.permission_name like 'CONTROL'
if(@count >= 3) select 1
else select 0

Wenn das Zertifikat gültig ist, gibt das Skript den Wert zurück 1.

Siehe auch

Weitere Informationen zu diesen SQL-Befehlen finden Sie in den folgenden Artikeln:

Nächste Schritte

Bereitstellen des BitLocker-Verwaltungsclients