Изображения и фотографии · Инструмент конфиденциальности метаданных изображений
Где файлы PNG скрывают метаданные: фрагменты tEXt, iTXt, zTXt и eXIf
· Как это работает
конфиденциальность изображений форматы файлов обработка браузера
PNG не имеет традиции EXIF, поэтому люди предполагают, что он ничего не несет, однако он может хранить текстовые фрагменты с именами программ и комментариями, пакеты XMP и, начиная с 2017, выделенный фрагмент eXIf. В этом посте объясняется, как инструмент браузера находит и удаляет их.
«Чистый» снимок экрана с названием вашего программного обеспечения для редактирования — почему PNG-файлы из редакторов и инструментов для создания снимков экрана могут содержать больше пикселей
Скриншот может выглядеть визуально простым, в то время как фрагмент текста называет его автора или программное обеспечение, написавшее его. Метаданные PNG не ограничиваются одной традицией EXIF: каждый текст, временные метки и полезная нагрузка EXIF в форме TIFF могут занимать отдельные фрагменты. Инспектор предоставляет обычное текстовое содержимое и идентифицирует другие поддерживаемые фрагменты метаданных перед созданием очищенной копии.
Анатомия PNG на одной странице — восьмибайтовая подпись, расположение фрагмента length-type-data-CRC и то, как регистр имени фрагмента обозначает его как критический или вспомогательный
PNG начинается с восьмибайтовой подписи, за которой следуют фрагменты, содержащие длину, четырехсимвольный тип, полезную нагрузку и CRC. Размеры изображения находятся в IHDR, сжатые пиксели — в IDAT, а файл заканчивается в IEND. Эта помеченная структура позволяет очистителю удалять целые фрагменты метаданных и дословно копировать каждый сохранившийся фрагмент, поэтому ему никогда не придется декодировать пиксели или пересчитывать CRC.
Текстовые фрагменты: tEXt, zTXt и iTXt — пары ключевых слов Latin-1, сжатый текст, международный текст UTF-8 и ключевое слово «XML:com.adobe.xmp», которое скрывает полный пакет XMP.
Форма tEXt хранит ключевое слово и простой текст, поэтому читатель может отображать и то, и другое. zTXt содержит сжатый текст, а iTXt — международный текст; эта реализация перечисляет их ключевые слова, но не распаковывает их содержимое. Тем не менее, оба значения удаляются целиком, что позволяет избежать иллюзии отсутствия непрочитанного значения только потому, что таблица не смогла его отобразить.
eXIf, tIME и остальное — чанк 2017 eXIf, который содержит блок EXIF со структурой TIFF, отметку модификации tIME и то, какие вспомогательные фрагменты влияют на отображение, а не на конфиденциальность.
Чанк eXIf содержит блок TIFF, который может содержать те же каталоги камеры, времени и GPS, которые анализируются в JPEG или WebP. Чанк tIME записывает время последней записи файла и отображается в виде метки времени. Другие вспомогательные фрагменты не являются автоматически частными: их влияние имеет значение, поэтому классификация основана на документированной матрице поддержки, а не на том, является ли фрагмент необязательным.
Как программа удаления решает, что удалять: удаление фрагментов метаданных, сохраняя при этом IHDR, PLTE, IDAT, IEND и фрагменты, управляющие цветом и прозрачностью.
Стриппер удаляет eXIf, tEXt, zTXt, iTXt и time. Он сохраняет информацию о цветах gAMA, chRM, sRGB и iCCP, плотности pHY и фрагментах рендеринга, таких как tRNS, bKGD и sBIT, поскольку их удаление может изменить отображение. Это намеренная граница: очистка означает удаление названных категорий метаданных, а не удаление каждого вспомогательного фрагмента.
Рабочий пример: проверка экспортированного PNG — список того, что он содержит до и после удаления, и подтверждение того, что изображение декодируется идентично.
Для экспортированного PNG сначала проверьте таблицу полей: читаемое значение Author tEXt отображается напрямую, а сжатый текст отображается только по ключевому слову. После удаления в отчете перечисляются все удаленные типы, и очиститель может перечитать выходные данные. Тест реализации также сравнивает IDAT до и после и требует идентичных байтов, доказывая, что файл меньшего размера не был получен путем повторного сжатия изображения.
Что здесь не охватывает — APNG решения по анимации и управлению цветом; страница инструмента документирует, какие именно типы блоков он удаляет
Анимированные фрагменты и цветовые профили находятся за пределами подробной интерпретации программы чтения конфиденциальности, а цветовой профиль сам по себе может содержать строку описания, даже если он сохраняется. Инструмент также не обнаруживает информацию, скрытую в IDAT, и не поддерживает все контейнеры изображений. Используйте удаленные и сохраненные списки как точное определение объема вместо того, чтобы рассматривать пустую таблицу метаданных как универсальное разрешение.
Вывод: метаданные PNG не являются обязательными, поэтому их можно использовать — инструмент конфиденциальности метаданных изображения проверяет и удаляет метаданные PNG, не затрагивая сжатые данные изображения.
Метаданные PNG являются необязательным материалом контейнера, поэтому поддерживаемые фрагменты можно удалить без перестроения образа. Безопасный рабочий процесс — это проверка, удаление, проверка и загрузка новой копии -no-metadata с сохранением оригинала. Это дает дизайнеру предсказуемый результат: текст, EXIF и фрагменты времени записи удаляются; данные о цвете, прозрачности, плотности и сжатом изображении сохраняются.