Configurar a Criptografia de Chave Dupla

Aplica-se a: Microsoft Purview Double Key Encryption, Microsoft Purview, Azure Information Protection

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

Siga estes passos gerais para configurar o DKE. Depois de concluir estes passos, os seus utilizadores finais podem proteger os seus dados altamente confidenciais com a Encriptação de Chave Dupla.

  1. Implemente o serviço DKE conforme descrito neste artigo. Certifique-se de que o seu ambiente cumpre os requisitos mínimos de licenciamento e sistema. Para obter mais informações, veja System and licensing requirements for DKE (Requisitos de sistema e licenciamento para dKE).

  2. Crie uma etiqueta com Encriptação de Chave Dupla. No portal de conformidade do Microsoft Purview, navegue para Proteção de informações e crie uma nova etiqueta com Encriptação de Chave Dupla. Veja Restringir o acesso ao conteúdo através de etiquetas de confidencialidade para aplicar a encriptação.

  3. Configure o registo em dispositivos cliente para que possa utilizar etiquetas de Encriptação de Chave Dupla. Em seguida, proteja os seus dados ao selecionar a etiqueta Chave Dupla Encriptada no friso Confidencialidade do Microsoft Office.

Existem várias formas de concluir alguns dos passos para implementar a Encriptação de Chave Dupla. Este artigo fornece instruções detalhadas para que os administradores menos experientes implementem o serviço com êxito. Se estiver à vontade para o fazer, pode optar por utilizar os seus próprios métodos.

Implementar o DKE

Este artigo e o vídeo de implementação utilizam o Azure como destino de implementação do serviço DKE. Se estiver a implementar noutra localização, terá de fornecer os seus próprios valores.

Siga estes passos gerais para configurar a Encriptação de Chave Dupla para a sua organização.

  1. Instalar pré-requisitos de software para o serviço DKE
  2. Clonar o repositório do GitHub de Encriptação de Chave Dupla
  3. Modificar as definições da aplicação
  4. Gerar chaves de teste
  5. Compilar o projeto
  6. Implementar o serviço DKE e publicar o arquivo de chaves
  7. Valide a sua implantação
  8. Registar o arquivo de chaves
  9. Criar etiquetas de confidencialidade com o DKE
  10. Migrar ficheiros protegidos de etiquetas HYOK para etiquetas DKE

Quando terminar, pode encriptar documentos e ficheiros com o DKE. Para obter informações, consulte Aplicar etiquetas de confidencialidade aos seus ficheiros e e-mails no Office.

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

Instale estes pré-requisitos no computador onde pretende instalar o serviço DKE.

SDK .NET Core 7.0. Transfira e instale o SDK a partir do download do .NET Core 7.0.

Visual Studio Code. Transfira o Visual Studio Code a partir de https://code.visualstudio.com/. Depois de instalado, execute o Visual Studio Code e selecione Ver>Extensões. Instale estas extensões.

  • C# para Visual Studio Code

  • Gestor de Pacotes NuGet

Recursos do Git. Transfira e instale uma das seguintes opções.

OpenSSL. Tem de ter o OpenSSL instalado para gerar chaves de teste depois de implementar o DKE. Certifique-se de que o está a invocar corretamente a partir do caminho das variáveis de ambiente. Por exemplo, consulte "Adicionar o diretório de instalação ao PATH" em https://www.osradar.com/install-openssl-windows/ para obter detalhes.

Clonar o repositório do GitHub DKE

A Microsoft fornece os ficheiros de origem DKE num repositório do GitHub. Clone o repositório para compilar o projeto localmente para utilização da sua organização. O repositório do GitHub DKE está localizado em https://github.com/Azure-Samples/DoubleKeyEncryptionService.

