Configurar a Criptografia de Chave Dupla

Aplica-se a: Microsoft Purview Double Key Encryption, Microsoft Purview, Azure Proteção de Informações

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 Criptografia de Chave Dupla.

  1. Implante o serviço DKE conforme descrito neste artigo. Verifique se seu ambiente atende 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 de conformidade 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 Double Key Encrypted na faixa de opções Confidencialidade no 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ê estiver confortável em fazer isso, poderá optar por usar seus próprios métodos.

Implantar o DKE

Este artigo e o vídeo de implantação usam o Azure como o destino de implantação do 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 Chaves Duplas para sua organização.

  1. Instalar 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 aplicativo
  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ê pode criptografar documentos e arquivos usando DKE. Para obter informações, consulte Aplicar rótulos de confidencialidade aos seus arquivos e email no Office.

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

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

SDK do .NET Core 7.0. Baixe e instale o SDK do Download do .NET Core 7.0.

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

  • C# para Visual Studio Code

  • Gerenciador de Pacotes NuGet

Recursos 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 que você está invocando-o corretamente do 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 GitHub

A Microsoft fornece os arquivos de origem DKE em um repositório do GitHub. Você clona o repositório para criar 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 Visual Studio Code:

  1. No navegador, acesse: 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 na área de transferência.

    Por exemplo:

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

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

    Visual Studio Code opção GIT:Clone.

  4. Na caixa de texto, cole a URL copiada do Git e selecione Clonar no 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 em Visual Studio Code e exibe o branch git atual na parte inferior esquerda. O branch deve ser main. Por exemplo:

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

  6. Se você não estiver no branch main, selecione-o. Em Visual Studio Code, selecione o branch e escolha main na lista de ramificações exibidas.

    Importante

    Selecionar o branch main 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 aplicativo

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 clonado localmente em DoubleKeyEncryptionService\src\customer-key-store. Por exemplo, em Visual Studio Code, você pode navegar até o arquivo, conforme mostrado na imagem a seguir.

Localizando o arquivo appsettings.json para DKE.

Configurações de acesso de chave

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

  • Email autorização. Permite que sua organização autorize o acesso a chaves apenas com base 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 exige que o serviço Web possa consultar o LDAP.

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

  2. Adicione o endereço de email ou endereços que você deseja autorizar. Separe vários endereços de email com aspas e vírgulas duplas. 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 as aspas duplas. Deixe as aspas duplas no lugar. Quando você terminar, a configuração deve ser assim.

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

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

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

Para definir as principais configurações de acesso para 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 grupo com aspas e vírgulas duplas. 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 toda a linha.

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 locatário e chave DKE estão localizadas no arquivo appsettings.json .

Para configurar 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. Você pode localizar sua 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 seu repositório de chaves, também precisará incluir esses locatários externos como parte da lista de emissores válidos.

Localize o JwtAudience. Substitua <yourhostname> pelo nome do host do computador em que você deseja executar o serviço DKE. Por exemplo: "https://dkeservice.contoso.com"

Importante

O valor para JwtAudience deve corresponder exatamente ao nome do 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 GUID Online para gerar aleatoriamente um GUID.

Esta imagem mostra o formato correto para configurações de locatário e chaves no appsettings.json. LDAPPath é configurado para autorização de função.

Mostra as configurações corretas de locatário e chave para DKE no arquivo appsettings.json.

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. Altere para a pasta em que você deseja salvar as chaves de teste. Os arquivos que você cria concluindo 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 no arquivo pubkeyonly.pem , exceto as primeiras e últimas linhas, na PublicPem seção do arquivo appsettings.json .

  7. Em um editor de texto, abra privkeynopass.pem. Copie todo o conteúdo no arquivo privkeynopass.pem , exceto as primeiras e últimas linhas, na PrivatePem seção do arquivo appsettings.json .

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

    Importante

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

  9. Em Visual Studio Code, navegue até o arquivo Startup.cs. Esse arquivo está localizado no repositório DoubleKeyEncryptionService clonado 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 criar seu projeto DKE.

Compilar o projeto

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

  1. Em 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 build.

    Se não houver tarefas de build encontradas, selecione Configurar Tarefa de Build e criar uma para o .NET core da seguinte maneira.

    Configurar a tarefa de build ausente para .NET.

    1. Escolha Criar tasks.json no modelo.

      Crie tasks.json arquivo do modelo para DKE.

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

      Selecione o modelo correto para DKE.

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

      "${workspaceFolder}/src/customer-key-store/customerkeystore.csproj",
      
    4. Execute o build novamente.

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

    Se houver erros vermelhos, marcar a saída do console. Verifique se você concluiu todas as etapas anteriores corretamente e as versões corretas de build estão presentes.

Sua configuração agora está concluída. Antes de publicar o keystore, 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.

