
Эвристическое определение производителей фотокамер

Эвристическое определение производителей фотокамер
Практически все современные фотокамеры записывают в фотографии большое количество различной информации, в том числе наименование производителя камеры и ее модель. Эту информацию можно легко посмотреть и не менее легко отредактировать или вообще удалить. При разработке Shutter Count Viewer я неоднократно сталкивался с подобными файлами и у меня возник вопрос: а можно ли определить хотя бы производителя камеры по каким-нибудь другим признакам, если информация в EXIF удалена, повреждена или модифицирована? Не думаю, что затронутая в статье тема будет интересна широкому кругу читателей, но на сбор этих данных я потратил много времени, и было бы жалко, если оно окажется потраченным впустую. К тому же, насколько я знаю, подобных исследований никто не проводил. Итак, поехали.
Первый способ эвристического определения основан на том, что каждая камера сохраняет в расширенной секции EXIF информацию, специфичную для определенного производителя. Эта информация содержится внутри EXIF в так называемой секции MakerNote, а эта секция, в свою очередь, начинается с заголовка, по которому и делается проверка. Вот так, например, выглядит сигнатура в заголовке секции MakerNote для различных производителей камер:

Сигнатура Nikon в заголовке секции MakerNote

Сигнатура Samsung в заголовке секции MakerNote

Сигнатура Pentax в заголовке секции MakerNote
Даже если из секции EXIF удалены данные о названии камеры, то по заголовку секции MakerNote можно с большой уверенностью определить производителя. Этот способ я считаю одним из самых надежных.
Если файл отредактирован в программе Adobe Photoshop, то она сохраняет в готовом изображении большое количество вспомогательной информации. Часто там можно найти название производителя и модель камеры, что также повышает точность определения, но совсем не обязательно эта информация должна там быть. Суть следующего метода эвристики заключается в том, что если в Photoshop был загружен RAW-файл, а затем сохранен в JPEG, то в истории редактирования может быть записана информация о названии исходного RAW-файла. Зная расширения RAW-файлов различных камер, можно также с большой вероятностью определить производителя. Например, если изображение было создано из файла с расширением .NEF, то значит исходный снимок был получен с камеры Nikon. Иногда вместо имени файла записывается его MIME-формат, из которого также можно узнать производителя.

Имя исходного RAW-файла в секции Photoshop

Имя исходного RAW-файла в секции Photoshop
В некоторых файлах в истории редактирования я встречал не только названия или формат файлов, но и полные пути к ним, которые включали в себя даже имя пользователя.

Формат исходного RAW-файла в истории Photoshop
Похоже, что разработчики просекли фишку с потенциальной утечкой приватных данных, поэтому в новых версиях Photoshop вместо человекопонятных имен файлов используются какие-то числовые идентификаторы (хэши?). Так что этот способ имеет право на существование, но вероятность его срабатывания не очень большая.
Продолжив ковыряться в секции данных Photoshop, можно обнаружить там фрагменты названия камеры или названия объектива камеры. Логично предположить, что если для создания файла использовалось нечто под названием "COOLPIX P7000V1.1", то скорее всего имелся в виду фотоаппарат Nikon Coolpix P7000 с прошивкой версии 1.1, а объектив "Canon EF 35mm f/1.4L" наверняка был установлен на камере производства Canon. По таким вот косвенным "уликам" можно также с большой вероятностью определить производителя и, в некоторых случаях, даже модель камеры.

Название фотокамеры в секции Photoshop

Название объектива Canon в секции Photoshop
Следующий способ не очень надежный, но тоже имеет право на существование. Почти во все фотографии камеры записывают так называемый ICC-профиль, и иногда он является специфичным для конкретного производителя. К примеру, в основном встречаются цветовые профили HP или Adobe, но можно встретить и ICC-профили, явно принадлежащие Nikon и Canon.

Сигнатура Nikon в ICC-профиле

Сигнатура Canon в ICC-профиле
Конечно, никто не запрещает при редактировании фотографии с камеры Canon задействовать цветовой профиль Nikon, но лично я далек от мысли, что в реальной ситуации кто-то будет это делать.
Заключительный способ эвристического определения производителя я выяснил при исследовании демонстрационных фотографий с официального сайта Nikon. В каждой фотографии я обнаружил интересную секцию с сигнатурой "MEDIABIN_DID". В сети нашлось очень мало информации об этом, но, как я понял, MediaBin - это что-то вроде сервиса цифровой дистрибьюции электронных произведений, в том числе и фотографий. Производитель регистрируется в системе, ему выдается что-то наподобие персональной цифровой подписи, с помощью которой в дальнейшем маркируются фотографии. Для фотографий с сайта Nikon приметной сигнатурой цифровой подписи является строка "NKBV" (видимо, первые две буквы - это сокращение от "Nikon").