As instruções seguintes destinam-se a utilizadores inexperientes do Git ou do Visual Studio Code:

  1. No browser, aceda a: https://github.com/Azure-Samples/DoubleKeyEncryptionService.

  2. No lado direito do ecrã, selecione Código. A sua versão da IU poderá mostrar um botão Clonar ou transferir . Em seguida, na lista pendente apresentada, selecione o ícone copiar para copiar o URL para a área de transferência.

    Por exemplo:

    Clone o repositório do serviço Encriptação de Chave Dupla a partir do GitHub.

  3. No Visual Studio Code, selecione Ver>Paleta de Comandos e selecione Git: Clonar. Para aceder à opção na lista, comece a git: clone escrever para filtrar as entradas e, em seguida, selecione-a no menu pendente. Por exemplo:

    Opção GIT:Clone do Visual Studio Code.

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

  5. Na caixa de diálogo Selecionar Pasta que é apresentada, navegue para e selecione uma localização para armazenar o repositório. Selecione Abrir.

    O repositório é aberto no Visual Studio Code e apresenta o ramo Git atual na parte inferior esquerda. O ramo deve ser principal. Por exemplo:

    Captura de ecrã do repositório DKE no Visual Studio Code a apresentar o ramo principal.

  6. Se não estiver no ramo principal, selecione-o. No Visual Studio Code, selecione o ramo e selecione principal na lista de ramos apresentados.

    Importante

    Selecionar o ramo principal garante que tem os ficheiros corretos para criar o projeto. Se não escolher o ramo correto, a implementação falhará.

Tem agora o seu repositório de origem DKE configurado localmente. Em seguida, modifique as definições da aplicação para a sua organização.

Modificar as definições da aplicação

Para implementar o serviço DKE, tem de modificar os seguintes tipos de definições de aplicação:

Pode modificar as definições da aplicação no ficheiro appsettings.json. Este ficheiro está localizado no repositório DoubleKeyEncryptionService que clonou localmente em DoubleKeyEncryptionService\src\customer-key-store. Por exemplo, no Visual Studio Code, pode navegar para o ficheiro, conforme mostrado na imagem seguinte.

Localizar o ficheiro appsettings.json para DKE.

Principais definições de acesso

Escolha se pretende utilizar o e-mail ou a autorização de função. A DKE suporta apenas um destes métodos de autenticação de cada vez.

  • Autorização por e-mail. Permite que a sua organização autorize o acesso a chaves apenas com base em endereços de e-mail.

  • Autorização de função. Permite que a 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 definições de acesso chave para dKE com autorização de e-mail
  1. Abra o ficheiro appsettings.json e localize a AuthorizedEmailAddress definição.

  2. Adicione o endereço de e-mail ou endereços que pretende autorizar. Separe vários endereços de e-mail com aspas e vírgulas. Por exemplo:

    "AuthorizedEmailAddress": ["email1@company.com", "email2@company.com ", "email3@company.com"]
    
  3. Localize a LDAPPath definiçã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 tiver terminado, a definição deverá ter o seguinte aspeto.

    "LDAPPath": ""
    
  4. Localize a AuthorizedRoles definição e elimine toda a linha.

Esta imagem mostra o ficheiro appsettings.json corretamente formatado para autorização de e-mail.

O ficheiro appsettings.json a mostrar o método de autorização de e-mail.

Para definir as principais definições de acesso para dKE com a autorização de função
  1. Abra o ficheiro appsettings.json e localize a AuthorizedRoles definição.

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

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

    "LDAPPath": "contoso.com"
    
  4. Localize a AuthorizedEmailAddress definição e elimine toda a linha.

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

appsettings.json ficheiro a mostrar o método de autorização de função.

Definições de inquilino e chave

As definições de chave e inquilino DKE estão localizadas no ficheiro de appsettings.json .

Para configurar o inquilino e as definições de chave para dKE
  1. Abra o ficheiro appsettings.json .

  2. Localize a ValidIssuers definição e substitua <tenantid> pelo seu ID de inquilino. Pode localizar o ID do inquilino ao aceder ao portal do Azure e ver as propriedades do inquilino. Por exemplo:

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

Observação

Se quiser ativar o acesso B2B externo ao seu arquivo de chaves, também terá de incluir estes inquilinos externos como parte da lista de emissores válidos.

