Изображения и фотографии · Инструмент конфиденциальности метаданных изображений
EXIF, TIFF и IFD: структура 1990-х годов все еще внутри каждой фотографии
· Фон
exif форматы файлов конфиденциальность изображений
EXIF был опубликован в 1995 и заимствовал свою модель данных из TIFF, поэтому блок метаданных внутри JPEG на самом деле представляет собой небольшой файл TIFF с каталогами, тегами и смещениями. Знание структуры объясняет, что стриппер может аккуратно удалить и почему.
Файл TIFF, спрятанный внутри вашего JPEG — загадка, почему EXIF совсем не похож на остальную часть формата JPEG.
JPEG может содержать структуру данных в форме TIFF, но не является изображением TIFF. Его полезная нагрузка APP1 Exif начинается с идентификатора, а затем заголовка TIFF, смещения и каталоги которого организуют значения камеры, времени и GPS. Общий анализатор также использует блоки TIFF, найденные в фрагментах PNG eXIf и WebP EXIF, поэтому один читатель обслуживает три контейнера.
В репозитории не установлена дата происхождения EXIF.
В рабочей книге указана история происхождения и год, но используемые здесь источники репозитория не определяют историю стандартов, организации или даты публикации. Вместо того, чтобы повторять нецитированную хронологию, этот раздел закрепляет полезный факт в коде: полезные нагрузки EXIF используют порядок байтов TIFF, магию и механику каталогов, которые парсер браузера может проверять без декодирования данных изображения.
Модель каталога TIFF — заголовок, маркер порядка байтов, IFD0 и 12 байтовые записи с тегом, типом, количеством и значением или смещением.
Заголовок TIFF указывает, являются ли многобайтовые значения прямым или обратным порядком байтов, содержит магическое значение и указывает на IFD0. Каждый каталог начинается с счетчика и хранит записи фиксированного размера, содержащие тег, тип, счетчик значений и либо встроенные данные, либо смещение. Такое расположение позволяет небольшим значениям находиться в записи, в то время как более длинные строки и рациональные числа находятся в другом месте блока.
Каталоги, которым фактически следует этот парсер
Эта реализация следует за IFD0, а затем за указателями Exif и GPS. Он намеренно пропускает указатель совместимости как значение, ориентированное на пользователя, и не преследует рекурсивно миниатюры IFD1. Вызов полной модели каталога EXIF будет ложным; это ограниченное подмножество, необходимое для читаемого местоположения, идентификатора, временной метки, программного обеспечения и технических полей продукта.
Нумерация тегов и типы данных: почему Make — это 0x010F, почему рациональные числа — это пары целых чисел и почему строки заканчиваются нулевым байтом
Теги представляют собой числовые идентификаторы, интерпретируемые в контексте их каталога, а типы полей определяют ширину в байтах и декодирование. ASCII, целые и рациональные значения обрабатываются по-разному. Неизвестные теги помечаются шестнадцатеричным числом, а не угадываются, и любой неизвестный тег внутри каталога GPS остается классифицированным как местоположение, поскольку его каталог предоставляет этот контекст.
Границы реализации, которые имеют значение сегодня
Операционные границы здесь имеют большее значение, чем сроки версий. В каталоге ограничено количество записей 512, значения элементов 64 и смещения, выходящие за пределы диапазона, пропускаются. Внутренние компоненты MakerNote и IFD1 не декодируются. Эти ограничения не позволяют неправильно сформированному или враждебному блоку превратить средство просмотра метаданных в неограниченный анализатор, при этом позволяя удалить весь блок-контейнер.
Что здесь не распространяется — само сжатие JPEG и частные форматы MakerNote.
Средство чтения JPEG анализирует для отображения только APP1 Exif, а не содержимое XMP или IPTC, а неподдерживаемые изображения TIFF, DNG и RAW отклоняются, несмотря на совместное использование связанных структур. Цветовой профиль намеренно сохраняется во время очистки. Таким образом, инструмент демонстрирует использование встроенного каталога TIFF, не претендуя на роль общего TIFF или механизма судебно-медицинской экспертизы метаданных.
Вывод: EXIF по своей конструкции является автономным — инструмент конфиденциальности метаданных изображения может показать вам каталоги и удалить весь блок, не касаясь изображения.
EXIF достаточно самодостаточен для проверки и удаления всего блока: найдите блок-контейнер, проанализируйте ограниченные каталоги, которые вы поддерживаете, или удалите блок, не анализируя каждый частный байт. Откройте фотографию, сравните поля IFD0, Exif и GPS в таблице и сохраняйте различие между читаемым покрытием и покрытием удаления видимым на протяжении всего рабочего процесса.