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.
Em uma instância de SQL Server executando a versão mais recente disponível, pelo menos a versão 2016:
Na instância SQL Server com o banco de dados do site criptografado que você planeja atualizar:
Mova o certificado existente no servidor de banco de dados do site SQL Server instância para outro nome.
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:
- SQL Server e chaves de criptografia de banco de dados
- Criar certificado
- Certificado de backup
- Criar chave mestra
- Chave mestra de backup
- Conceder permissões de certificado