Você pode preferir 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 Serviço de Aplicativo do Azure para hospedar sua implantação DKE. Em seguida, publique suas chaves geradas no Azure.

  1. No navegador, entre no Microsoft portal do Azure e vá para Adicionar serviços> deaplicativo.

  2. Selecione sua assinatura e grupo de recursos e defina os detalhes da instância.

    • Insira o nome do host do computador em que você deseja instalar o serviço DKE. Verifique se é o mesmo nome definido para a configuração JwtAudience no arquivo appsettings.json . O valor que você fornece para o nome também é o WebAppInstanceName.

    • Para Publicar, selecione código e para pilha runtime, selecione .NET Core 3.1.

    Por exemplo:

    Adicione seu Serviço de Aplicativo.

  3. Na parte inferior da página, selecione Examinar + criar e, em seguida, selecione Adicionar.

  4. Faça um dos seguintes procedimentos para publicar suas chaves geradas:

Publicar via ZipDeployUI

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

    Por exemplo: https://dkeservice.contoso.scm.azurewebsites.net/ZipDeployUI

  2. 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 .

  3. Executar: publicar dotnet

    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\netcoreapp3.1\publish\

  4. Envie todos os arquivos no 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.

  5. Arraste e solte o arquivo .zip que você criou para o site ZipDeployUI que você abriu antes. Por exemplo: https://dkeservice.scm.azurewebsites.net/ZipDeployUI

O DKE é implantado e você pode navegar até as chaves de teste que você criou. Continue validando sua implantação neste artigo.

Publicar via FTP

  1. Conecte-se ao Serviço de Aplicativo que você criou antes.

    No navegador, acesse: PainelFTP> deImplantação> Manual portal do Azure do Centro de Implantação Serviço de Aplicativo >> Serviço de Aplicativo Deployment>Center.

  2. Copie as cadeias de conexão exibidas em um arquivo local. Use essas cadeias de caracteres para se conectar à Web Serviço de Aplicativo e carregar arquivos via FTP.

    Por exemplo:

    Copie cadeias de conexão do dashboard FTP.

  3. Na base de código para o armazenamento de chaves, acesse o diretório customer-key-store\src\customer-key-store.

  4. Verifique se esse diretório contém o arquivo customerkeystore.csproj .

  5. Executar: publicar dotnet

    A saída contém o diretório em que a publicação foi implantada.

    Por exemplo: customer-key-store\src\customer-key-store\bin\Debug\netcoreapp3.1\publish\

  6. Envie todos os arquivos no 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.

  7. No cliente FTP, use as informações de conexão copiadas para se conectar ao Serviço de Aplicativo. Carregue o arquivo .zip que você criou na etapa anterior para o diretório raiz do aplicativo Web.

O DKE é implantado e você pode navegar até as chaves de teste que você criou. Em seguida, valide sua implantação.

Valide a sua implantação

Depois de implantar o DKE usando um dos métodos descritos neste artigo, valide a implantação e as configurações do repositório 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 não há erros na saída. Quando estiver pronto, registre seu repositório de chaves.

O nome da chave é sensível a maiúsculas de minúsculas. Insira o nome da chave conforme 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 rótulos.

Para registrar o serviço DKE:

  1. No navegador, abra o Microsoft portal do Azure e acesseRegistros de Aplicativo deIdentidade>de Todos os Serviços>.

  2. Selecione Novo registro e insira um nome significativo.

  3. Selecione um tipo de conta nas 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 Configurar plataformas, selecioneWeb.

  8. Em URIs de redirecionamento, insira o URI do serviço de criptografia de chave dupla. Insira a URL 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 é implantado.
    • O domínio deve ser um domínio verificado.
    • Em todos os casos, o esquema deve ser https.

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

  9. Em Concessão implícita, selecione 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 sua URL Serviço de Aplicativo, incluindo nome de host e domínio, e selecione Definir.

  12. Ainda na página Expor uma API , nos Escopos definidos por essa área de API , selecione Adicionar um escopo. No novo escopo:

    1. Defina o nome do escopo como user_impersonation.

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

    3. Defina todos 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 escopo user_impersonation .

    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 c00e9d32-3c8d-4a7d-832b-029040e7db99. Esse valor é a ID do cliente de proteção de informações.

Seu serviço DKE agora está registrado. Continue criando rótulos usando DKE.

Criar rótulos de confidencialidade usando DKE

No portal de conformidade 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 de conformidade 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 os clientes atualizarem 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, poderá migrar o conteúdo protegido usando rótulos HYOK para rótulos DKE. Para migrar, use o Proteção de Informações do Microsoft Purview scanner. Para começar a usar o scanner, consulte Entender o scanner de proteção de informações.

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

Outras opções de implantação

Percebemos 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 parceria com fornecedores de HSM (módulo de segurança de hardware) de terceiros 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 diretrizes 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 valores de registro a seguir são definidos em cada cliente. Crie chaves de registro que ainda não estão lá:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSIPC\flighting]
"DoubleKeyProtection"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSIPC\flighting]
"DoubleKeyProtection"=dword:00000001