Сделайте фото на iPhone и откройте JPEG в шестнадцатеричном редакторе. Через несколько сотен байтов после начального маркера FF D8 вы наткнётесь на это:
FF E1 1C 24 45 78 69 66 00 00 4D 4D 00 2A 00 00 00 08
FF E1 — маркер сегмента APP1. Следующие два байта — длина сегмента. Затем шесть байтов читаются как Exif\0\0, а сразу за ними идёт TIFF-заголовок (4D 4D 00 2A означает big-endian). Ваш JPEG несёт внутри второй, меньший файл, который часто рассказывает о вас больше, чем само изображение.
Что такое EXIF на самом деле
EXIF расшифровывается как Exchangeable Image File Format. JEIDA (Japan Electronic Industry Development Association) опубликовала версию 1.0 в 1995 году. Сегодня стандарт поддерживают JEITA и CIPA; EXIF 3.0 вышел в 2023-м.
Структурно EXIF — это TIFF. После заголовка Exif\0\0 идёт маркер порядка байтов, затем цепочка каталогов Image File Directory (IFD). Каждая запись IFD занимает двенадцать байтов:
Bytes 0-1: ID тега (напр. 0x010F = Make)
Bytes 2-3: Тип данных (ASCII, rational, short, long)
Bytes 4-7: Количество значений
Bytes 8-11: Встроенное значение или смещение до него
Для приватности важны два подкаталога. EXIF SubIFD (на него указывает тег 0x8769) хранит настройки камеры, серийные номера и метки времени. GPS IFD (тег 0x8825) хранит широту и долготу — каждую в виде трёх рациональных чисел: градусы, минуты, секунды.
В IFD1 обычно хранится и миниатюра — небольшой JPEG, встроенный прямо в метаданные. Запомните это: к миниатюре мы ещё вернёмся.
Какие контейнеры несут EXIF:
| Формат | Где хранится EXIF | Примечания |
|---|---|---|
| JPEG | Сегмент APP1 | Здесь EXIF и начался |
| HEIC | Элемент Exif в боксе meta | Формат камеры iPhone по умолчанию с iOS 11 |
| WebP | Чанк EXIF внутри VP8X | Опционально, часто отсутствует |
| PNG | Чанк eXIf | Добавлен в спецификацию в 2017 |
| TIFF | Сам файл и есть TIFF | Родительский формат EXIF |
| BMP/ICO | Не поддерживается | Структуры метаданных нет вообще |
Зачем камеры начали записывать EXIF
Проблема середины 90-х была будничной и практичной. Цифровые камеры выдавали файлы без всякого контекста. У плёночных фотографов были негативы, конверты из фотолаборатории с датами проявки и заметки. У цифровых — каталог, полный файлов DSC_0042.JPG, и больше ничего.
EXIF решал три конкретные задачи:
- Запись экспозиции. Диафрагма, выдержка, ISO и фокусное расстояние — чтобы фотограф мог разобрать, почему кадр удался, и повторить его.
- Заказ печати. DPOF (Digital Print Order Format) позволял отметить фото на камере и позже распечатать их в киоске, используя поля EXIF вроде поворота.
- Ориентация и предпросмотр. Тег Orientation держит портретные кадры вертикально, а встроенная миниатюра делала просмотр на ЖК-экране камеры быстрым.
Заметьте допущение в основе всего этого: фотографии остаются у владельца. EXIF проектировался для мира, где снимок перемещался с CF-карты на жёсткий диск и в печатный киоск. Никто в JEIDA в 1995 году не планировал мир, где вы каждый день заливаете десяток фотографий на публичные серверы.
Что на самом деле внутри
Откройте любое фото с телефона в просмотрщике метаданных — список тегов окажется длинным. Поля, важные для приватности:
| Тег | Пример значения | Что раскрывает |
|---|---|---|
| Make / Model | Apple, iPhone 15 Pro | Ваше железо |
| BodySerialNumber / LensSerialNumber | Уникален для устройства | Отпечаток вашей камеры |
| DateTimeOriginal + OffsetTime | 2026:06:30 18:42:11 +09:00 | Когда, с точностью до секунды |
| GPSLatitude / GPSLongitude | 37°46'29" N, 122°25'10" W | Где, с точностью до метров |
| GPSAltitude | 14.2 m | Какой этаж, примерно |
| Software | Instagram, Photoshop 26.1 | Что трогало файл |
| Artist / Copyright | Свободный текст | Иногда настоящее имя |
| Миниатюра IFD1 | Второй JPEG | Копия неотредактированного кадра |
Вывод exiftool для реального фото с iPhone, сокращённый для краткости:
$ exiftool IMG_4021.HEIC
Make : Apple
Camera Model Name : iPhone 15 Pro
Serial Number : F2LX8A1BCD
Date/Time Original : 2026:06:30 18:42:11
GPS Latitude : 37 deg 46' 29.28" N
GPS Longitude : 122 deg 25' 10.41" W
GPS Altitude : 14.2 m Above Sea Level
Тридцать секунд чтения — и посторонний знает, на что вы снимаете, когда вы были там и где это «там» находится, с точностью до нескольких метров.
Как прочитать EXIF на своём компьютере
Windows
Кликните по файлу правой кнопкой, откройте «Свойства», перейдите на вкладку «Подробно». Производитель, модель, даты и GPS-координаты — всё перечислено там. Внизу той же вкладки есть ссылка «Удаление свойств и личной информации», открывающая простой диалог очистки.
Для доступа к сырым данным через PowerShell:
Add-Type -AssemblyName System.Drawing
$img = [System.Drawing.Image]::FromFile("C:\photos\IMG_4021.jpg")
$img.PropertyItems | ForEach-Object {
$text = [System.Text.Encoding]::ASCII.GetString($_.Value).Trim([char]0)
"Tag 0x{0:X4} (len {1}): {2}" -f $_.Id, $_.Len, $text
}
$img.Dispose()
Числовые поля выводятся сырыми байтами, а ASCII-теги вроде Make и Software — в читаемом виде.
macOS
Откройте изображение в «Просмотре», затем «Инструменты» → «Показать инспектор» и загляните на вкладки EXIF и GPS. Вкладка GPS даже рисует метку на карте.
Из терминала mdls выводит всё, что проиндексировал Spotlight:
mdls IMG_4021.jpg | grep -iE "gps|latitude|longitude|model"
Или установите ExifTool командой brew install exiftool, чтобы получить полный список тегов.
Linux
ExifTool — стандарт:
exiftool IMG_4021.jpg
Более лёгкие альтернативы: exiv2 IMG_4021.jpg или identify -verbose IMG_4021.jpg | grep -i exif из ImageMagick.
Из браузера: двадцать строк TypeScript
Чтобы найти сегмент APP1 самостоятельно, нужен цикл по цепочке маркеров JPEG:
async function findExifSegment(file: File): Promise<number> {
const bytes = new Uint8Array(await file.slice(0, 128 * 1024).arrayBuffer())
if (bytes[0] !== 0xff || bytes[1] !== 0xd8) return -1 // не JPEG
let offset = 2
while (offset < bytes.length - 12) {
if (bytes[offset] !== 0xff) break
const marker = bytes[offset + 1]
const length = (bytes[offset + 2] << 8) | bytes[offset + 3]
if (
marker === 0xe1 &&
String.fromCharCode(...bytes.slice(offset + 4, offset + 10)) ===
"Exif\0\0"
) {
return offset
}
offset += 2 + length
}
return -1
}
Как EXIF сливает вашу приватность
GPS-координаты выдают ваше местоположение
Телефоны записывают GPS всякий раз, когда у приложения камеры есть разрешение на доступ к геолокации. Большинство один раз не глядя подтверждает его и забывает. Выложите фото балкона, рабочего стола или школьного проекта ребёнка на форум или в объявление на маркетплейсе — и вы опубликовали свой адрес с точностью до метров.
Самый известный случай — Джон Макафи. В декабре 2012 года он был в бегах и скрывался в Гватемале. Vice опубликовал его фотографию, снятую на iPhone 4S, и в EXIF-данных лежали полные GPS-координаты. Любой желающий мог прочитать, где именно в Гватемале он находится. Через несколько дней он оказался под стражей в Гватемале.
Серийные номера связывают ваши аккаунты
BodySerialNumber и LensSerialNumber уникальны для каждого устройства. Два анонимных аккаунта, публикующих фото, снятые одной камерой, можно связать почти наверняка. Исследователи обходили фотосайты краулерами и группировали снимки по серийному номеру камеры именно по этой причине. Вы можете разделять свои личности в сети. Ваша камера — нет.
Метки времени обрисовывают ваш распорядок
DateTimeOriginal плюс смещение часового пояса. Сама по себе одна метка говорит немного, но год загрузок показывает, когда вы просыпаетесь, когда уходите из дома и когда путешествуете.
Миниатюра вас выдаёт
Миниатюра IFD1 — отдельный JPEG внутри метаданных. Вырежьте лицо или документ из основного изображения — и множество редакторов оставит исходную миниатюру нетронутой. Кто бы её ни извлёк, получит необрезанное фото. В 2003 году ведущая TechTV выложила свои обрезанные фотографии, а читатели восстановили полные кадры из EXIF-миниатюр. Урок актуален до сих пор, потому что инструменты повторяют ту же ошибку.
Где EXIF выживает при загрузке
Крупные соцплатформы (Facebook, Instagram, X) срезают EXIF при загрузке. Почти всё остальное — нет: вложения в почте, загрузки на форумы, объявления на маркетплейсах, ссылки на облачные диски, AirDrop и любой мессенджер, настроенный на отправку в исходном качестве. Если файл покидает устройство неизменным, метаданные уходят вместе с ним.
Что происходит при конвертации форматов
Конвертация фото не означает автоматической очистки. Конвертеры бывают двух видов:
- Копировщики метаданных. Инструменты, которые перекодируют, но намеренно переносят теги: ExifTool, ffmpeg и большинство GUI-конвертеров с настройкой «сохранять метаданные» по умолчанию. Прогоните JPEG в WebP через копировщик — и ваши GPS-координаты нетронутыми переедут в чанк
EXIFвнутри WebP. - Перекодировщики пикселей. Инструменты, которые декодируют файл в сырые пиксели и кодируют из них совершенно новый файл. На выходе — только данные изображения, потому что метаданные никогда не были частью пикселей.
Очистка вручную — одна команда в любом случае:
# ExifTool: стереть все теги, изображение оставить
exiftool -all= -overwrite_original photo.jpg
# ImageMagick 7: перекодировать без метаданных
magick photo.jpg -strip photo-clean.jpg
Один момент здесь требует внимания: ориентация. EXIF Orientation (тег 0x0112) говорит программам просмотра повернуть изображение, часто на 90 градусов. Сотрите теги, не запечатав этот поворот в пиксели, — и каждое портретное фото ляжет набок. Правильный порядок такой: сначала декодировать с применённой ориентацией, затем отбросить метаданные. Инструмент, который чистит без поворота, хуже, чем отсутствие очистки вообще.
Что наши конвертеры делают с EXIF
Каждый конвертер на этом сайте — перекодировщик пикселей. Конвейер одинаков для всех:
- Декодировать исходный файл в сырые пиксели прямо в браузере (WebAssembly-сборка libheif для HEIC, нативный декодер браузера для остальных).
- Отрисовать пиксели на canvas с ориентацией EXIF, уже применённой при декодировании.
- Закодировать canvas в целевой формат.
Итоговый файл содержит сжатые пиксели и ничего больше. Ни сегмента APP1, ни чанка EXIF или eXIf, ни GPS IFD, ни серийных номеров, ни встроенной миниатюры. В коде нет пути, который копировал бы метаданные, потому что в памяти просто нет метаданных для копирования. А поскольку всё работает на стороне клиента, файл никогда не покидает устройство — и ни один сервер не видит оригинал.
Выбирайте исходный формат:
- Фото с iPhone, в которых больше всего данных EXIF: HEIC в JPG, HEIC в PNG, HEIC в WebP
- JPEG: JPG в PNG, JPG в WebP, JPG в ICO
- WebP: WebP в JPG, WebP в PNG, WebP в ICO
- PNG: PNG в JPG, PNG в WebP, PNG в ICO
Перетащите файл, скачайте конвертированную копию и делитесь именно ей. Пиксели идентичны, а метаданные исчезли.
Короткая версия
- Прежде чем делиться фото там, где EXIF выживает (почта, форумы, маркетплейсы, прямые ссылки), сначала проверьте его. «Свойства» в Windows, «Инспектор» в macOS,
exiftoolв Linux. - Если в файле есть GPS-данные, а вам бы этого не хотелось, конвертируйте его. Каждый инструмент из списка выше выдаёт только пиксели.
- Если вы публикуете под разными личностями, серийные номера камеры могут их связать. Очистка решает и эту задачу.
- Храните оригиналы нетронутыми. В собственном архиве EXIF действительно полезен. Чистыми должны быть те копии, которые вы публикуете.



