ГеоТеги в фото

Andrii Lundiak
11 min readOct 23, 2022

--

Коротко про те як геолокація використовується в фотографіях, зроблених мобільними пристроями, як ті геотеги змінити чи видалити, а також про кілька інструментів, які доступні в операційних системах Unix чи Mac OS для більш детальної аналітики інформації створених фотографій.

Більш детальніше про кібербезпеку в напрямі геолокації я описував в статті Cyber Security Notes (Mar-04–2022). Зовсім трохи я згадував про геолокацію в статті про кібербезпеку голосових даних (Apr-02–2022). І трохи згадував про геолокацію в статті про те, як убезпечити свій Фейсбук профіль (Jul-28–2022).

Отож, що ж таке Геолокація?

Геолокація — визначення реального географічного розташування електронного пристрою, наприклад радіопередавача, мобільного телефону або комп’ютера, підключеного до інтернету. Словом «геолокація» можна називати як процес визначення місця розташування такого об’єкта, так і саме місце розташування, встановлене таким способом. Часто для цілей геолокації використовують системи позиціонування.

Як включити / виключити геолокацію на мобільних пристроях?

Наведу приклад для iPhone (iOS)

Settings \ Privacy & Security \ Location Services (вкл/викл)

Що таке геотегування?

Геотегува́ння (англ. geotagging), інколи позначається як геокодування — процес додавання географічних метаданих до різних інформаційних ресурсів, таких як вебсайти, RSS стрічки, або зображення, і є однією із форм геопросторових метаданих. Ці дані, зазвичай, складаються із координат (широти та довготи), висоти, магнітного схилення та назв місцевості.

Дані записуються в середині фото зроблені вашим телефоном чи іншим мобільним пристроєм. І ті дані потім можна побачити чи прочитати певними методами.

Як побачити чи фото має записані геотеги?

Якщо у вас ВИКЛЮЧЕНА геолокація в пристрої, то фотографії будуть створюватись БЕЗ геотегів, тобто це безпечний метод, якщо ви наприклад військовий, і повинні зробити фотографії, але 100% приховати фактичне місце знаходження.

Якщо ж ви пересічний користувач телефону і робите фотографію десь біля моря, десь де ви відпочиваєте, і потім будете потребувати дані для вашого Інстаграму чи інших програм, які аналізують геолокацію, то звісно вам треба ВКЛЮЧИТИ геолокацію, і вже ТОДІ робити фотографії, які в свою чергу будуть вже з геотегами.

В iPhone, коли ви проводите пальцем з низу догори, так якби ви хотіли “потягнути” фото, тоді показується інформація про фото:

  • Дата створення фотографії
  • Назва пристрою, яким було створено фотографію
  • Технічні фотографічні дані
  • Мапа геолокаційна (базована на Apple Maps)
  • І можливо інші дані в залежності від пристрою

А натиснувши кнопку Adjust ви зможете змінити дату або географічне розміщення, якщо вони була неточні, або ж видалити, якщо вам не треба тих даних в середині фотографії.

На жаль, видалити дату створення фотографії неможливо в iPhone-і, але можна змінити її. І потім при потребі відмінити ту зміну (Revert).

Можна змінити на іншу геолокацію, якщо первинна була некоректна або небажана.

І можна видалити дані геолокації (геотеги), і тоді фотографія не мати геотегів в середині. І методами iOS на iPhone чи iPad-і пізніше можна буде відмінити то видалення (Revert)

Чи безпечно робити screenshot-ти на телефоні коли включена геолокація?

Так, тому що механізм створення копії екрану, навіть, якщо ви дивитесь фото в якому є геотеги, НЕ використовує камеру. А тому такий метод є БЕЗПЕЧНИМ 200%, якщо ви мусите зберегти геолокацію в середині фото як метадані, але хочете показати то ж саме фото комусь, чи закинути комусь, щоб уникнути інформації про фактичне місцезнаходження фотографованого об'єкта.

Ось приклад файлу screenshot-у зробленого iPhone-ом:

НЕМАЄ даних про геолокацію, але є дані про дату створення і власне назва файлу. Вказується розширення файлу PNG і значок що це було зроблено як screenshot. НЕМАЄ даних про назву пристрою, хоча дані про 2MP і роздільну здатність є (але ці дані можуть бути НЕТОЧНІ або по замовчуванню “хоча б якісь”). Також є розмір файлу.

Важливо НЕ СПЛУТАТИ два моменти:

  • Геотегів в скріншотах НЕМАЄ, але…
  • навіть до скріншота (бо це фотофайл) МОЖНА додати геолокацію ПІСЛЯ створення файлу (Add Location). І тоді геотеги будуть в середині такого скріншот-фото-файла (на базі тієї геолокації, яку ви вибрали вручну).

Чи безпечно опублікувати фото в соціальних мережах?

В більшості випадків так, адже наприклад якщо ви маєте фото з геотегами в середині і закинете таке фото на Facebook (чи як пост, чи як альбом, чи в приватні повідомлення комусь) то Facebook конвертує фото ВИДАЛЯЮЧИ дані геотегів. Подібно працює в інших системах — Twitter, Instagram, Skype, Viber, WhatsApp, Telegram, Signal.