Localize o JwtAudience. Substitua <yourhostname> pelo nome do anfitrião do computador onde pretende executar o serviço DKE. Por exemplo: "https://dkeservice.contoso.com"

Importante

O valor para JwtAudience tem de corresponder exatamente ao nome do seu anfitrião.

  • TestKeys:Name. Introduza um nome para a sua chave. Por exemplo: TestKey1
  • TestKeys:Id. Crie um GUID e introduza-o como o TestKeys:ID valor. Por exemplo, DCE1CC21-FF9B-4424-8FF4-9914BD19A1BE. Pode utilizar um site como o Gerador DE GUID Online para gerar aleatoriamente um GUID.

Esta imagem mostra o formato correto para as definições de inquilino e chaves no appsettings.json. LDAPPath está configurado para autorização de função.

Mostra as definições de inquilino e chave corretas para dKE no ficheiro appsettings.json.

Gerar chaves de teste

Assim que tiver as definições da aplicação definidas, estará pronto para gerar chaves de teste públicas e privadas.

Para gerar chaves:

  1. No menu Iniciar do Windows, execute a Linha de Comandos OpenSSL.

  2. Mude para a pasta onde pretende guardar as chaves de teste. Os ficheiros que criar ao concluir os passos nesta 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 instalou a versão 3 ou posterior do OpenSSL, 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. Num editor de texto, abra pubkeyonly.pem. Copie todo o conteúdo no ficheiro pubkeyonly.pem , exceto as primeiras e últimas linhas, para a PublicPem secção do ficheiro appsettings.json .

  7. Num editor de texto, abra privkeynopass.pem. Copie todo o conteúdo no ficheiro privkeynopass.pem , exceto as primeiras e últimas linhas, para a PrivatePem secção do ficheiro appsettings.json .

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

    Importante

    Quando copiar este conteúdo, não elimine nenhum dos dados PEM.

  9. No Visual Studio Code, navegue para o ficheiro Startup.cs . Este ficheiro está localizado no repositório DoubleKeyEncryptionService que 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 ter um aspeto semelhante ao seguinte.

    startup.cs ficheiro para pré-visualização pública.

Agora, está pronto para criar o seu projeto DKE.

Compilar o projeto

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

  1. No Visual Studio Code, no repositório do serviço DKE, selecione Ver>Paleta de Comandos e, em seguida, escreva build na linha de comandos.

  2. Na lista, selecione 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 forma.

    Configurar a tarefa de compilação em falta para .NET.

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

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

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

      Selecione o modelo correto para DKE.

    3. Na secção de criação, localize o caminho para o ficheiro customerkeystore.csproj . Se não estiver lá, adicione a seguinte linha:

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

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

    Se existirem erros vermelhos, verifique o resultado da consola. Certifique-se de que concluiu todos os passos anteriores corretamente e que estão presentes as versões de compilação corretas.

A configuração está agora concluída. Antes de publicar o keystore, no appsettings.json, para a definição JwtAudience, certifique-se de que o valor do nome do anfitrião corresponde exatamente ao nome do anfitrião do Serviço de Aplicações.

Implementar o serviço DKE e publicar o arquivo de chaves

Para implementações de produção, implemente o serviço numa cloud de terceiros ou publique num sistema no local.

Pode preferir outros métodos para implementar as chaves. Selecione o método que funciona melhor para a sua organização.

Para implementações piloto, pode implementar no Azure e começar imediatamente.

Para criar uma instância da Aplicação Web do Azure para alojar a implementação DKE

Para publicar o arquivo de chaves, crie uma instância do Serviço de Aplicações do Azure para alojar a sua implementação DKE. Em seguida, publique as chaves geradas no Azure.

  1. No browser, inicie sessão no portal do Microsoft Azure e aceda a Adicionar ServiçosAplicacionais>.

  2. Selecione a subscrição e o grupo de recursos e defina os detalhes da instância.

  • Introduza o nome do anfitrião do computador onde pretende instalar o serviço DKE. Certifique-se de que é o mesmo nome definido para a definição JwtAudience no ficheiro appsettings.json . O valor que indicar para o nome também é WebAppInstanceName.

  • Em Publicar, selecione código e, para Pilha de runtime, selecione .NET Core 3.1.

    Por exemplo:

    Adicione o serviço de aplicações.

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

  2. Efetue um dos seguintes procedimentos para publicar as chaves geradas:

