Crittografare i dati di ripristino nel database

Si applica a: Configuration Manager (Current Branch)

Quando si creano criteri 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 configura BitLocker Management Services, il client esegue il backup delle informazioni di ripristino delle chiavi 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, è possibile usare queste informazioni per consentire loro di ripristinare 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 attraverso la rete. Per altre informazioni, vedere Crittografare i dati di ripristino in rete.

È anche consigliabile crittografare questi dati quando vengono archiviati nel database del sito. Se si installa un certificato SQL Server, Configuration Manager crittografa i dati in SQL.

Se non si vuole creare un certificato di crittografia di gestione BitLocker, acconsentire esplicitamente all'archiviazione in testo normale dei dati di ripristino. Quando si crea un criterio di gestione di BitLocker, abilitare 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 si abilita la crittografia nel database, non ci sono problemi funzionali in Configuration Manager.

Crittografare con cautela, soprattutto in ambienti su larga scala. 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 ripristinare 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 negli scenari in cui un dispositivo viene rubato ma ripristinato in seguito. Per gli ambienti di grandi dimensioni, l'impatto sulle dimensioni del database è di circa 9 KB di dati per volume crittografato.

certificato di crittografia SQL Server

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

In alternativa, è possibile usare il proprio processo per creare e distribuire questo 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 SQL Server seguenti devono disporre 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 versioni successive 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 all'aggiornamento SQL Server

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

  1. In un'istanza di SQL Server che esegue la versione più recente disponibile, 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 prevede di aggiornare:

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

    2. Ripristinare il nuovo certificato.

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

Importante

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

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

Script di esempio

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

Creare un certificato

Questo script di esempio esegue le azioni seguenti:

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

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

  • Nome 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

La data di scadenza del certificato non viene controllata o applicata da SQL Server quando il certificato viene usato per la crittografia del database, come nel caso seguente.

Se i requisiti aziendali specificano di rinnovare regolarmente questo certificato, usare lo stesso processo per gestire il certificato di crittografia all'aggiornamento 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 database del sito (CM_ABC)
  • Percorso e nome del file (C:\BitLockerManagement_CERT_KEY)
  • Esportare la password della 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.

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

Verificare il certificato

Usare questo script SQL per verificare che SQL Server 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 di 1.

Vedere anche

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

Passaggi successivi

Distribuire il client di gestione BitLocker