Якщо це дійсно з конвертуванням в системах то дані дійсно пропадають, і ті користувачі, які будуть бачити ваші фото, чи закачувати собі на телефон чи комп'ютер, вже НЕ ПОБАЧАТЬ ніяких гео-даних. Ось приклади з різних систем:

Я знаю 100%, що останнє фото було зроблено iPhone X, в якому камера 12 mp 3024 x 4032 px і файл мав розмір 2.9 MB. А після конвертації в Signal, ДАНІ про то зникають, і вже мій iPhone “читає/показує” ті дані як 2 mp 1200x1600 px і розмір файла ТІЛЬКИ 427 kB. І так працює в більшості системах — ТОБТО соціальні мережі “урізають якість фотографій” ну і “по дорозі” видаляють дані про геолокацію.

Як бачимо, iOS відрізняє різні файли звідки саме файл фотографії був завантажений (чи з Гугла, чи з Вайбера)… І як бачимо, даних про геолокацію НЕМАЄ.

Звісно, фото МОГЛИ і НЕ бути з гео-даними затягнуті мною з Інтернету чи від знайомих в різних мессенджерах. Але це дуже просто перевірити, навіть на ВАШИХ ВЛАСНИХ фото — спробуйте зробити фото З ГЕО-ДАНИМИ, потім вивантажте файл до будь-якої соціальної мережі, а потім завантажте назад собі на телефон чи комп’ютер. І даних про геолокацію НЕ БУДЕ.

Чи системи спеціально створені для вивантаження фотографій зберігають геотеги?

Наведу приклад з Google Photos.

Ось моє фото з 2018-го року, і Google Photos вказує дані про геолокацію

Але, якщо я завантажую той файл собі на комп'ютер і на телефон, то

  • Інформація про файл на iMac-у (Cmd+ i у програмі Finder) НЕ ВКАЗУЄ даних про геолокацію.
  • Але iPhone (методам iOS) бачить ті геодані і показує так само як і на Google Photos.

І тут власне плавний перехід до більш детальнішого дослідження фото-файлів.

Бо свого часу я й сам здивувався, що інформація про файл НЕ вказує геолокацію. Але, як каже джерело і реальність, треба відкрити файл фото в програмі Preview (Apple Mac OS), а вже там Tools \ Show Location Info або клікнути на іконку (i):

І тоді відкриється вікно з 5-ма закладками, в яких шукаємо закладку GPS

Для порівняння, ось так виглядає інформація про GPS/геолокацію для фото, в якому НЕМАЄ геотегів.

Пробуючи глянути інформацію про геолокацію для таких файлів в програмі Preview покаже меню Show Location Info як НЕАКТИВНЕ. Хоча на іконку (i) можна клікнути, і тоді вікно НЕ буде мати вкладки GPS.

Інтернет сайти як інструменти отримання інформації про геолокацію

Так, дійсно, є багато різноманітних сайтів, куди ви можете закинути фотографію, і вам надасть інформацію про геолокацію, якщо вона була “вшита” в середину фото.

Pic2Map

А якщо даних немає, тоді видає таке повідомлення:

Ніби нічого, але перше що кидається в очі, що погано працює механізм кешу. Тобто першу фото, яку ви закините, і там будуть геодані, і вам сайт покаже ті дані, то всі наступні фото будуть показуватись з попередніми даними. Вирішується ця проблема ОЧИЩЕННЯМ кешу браузера, і тоді можна знову закидати фото. Але загалом НЕ РЕКОМЕНДУЮ недосвідченим користувачам.

Про більше подібних сайтів-інструментів можна прочитати тут (мова англійська)

Далі текст написаний для більш досвідчених користувачів комп’ютерів.

Інші інструменти для отримання інформації з фотографій

Наведу приклади, які орієнтовані на користувачів, яким зрозуміло поняття Терміналу чи CLI (Command Line Interface), “в народі” “консоль” з операційною системою Mac OS або дуже подібно для інших Unix систем. Але технічно підковані люди або фотографи повинні зрозуміти базові речі.

Вбудовані команди

file — це команда, яка вбудована в Mac OS (і потенційно в Unix). Ось приклад результатів:

А) для фото з геотегами

$ file A_with_location.jpgA_with_location.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=11, manufacturer=Apple, model=iPhone 5s, orientation=upper-left, xresolution=162, yresolution=170, resolutionunit=2, software=11.2.6, datetime=2018:06:20 17:09:22, GPS-DataTIFF image data, big-endian, direntries=11, manufacturer=Apple, model=iPhone 5s, orientation=upper-left, xresolution=162, yresolution=170, resolutionunit=2, software=11.2.6, datetime=2018:06:20 17:09:22, GPS-Data], baseline, precision 8, 3264x2448, components 3

Вказує, що GPS дані є, але фактично їх не показує.

Б) для фото БЕЗ геотегів

$ file B_no_location.jpegB_no_location.jpeg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 1280x960, components 3

