MIP SDK¶
MIP SDK (Microsoft Information Protection Software Development Kit) — это набор программных библиотек, инструментов и документации, предоставляемый корпорацией Microsoft (организация признана нежелательной в РФ) для разработчиков с целью интеграции возможностей защиты информации в сторонние приложения и сервисы. MIP SDK позволяет реализовать классификацию, маркировку, шифрование и контроль доступа к данным на основе политик Microsoft Purview Information Protection (ранее Azure Information Protection) в экосистемах Windows, macOS, Linux, iOS и Android.
¶История
Разработка MIP SDK была начата корпорацией Microsoft в ответ на растущие потребности организаций в защите конфиденциальных данных, особенно в контексте облачных вычислений и удалённой работы. Предшественником MIP SDK являлся Azure Information Protection SDK (AIP SDK), который был выпущен в 2015 году для интеграции с облачной службой Azure Information Protection. AIP SDK предоставлял базовые функции шифрования и управления правами доступа (RMS), но был тесно привязан к облачной инфраструктуре Azure и имел ограниченную поддержку кроссплатформенности.
В 2019 году Microsoft анонсировала MIP SDK как эволюционное развитие AIP SDK. Основные изменения включали:
- Кроссплатформенность: поддержка Linux и мобильных платформ (iOS, Android) наряду с Windows и macOS.
- Унификация политик: единая консоль управления Microsoft Purview Compliance Portal (ранее Microsoft 365 Compliance Center) для всех типов политик защиты информации.
- Расширение функциональности: добавление механизмов классификации на основе чувствительных типов данных (Sensitive Information Types) и автоматического применения меток.
- Открытость исходного кода: публикация части библиотек под лицензией MIT (например, MIP SDK для C++).
В 2022 году Microsoft объявила о прекращении поддержки AIP SDK и полном переходе на MIP SDK, который стал единственным официальным инструментом для интеграции защиты информации в сторонние приложения. В 2023 году вышла версия MIP SDK 1.14, которая добавила поддержку новых типов меток, улучшенную обработку файлов PDF и интеграцию с Microsoft Defender for Cloud Apps.
¶Архитектура и компоненты
MIP SDK состоит из нескольких ключевых компонентов, работающих на разных уровнях стека приложений:
¶Ядро (Core Library)
Базовый компонент, отвечающий за аутентификацию, получение политик защиты информации и управление сессиями. Core Library взаимодействует с облачной службой Microsoft Purview Information Protection через REST API. Он использует протокол OAuth 2.0 для получения токенов доступа, которые затем передаются другим компонентам SDK.
¶File API
Компонент для работы с файлами различных форматов (Office, PDF, текстовые файлы, изображения). File API позволяет:
- Применять метки чувствительности: добавлять метаданные (например, «Конфиденциально» или «Секретно») в файлы.
- Шифровать и расшифровывать: использовать алгоритм AES-256 для защиты содержимого файлов.
- Управлять правами доступа: задавать списки пользователей, которым разрешён доступ, и ограничивать действия (печать, копирование, редактирование).
¶Policy API
Компонент для получения и применения политик защиты информации, определённых администратором в Microsoft Purview Compliance Portal. Policy API возвращает список доступных меток, их иерархию, действия (например, шифрование или водяные знаки) и условия автоматического применения.
¶Protection API
Компонент для управления правами доступа (Rights Management Services, RMS). Protection API позволяет:
- Создавать лицензии на доступ: выдавать временные токены для чтения или редактирования защищённых данных.
- Проверять права: определять, какие действия разрешены текущему пользователю (например, только чтение).
- Отзывать доступ: аннулировать лицензии для конкретных пользователей или групп.
¶MIP SDK для мобильных платформ
Отдельные версии SDK для iOS и Android, которые предоставляют те же функции, но адаптированы для мобильных ОС. Они включают обёртки для Swift (iOS) и Kotlin (Android), а также встроенную поддержку биометрической аутентификации (Face ID, Touch ID, Android Biometric).
¶Поддерживаемые платформы и языки программирования
MIP SDK поддерживает разработку на следующих платформах и языках:
| Платформа | Языки программирования | Версия ОС |
|---|---|---|
| Windows | C++, C#, .NET Framework/.NET Core, Python | Windows 10/11, Windows Server 2016+ |
| macOS | C++, Objective-C, Swift | macOS 10.15+ |
| Linux | C++ | Ubuntu 18.04+, Red Hat Enterprise Linux 8+ |
| iOS | Objective-C, Swift | iOS 13+ |
| Android | Java, Kotlin | Android 8.0+ |
Для C++ SDK предоставляется в виде статических библиотек, для .NET — в виде NuGet-пакетов, для Python — через pip (пакет mip).
¶Применение
MIP SDK используется в различных сценариях защиты информации:
¶Корпоративные приложения
Разработчики интегрируют MIP SDK в корпоративные системы управления документами (DMS), CRM, ERP и другие бизнес-приложения для автоматической классификации и защиты конфиденциальных данных. Например, система может автоматически присваивать метку «Конфиденциально» всем документам, содержащим номера кредитных карт (с использованием встроенных типов чувствительных данных).
¶Облачные сервисы
MIP SDK применяется в облачных платформах для защиты данных, хранящихся в облачных хранилищах (Amazon S3, Google Cloud Storage, собственные объектные хранилища). SDK позволяет шифровать данные перед отправкой в облако и управлять доступом на уровне отдельных файлов.
¶Мобильные приложения
В мобильных приложениях MIP SDK используется для защиты конфиденциальной информации, просматриваемой на устройствах сотрудников. Например, приложение для просмотра PDF может использовать SDK для расшифровки защищённых файлов и проверки прав доступа пользователя.
¶Средства электронной почты
MIP SDK интегрируется в почтовые клиенты (например, Outlook, Thunderbird) для автоматической классификации и шифрования вложений и текста писем на основе политик организации.
¶Примеры использования
¶Пример 1: Защита документа в приложении на C#
```csharp using Microsoft.InformationProtection; using Microsoft.InformationProtection.File;
// Создание контекста приложения var appInfo = new ApplicationInfo { ApplicationId = "your-app-id", ApplicationName = "MyApp" }; var mipContext = MIP.CreateMipContext(appInfo, "mip_data", LogLevel.Trace, null);
// Получение файлового обработчика var fileEngine = Task.Run(() => FileEngine.CreateAsync(mipContext, "user@contoso.com", "user@contoso.com", "en-US")).Result; var fileHandler = Task.Run(() => FileHandler.CreateAsync(fileEngine, "document.docx", true, false)).Result;
// Применение метки var label = fileEngine.Labels.FirstOrDefault(l => l.Name == "Конфиденциально"); fileHandler.SetLabel(label, new LabelingOptions { AssignmentMethod = AssignmentMethod.Standard }); fileHandler.CommitAsync().Wait(); ```
¶Пример 2: Расшифровка файла на Python
```python import mip
¶Инициализация MIP
app_info = mip.ApplicationInfo("your-app-id", "MyApp", "1.0.0") mip_context = mip.MipContext.create(app_info, "mip_data", mip.LogLevel.Trace)
¶Получение файлового движка
file_engine = mip.FileEngine.create(mip_context, "user@contoso.com", "user@contoso.com", "en-US")
¶Расшифровка файла
file_handler = mip.FileHandler.create(file_engine, "encrypted.docx", True, False) file_handler.decrypt("decrypted.docx") ```
¶Ограничения и критика
MIP SDK имеет ряд ограничений, которые отмечаются разработчиками и экспертами:
- Зависимость от облачной инфраструктуры Microsoft: для работы SDK требуется постоянное подключение к Microsoft Purview Information Protection (облачная служба). При отсутствии интернета или блокировке доступа к серверам Microsoft (например, в странах с ограничениями) функциональность SDK существенно снижается. В частности, в России после признания Microsoft нежелательной организацией использование MIP SDK в корпоративных средах может быть затруднено из-за риска блокировок.
- Сложность интеграции: SDK требует глубокого понимания архитектуры защиты информации Microsoft и опыта работы с REST API, OAuth 2.0 и криптографией. Для небольших команд разработчиков порог входа высок.
- Ограниченная поддержка форматов: хотя SDK поддерживает основные форматы Office и PDF, для других форматов (например, CAD-файлы, медицинские DICOM-изображения) требуется дополнительная разработка.
- Производительность: шифрование и расшифровка больших файлов (более 100 МБ) могут занимать значительное время, особенно на мобильных устройствах.
- Отсутствие полной открытости: несмотря на публикацию части исходного кода, ключевые компоненты (например, Core Library) остаются проприетарными, что ограничивает возможности аудита безопасности сторонними разработчиками.
¶Источники
- Microsoft Documentation. «Microsoft Information Protection SDK overview». Microsoft Learn, 2023.
- Microsoft Documentation. «MIP SDK for C++ reference». Microsoft Learn, 2023.
- Microsoft Documentation. «MIP SDK for .NET reference». Microsoft Learn, 2023.
- Microsoft Documentation. «MIP SDK for Python reference». Microsoft Learn, 2023.
- Microsoft Documentation. «Azure Information Protection SDK deprecation notice». Microsoft Learn, 2022.
- Microsoft Documentation. «Microsoft Purview Information Protection». Microsoft Learn, 2023.
- Microsoft Documentation. «Rights Management Services (RMS) SDK». Microsoft Learn, 2023.
- Microsoft Documentation. «MIP SDK for iOS and Android». Microsoft Learn, 2023.
- Microsoft Documentation. «Sensitive Information Types in Microsoft Purview». Microsoft Learn, 2023.
- Microsoft Documentation. «MIP SDK release notes». Microsoft Learn, 2023.
