Processamento de arquivo de mensagens de email do SDK de arquivo

O SDK da PIM oferece suporte a descriptografia e criptografia de mensagens de email. O SDK oferece suporte aos arquivos .msg, gerados pelo Outlook ou Exchange, e aos arquivos .rpmsg, embora seja por métodos um pouco diferentes.

Os casos de uso comuns para esse cenário são:

  • Descriptografar emails e anexos para inspeção da prevenção contra perda de dados (DLP).
  • Publicar mensagens protegidas diretamente de aplicativos de linha de negócios
  • Descriptografar, modificar e proteger novamente as mensagens em trânsito.
  • Aplicar rótulos a emails de serviços de gateway de DLP ou de email.

Declaração de suporte ao arquivo MSG

O SDK da PIM oferece suporte a aplicativos de proteção e remoção de arquivos MSG. Dada a variedade de tipos de codificação e variáveis no formato ao longo dos anos, não é possível garantir que o SDK da PIM possa remover a proteção de todos os arquivos MSG. A seção a seguir descreve a capacidade de suporte para arquivos MSG de várias fontes.

  • Há suporte total para a remoção da proteção de arquivos MSG que foram protegidos com o SDK da PIM.
  • Há suporte total para a remoção da proteção de arquivos MSG criados por versões atualmente com suporte do cliente Outlook.
  • Na base do melhor esforço, há suporte para a remoção da proteção de arquivos MSG criados por versões do cliente Outlook fora do suporte.
  • A reproteção de arquivos MSG não está disponível com rótulos protegidos. Os usuários devem desproteger e remover o rótulo protegido explicitamente antes de proteger o arquivo novamente com outro rótulo.

Rotulagem de arquivos MSG

O SDK da PIM oferece suporte à leitura e gravação de rótulos em arquivos MSG. Os anexos filhos não herdam o rótulo, mas herdam as configurações de proteção. Revise Operações de rotulagem e proteção no SDK de arquivo para arquivos .msg para obter mais detalhes.

Operações de rotulagem e proteção no SDK de arquivo para arquivos .msg

O SDK de arquivo oferece suporte a operações de rotulagem e proteção de arquivos .msg de maneira idêntica a qualquer outro tipo de arquivo, exceto pelo SDK, que precisa do aplicativo para habilitar o sinalizador de recurso MSG.

Conforme discutido anteriormente, a instanciação de FileEngine requer um objeto de configuração, FileEngineSettings. FileEngineSettings pode ser usado para transmitir parâmetros para configurações personalizadas a fim de atender às necessidades específicas do aplicativo. Para habilitar o SDK da PIM para processar arquivos MSG, a propriedade CustomSettings do objeto FileEngineSettings é usada para definir o sinalizador para enable_msg_file_type a fim de habilitar o processamento de arquivos .msg.

Se você tivesse criado um objeto FileEngineSettings chamado engineSettings, definiria essa propriedade no .NET da seguinte maneira:

engineSettings.CustomSettings = new List<KeyValuePair<string, string>>();
engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("enable_msg_file_type", "true"));

O pseudocódigo de operações de proteção de arquivo .msg pode se parecer com:

  • Defina o sinalizador enable_msg_file_type em mip::FileEngineSettings e adicione o mip::FileEngine a mip::FileProfile.
  • Use o FileEngine para buscar a lista de rótulos para o usuário.
  • Construa o mip::FileHandler que aponta para o arquivo a ser rotulado.
  • Selecione um rótulo e use o método SetLabel do mip::FileHandler para aplicar o rótulo.

Veja Início Rápido: listar rótulos para obter informações sobre como listar rótulos.

Alteração de comportamentos de manipulação de anexos padrão

Por padrão, o SDK de arquivo tenta processar todos os anexos que fazem parte de um arquivo MSG ou um arquivo message.rpmsg ao usar as APIs de inspeção. Ele não descriptografa recursivamente anexos que fazem parte de arquivos MSG anexados ao MSG raiz. Não há suporte para a modificação do comportamento de manipulação padrão no momento.

Operações do SDK de arquivo para arquivos .rpmsg

O SDK da PIM expõe uma função de inspeção que pode descriptografar o arquivo message.rpmsg incorporado e apresentar um conjunto de fluxos de bytes como saída. Cabe ao consumidor do SDK extrair o arquivo message.rpmsg e transmiti-lo à API de inspeção. Existem variações desse nome de arquivo para cenários de Criptografia de Mensagem do Office e a API também aceitará arquivos message_v2, v3 ou v4.

Importante

A API de inspeção não fornece uma saída que resultará em um arquivo utilizável, nem permite que você proteja novamente o arquivo de entrada. Ela gera fluxos de bytes que o seu aplicativo pode processar melhor. O SDK da PIM não oferece suporte à recriação de arquivos MSG usando arquivos message.rpmsg.

Normalmente, o gateway de email e os serviços de prevenção contra perda de dados (DLP) manipulam mensagens compatíveis com MIME enquanto o email está em trânsito. Quando o email está protegido, o conteúdo criptografado da mensagem é armazenado em um anexo, message.rpmsg. Esse anexo contém o corpo do email criptografado e os anexos que faziam parte da mensagem original. O arquivo rpmsg então é anexado a um email de wrapper de texto não criptografado e enviado ao serviço de email. Depois que essa mensagem sair do limite do Exchange ou do Exchange Online, ela estará no formato compatível com MIME para que possa ser enviada ao seu destino.

Na maioria dos casos, o serviço DLP precisa obter os anexos e os bytes do texto não criptografado da mensagem para inspecionar e avaliar as políticas de DLP. A API de inspeção usa o arquivo message.rpmsg como entrada e retorna fluxos de bytes como saída. Esses fluxos de bytes contêm os bytes do texto não criptografado da mensagem e os anexos. Cabe ao desenvolvedor de aplicativos manipular esses fluxos e fazer algo útil com eles (inspecionar, descriptografar recursivamente etc.).

A API Inspect é implementada por meio de uma classe, mip::FileInspector, que expõe operações para inspecionar tipos de arquivos com suporte. mip::MsgInspector, que estende mip::FileInspector, expõe operações de descriptografia específicas do formato de arquivo rpmsg. O SDK da PIM não oferece suporte a nenhum cenário de publicação para arquivos message.rpmsg. Além disso, a API FileHandler::RemoveProtection() não oferece suporte a arquivos message.rpmsg. Os arquivos Message.rpmsg podem ser descriptografados apenas para inspeção e não produzirão um arquivo utilizável válido. Se o aplicativo exigir uma saída de arquivo, você deverá transmitir um arquivo MSG e remover a proteção desse objeto.

A classe mip::MsgInspector expõe abaixo os membros:

public const std::vector<uint8_t>& GetBody()
public BodyType GetBodyType() const
public BodyType GetBodyType() const
public InspectorType GetInspectorType() const
public std::shared_ptr<Stream> GetFileStream() const

Para obter mais informações, confira Referência da API.

Próximas etapas