파일 SDK 이메일 메시지 파일 처리
MIP SDK는 이메일 메시지에 대한 암호 해독 및 암호화를 지원합니다. Outlook 또는 Exchange로 생성된 .msg 파일 및 .rpmsg 파일은 모두 약간 다른 메서드를 통해 SDK에서 지원됩니다.
이 시나리오의 일반적인 사용 사례는 다음과 같습니다.
- DLP(데이터 손실 방지) 검사를 위해 메일 및 첨부 파일의 암호를 해독합니다.
- LOB(기간 업무) 애플리케이션에서 직접 보호된 메시지를 게시합니다.
- 전송 중인 메시지의 암호를 해독, 수정 및 다시 보호합니다.
- DLP 또는 메일 게이트웨이 서비스의 이메일에 레이블을 적용합니다.
MSG 파일 지원 문
MIP SDK는 MSG 파일에 대한 보호 애플리케이션 및 제거를 지원합니다. 수년에 걸쳐 다양한 형식의 인코딩 형식 및 변수를 고려할 때 MIP SDK가 모든 MSG 파일에서 보호를 제거할 수 있다고 보장할 수 없습니다. 다음 섹션에서는 다양한 원본의 MSG 파일에 대한 지원 가능성을 설명합니다.
- MIP SDK로 보호된 MSG 파일에서 보호를 제거하는 기능이 완전히 지원됩니다.
- 현재 지원되는 버전의 Outlook 클라이언트에서 만든 MSG 파일에서 보호를 제거하는 기능이 완전히 지원됩니다.
- 지원되지 않는 버전의 Outlook 클라이언트에서 만든 MSG 파일에서 보호를 제거하는 기능이 최상의 노력으로 지원됩니다.
- MSG 파일의 다시 보호는 보호된 레이블에서 사용할 수 없습니다. 사용자는 다른 레이블로 파일을 다시 보호하기 전에 보호된 레이블의 보호를 해제하고 명시적으로 제거해야 합니다.
MSG 파일의 레이블 지정
MIP SDK는 MSG 파일에서 레이블 읽기 및 쓰기를 지원합니다. 자식 첨부 파일은 레이블을 상속하지 않고 보호 설정을 상속합니다. 자세한 내용은 파일 SDK에서 레이블 지정 및 보호 작업을 검토 하여 파일에 .msg .
.msg 파일에 대한 파일 SDK의 레이블 지정 및 보호 작업
파일 SDK는 MSG 기능 플래그를 활성화하기 위해 애플리케이션이 필요하다는 점을 제외하고 다른 파일 형식과 동일한 방식으로 .msg 파일의 레이블 지정 및 보호 작업을 지원합니다.
앞서 설명한 것처럼 FileEngine
의 인스턴스화에는 설정 개체 FileEngineSettings
가 필요합니다.
FileEngineSettings
는 특정 애플리케이션 요구 사항을 충족하기 위해 사용자 지정 설정에 대한 매개 변수를 전달하는 데 사용할 수 있습니다. MIP SDK가 MSG 파일을 처리할 수 있도록 하려면 CustomSettings
개체의 FileEngineSettings
속성을 사용하여 .msg 파일 처리를 사용하도록 enable_msg_file_type
에 플래그를 설정합니다.
engineSettingsFileEngineSettings
개체를 만든 경우 다음과 같이 .NET에서 이 속성을 설정합니다.
engineSettings.CustomSettings = new List<KeyValuePair<string, string>>();
engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("enable_msg_file_type", "true"));
.msg 파일 보호 작업 의사 코드는 다음과 같습니다.
-
enable_msg_file_type
플래그를mip::FileEngineSettings
에 설정하고mip::FileEngine
을mip::FileProfile
에 추가합니다. -
FileEngine
을 사용하여 사용자에 대한 레이블 목록을 가져옵니다. - 레이블이 지정될 파일을 가리키는
mip::FileHandler
를 구성합니다. - 레이블을 선택하고
mip::FileHandler
의SetLabel
메서드를 사용하여 레이블을 적용합니다.
레이블을 나열하는 방법에 대한 자세한 내용은 빠른 시작: 레이블 나열을 참조하세요.
기본 첨부 파일 처리 동작 변경
기본적으로 파일 SDK는 검사 API를 사용할 때 MSG 파일의 일부인 모든 첨부 파일 또는 message.rpmsg 파일을 처리하려고 시도합니다. 루트 수준 항목과 첨부 파일의 첫 번째 수준만 기본적으로 암호 해독됩니다.
이 동작을 수정하기 위해 사용자 지정 설정 container_decryption_option
사용할 수 있습니다. C++에서는 열거형 mip::ContainerDecryptionOption
통해 노출됩니다.
옵션 이름 | 묘사 |
---|---|
All |
MSG 파일 및 첨부 파일의 암호를 해독합니다. 첨부 파일이 MSG인 경우 MSG 및 해당 첨부 파일을 재귀적으로 해독합니다.
mip::BadInputError("Max depth reached on nested msg attachments") 던지기 전에 최대 10개의 레벨을 재귀합니다. |
Default |
Msg 와 동일합니다. |
Msg |
MSG 및 첫 번째 수준 첨부 파일의 암호를 해독합니다. 연결된 MSG 파일의 암호를 재귀적으로 해독하지 않습니다. |
Top |
MSG 파일만 암호 해독하고 첨부 파일의 암호를 해독하지 않습니다. |
다음 예제에서는 .NET에서 애플리케이션을 설정하여 루트 MSG 파일만 암호 해독하는 방법을 보여 있습니다.
engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("container_decryption_option", "Top"));
그리고 C++에서:
vector<pair<string, string>> customSettings;
customSettings.emplace_back(mip::GetCustomSettingContainerDecryptionOption(),
mip::ContainerDecryptionOptionString(mip::ContainerDecryptionOption::Top));
engineSettings.SetCustomSettings(customSettings);
.rpmsg 파일에 대한 파일 SDK 작업
MIP SDK는 포함된 message.rpmsg 파일의 암호를 해독하고 일련의 바이트 스트림을 출력으로 표시할 수 있는 검사 함수를 노출합니다. message.rpmsg 파일을 추출하고 검사 API에 전달하는 것은 SDK 고객의 몫입니다. 이 파일 이름의 변형은 Purview 메시지 암호화 시나리오에 대해 존재하며 API는 message_v2, v3 또는 v4 파일도 수락합니다.
Important
검사 API 는 사용 가능한 파일을 생성하는 출력을 제공하지 않으며 입력 파일을 다시 보호할 수도 없습니다. 애플리케이션에서 추가로 처리할 수 있는 바이트 스트림을 출력합니다. message.rpmsg 파일에서 MSG 파일을 다시 만드는 기능은 MIP SDK에서 지원되지 않습니다.
일반적으로 메일 게이트웨이 및 DLP(데이터 손실 방지) 서비스는 이메일이 전송되는 동안 MIME 규격 메시지를 처리합니다. 메일이 보호되면 메시지의 암호화된 내용이 첨부 파일인 message.rpmsg에 저장됩니다. 이 첨부 파일에는 암호화된 이메일 본문과 원본 메시지의 일부인 첨부 파일이 포함됩니다. 그런 다음 rpmsg 파일이 일반 텍스트 래퍼 이메일에 첨부되고 메일 서비스로 전송됩니다. 해당 메시지가 Exchange 또는 Exchange Online 경계를 벗어나면 대상에 보낼 수 있도록 MIME 호환 형식이 됩니다.
대부분의 경우 DLP 서비스는 DLP 정책을 검사하고 평가하기 위해 메시지에서 첨부 파일 및 일반 텍스트 바이트를 가져와야 합니다. 검사 API는 message.rpmsg를 입력으로 사용하고 바이트 스트림을 출력으로 반환합니다. 이러한 바이트 스트림에는 메시지 및 첨부 파일의 일반 텍스트 바이트가 포함됩니다. 이러한 스트림을 처리하고 유용한 작업(검사, 재귀 복호화 등)을 수행하는 것은 애플리케이션 개발자의 몫입니다.
Inspect
API는 지원되는 파일 형식을 검사하기 위한 작업을 노출하는 mip::FileInspector
클래스를 통해 구현됩니다.
mip::MsgInspector
를 확장하는 mip::FileInspector
는 rpmsg 파일 형식과 관련된 암호 해독 작업을 노출합니다. MIP SDK는 message.rpmsg 파일에 대한 게시 시나리오를 지원하지 않습니다. 또한 API는 FileHandler::RemoveProtection()
message.rpmsg 파일을 지원하지 않습니다.
Message.rpmsg 파일은 검사용으로만 암호 해독할 수 있으며, 사용할 수 있는 유효한 파일을 출력하지 않습니다. 애플리케이션에 파일 출력이 필요한 경우 MSG 파일을 전달하고 해당 개체에서 보호를 제거해야 합니다.
mip::MsgInspector
클래스는 아래 멤버를 노출합니다.
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
자세한 내용은 C++용 MIP(Microsoft Information Protection) SDK: 참조를 참조하세요.