Сигнатура Nikon в секции MediaBin
В более новых фотографиях с сайта Nikon встречается электронная подпись с другой сигнатурой - "NIKM". По ней точно так же можно детектировать производителя камеры.

Сигнатура Nikon в секции MediaBin
Подобные цифровые подписи я встречал также для изображений с сайта Microsoft, там тоже использовалась уникальная сигнатура, что подтверждает мои выводы. Вряд ли на сайте Nikon будут выкладываться фотографии, сделанные камерами Canon, поэтому наличие такой цифровой подписи MediaBin может являться признаком того, что фотография получена с фотоаппарата производства Nikon.
Несмотря на большое количество обрабатываемых данных, ни один из описанных способов не может дать 100% гарантии, что фотография сделана камерой того или иного производителя. Но теперь вы сами убедились, что даже после "обрубания хвостов" остается немало косвенных способов узнать интересующую информацию. Для полного удаления всей избыточной информации из ваших изображений я рекомендую пользоваться программой Total Exif Annihilator.

Скриншот программы Total Exif Annihilator
Кстати, даже если полностью удалить из фотографии вообще все мета-данные, остается еще один способ определить модель камеры, с помощью которой был сделан снимок. Он основан на том, что некоторые фотоаппараты делают снимки с уникальным разрешением. Особенно это касается профессиональных камер с большим количеством мегапикселей. Например, если изображение имеет размер строго 7360х4912 пикселей, то скорее всего оно сделано с помощью 36-мегапиксельной камеры Nikon D800 или следующих моделей этой линейки. Понятное дело, что точность такого метода эвристики не выдерживает никакой критики, но на всякий случай его тоже можно иметь в виду.
В архиве я собрал фотографии, на основании которых была подготовлена эта статья. У них вычищена или модифицирована секция EXIF, однако, если открыть файлы в программе Shutter Count Viewer, то вы увидите, что поле "Make" будет заполнено, тогда как другие программы ничего подобного не покажут.

Heurtistic.Vendors.zip (85,103 bytes)
В качестве бонуса выкладываю свой набор вспомогательных утилит для облегчения работы при исследовании внутренней структуры графических файлов разных форматов. Все утилиты я написал для личных нужд и теперь активно использую их при разработке Shutter Count Viewer.
JPEG Dummy 1.0. Удаляет из JPEG-файла всю графическую информацию, оставляя только метаданные. Это позволяет экономить место на диске, значительно уменьшая размер тестовых файлов. Файлы-примеры обработаны как раз этой утилитой.
Image Extractor 1.1. Ищет в указанном файле любого формата изображения JPEG, PNG, GIF и WebP и сохраняет их в отдельные файлы. Иногда случаются ложные срабатывания.
JPEG-PNG-WebP Parser 1.1. Разбирает графические файлы в формате JPEG, PNG и WebP на отдельные секции.

Скриншот программы Image Info
Image Info 1.3. Отображает подробную информацию о секциях JPEG, PNG и WebP файлов. По принципу работы похожа на JPEG-PNG-WebP Parser, используется тот же алгоритм разбора внутренней структуры файлов. Двойной клик на строке - открыть секцию в hex-просмотрщике.
JPEG Thumbnail Fixer 1.1. Утилита для исправления превьюшки JPEG-файлов, встроенной в EXIF. Превьюшка пересоздается заново с учетом актуального изображения.
Все утилиты работают из командной строки, принимая единственным параметром имя файла.
Просмотров: 4642 | Комментариев: 8

Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(23.06.2022 в 17:45):
Обновил JPEG Thumbnail Fixer

ManHunter
(10.12.2021 в 23:00):
В комплект вспомогательных утилит добавлена JPEG Thumbnail Fixer. Остальные утилиты обновлены до актуальных версий. Архив обновлен.

ManHunter
(03.06.2021 в 10:57):
В комплекте вспомогательных утилит обновлены Image Extractor, JPEG-PNG-WebP Parser и Image Info. В перечисленные утилиты добавлена поддержка WebP.

ManHunter
(25.09.2017 в 12:06):
Обновил архив с файлами-примерами.

ManHunter
(10.06.2016 в 14:34):
Добавлен еще один пример заголовка MakerNote и новая сигнатура Nikon в секции MediaBin.

ManHunter
(11.12.2015 в 00:38):
В комплект вспомогательных утилит добавил свеженаписанную софтинку Image Info 1.0

Миха
(29.09.2015 в 04:50):
Это мне напомнило случай, когда некоторые пользователи Windows XP определили, что многие стандартные WAV файлы были созданой крякнутым аудио редактором так как в них содержалось название аудио редактора и название кряка.

Foton
(23.09.2015 в 17:52):
Спасибо, любопытно. До этого думал, что затереть EXIF достаточно.

Добавить комментарий
Заполните форму для добавления комментария