Publicar através do 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 arquivo de chaves, aceda à pasta customer-key-store\src\customer-key-store e verifique se esta pasta contém o ficheiro customerkeystore.csproj .

  3. Executar: publicação dotnet

    A janela de saída apresenta o diretório onde a publicação foi implementada.

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

  4. Enviar todos os ficheiros no diretório de publicação para um ficheiro de .zip. Ao criar o ficheiro .zip, certifique-se de que todos os ficheiros no diretório estão no nível de raiz do ficheiro .zip.

  5. Arraste e largue o ficheiro .zip que criou no site ZipDeployUI que abriu anteriormente. Por exemplo: https://dkeservice.scm.azurewebsites.net/ZipDeployUI

O DKE é implementado e pode navegar para as chaves de teste que criou. Continue para Validar a implementação neste artigo.

Publicar através de FTP

  1. Ligue-se ao Serviço de Aplicações que criou anteriormente.

    No browser, aceda a:Dashboardde FTP> deImplementação Manualdo Centro de Implementação> doServiço> de Aplicações do > portal > do Azure.

  2. Copie as cadeias de ligação apresentadas para um ficheiro local. Utilize estas cadeias para ligar ao Serviço de Aplicações Web e carregar ficheiros através de FTP.

    Por exemplo:

    Copie as cadeias de ligação do dashboard de FTP.

  3. Na base de código do armazenamento de chaves, aceda ao diretório customer-key-store\src\customer-key-store.

  4. Verifique se este diretório contém o ficheiro customerkeystore.csproj .

  5. Executar: publicação dotnet

    O resultado contém o diretório onde a publicação foi implementada.

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

  6. Envie todos os ficheiros no diretório de publicação para um ficheiro zip. Ao criar o ficheiro .zip, certifique-se de que todos os ficheiros no diretório estão no nível de raiz do ficheiro .zip.

  7. A partir do cliente FTP, utilize as informações de ligação que copiou para ligar ao Serviço de Aplicações. Carregue o ficheiro .zip que criou no passo anterior para o diretório de raiz da sua Aplicação Web.

O DKE é implementado e pode navegar para as chaves de teste que criou. Em seguida, valide a implementação.

Valide a sua implantação

Depois de implementar o DKE com um dos métodos descritos neste artigo, valide a implementação e as definições do arquivo 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

Certifique-se de que não são apresentados erros na saída. Quando estiver pronto, registe o arquivo de chaves.

O nome da chave é sensível às maiúsculas e minúsculas. Introduza o nome da chave tal como aparece no ficheiro appsettings.json.

Registar o arquivo de chaves

Os passos seguintes permitem-lhe registar o serviço DKE. Registar o serviço DKE é o último passo na implementação do DKE antes de poder começar a criar etiquetas.

