Cryptage des données de récupération dans la base de données

S’applique à : Gestionnaire de Configuration (branche actuelle)

Lorsque vous créez une stratégie de gestion BitLocker, Configuration Manager déploie le service de récupération sur un point de gestion. Dans la page Gestion des clients de la stratégie de gestion BitLocker, lorsque vous configurez les services de gestion BitLocker, le client sauvegarde les informations de récupération des clés dans la base de données du site. Ces informations incluent les clés de récupération BitLocker, les packages de récupération et les hachages de mot de passe TPM. Lorsque les utilisateurs sont verrouillés hors de leur appareil protégé, vous pouvez utiliser ces informations pour les aider à récupérer l’accès à l’appareil.

Étant donné la nature sensible de ces informations, vous devez les protéger. Configuration Manager nécessite une connexion HTTPS entre le client et le service de récupération pour chiffrer les données en transit sur le réseau. Pour plus d’informations, consultez Chiffrer les données de récupération sur le réseau.

Envisagez également de chiffrer ces données lorsqu’elles sont stockées dans la base de données du site. Si vous installez un certificat SQL Server, Configuration Manager chiffre vos données dans SQL.

Si vous ne souhaitez pas créer de certificat de chiffrement de gestion BitLocker, optez pour le stockage en texte brut des données de récupération. Lorsque vous créez une stratégie de gestion BitLocker, activez l’option Autoriser le stockage des informations de récupération en texte brut.

Remarque

Une autre couche de sécurité consiste à chiffrer l’intégralité de la base de données du site. Si vous activez le chiffrement sur la base de données, il n’existe aucun problème fonctionnel dans Configuration Manager.

Chiffrez avec prudence, en particulier dans les environnements à grande échelle. Selon les tables que vous chiffrez et la version de SQL, vous pouvez constater une dégradation des performances jusqu’à 25 %. Mettez à jour vos plans de sauvegarde et de récupération afin de pouvoir récupérer correctement les données chiffrées.

Remarque

Configuration Manager ne supprime jamais ou ne supprime jamais les informations de récupération des appareils de la base de données, même si le client est inactif ou supprimé. Ce comportement est pour des raisons de sécurité. Il est utile dans les scénarios où un appareil est volé, mais récupéré ultérieurement. Pour les environnements volumineux, l’impact sur la taille de la base de données est d’environ 9 Ko de données par volume chiffré.

certificat de chiffrement SQL Server

Utilisez ce certificat SQL Server pour Configuration Manager afin de chiffrer les données de récupération BitLocker dans la base de données du site. Vous pouvez créer un certificat auto-signé à l’aide d’un script dans SQL Server.

Vous pouvez également utiliser votre propre processus pour créer et déployer ce certificat, à condition qu’il réponde aux exigences suivantes :

  • Le nom du certificat de chiffrement de gestion BitLocker doit être BitLockerManagement_CERT.

  • Chiffrez ce certificat avec une clé principale de base de données.

  • Les utilisateurs SQL Server suivants ont besoin d’autorisations de contrôle sur le certificat :

    • RecoveryAndHardwareCore
    • RecoveryAndHardwareRead
    • RecoveryAndHardwareWrite
  • Déployez le même certificat sur chaque base de données de site de votre hiérarchie.

  • Créez le certificat avec la dernière version de SQL Server.

    Importante

    • Les certificats créés avec SQL Server 2016 ou version ultérieure sont compatibles avec SQL Server 2014 ou une version antérieure.
    • Les certificats créés avec SQL Server 2014 ou une version antérieure ne sont pas compatibles avec SQL Server 2016 ou version ultérieure.

Gérer le certificat de chiffrement lors de la mise à niveau SQL Server

Si votre base de données de site se trouve sur SQL Server 2014 ou une version antérieure, avant de mettre à niveau SQL Server vers la version 2016 ou ultérieure, utilisez la procédure suivante pour faire pivoter le certificat vers une version prise en charge.

  1. Sur une instance de SQL Server exécutant la dernière version disponible, au moins la version 2016 :

    1. Créer un certificat

    2. Sauvegarder le nouveau certificat

  2. Sur l’instance SQL Server avec la base de données de site chiffrée que vous prévoyez de mettre à niveau :

    1. Déplacez le certificat existant sur le serveur de base de données de site SQL Server instance vers un autre nom.

    2. Restaurez le nouveau certificat.

    3. Faites pivoter le nouveau certificat pour le certificat existant. Utiliser la fonction SQL fournie [RecoveryAndHardwareCore].[RecryptKey]

Importante

Si vous mettez à niveau SQL Server avant de faire pivoter le certificat, contactez Support Microsoft pour obtenir de l’aide sur la solution.

Vous pouvez également utiliser ce processus si les besoins de votre entreprise spécifient que vous devez renouveler régulièrement ce certificat.

Exemples de scripts

Ces scripts SQL sont des exemples pour créer et déployer un certificat de chiffrement de gestion BitLocker dans la base de données de site Configuration Manager.

Créer un certificat

Cet exemple de script effectue les actions suivantes :

  • Crée un certificat
  • Définit les autorisations
  • Crée une clé principale de base de données

Avant d’utiliser ce script dans un environnement de production, modifiez les valeurs suivantes :

  • Nom de la base de données de site (CM_ABC)
  • Mot de passe pour créer la clé principale (MyMasterKeyPassword)
  • Date d’expiration du certificat (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

Remarque

La date d’expiration du certificat n’est pas vérifiée ou appliquée par SQL Server lorsque le certificat est utilisé pour le chiffrement de base de données, comme c’est le cas ici.

Si les besoins de votre entreprise spécifient que vous renouvelez régulièrement ce certificat, utilisez le même processus pour gérer le certificat de chiffrement lors de SQL Server mise à niveau.

Sauvegarder le certificat

Cet exemple de script sauvegarde un certificat. Lorsque vous enregistrez le certificat dans un fichier, vous pouvez le restaurer dans d’autres bases de données de site dans la hiérarchie.

Avant d’utiliser ce script dans un environnement de production, modifiez les valeurs suivantes :

  • Nom de la base de données de site (CM_ABC)
  • Chemin d’accès et nom du fichier (C:\BitLockerManagement_CERT_KEY)
  • Exporter le mot de passe de la clé (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

Sauvegardez toujours le certificat. Si vous avez besoin de récupérer la base de données du site, vous devrez peut-être restaurer le certificat pour récupérer l’accès aux clés de récupération.

Stockez le fichier de certificat exporté et le mot de passe associé dans un emplacement sécurisé.

Restaurer le certificat

Cet exemple de script restaure un certificat à partir d’un fichier. Utilisez ce processus pour déployer un certificat que vous avez créé sur une autre base de données de site.

Avant d’utiliser ce script dans un environnement de production, modifiez les valeurs suivantes :

  • Nom de la base de données de site (CM_ABC)
  • Mot de passe de la clé principale (MyMasterKeyPassword)
  • Chemin d’accès et nom du fichier (C:\BitLockerManagement_CERT_KEY)
  • Exporter le mot de passe de la clé (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

Vérifier le certificat

Utilisez ce script SQL pour vérifier que SQL Server correctement créé le certificat avec les autorisations requises.

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

Si le certificat est valide, le script retourne la valeur .1

Voir aussi

Pour plus d’informations sur ces commandes SQL, consultez les articles suivants :

Prochaines étapes

Déployer le client de gestion BitLocker