Configurar a Criptografia de Chave Dupla

Descrição do serviço Microsoft Purview

Descrição do serviço para: Microsoft Purview

Siga estas etapas gerais para configurar o DKE. Depois de concluir essas etapas, os usuários finais poderão proteger seus dados altamente confidenciais com a Criptografia de Chave Dupla.

  1. Implante o serviço DKE conforme descrito neste artigo. Certifique-se de que seu ambiente atenda aos requisitos mínimos de sistema e licenciamento. Para obter mais informações, consulte Requisitos de sistema e licenciamento para DKE.

  2. Crie um rótulo com Criptografia de Chave Dupla. No portal do Microsoft Purview, navegue até Proteção de informações e crie um novo rótulo com Criptografia de Chave Dupla. Consulte Restringir o acesso ao conteúdo usando rótulos de confidencialidade para aplicar criptografia.

  3. Configure o Registro em dispositivos cliente para que você possa usar rótulos de Criptografia de Chave Dupla. Em seguida, proteja seus dados selecionando o rótulo Chave Dupla Criptografada na faixa de opções de confidencialidade do Microsoft Office.

Há várias maneiras de concluir algumas das etapas para implantar a Criptografia de Chave Dupla. Este artigo fornece instruções detalhadas para que administradores menos experientes implantem o serviço com êxito. Se você se sentir confortável em fazer isso, poderá optar por usar seus próprios métodos.

Implantar DKE

Este artigo e o vídeo de implantação usam o Azure como o destino de implantação para o serviço DKE. Se você estiver implantando em outro local, precisará fornecer seus próprios valores.

Siga estas etapas gerais para configurar a Criptografia de Chave Dupla para sua organização.

  1. Instalar os pré-requisitos de software para o serviço DKE
  2. Clonar o repositório GitHub de criptografia de chave dupla
  3. Modificar configurações de aplicativos
  4. Gerar chaves de teste
  5. Compilar o projeto
  6. Implantar o serviço DKE e publicar o repositório de chaves
  7. Valide a sua implantação
  8. Registrar seu repositório de chaves
  9. Criar rótulos de confidencialidade usando DKE
  10. Migrar arquivos protegidos de rótulos HYOK para rótulos DKE

Quando terminar, você poderá criptografar documentos e arquivos usando o DKE. Para obter informações, consulte Aplicar rótulos de confidencialidade aos seus arquivos e email no Office.

Instalar os pré-requisitos de software para o serviço DKE

Instale esses pré-requisitos no computador em que deseja instalar o serviço DKE.

SDK do .NET 8.0. Baixe e instale o SDK em Baixe o .NET 8.0.

Visual Studio Code. Baixe o Visual Studio Code de https://code.visualstudio.com/. Depois de instalado, execute o Visual Studio Code e selecione Exibir>Extensões. Instale essas extensões.

  • C# para Visual Studio Code

  • Gerenciador de Pacotes NuGet

Recursos do Git. Baixe e instale um dos seguintes.

OpenSSL. Você deve ter o OpenSSL instalado para gerar chaves de teste depois de implantar o DKE. Certifique-se de invocá-lo corretamente no caminho das variáveis de ambiente. Por exemplo, consulte "Adicionar o diretório de instalação ao PATH" para https://www.osradar.com/install-openssl-windows/ obter detalhes.

Clonar o repositório DKE do GitHub

A Microsoft fornece os arquivos de origem DKE em um repositório GitHub. Você clona o repositório para construir o projeto localmente para uso da sua organização. O repositório DKE GitHub está localizado em https://github.com/Azure-Samples/DoubleKeyEncryptionService.

As instruções a seguir destinam-se a usuários inexperientes do git ou do Visual Studio Code:

  1. No navegador, vá para: https://github.com/Azure-Samples/DoubleKeyEncryptionService.

  2. No lado direito da tela, selecione Código. Sua versão da interface do usuário pode mostrar um botão Clonar ou baixar . Em seguida, na lista suspensa exibida, selecione o ícone de cópia para copiar a URL para a área de transferência.

    Por exemplo:

    Clone o repositório de serviço de Criptografia de Chave Dupla do GitHub.

  3. No Visual Studio Code, selecione Exibir>Paleta de Comandos e selecione Git: Clone. Para pular para a opção na lista, comece a digitar git: clone para filtrar as entradas e selecione-a na lista suspensa. Por exemplo:

    Visual Studio Code GIT:Opção de clone.

  4. Na caixa de texto, cole a URL que você copiou do Git e selecione Clonar do GitHub.

  5. Na caixa de diálogo Selecionar Pasta exibida, navegue até e selecione um local para armazenar o repositório. Selecione Abrir.

    O repositório é aberto no Visual Studio Code e exibe a ramificação atual do Git na parte inferior esquerda. A ramificação deve ser principal. Por exemplo:

    Captura de tela do repositório DKE no Visual Studio Code exibindo o branch main.

  6. Se você não estiver na ramificação principal, selecione-a. No Visual Studio Code, selecione a ramificação e escolha principal na lista de ramificações exibida.

    Importante

    Selecionar a ramificação principal garante que você tenha os arquivos corretos para criar o projeto. Se você não escolher o branch correto, sua implantação falhará.

