Искусственный интеллект · Microsoft Paint · Безопасность · C2PA · Copilot+ · Reverse Engineering · Windows 1130 августа в 02:02 · 4 мин

Локальная генерация в Paint не гарантирует отсутствие удалённого следа: невидимые водяные знаки и C2PA в Windows

Исследование кода Microsoft Paint и приложения Photos показало, что даже при использовании локальных моделей ИИ на устройствах с поддержкой Copilot+ промпты отправляются на удалённые серверы для модерации. В ответ сервер присваивает уникальный идентификатор (GUID), который встраивается в каждое изображение в качестве невидимого водяного знака и фиксируется в метаданных C2PA. Таким образом, полная приватность локальной генерации остаётся под вопросом.

Стеклянная призма на ночном пляже отражает холодное синее свечение в виде спиралей данных.

# Локальный ИИ и удалённый контроль: что скрывает Microsoft Paint

Пользователи Windows, обладающие новыми устройствами с чипами NPU и режимом Copilot+, часто воспринимают функцию генерации изображений в приложении Microsoft Paint как полностью автономный процесс. Локальные модели искусственного интеллекта действительно выполняют вывод картинки, однако недавний анализ кода приложений Paint и Photos выявил скрытый механизм контроля от Microsoft. Даже при локальном инференсе исходный промпт отправляется на облачные серверы, а результат помечается уникальным идентификатором, который невозможно удалить без потери целостности метаданных.

Архитектура локальной генерации и удалённая модерация

В отличие от ранней версии приложения, где всё происходило в облаке, современные сборки Paint включают файлы локальных моделей (с расширением .onnxe). Модели отвечают за сегментацию изображений, декодирование эмбеддингов и генерацию стилей. Однако процесс начинается не с локального запуска, а с сетевого запроса.

При вводе промпта (например, «синий круг над оранжевым квадратом») приложение отправляет запрос на модерацию сервера Microsoft Azure. В ответ сервер возвращает несколько ключевых данных: отредактированный промпт, идентификатор генерации (promptGenerationId) и, самое важное, уникальный идентификатор водяного знака (watermarkId). Последний представляет собой GUID (Globally Unique Identifier). Если сервер обнаружит нарушение правил безопасности (например, изображение человека), поле containsHumanReference установится в true, но процесс генерации продолжится с новым идентификатором.

Это происходит даже в сценарии, когда вычисление пикселей выполняется локальным нейропроцессором (NPU) на устройстве. Microsoft явно разделяет этапы: модерация и контроль прав остаются на стороне облака, а рендеринг — на устройстве. GUID, полученный от сервера, передаётся локальному движку Stable Diffusion, который не только создаёт изображение, но и получает инструкцию о том, что именно нужно записать в файл.

Как работает невидимый водяной знак

В коде приложения обнаружена функция WmkWriteWatermark в DLL-библиотеке Watermarker.dll. Её задача — внести невидимые изменения в пиксели изображения. Алгоритм работает следующим образом:

1. Подготовка полезной нагрузки: GUID (16 байт) дополняется контрольной суммой, образуя 18-байтное сообщение. 2. Встраивание: Алгоритм разбивает изображение на блоки и меняет значения нескольких бит в RGB-каналах так, чтобы закодировать информацию из полезной нагрузки. Для надёжности каждый бит дублируется минимум три раза. 3. Устойчивость: Внесённые изменения минимальны для человеческого глаза, но достаточно велики, чтобы изменить значительную часть пикселей (например, около 74% от общего числа в тестовом образце 512x512).

Если встраивание водяного знака завершается ошибкой, программа полностью отклоняет сгенерированное изображение, не позволяя пользователю получить результат без метки. Это подтверждает, что наличие GUID является обязательным условием валидности результата с точки зрения системы.

C2PA и неизменяемая природа метаданных

Наличие невидимого водяного знака на уровне пикселей — это лишь один из уровней защиты. Второй, более публичный уровень, реализуется через стандарт совместимости открытых провенанс (C2PA). При сохранении файла Paint подписывает изображение криптографическим манифестом, который включает в себя указанный выше watermarkId.

В структуре C2PA используется понятие «мягкой привязки» (soft-binding). Это означает, что идентификатор водяного знака, зашифрованный в пикселях, должен совпадать со значением в текстовом манифесте. Даже если кто-то удалит файл манифеста (блок caBX для PNG), проверка целостности покажет несоответствие: значение в метаданных не будет соответствовать скрытому паттерну в изображении.

Ограничения форматов сохранения

Система намеренно ограничивает возможности пользователя при сохранении результатов ИИ. При экспорте картинок, созданных нейросетью, Paint разрешает использовать только форматы, поддерживающие встраивание C2PA: PNG, JPEG, GIF и специализированный .paint. Классический формат BMP, который традиционно использовался в Paint для максимальной совместимости, отсутствует в списке разрешённых форматов для ИИ-изображений.

Это ограничение связано с тем, что стандарт BMP не поддерживает произвольные блоки метаданных без использования внешних файлов. Microsoft блокирует экспорт в BMP, чтобы предотвратить ситуацию, когда пользователь мог бы сохранить чистое изображение, лишенное цифрового следа происхождения.

Применимость к приложению Photos

Механизм, описанный в исследовании, не ограничивается приложением Paint. Анализ кода показал, что в приложении Microsoft Photos используется библиотека с тем же названием Watermarker.dll. Это указывает на то, что политика встраивания невидимых меток и генерации C2PA-подписей является единой для экосистемы создания контента Windows. Фотографии, сгенерированные или обработанные ИИ через Photos, также будут нести на себе цифровую подпись сервера, даже если пользователь считает процесс локальным.

Итог

Хотя технология Copilot+ действительно позволяет запускать мощные модели генерации на собственном hardware, пользователи должны понимать, что контроль за исходным кодом (промптом) остаётся за Microsoft. Уникальный идентификатор, присваиваемый каждому запросу, становится неотъемлемой частью созданного изображения. Это обеспечивает возможность верификации авторства и отслеживания распространения контента, но также означает, что концепция полностью приватной и незаметной локальной генерации в текущей реализации Windows не работает.

Первоисточники

Habr AI
← Вернуться в эфир