mdls — показує список метаданих

А) для фото з геотегами

$ mdls A_with_location.jpgkMDItemFSContentChangeDate = 2022-10-23 10:36:49 +0000
kMDItemFSCreationDate = 2022-10-23 10:36:48 +0000
kMDItemFSCreatorCode = ""
kMDItemFSFinderFlags = 0
kMDItemFSHasCustomIcon = 0
kMDItemFSInvisible = 0
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = 0
kMDItemFSLabel = 0
kMDItemFSName = "A_with_location.jpg"
kMDItemFSNodeCount = 540157
kMDItemFSOwnerGroupID = 20
kMDItemFSOwnerUserID = 501
kMDItemFSSize = 540157
kMDItemFSTypeCode = ""

Б) для фото БЕЗ геотегів

Станом на Жов-23–2022 ця команда показує ТІ САМІ дані в мене на Mac OS.

ХОЧА, раніше команда показували для ФОТО з геоданими додаткові параметри:

kMDItemLatitude                          = 51.0********667
kMDItemLogicalSize = 1439751
kMDItemLongitude = 11.98****333

По чому можна було зрозуміти довготу і широту геолокації.

Інші вбудовані програми

  • qlmanage відкриває фото в режимі DEBUG, після закриття якого, в терміналі отримуються дані. Але в мене там якісь проблеми з результатами. І взагалі не ясно чи та команда адекватна чи ні.

Команди, а точніше програми, які додатково треба встановити

mediainfo

brew install mediainfo

А) для фото з геотегами

$ mediainfo A_with_location.jpgGeneral
Complete name : A_with_location.jpg
Format : JPEG
File size : 527 KiB
Image
Format : JPEG
Width : 3 264 pixels
Height : 2 448 pixels
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Compression mode : Lossy
Stream size : 527 KiB (100%)

Б) для фото БЕЗ геотегів

Так само. Ну тобто команда не вказує інформацію про геотеги.

Але що цікаво, для файлів формату HEIC, команда показує інформацію КОЖНОГО фото-файлу, який міститься в середні.

exiv2

brew install exiv2

А) для фото з геотегами

$ exiv2 A_with_location.jpg File name       : A_with_location.jpg
File size : 540157 Bytes
MIME type : image/jpeg
Image size : 3264 x 2448
Thumbnail : image/jpeg, 4922 Bytes
Camera make : Apple
Camera model : iPhone 5s
Image timestamp : 2018:06:20 17:09:22
File number :
Exposure time : 1/2740 s
Aperture : F2.2
Exposure bias : 0 EV
Flash : No, auto
Flash bias :
Focal length : 4.2 mm
Subject distance:
ISO speed : 32
Exposure mode : Auto
Metering mode : Multi-segment
Macro mode :
Image quality :
White balance : Auto
Copyright :
Exif comment :
Macro mode :

Б) для фото БЕЗ геотегів

$ exiv2 B_no_location.jpeg File name       : B_no_location.jpeg
File size : 271378 Bytes
MIME type : image/jpeg
Image size : 1280 x 960
B_no_location.jpeg: No Exif data found in the file

imagemagick

А конкретно команда identify

А) для фото з геотегами

$ identify -verbose A_with_location.jpg Image:
Filename: A_with_location.jpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Mime type: image/jpeg
Class: DirectClass
Geometry: 3264x2448+0+0
Resolution: 72x72
Print size: 45.3333x34
Units: PixelsPerInch
Colorspace: sRGB
Type: TrueColor
Base type: Undefined
Endianness: Undefined

і там дуже багато даних, але є ОКРЕМА група даних щодо GPS:

exif:GPSAltitude: 9542/909
exif:GPSAltitudeRef: .
exif:GPSDateStamp: 2018:06:20
exif:GPSDestBearing: 16531/323
exif:GPSDestBearingRef: T
exif:GPSHPositioningError: 5/1
exif:GPSImgDirection: 16531/323
exif:GPSImgDirectionRef: T
exif:GPSInfo: 1680
exif:GPSLatitude: 43/1, 6/1, 5738/100
exif:GPSLatitudeRef: N
exif:GPSLongitude: 70/1, 43/1, 5062/100
exif:GPSLongitudeRef: W
exif:GPSSpeed: 0/1
exif:GPSSpeedRef: K
exif:GPSTimeStamp: 21/1, 9/1, 2100/100

І важливими тут є exif:GPSLatitude та exif:GPSLongitude

Б) для фото БЕЗ геотегів

$ identify -verbose B_no_location.jpeg Image:
Filename: B_no_location.jpeg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Mime type: image/jpeg
Class: DirectClass
Geometry: 1280x960+0+0
Units: Undefined
Colorspace: sRGB

І тоді секція з GPS даними просто відсутня.

Джерела

--

--

Andrii Lundiak
Andrii Lundiak

Written by Andrii Lundiak

WebDev (JavaScript/TypeScript, CSS/HTML, React, Angular, NodeJS). Hobbies: Blogging, Genealogy/Genetics, Languages, #EDM.

No responses yet