Cifrado de datos de recuperación en la base de datos

Se aplica a: Configuration Manager (rama actual)

Al crear una directiva de administración de BitLocker, Configuration Manager implementa el servicio de recuperación en un punto de administración. En la página Administración de clientes de la directiva de administración de BitLocker, al configurar los servicios de administración de BitLocker, el cliente realiza una copia de seguridad de la información de recuperación de claves en la base de datos del sitio. Esta información incluye claves de recuperación de BitLocker, paquetes de recuperación y hashes de contraseña de TPM. Cuando los usuarios están bloqueados fuera de su dispositivo protegido, puede usar esta información para ayudarles a recuperar el acceso al dispositivo.

Dada la naturaleza confidencial de esta información, debe protegerla. Configuration Manager requiere una conexión HTTPS entre el cliente y el servicio de recuperación para cifrar los datos en tránsito a través de la red. Para obtener más información, consulte Cifrado de datos de recuperación a través de la red.

Considere también la posibilidad de cifrar estos datos cuando se almacenan en la base de datos del sitio. Si instala un certificado de SQL Server, Configuration Manager cifra los datos en SQL.

Si no desea crear un certificado de cifrado de administración de BitLocker, opte por el almacenamiento de texto sin formato de los datos de recuperación. Al crear una directiva de administración de BitLocker, habilite la opción Permitir que la información de recuperación se almacene en texto sin formato.

Nota:

Otra capa de seguridad es cifrar toda la base de datos del sitio. Si habilita el cifrado en la base de datos, no hay ningún problema funcional en Configuration Manager.

Cifre con precaución, especialmente en entornos a gran escala. En función de las tablas que cifre y de la versión de SQL, es posible que observe una degradación del rendimiento de hasta un 25 %. Actualice los planes de copia de seguridad y recuperación para que pueda recuperar correctamente los datos cifrados.

Nota:

Configuration Manager nunca quita ni elimina la información de recuperación de los dispositivos de la base de datos, incluso si el cliente está inactivo o eliminado. Este comportamiento es por motivos de seguridad. Ayuda con escenarios en los que se roba un dispositivo, pero más adelante se recupera. En entornos grandes, el impacto en el tamaño de la base de datos es de aproximadamente 9 KB de datos por volumen cifrado.

SQL Server certificado de cifrado

Use este certificado de SQL Server para Configuration Manager para cifrar los datos de recuperación de BitLocker en la base de datos del sitio. Puede crear un certificado autofirmado mediante un script en SQL Server.

Como alternativa, puede usar su propio proceso para crear e implementar este certificado, siempre y cuando cumpla los siguientes requisitos:

  • El nombre del certificado de cifrado de administración de BitLocker debe ser BitLockerManagement_CERT.

  • Cifre este certificado con una clave maestra de base de datos.

  • Los siguientes SQL Server usuarios necesitan permisos de control en el certificado:

    • RecoveryAndHardwareCore
    • RecoveryAndHardwareRead
    • RecoveryAndHardwareWrite
  • Implemente el mismo certificado en cada base de datos de sitio de la jerarquía.

  • Cree el certificado con la versión más reciente de SQL Server.

    Importante

    • Los certificados creados con SQL Server 2016 o posterior son compatibles con SQL Server 2014 o versiones anteriores.
    • Los certificados creados con SQL Server 2014 o versiones anteriores no son compatibles con SQL Server 2016 o posterior.

Administración del certificado de cifrado en SQL Server actualización

Si la base de datos del sitio está en SQL Server 2014 o anterior, antes de actualizar SQL Server a la versión 2016 o posterior, use el procedimiento siguiente para rotar el certificado a una versión compatible.

  1. En una instancia de SQL Server ejecutar la versión más reciente disponible, al menos la versión 2016:

    1. Creación de un nuevo certificado

    2. Copia de seguridad del nuevo certificado

  2. En la instancia de SQL Server con la base de datos de sitio cifrada que tiene previsto actualizar:

    1. Mueva el certificado existente en el servidor de base de datos de sitio SQL Server instancia a otro nombre.

    2. Restaure el nuevo certificado.

    3. Gire el nuevo certificado en para el certificado existente. Uso de la función SQL proporcionada [RecoveryAndHardwareCore].[RecryptKey]

Importante

Si actualiza SQL Server antes de rotar el certificado, póngase en contacto con Soporte técnico de Microsoft para obtener ayuda con un trabajo.

También puede usar este proceso si los requisitos empresariales especifican que necesita renovar periódicamente este certificado.

Scripts de ejemplo

Estos scripts SQL son ejemplos para crear e implementar un certificado de cifrado de administración de BitLocker en la base de datos de sitio Configuration Manager.

Creación de un certificado

Este script de ejemplo realiza las siguientes acciones:

  • Crea un certificado
  • Establece los permisos
  • Crea una clave maestra de base de datos

Antes de usar este script en un entorno de producción, cambie los valores siguientes:

  • Nombre de base de datos del sitio (CM_ABC)
  • Contraseña para crear la clave maestra (MyMasterKeyPassword)
  • Fecha de expiración del certificado (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 fecha de expiración del certificado no se comprueba ni se aplica SQL Server cuando el certificado se usa para el cifrado de base de datos, como sucede aquí.

Si los requisitos empresariales especifican que renueva periódicamente este certificado, use el mismo proceso para administrar el certificado de cifrado en SQL Server actualización.

Copia de seguridad del certificado

Este script de ejemplo hace una copia de seguridad de un certificado. Al guardar el certificado en un archivo, puede restaurarlo a otras bases de datos de sitio de la jerarquía.

Antes de usar este script en un entorno de producción, cambie los valores siguientes:

  • Nombre de base de datos del sitio (CM_ABC)
  • Ruta de acceso y nombre del archivo (C:\BitLockerManagement_CERT_KEY)
  • Exportar contraseña de clave (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

Realice siempre una copia de seguridad del certificado. En caso de que necesite recuperar la base de datos del sitio, es posible que tenga que restaurar el certificado para recuperar el acceso a las claves de recuperación.

Almacene el archivo de certificado exportado y la contraseña asociada en una ubicación segura.

Restaurar certificado

Este script de ejemplo restaura un certificado a partir de un archivo. Use este proceso para implementar un certificado que creó en otra base de datos de sitio.

Antes de usar este script en un entorno de producción, cambie los valores siguientes:

  • Nombre de base de datos del sitio (CM_ABC)
  • Contraseña de clave maestra (MyMasterKeyPassword)
  • Ruta de acceso y nombre del archivo (C:\BitLockerManagement_CERT_KEY)
  • Exportar contraseña de clave (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

Comprobación del certificado

Use este script SQL para comprobar que SQL Server creado correctamente el certificado con los permisos necesarios.

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 el certificado es válido, el script devuelve un valor de 1.

Vea también

Para obtener más información sobre estos comandos SQL, consulte los artículos siguientes:

Pasos siguientes

Implementación del cliente de administración de BitLocker