Para registar o serviço DKE:

  1. No browser, abra o portal do Microsoft Azure e aceda aRegistos de Aplicações deIdentidade> de Todos os Serviços>.

  2. Selecione Novo registo e introduza um nome significativo.

  3. Selecione um tipo de conta nas opções apresentadas.

    Por exemplo:

    Novo Registo de Aplicações.

  4. Na parte inferior da página, selecione Registar para criar o novo Registo de Aplicações.

  5. No novo Registo de Aplicações, no painel esquerdo, em Gerir, selecione Autenticação.

  6. Selecione Adicionar uma plataforma.

  7. No pop-up Configurar plataformas, selecioneWeb.

  8. Em URIs de Redirecionamento, introduza o URI do seu serviço de encriptação de chave dupla. Introduza o URL do Serviço de Aplicações, incluindo o nome do anfitrião e o domínio.

    Por exemplo: https://mydkeservicetest.com

    • O URL introduzido tem de corresponder ao nome do anfitrião onde o serviço DKE está implementado.
    • O domínio tem de ser um domínio verificado.
    • Em todos os casos, o esquema tem de ser https.

    Certifique-se de que o nome do anfitrião corresponde exatamente ao seu nome de anfitrião do Serviço de Aplicações.

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

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

  11. No painel esquerdo, selecione Expor uma API, junto a URI do ID da Aplicação, introduza o URL do Serviço de Aplicações, incluindo o nome do anfitrião e o domínio e, em seguida, selecione Definir.

  12. Ainda na página Expor uma API , na área Âmbitos definidos por esta API , selecione Adicionar um âmbito. No novo âmbito:

    1. Defina o nome do âmbito como user_impersonation.

    2. Selecione os administradores e utilizadores que podem consentir.

    3. Defina os restantes valores necessários.

    4. Selecione Adicionar escopo.

    5. Selecione Guardar na parte superior para guardar as alterações.

  13. Ainda na página Expor uma API , na área Aplicações cliente autorizadas , selecione Adicionar uma aplicação cliente.

    Na nova aplicação cliente:

    1. Defina o ID de Cliente como d3590ed6-52b3-4102-aeff-aad2292ab01c. Este valor é o ID de cliente do Microsoft Office e permite que o Office obtenha um token de acesso para a sua loja de chaves.

    2. Em Âmbitos autorizados, selecione o âmbito user_impersonation .

    3. Selecione Adicionar aplicativo.

    4. Selecione Guardar na parte superior para guardar as alterações.

    5. Repita estes passos, mas, desta vez, defina o ID de cliente como c00e9d32-3c8d-4a7d-832b-029040e7db99. Este valor é o ID de cliente do Azure Information Protection.

    6. Repita estes passos, mas, desta vez, defina o ID de cliente como 0e25d998-b19a-4080-811c-d74d60d65e42. Este valor é o ID de cliente do Purview Information Protection.

O serviço DKE está agora registado. Continue ao criar etiquetas com o DKE.

Criar etiquetas de confidencialidade com o DKE

No portal de conformidade do Microsoft Purview, crie uma nova etiqueta de confidencialidade e aplique a encriptação como faria de outra forma. Selecione Utilizar Encriptação de Chave Dupla e introduza o URL do ponto final da sua chave. Tem de incluir o nome da chave que indicou na secção "TestKeys" do ficheiro appsettings.json no URL.

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

Selecione Utilizar Encriptação de Chave Dupla no portal de conformidade do Microsoft Purview.

Todas as etiquetas DKE que adicionar são apresentadas aos utilizadores nas versões mais recentes do Microsoft 365 Apps para Grandes Empresas.

Observação

Os clientes podem demorar até 24 horas a atualizar com as novas etiquetas.

Migrar ficheiros protegidos de etiquetas HYOK para etiquetas DKE

Se quiser, assim que concluir a configuração do DKE, pode migrar o conteúdo que protegeu com etiquetas HYOK para etiquetas DKE. Para migrar, utilize o analisador do Microsoft Purview Information Protection. Para começar a utilizar o scanner, consulte Compreender o analisador de proteção de informações.

Se não migrar conteúdo, o conteúdo protegido por HYOK permanece inalterado.

Outras opções de implementação

Sabemos que, para alguns clientes em indústrias altamente reguladas, esta implementação de referência padrão com chaves baseadas em software pode não ser suficiente para satisfazer as suas obrigações e necessidades de conformidade melhoradas. Estabelecemos uma parceria com fornecedores de módulos de segurança de hardware (HSM) de terceiros para suportar opções de gestão de chaves melhoradas no serviço DKE, incluindo:

Contacte diretamente estes fornecedores para obter mais informações e orientações sobre as soluções DKE HSM no mercado.

Configurar clientes para aplicar etiquetas de confidencialidade DKE

Em cada dispositivo cliente, conclua esta tarefa.

  1. Certifique-se de que os seguintes valores de registo estão definidos em cada cliente. Crie chaves de registo 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