Ukryte zagrożenie związane z geotagowaniem EXIF: jak aparaty cyfrowe ujawniają Twoją fizyczną lokalizację
Każde zdjęcie cyfrowe wykonane współczesnym smartfonem lub dedykowanym aparatem cyfrowym zawiera niewidzialny ładunek wtórny, tzwMetadane EXIF (format wymiennego pliku obrazu). Standaryzowany przez JEITA (Japońskie Stowarzyszenie Przemysłu Elektronicznego i Informatycznego) EXIF został pierwotnie zaprojektowany, aby pomóc fotografom, edytorom zdjęć i laboratoriom drukarskim poprzez zachowanie parametrów ekspozycji — przysłony, czasu otwarcia migawki, czułości ISO i ogniskowych obiektywu.
Jednakże wraz z masowym przyjęciem chipsetów nawigacji GPS, Galileo i GLONASS w urządzeniach mobilnych zaczęto dołączać oprogramowanie sprzętowe do aparatówdokładne współrzędne satelitów (szerokość, długość i wysokość)bezpośrednio do nagłówka obrazu. Gdy robisz zdjęcie w salonie, na balkonie lub na podwórku, plik obrazu jest trwale opatrzony współrzędnymi Twojego domu z dokładnością do3 do 5 metrów.
Anatomia techniczna segmentu EXIF: znaczniki APP1 i endianowość TIFF
W standardowym pliku obrazu JPEG dane binarne zaczynają się od 2-bajtowego znacznika początku obrazu0xFFD8(SOI). Metadane specyficzne dla aplikacji są osadzone w wyspecjalizowanych segmentach oznaczonych etykietamiAPP0 do APP15. Metadane EXIF znajdują się wyłącznie w plikuZnacznik APP1 (0xFFE1):
- Znacznik i długość:
0xFFE1po którym następuje 2-bajtowa liczba całkowita bez znaku, deklarująca całkowity rozmiar segmentu w bajtach. - Podpis nagłówka:6 bajtów zawierających
45 78 69 66 00 00— ciąg znaków ASCII"Exif"po którym następują dwa bajty zerowe. - Nagłówek TIFF:8 bajtów deklarujących kolejność bajtów. Jeśli pierwsze dwa bajty to
0x4949(Intel, Little-Endian, najpierw najmniej znaczący bajt) lub0x4D4D(Motorola, Big-Endian, najpierw najbardziej znaczący bajt), po którym następuje magiczna stała42(0x002A) i 4-bajtowy wskaźnik do głównego katalogu plików obrazów (IFD0). - Katalogi IFD:IFD0 łączy do podkatalogów drugorzędnych, w tymExifIFD (tag
0x8769)w przypadku wskaźników ekspozycji optycznej orazGPSInfo IFD (tag0x8825)dla rekordów geolokalizacji.
Bezstratne usuwanie EXIF a stratna rekompresja płótna
Wiele podstawowych narzędzi online usuwa metadane, renderując zdjęcie w formacie HTML5<canvas>element i wywołaniecanvas.toDataURL('image/jpeg'). Chociaż ta metoda odrzuca nagłówki metadanych, wymusza na całym obrazie przejście stratnej dekompresji JPEG i ponownego kodowania. Wprowadza to zauważalne artefakty kompresji, degradację podpróbkowania chrominancji i zmienia wartości luminancji pikseli.
FlashSoftStriptizerka online EXIFwykonujeczyste binarne usuwanie segmentówbezpośrednio w buforze bajtów pliku surowego. Chirurgicznie wycina znaczniki APP1 (EXIF/XMP), APP2 (ICC), APP13 (Photoshop/IPTC) i COM, pozostawiając nietknięte tablice kwantyzacji (DQT), tablice Huffmana (DHT), początek ramki (SOF0/SOF2) i początek skanowania (SOS). Uzyskany czysty obraz zostaje zachowany100% wierność optyczna bit po biciez zerową stratą kompresji.