Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O SDK da MIP oferece suporte à criptografia e descriptografia 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.
Observação
A partir do SDK do MIP 1.17, há suporte para arquivos .eml. O tratamento é semelhante a .msg para cenários de rotulagem/proteção e .rpmsg para cenários de inspeção, dependendo do formato de contêiner.
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 nova proteçã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 para arquivos .msg da mesma forma que qualquer outro tipo de arquivo, com a exceção de que o SDK requer que o aplicativo habilite 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_typeemmip::FileEngineSettingse adicione omip::FileEngineamip::FileProfile. - Use o
FileEnginepara buscar a lista de rótulos para o usuário. - Crie
mip::FileHandlerque aponta para o arquivo a ser rotulado. - Selecione um rótulo e use o método
mip::FileHandlerdoSetLabelpara 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. Somente o item de nível raiz e o primeiro nível de anexos são descriptografados por padrão.
Para modificar esse comportamento, a configuração personalizada container_decryption_option pode ser usada. No C++, isso é exposto por meio de uma enumeração, mip::ContainerDecryptionOption.
| Nome da opção | Descrição |
|---|---|
All |
Descriptografa o arquivo MSG e os anexos. Se o anexo for um MSG, ele descriptografa recursivamente o MSG e seus anexos. Ele repetirá um máximo de dez níveis antes de lançar mip::BadInputError("Max depth reached on nested msg attachments") |
Default |
O mesmo que Msg. |
Msg |
Descriptografa o MSG e os anexos de primeiro nível. Não descriptografa recursivamente arquivos MSG anexados. |
Top |
Descriptografe apenas o arquivo MSG e não descriptografe anexos. |
O exemplo a seguir mostra como definir um aplicativo no .NET para descriptografar apenas o arquivo MSG raiz.
engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("container_decryption_option", "Top"));
E em C++:
vector<pair<string, string>> customSettings;
customSettings.emplace_back(mip::GetCustomSettingContainerDecryptionOption(),
mip::ContainerDecryptionOptionString(mip::ContainerDecryptionOption::Top));
engineSettings.SetCustomSettings(customSettings);
Operações do SDK de arquivo para arquivos .rpmsg
O SDK da MIP 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 Mensagens do Purview 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. Ele produz fluxos de bytes que o seu aplicativo pode processar posteriormente. O SDK da MIP não oferece suporte à recriação de arquivos MSG a partir de arquivos message.rpmsg.
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 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, consulte o SDK da MIP (Proteção de Informações da Microsoft) para C++: referência.