Compartilhar via


Criptografar dados de recuperação no banco de dados

Aplica-se a: Configuration Manager (branch atual)

Quando cria uma política de gestão do BitLocker, Configuration Manager implementa o serviço de recuperação num ponto de gestão. Na página Gestão de Clientes da política de gestão do BitLocker, quando configura os Serviços de Gestão do BitLocker, o cliente cria uma cópia de segurança das informações de recuperação de chaves para a base de dados do site. Estas informações incluem chaves de recuperação BitLocker, pacotes de recuperação e hashes de palavras-passe TPM. Quando os utilizadores estão bloqueados fora do respetivo dispositivo protegido, pode utilizar estas informações para ajudá-los a recuperar o acesso ao dispositivo.

Dada a natureza sensível destas informações, tem de protegê-la. Configuration Manager requer uma ligação HTTPS entre o cliente e o serviço de recuperação para encriptar os dados em trânsito na rede. Para obter mais informações, veja Encriptar dados de recuperação através da rede.

Considere também encriptar estes dados quando armazenados na base de dados do site. Se instalar um certificado de SQL Server, Configuration Manager encripta os dados no SQL.

Se não quiser criar um certificado de encriptação de gestão do BitLocker, opte por utilizar o armazenamento em texto simples dos dados de recuperação. Quando criar uma política de gestão do BitLocker, ative a opção para Permitir que as informações de recuperação sejam armazenadas em texto simples.

Observação

Outra camada de segurança é encriptar toda a base de dados do site. Se ativar a encriptação na base de dados, não existem problemas funcionais no Configuration Manager.

Encripte com cuidado, especialmente em ambientes de grande escala. Consoante as tabelas que encriptar e a versão do SQL, poderá reparar numa degradação de desempenho de até 25%. Atualize os planos de cópia de segurança e recuperação, para que possa recuperar com êxito os dados encriptados.

Observação

Configuration Manager nunca remove ou elimina as informações de recuperação dos dispositivos da base de dados, mesmo que o cliente esteja inativo ou eliminado. Este comportamento é por motivos de segurança. Ajuda com cenários em que um dispositivo é roubado, mas posteriormente recuperado. Para ambientes grandes, o impacto no tamanho da base de dados é de cerca de 9 KB de dados por volume encriptado.

SQL Server certificado de encriptação

Utilize este certificado de SQL Server para Configuration Manager para encriptar dados de recuperação do BitLocker na base de dados do site. Pode criar um certificado autoassinado com um script no SQL Server.

Em alternativa, pode utilizar o seu próprio processo para criar e implementar este certificado, desde que cumpra os seguintes requisitos:

  • O nome do certificado de encriptação de gestão do BitLocker tem de ser BitLockerManagement_CERT.

  • Encripte este certificado com uma chave de master de base de dados.

  • Os seguintes SQL Server utilizadores precisam de permissões de Controlo no certificado:

    • RecoveryAndHardwareCore
    • RecoveryAndHardwareRead
    • RecoveryAndHardwareWrite
  • Implemente o mesmo certificado em todas as bases de dados de sites da hierarquia.

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

    Importante

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

Gerir o certificado de encriptação na atualização do SQL Server

Se a base de dados do site estiver no SQL Server 2014 ou anterior, antes de atualizar SQL Server para a versão 2016 ou posterior, utilize o seguinte procedimento para rodar o certificado para uma versão suportada.

  1. Numa instância do SQL Server a executar a versão mais recente disponível, pelo menos, a versão 2016:

    1. Criar um novo certificado

    2. Fazer uma cópia de segurança do novo certificado

  2. Na instância do SQL Server com a base de dados do site encriptada que planeia atualizar:

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

    2. Restaure o novo certificado.

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

Importante

Se atualizar SQL Server antes de rodar o certificado, contacte Suporte da Microsoft para obter assistência com uma solução.

Também pode utilizar este processo se os seus requisitos empresariais especificarem que precisa de renovar regularmente este certificado.

Scripts de exemplo

Estes scripts SQL são exemplos para criar e implementar um certificado de encriptação de gestão do BitLocker na base 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 de master de base de dados

Antes de utilizar este script num ambiente de produção, altere os seguintes valores:

  • Nome da base de dados do site (CM_ABC)
  • Palavra-passe para criar a chave de master (MyMasterKeyPassword)
  • Data de expiração 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

O SQL não marcar nem impõe a data de expiração do certificado quando o certificado é utilizado para encriptação de base de dados, como é o caso aqui.

Se os seus requisitos empresariais especificarem que renova regularmente este certificado, utilize o mesmo processo para Gerir o certificado de encriptação no SQL Server atualização.

Fazer cópia de segurança do certificado

Este script de exemplo cria uma cópia de segurança de um certificado. Quando guarda o certificado num ficheiro, pode restaurá-lo para outras bases de dados do site na hierarquia.

Antes de utilizar este script num ambiente de produção, altere os seguintes valores:

  • Nome da base de dados do site (CM_ABC)
  • Caminho e nome do ficheiro (C:\BitLockerManagement_CERT_KEY)
  • Exportar palavra-passe da 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

Faça sempre uma cópia de segurança do certificado. Caso precise de recuperar a base de dados do site, poderá ter de restaurar o certificado para recuperar o acesso às chaves de recuperação.

Armazene o ficheiro de certificado exportado e a palavra-passe associada numa localização segura.

Restaurar certificado

Este script de exemplo restaura um certificado a partir de um ficheiro. Utilize este processo para implementar um certificado que criou noutra base de dados do site.

Antes de utilizar este script num ambiente de produção, altere os seguintes valores:

  • Nome da base de dados do site (CM_ABC)
  • Palavra-passe da chave mestra (MyMasterKeyPassword)
  • Caminho e nome do ficheiro (C:\BitLockerManagement_CERT_KEY)
  • Exportar palavra-passe da 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

Utilize este script SQL para verificar se SQL Server criado 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 devolve um valor de 1.

SQL AlwaysOn quando os dados de recuperação do BitLocker são encriptados na base de dados

Se utilizar o SQL AlwaysOn, veja SQL AlwaysOn quando os dados de recuperação do BitLocker são encriptados na base de dados para obter instruções e passos importantes adicionais e necessários.

Para obter mais informações sobre estes comandos SQL, veja os seguintes artigos:

Próximas etapas