Agora você tem seu repositório de origem DKE configurado localmente. Em seguida, modifique as configurações do aplicativo para sua organização.

Modificar configurações de aplicativos

Para implantar o serviço DKE, você deve modificar os seguintes tipos de configurações de aplicativo:

Você modifica as configurações do aplicativo no arquivo appsettings.json. Esse arquivo está localizado no repositório DoubleKeyEncryptionService que você clonou localmente em DoubleKeyEncryptionService\src\customer-key-store. Por exemplo, no Visual Studio Code, você pode procurar o arquivo conforme mostrado na imagem a seguir.

Localizando o arquivo appsettings.json para DKE.

Configurações de acesso de chave

Escolha se deseja usar email ou autorização de função. O DKE oferece suporte a apenas um desses métodos de autenticação por vez.

  • Email de autorização. Permite que sua organização autorize o acesso a chaves com base apenas em endereços de email.

  • Autorização de função. Permite que sua organização autorize o acesso a chaves com base em grupos do Active Directory e requer que o serviço Web possa consultar o LDAP.

Para definir as configurações de acesso de chave para o DKE usando a autorização de email
  1. Abra o arquivo appsettings.json e localize a AuthorizedEmailAddress configuração.

  2. Adicione o(s) endereço(s) de email que deseja autorizar. Separe vários endereços de email com aspas duplas e vírgulas. Por exemplo:

    "AuthorizedEmailAddress": ["email1@company.com", "email2@company.com ", "email3@company.com"]
    
  3. Localize a LDAPPath configuração e remova o texto If you use role authorization (AuthorizedRoles) then this is the LDAP path. entre aspas duplas. Deixe as aspas duplas no lugar. Quando terminar, a configuração deve ficar assim.

    "LDAPPath": ""
    
  4. Localize a AuthorizedRoles configuração e exclua a linha inteira.

Esta imagem mostra o arquivo appsettings.json formatado corretamente para autorização de email.

O arquivo appsettings.json mostrando o método de autorização de email.

Para definir as configurações de acesso de chave para o DKE usando a autorização de função
  1. Abra o arquivo appsettings.json e localize a AuthorizedRoles configuração.

  2. Adicione os nomes de grupo do Active Directory que você deseja autorizar. Separe vários nomes de grupos com aspas duplas e vírgulas. Por exemplo:

    "AuthorizedRoles": ["group1", "group2", "group3"]
    
  3. Localize a LDAPPath configuração e adicione o domínio do Active Directory. Por exemplo:

    "LDAPPath": "contoso.com"
    
  4. Localize a AuthorizedEmailAddress configuração e exclua a linha inteira.

Esta imagem mostra o arquivo appsettings.json formatado corretamente para autorização de função.

appsettings.json arquivo mostrando o método de autorização de função.

Configurações de locatário e chave

As configurações de chave e locatário DKE estão localizadas no arquivo appsettings.json .

Para definir as configurações de locatário e chave para DKE
  1. Abra o arquivo appsettings.json .

  2. Localize a ValidIssuers configuração e substitua <tenantid> pela ID do locatário, mantendo a barra no final da ID do locatário. Você pode localizar a ID do locatário acessando o portal do Azure e exibindo as propriedades do locatário. Por exemplo:

    "ValidIssuers": [
    "https://sts.windows.net/9c99431e-b513-44be-a7d9-e7b500002d4b/"
    ]
    
    

Observação

Se você quiser habilitar o acesso B2B externo ao repositório de chaves, também precisará incluir esses locatários externos como parte da lista de emissores válidos.

Localize o JwtAudiencearquivo . Substitua o valor de espaço reservado, "https://dkeservice.contoso.com" no json, pelo nome do host da máquina em que você deseja executar o serviço DKE.

Importante

