Crittografare i dati di ripristino nel database

Si applica a: Configuration Manager (Current Branch)

Quando crei un criterio di gestione di BitLocker, Configuration Manager distribuisce il servizio di ripristino in un punto di gestione. Nella pagina Gestione client dei criteri di gestione di BitLocker, quando si configurano i servizi di gestione di BitLocker, il client esegue il backup delle informazioni di ripristino della chiave nel database del sito. Queste informazioni includono chiavi di ripristino di BitLocker, pacchetti di ripristino e hash delle password TPM. Quando gli utenti sono bloccati fuori dal dispositivo protetto, puoi usare queste informazioni per aiutarli a recuperare l'accesso al dispositivo.

Data la natura sensibile di queste informazioni, è necessario proteggerle. Configuration Manager richiede una connessione HTTPS tra il client e il servizio di ripristino per crittografare i dati in transito sulla rete. Per ulteriori informazioni, consulta Crittografare i dati di ripristino in rete.

È consigliabile crittografare anche questi dati quando sono archiviati nel database del sito. Se si installa un certificato di SQL Server, Gestione configurazione crittografa i dati in SQL.

Se non si desidera creare un certificato di crittografia di gestione BitLocker, acconsentire esplicitamente all'archiviazione in testo normale dei dati di ripristino. Quando crei un criterio di gestione di BitLocker, abilita l'opzione Consenti l'archiviazione delle informazioni di ripristino in testo normale.

Nota

Un altro livello di sicurezza consiste nel crittografare l'intero database del sito. Se abiliti la crittografia nel database, non si verificano problemi di funzionalità in Configuration Manager.

Crittografare con cautela, soprattutto in ambienti di grandi dimensioni. A seconda delle tabelle crittografate e della versione di SQL, è possibile notare una riduzione delle prestazioni fino al 25%. Aggiornare i piani di backup e ripristino in modo da poter recuperare correttamente i dati crittografati.

Nota

Configuration Manager non rimuove o elimina mai le informazioni di ripristino per i dispositivi dal database, anche se il client è inattivo o eliminato. Questo comportamento è per motivi di sicurezza. È utile per gli scenari in cui un dispositivo viene rubato ma successivamente recuperato. Per ambienti di grandi dimensioni, l'impatto sulle dimensioni del database è di circa 9 KB di dati per volume crittografato.

Certificato di crittografia di SQL Server

Usare questo certificato SQL Server per Configuration Manager crittografare i dati di ripristino di BitLocker nel database del sito. È possibile creare un certificato autofirmato usando uno script in SQL Server.

In alternativa, è possibile usare un processo personalizzato per creare e distribuire il certificato, purché soddisfi i requisiti seguenti:

  • Il nome del certificato di crittografia di gestione BitLocker deve essere BitLockerManagement_CERT.

  • Crittografare questo certificato con una chiave master del database.

  • Gli utenti di SQL Server seguenti necessitano delle autorizzazioni di controllo per il certificato:

    • RecoveryAndHardwareCore
    • RecoveryAndHardwareRead
    • RecoveryAndHardwareWrite
  • Distribuire lo stesso certificato in ogni database del sito nella gerarchia.

  • Creare il certificato con la versione più recente di SQL Server.

    Importante

    • I certificati creati con SQL Server 2016 o versione successiva sono compatibili con SQL Server 2014 o versioni precedenti.
    • I certificati creati con SQL Server 2014 o versioni precedenti non sono compatibili con SQL Server 2016 o versioni successive.

Gestire il certificato di crittografia nell'aggiornamento di SQL Server

Se il database del sito è in SQL Server 2014 o versioni precedenti, prima di aggiornare SQL Server alla versione 2016 o successiva, usare la procedura seguente per ruotare il certificato in una versione supportata.

  1. In un'istanza di SQL Server che esegue la versione disponibile più recente, almeno la versione 2016:

    1. Creare un nuovo certificato

    2. Eseguire il backup del nuovo certificato

  2. Nell'istanza di SQL Server con il database del sito crittografato che si intende aggiornare:

    1. Spostare il certificato esistente nell'istanza di SQL Server del server database del sito con un altro nome.

    2. Ripristinare il nuovo certificato.

    3. Ruotare il nuovo certificato per il certificato esistente. Usare la funzione SQL fornita [RecoveryAndHardwareCore].[RecryptKey]

Importante

Se si esegue l'aggiornamento di SQL Server prima della rotazione del certificato, contattare il supporto tecnico Microsoft per assistenza con una soluzione alternativa.

È anche possibile usare questo processo se i requisiti aziendali specificano che è necessario rinnovare regolarmente questo certificato.

Script di esempio

Questi script SQL sono esempi per creare e distribuire un certificato di crittografia gestione BitLocker nel database del sito di Configuration Manager.

Crea certificato

Questo script di esempio esegue le azioni seguenti:

  • Crea un certificato
  • Imposta le autorizzazioni
  • Creazione di una chiave master del database

Prima di usare questo script in un ambiente di produzione, modificare i valori seguenti:

  • Nome del database del sito (CM_ABC)
  • Password per creare la chiave master (MyMasterKeyPassword)
  • Data di scadenza del certificato (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

Nota

SQL non controlla o applica la data di scadenza del certificato quando il certificato viene utilizzato per la crittografia del database, come nel caso in questo caso.

Se i requisiti aziendali specificano che il certificato viene rinnovato regolarmente, usare la stessa procedura per gestire il certificato di crittografia nell'aggiornamento di SQL Server.

Eseguire il backup del certificato

Questo script di esempio esegue il backup di un certificato. Quando si salva il certificato in un file, è possibile ripristinarlo in altri database del sito nella gerarchia.

Prima di usare questo script in un ambiente di produzione, modificare i valori seguenti:

  • Nome del database del sito (CM_ABC)
  • Percorso e nome del file (C:\BitLockerManagement_CERT_KEY)
  • Esporta password chiave (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')

Importante

Eseguire sempre il backup del certificato. Nel caso in cui sia necessario ripristinare il database del sito, potrebbe essere necessario ripristinare il certificato per ottenere nuovamente l'accesso alle chiavi di ripristino.

Archiviare il file di certificato esportato e la password associata in un percorso sicuro.

Ripristina certificato

Questo script di esempio ripristina un certificato da un file. Usare questo processo per distribuire un certificato creato in un altro database del sito.

Prima di usare questo script in un ambiente di produzione, modificare i valori seguenti:

  • Nome del database del sito (CM_ABC)
  • Password chiave master (MyMasterKeyPassword)
  • Percorso e nome del file (C:\BitLockerManagement_CERT_KEY)
  • Esporta password chiave (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

Verifica certificato

Usare questo script SQL per verificare che SQL Server abbia creato correttamente il certificato con le autorizzazioni necessarie.

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

Se il certificato è valido, lo script restituisce un valore .1

SQL AlwaysOn quando i dati di ripristino di BitLocker vengono crittografati nel database

Se si usa SQL AlwaysOn, vedere SQL AlwaysOn quando i dati di ripristino di BitLocker vengono crittografati nel database per altre istruzioni e passaggi importanti e necessari.

Per altre informazioni su questi comandi SQL, vedere gli articoli seguenti:

Passaggi successivi