Criptografar dados de recuperação no banco de dados

Aplica-se a: Gerenciador de Configurações (branch atual)

Quando você cria uma política de gerenciamento do BitLocker, Configuration Manager implanta o serviço de recuperação em um ponto de gerenciamento. Na página Gerenciamento de Clientes da política de gerenciamento do BitLocker, ao configurar os Serviços de Gerenciamento do BitLocker, o cliente faz backup das principais informações de recuperação para o banco de dados do site. Essas informações incluem chaves de recuperação do BitLocker, pacotes de recuperação e hashes de senha do TPM. Quando os usuários são bloqueados do dispositivo protegido, você pode usar essas informações para ajudá-los a recuperar o acesso ao dispositivo.

Dada a natureza confidencial dessas informações, você precisa protegê-la. Configuration Manager requer uma conexão HTTPS entre o cliente e o serviço de recuperação para criptografar os dados em trânsito em toda a rede. Para obter mais informações, consulte Criptografar dados de recuperação pela rede.

Considere também criptografar esses dados quando armazenados no banco de dados do site. Se você instalar um certificado SQL Server, Configuration Manager criptografa seus dados no SQL.

Se você não quiser criar um certificado de criptografia de gerenciamento do BitLocker, opte pelo armazenamento de texto simples dos dados de recuperação. Ao criar uma política de gerenciamento do BitLocker, habilite a opção para permitir que as informações de recuperação sejam armazenadas em texto sem formatação.

Observação

Outra camada de segurança é criptografar todo o banco de dados do site. Se você habilitar a criptografia no banco de dados, não haverá problemas funcionais no Configuration Manager.

Criptografar com cuidado, especialmente em ambientes de grande escala. Dependendo das tabelas criptografadas e da versão do SQL, você poderá observar até 25% de degradação de desempenho. Atualize seus planos de backup e recuperação para que você possa recuperar com êxito os dados criptografados.

Observação

Configuration Manager nunca remove ou exclui informações de recuperação de dispositivos do banco de dados, mesmo que o cliente esteja inativo ou excluído. Esse comportamento é por motivos de segurança. Ele ajuda com cenários em que um dispositivo é roubado, mas posteriormente recuperado. Para ambientes grandes, o impacto no tamanho do banco de dados é de cerca de 9 KB de dados por volume criptografado.

certificado de criptografia SQL Server

Use esse certificado SQL Server para Configuration Manager para criptografar dados de recuperação do BitLocker no banco de dados do site. Você pode criar um certificado autoassinado usando um script no SQL Server.

Como alternativa, você pode usar seu próprio processo para criar e implantar esse certificado, desde que ele atenda aos seguintes requisitos:

  • O nome do certificado de criptografia de gerenciamento do BitLocker deve ser BitLockerManagement_CERT.

  • Criptografar esse certificado com uma chave mestra de banco de dados.

  • Os seguintes SQL Server usuários precisam de permissões de controle no certificado:

    • RecoveryAndHardwareCore
    • RecoveryAndHardwareRead
    • RecoveryAndHardwareWrite
  • Implante o mesmo certificado em cada banco de dados do site em sua hierarquia.

  • Crie o certificado com a versão mais recente do SQL Server.

    Importante

    • Certificados criados com SQL Server 2016 ou posterior são compatíveis com SQL Server 2014 ou anterior.
    • Certificados criados com SQL Server 2014 ou anterior não são compatíveis com SQL Server 2016 ou posterior.

Gerenciar o certificado de criptografia em SQL Server atualização

Se o banco de dados do site estiver no SQL Server 2014 ou anterior, antes de atualizar SQL Server para a versão 2016 ou posterior, use o procedimento a seguir para girar o certificado para uma versão com suporte.

  1. Em uma instância de SQL Server executando a versão mais recente disponível, pelo menos a versão 2016:

    1. Criar um novo certificado

    2. Fazer backup do novo certificado

  2. Na instância SQL Server com o banco de dados do site criptografado que você planeja atualizar:

    1. Mova o certificado existente no servidor de banco de dados do site SQL Server instância para outro nome.

    2. Restaure o novo certificado.

    3. Gire o novo certificado para o certificado existente. Usar a função SQL fornecida [RecoveryAndHardwareCore].[RecryptKey]

Importante

Se você atualizar SQL Server antes de girar o certificado, entre em contato com Suporte da Microsoft para obter assistência com uma solução.

Você também pode usar esse processo se seus requisitos comerciais especificarem que você precisa renovar regularmente esse certificado.

Scripts de exemplo

Esses scripts SQL são exemplos para criar e implantar um certificado de criptografia de gerenciamento do BitLocker no banco de dados do site Configuration Manager.

Criar certificado

Este script de exemplo faz as seguintes ações:

  • Cria um certificado
  • Define as permissões
  • Cria uma chave mestra de banco de dados

Antes de usar esse script em um ambiente de produção, altere os seguintes valores:

  • Nome do banco de dados do site (CM_ABC)
  • Senha para criar a chave mestra (MyMasterKeyPassword)
  • Data de validade do 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

Observação

A data de validade do certificado não é verificada ou imposta por SQL Server quando o certificado é usado para criptografia de banco de dados, como é o caso aqui.

Se seus requisitos comerciais especificarem que você renova regularmente esse certificado, use o mesmo processo para Gerenciar o certificado de criptografia em SQL Server atualização.

Fazer backup do certificado

Este script de exemplo faz backup de um certificado. Ao salvar o certificado em um arquivo, você pode restaurá-lo em outros bancos de dados do site na hierarquia.

Antes de usar esse script em um ambiente de produção, altere os seguintes valores:

  • Nome do banco de dados do site (CM_ABC)
  • Caminho e nome do arquivo (C:\BitLockerManagement_CERT_KEY)
  • Exportar senha de chave (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

Sempre faça backup do certificado. Caso precise recuperar o banco de dados do site, talvez seja necessário restaurar o certificado para recuperar o acesso às chaves de recuperação.

Armazene o arquivo de certificado exportado e a senha associada em um local seguro.

Restaurar certificado

Este script de exemplo restaura um certificado de um arquivo. Use esse processo para implantar um certificado que você criou em outro banco de dados do site.

Antes de usar esse script em um ambiente de produção, altere os seguintes valores:

  • Nome do banco de dados do site (CM_ABC)
  • Senha da chave mestra (MyMasterKeyPassword)
  • Caminho e nome do arquivo (C:\BitLockerManagement_CERT_KEY)
  • Exportar senha de chave (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

Verificar certificado

Use esse script SQL para verificar se SQL Server criou com êxito o certificado com as permissões necessárias.

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 o certificado for válido, o script retornará um valor de 1.

Confira também

Para obter mais informações sobre esses comandos SQL, confira os seguintes artigos:

Próximas etapas

Implantar cliente de gerenciamento do BitLocker