O valor deve JwtAudience corresponder exatamente ao nome do seu host.

  • TestKeys:Name. Insira um nome para sua chave. Por exemplo: TestKey1
  • TestKeys:Id. Crie um GUID e insira-o como o TestKeys:ID valor. Por exemplo, DCE1CC21-FF9B-4424-8FF4-9914BD19A1BE. Você pode usar um site como o Gerador de GUID Online para gerar aleatoriamente um GUID.
  • JwtAuthorization. Substitua {tenant-id} pela ID do locatário.

O json a seguir mostra o formato correto para configurações de locatário e chaves no appsettings.json. LDAPPath está configurado para autorização de função.

{
  "TokenValidationParameters": {
    "ValidIssuers": [
      "https://sts.windows.net/9c99431e-b513-44be-a7d9-e7b50002d4b/"
    ]
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "JwtAudience": "https://dkeservice.contoso.com/",
  "JwtAuthorization": "https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize",
  "RoleAuthorizer": {
    "LDAPPath": ""
  },
  "TestKeys": [
    {
      "Name": "TestKey1",
      "Id": "DCE1CC21-FF98-4424-8FF4-9914BD19A1BE"
    }
  ]
}

Gerar chaves de teste

Depois de definir as configurações do aplicativo, você estará pronto para gerar chaves de teste públicas e privadas.

Para gerar chaves:

  1. No menu Iniciar do Windows, execute o Prompt de Comando OpenSSL.

  2. Mude para a pasta onde você deseja salvar as chaves de teste. Os arquivos que você cria ao concluir as etapas desta tarefa são armazenados na mesma pasta.

  3. Gere a nova chave de teste.

    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
    
  4. Gere a chave privada.

    Se você instalou o OpenSSL versão 3 ou posterior, execute o seguinte comando:

    openssl rsa -in key.pem -out privkeynopass.pem -outform PEM -traditional
    

    Caso contrário, execute o seguinte comando:

    openssl rsa -in key.pem -out privkeynopass.pem -outform PEM
    
  5. Gere a chave pública.

    openssl rsa -in key.pem -pubout > pubkeyonly.pem
    
  6. Em um editor de texto, abra pubkeyonly.pem. Copie todo o conteúdo do arquivo pubkeyonly.pem , exceto a primeira e a última linhas, para a PublicPem seção do arquivo appsettings.json .

  7. Em um editor de texto, abra privkeynopass.pem. Copie todo o conteúdo do arquivo privkeynopass.pem , exceto a primeira e a última linhas, para a PrivatePem seção do arquivo appsettings.json .

  8. Remova todos os espaços em branco e novas linhas nas PublicPem seções e PrivatePem .

    Importante

    Ao copiar esse conteúdo, não exclua nenhum dos dados PEM.

  9. No Visual Studio Code, navegue até o arquivo Startup.cs. Esse arquivo está localizado no repositório DoubleKeyEncryptionService que você clonou localmente em DoubleKeyEncryptionService\src\customer-key-store.

  10. Localize as seguintes linhas:

    #if USE_TEST_KEYS
    #error !!!!!!!!!!!!!!!!!!!!!! Use of test keys is only supported for testing,
    DO NOT USE FOR PRODUCTION !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    services.AddSingleton<ippw.IKeyStore, ippw.TestKeyStore>();
    #endif
    
  11. Substitua estas linhas pelo seguinte texto:

    services.AddSingleton<ippw.IKeyStore, ippw.TestKeyStore>();
    

    Os resultados finais devem ser semelhantes aos seguintes.

    startup.cs arquivo para visualização pública.

Agora você está pronto para construir seu projeto DKE.

Compilar o projeto

Use as instruções a seguir para criar o projeto DKE localmente:

  1. No Visual Studio Code, no repositório de serviço DKE, selecione Exibir>Paleta de Comandos e digite build no prompt.

  2. Na lista, escolha Tarefas: Executar tarefa de compilação.

    Se não forem encontradas tarefas de compilação, selecione Configurar Tarefa de Compilação e crie uma para o .NET core da seguinte maneira.

    Configurar tarefa de compilação ausente para o .NET.

    1. Escolha Criar tasks.json a partir do modelo.

      Crie tasks.json arquivo a partir do modelo para DKE.

    2. Na lista de tipos de modelo, selecione .NET Core.

      Selecione o modelo correto para DKE.

    3. Na seção de compilação, localize o caminho para o arquivo customerkeystore.csproj . Se não estiver lá, adicione a seguinte linha:

      "${workspaceFolder}/src/customer-key-store/customerkeystore.csproj",
      
    4. Execute a compilação novamente.

  3. Verifique se não há erros vermelhos na janela de saída.

    Se houver erros vermelhos, marque a saída do console. Certifique-se de que você concluiu todas as etapas anteriores corretamente e que as versões de build corretas estejam presentes.

Sua configuração foi concluída. Antes de publicar o repositório de chaves, em appsettings.json, para a configuração JwtAudience, verifique se o valor do nome do host corresponde exatamente ao nome do host Serviço de Aplicativo.

Implantar o serviço DKE e publicar o repositório de chaves

Para implantações de produção, implante o serviço em uma nuvem de terceiros ou publique em um sistema local.

Talvez você prefira outros métodos para implantar suas chaves. Selecione o método que funciona melhor para sua organização.

Para implantações piloto, você pode implantar no Azure e começar imediatamente.

Para criar uma instância do Aplicativo Web do Azure para hospedar sua implantação do DKE

Para publicar o repositório de chaves, crie uma instância do Serviço de Aplicativo do Azure para hospedar sua implantação do DKE. Em seguida, publique suas chaves geradas no Azure.

  1. No navegador, entre no portal do Azure Microsoft e acesse Criar > Aplicativo Web dos Serviços de> Aplicativo.

  2. Crie um grupo de recursos novo ou selecione um existente.

  3. Forneça um nome para a instância, por exemplo, contosodke1. Esse nome não corresponde ao nome no arquivo de configuração. O valor fornecido para o nome também é WebAppInstanceName.

  4. No plano de preços, selecione um tamanho que permita domínios personalizados, por exemplo, Básico B1.

  5. Para Publicar, selecione o código e, para Pilha de runtime, selecione .NET 8 (LTS).

  6. Selecione Examinar + criar

Por exemplo:

Criar um Aplicativo Web

  1. No aplicativo Web recém-criado, vá para "Configurações", "Domínios personalizados", selecione Adicionar domínio personalizado

  2. Em Provedor de domínio, selecione Todos os outros serviços de domínio

  3. Em Domínio, insira o nome do host do computador em que deseja instalar o serviço DKE.

Importante

Certifique-se de que o nome do host seja o mesmo nome definido para a configuração JwtAudience no arquivo appsettings.json.

  1. No DNS público, execute as alterações sugeridas conforme indicado na seção Validação de domínio e selecione Validar.

Por exemplo:

Adicionar domínio personalizado.

  1. Faça o seguinte para publicar suas chaves geradas:

Por exemplo, FTP

Publicar via ZipDeployUI

  1. Saiba mais em https://<WebAppInstanceName>.scm.<location>.azurewebsites.net/ZipDeployUI.

    Por exemplo: https://dkeservice-ctaugtfwh7d3c3c.scm.westcentralus-01.azurewebsites.net/ZipDeployUI

  2. Inicie um prompt do PowerShell.

  3. Na base de código do repositório de chaves, acesse a pasta customer-key-store\src\customer-key-store e verifique se essa pasta contém o arquivo customerkeystore.csproj .

  4. Executar: dotnet publish

    A janela de saída exibe o diretório em que a publicação foi implantada.

    Por exemplo: customer-key-store\src\customer-key-store\bin\Debug\net8.0\publish\

  5. Envie todos os arquivos do diretório de publicação para um arquivo .zip. Ao criar o arquivo .zip, verifique se todos os arquivos no diretório estão no nível raiz do arquivo .zip.

  6. Arraste e solte o arquivo .zip que você criou para o site ZipDeployUI que você abriu antes.

O DKE é implantado e você pode navegar até as chaves de teste criadas. Continue a validar sua implantação neste artigo.

Valide a sua implantação

Depois de implantar o DKE usando um dos métodos descritos neste artigo, valide as configurações de implantação e armazenamento de chaves.

Executar:

src\customer-key-store\scripts\key_store_tester.ps1 dkeserviceurl/mykey

Por exemplo:

key_store_tester.ps1 https://dkeservice.contoso.com/TestKey1

Verifique se nenhum erro aparece na saída. Quando estiver pronto, registre seu repositório de chaves.

O nome da chave diferencia maiúsculas de minúsculas. Digite o nome da chave como ele aparece no arquivo appsettings.json.

Registrar seu repositório de chaves

As etapas a seguir permitem que você registre seu serviço DKE. Registrar seu serviço DKE é a última etapa na implantação do DKE antes que você possa começar a criar etiquetas.

Para registrar o serviço DKE:

  1. No navegador, abra o portal do Azure Microsoft e acesse Registros deaplicativo de identidade>paratodos os serviços>.

  2. Selecione Novo registro e insira um nome significativo.

  3. Selecione um tipo de conta entre as opções exibidas.

    Por exemplo:

    Novo registro de aplicativo.

  4. Na parte inferior da página, selecione Registrar para criar o novo Registro de aplicativo.

  5. No novo Registro de Aplicativo, no painel esquerdo, em Gerenciar, selecione Autenticação.

  6. Selecione Adicionar uma plataforma.

  7. No pop-up Configure platforms , selecione Web.

  8. Em URIs de redirecionamento, insira o URI do serviço de criptografia de chave dupla. Insira a URL do Serviço de Serviço de Aplicativo, incluindo o nome do host e o domínio.

    Por exemplo: https://mydkeservicetest.com

    • A URL inserida deve corresponder ao nome do host em que o serviço DKE está implantado.
    • O domínio deve ser verificado.
    • Em todos os casos, o esquema deve ser https.

    Verifique se o nome do host corresponde exatamente ao nome do host do Serviço de Serviço de Aplicativo.

  9. Em Concessão implícita, marque a caixa de seleção Tokens de ID .

  10. Selecione Salvar para salvar suas alterações.

  11. No painel esquerdo, selecione Expor uma API, ao lado do URI da ID do Aplicativo, insira a URL do Serviço de Serviço de Aplicativo, incluindo o nome do host e o domínio, e selecione Definir.

  12. Ainda na página Expor uma API , na área Scopes defined by this API , selecione Add a scope. No novo escopo:

    1. Defina o nome do escopo como user_impersonation.

    2. Selecione os administradores e usuários que podem consentir.

    3. Defina os valores restantes necessários.

    4. Selecione Adicionar escopo.

    5. Selecione Salvar na parte superior para salvar suas alterações.

  13. Ainda na página Expor uma API , na área Aplicativos cliente autorizados , selecione Adicionar um aplicativo cliente.

    No novo aplicativo cliente:

    1. Defina a ID do cliente como d3590ed6-52b3-4102-aeff-aad2292ab01c. Esse valor é a ID do cliente do Microsoft Office e permite que o Office obtenha um token de acesso para seu repositório de chaves.

    2. Em Escopos autorizados, selecione o user_impersonation escopo.

    3. Selecione Adicionar aplicativo.

    4. Selecione Salvar na parte superior para salvar suas alterações.

    5. Repita essas etapas, mas, desta vez, defina a ID do cliente como 0e25d998-b19a-4080-811c-d74d60d65e42. Esse valor é a ID do cliente da Proteção de Informações do Purview.

Seu serviço DKE agora está registrado. Continue criando etiquetas usando o DKE.

Criar rótulos de confidencialidade usando DKE

No portal do Microsoft Purview, crie um novo rótulo de confidencialidade e aplique a criptografia como faria de outra forma. Selecione Usar Criptografia de Chave Dupla e insira a URL do ponto de extremidade para sua chave. Você precisa incluir o nome da chave fornecido na seção "TestKeys" do arquivo appsettings.json na URL.

Por exemplo: https://testingdke1.azurewebsites.net/KEYNAME

Selecione Usar Criptografia de Chave Dupla no portal do Microsoft Purview.

Todos os rótulos DKE adicionados aparecem para usuários nas versões mais recentes do Microsoft 365 Apps para Grandes Empresas.

Observação

Pode levar até 24 horas para que os clientes atualizem com os novos rótulos.

Migrar arquivos protegidos de rótulos HYOK para rótulos DKE

Se desejar, depois de concluir a configuração do DKE, você pode migrar o conteúdo protegido usando rótulos HYOK para rótulos DKE. Para migrar, use o verificador de Proteção de Informações do Microsoft Purview. Para começar a usar o scanner, consulte Entender o scanner de proteção de informações.

Se você não migrar conteúdo, seu conteúdo protegido por HYOK permanecerá inalterado.

Outras opções de implantação

Sabemos que, para alguns clientes em setores altamente regulamentados, essa implementação de referência padrão usando chaves baseadas em software pode não ser suficiente para atender às suas obrigações e necessidades de conformidade aprimoradas. Fazemos parcerias com fornecedores terceirizados de HSM (módulo de segurança de hardware) para dar suporte a opções avançadas de gerenciamento de chaves no serviço DKE, incluindo:

Entre em contato diretamente com esses fornecedores para obter mais informações e orientações sobre suas soluções de HSM DKE no mercado.

Configurar clientes para aplicar rótulos de confidencialidade DKE

Em cada dispositivo cliente, conclua essa tarefa.

  1. Verifique se os seguintes valores do Registro estão definidos em cada cliente. Crie chaves de registro que ainda não existem:

    [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSIPC\flighting]
    "DoubleKeyProtection"=dword:00000001
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSIPC\flighting]
    "DoubleKeyProtection"=dword:00000001