Kryptera återställningsdata i databasen

Gäller för: Konfigurationshanteraren (current branch)

När du skapar en BitLocker-hanteringsprincip distribuerar Configuration Manager återställningstjänsten till en hanteringsplats. På sidan Klienthantering i BitLocker-hanteringsprincipen säkerhetskopierar klienten viktig återställningsinformation till platsdatabasen när du konfigurerar BitLocker Management Services. Den här informationen omfattar BitLocker-återställningsnycklar, återställningspaket och hashvärden för TPM-lösenord. När användarna är utelåst från sin skyddade enhet kan du använda den här informationen för att hjälpa dem att återställa åtkomsten till enheten.

Med tanke på den här informationens känsliga natur måste du skydda den. Configuration Manager kräver en HTTPS-anslutning mellan klienten och återställningstjänsten för att kryptera data under överföring över nätverket. Mer information finns i Kryptera återställningsdata över nätverket.

Överväg även att kryptera dessa data när de lagras i platsdatabasen. Om du installerar ett SQL Server certifikat krypterar Configuration Manager dina data i SQL.

Om du inte vill skapa ett BitLocker-hanteringskrypteringscertifikat kan du anmäla dig till oformaterad textlagring av återställningsdata. När du skapar en BitLocker-hanteringsprincip aktiverar du alternativet Tillåt att återställningsinformation lagras i oformaterad text.

Obs!

Ett annat säkerhetslager är att kryptera hela platsdatabasen. Om du aktiverar kryptering i databasen finns det inga funktionella problem i Configuration Manager.

Kryptera med försiktighet, särskilt i storskaliga miljöer. Beroende på de tabeller som du krypterar och versionen av SQL kan du märka upp till 25 % prestandaförsämring. Uppdatera dina planer för säkerhetskopiering och återställning så att du kan återställa krypterade data.

Obs!

Configuration Manager tar aldrig bort återställningsinformation för enheter från databasen, även om klienten är inaktiv eller borttagen. Det här beteendet är av säkerhetsskäl. Det hjälper till med scenarier där en enhet blir stulen men senare återställs. För stora miljöer påverkar databasstorleken cirka 9 KB data per krypterad volym.

SQL Server krypteringscertifikat

Använd det här SQL Server certifikatet för Configuration Manager för att kryptera BitLocker-återställningsdata i platsdatabasen. Du kan skapa ett självsignerat certifikat med hjälp av ett skript i SQL Server.

Du kan också använda din egen process för att skapa och distribuera det här certifikatet, så länge det uppfyller följande krav:

  • Namnet på BitLocker-hanteringskrypteringscertifikatet måste vara BitLockerManagement_CERT.

  • Kryptera det här certifikatet med en huvudnyckel för databasen.

  • Följande SQL Server användare behöver kontrollbehörigheter för certifikatet:

    • RecoveryAndHardwareCore
    • RecoveryAndHardwareRead
    • RecoveryAndHardwareWrite
  • Distribuera samma certifikat på varje platsdatabas i hierarkin.

  • Skapa certifikatet med den senaste versionen av SQL Server.

    Viktigt

    • Certifikat som skapats med SQL Server 2016 eller senare är kompatibla med SQL Server 2014 eller tidigare.
    • Certifikat som skapats med SQL Server 2014 eller tidigare är inte kompatibla med SQL Server 2016 eller senare.

Hantera krypteringscertifikatet vid uppgradering av SQL Server

Om platsdatabasen finns på SQL Server 2014 eller tidigare, innan du uppgraderar SQL Server till version 2016 eller senare, använder du följande procedur för att rotera certifikatet till en version som stöds.

  1. På en instans av SQL Server som kör den senaste tillgängliga versionen, minst version 2016:

    1. Skapa ett nytt certifikat

    2. Säkerhetskopiera det nya certifikatet

  2. På den SQL Server instansen med den krypterade platsdatabasen som du planerar att uppgradera:

    1. Flytta det befintliga certifikatet på platsdatabasservern SQL Server instans till ett annat namn.

    2. Återställ det nya certifikatet.

    3. Rotera det nya certifikatet i för det befintliga certifikatet. Använda den angivna SQL-funktionen [RecoveryAndHardwareCore].[RecryptKey]

Viktigt

Om du uppgraderar SQL Server innan du roterar certifikatet kontaktar du Microsoft Support för att få hjälp med ett arbete.

Du kan också använda den här processen om dina affärskrav anger att du regelbundet behöver förnya det här certifikatet.

Exempelskript

Dessa SQL-skript är exempel för att skapa och distribuera ett BitLocker-hanteringskrypteringscertifikat i Configuration Manager platsdatabasen.

Skapa certifikat

Det här exempelskriptet utför följande åtgärder:

  • Skapar ett certifikat
  • Anger behörigheterna
  • Skapar en huvudnyckel för databasen

Innan du använder det här skriptet i en produktionsmiljö ändrar du följande värden:

  • Platsdatabasens namn (CM_ABC)
  • Lösenord för att skapa huvudnyckeln (MyMasterKeyPassword)
  • Certifikatets förfallodatum (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

Obs!

Certifikatets förfallodatum kontrolleras inte eller framtvingas inte av SQL Server när certifikatet används för databaskryptering, vilket är fallet här.

Om dina affärskrav anger att du regelbundet förnyar det här certifikatet använder du samma process för att hantera krypteringscertifikatet vid SQL Server uppgradering.

Säkerhetskopiera certifikat

Det här exempelskriptet säkerhetskopierar ett certifikat. När du sparar certifikatet i en fil kan du sedan återställa det till andra platsdatabaser i hierarkin.

Innan du använder det här skriptet i en produktionsmiljö ändrar du följande värden:

  • Platsdatabasens namn (CM_ABC)
  • Filsökväg och namn (C:\BitLockerManagement_CERT_KEY)
  • Exportera nyckellösenord (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')

Viktigt

Säkerhetskopiera alltid certifikatet. Om du behöver återställa platsdatabasen kan du behöva återställa certifikatet för att få åtkomst till återställningsnycklarna igen.

Lagra den exporterade certifikatfilen och tillhörande lösenord på en säker plats.

Återställa certifikat

Det här exempelskriptet återställer ett certifikat från en fil. Använd den här processen för att distribuera ett certifikat som du har skapat i en annan platsdatabas.

Innan du använder det här skriptet i en produktionsmiljö ändrar du följande värden:

  • Platsdatabasens namn (CM_ABC)
  • Huvudnyckellösenord (MyMasterKeyPassword)
  • Filsökväg och namn (C:\BitLockerManagement_CERT_KEY)
  • Exportera nyckellösenord (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

Verifiera certifikat

Använd det här SQL-skriptet för att kontrollera att SQL Server har skapat certifikatet med nödvändiga behörigheter.

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

Om certifikatet är giltigt returnerar skriptet värdet 1.

Se även

Mer information om dessa SQL-kommandon finns i följande artiklar:

Nästa steg

Distribuera BitLocker-hanteringsklient