Kasujemy metadane z plików

Obrazy z aparatów cyfrowych często zawierają, ukryte w metadanych, dane wrażliwe. Dostępnych jest kilka narzędzi linuksowych, które usuwają niechciane metadane i pomagają zachować prywatność.

Postępująca digitalizacja wszystkich obszarów naszego życia sprawia, że trudno jest opanować rosnący napływ danych. Wielu użytkowników lubi dzielić się w Internecie zdjęciami wykonanymi telefonem czy aparatem, muzyką i plikami wideo, a nawet dokumentami PDF. Jednak wszystkie te formaty zawierają metadane, w których często znajdują się informacje o twórcy pliku, możliwe do odczytania w różnych programach. Zanim opublikujemy w Internecie pliki, powinniśmy sprawdzić, czy nie zawierają takich metadanych i usunąć wrażliwe informacje, aby chronić naszą prywatność. W tym artykule przyglądamy się kilku narzędziom linuksowym, które za wciśnięciem guzika pomagają usuwać metadane z plików.

Cel metadanych

Metadane zwykle są generowane na podstawie zdefiniowanych standardów i mają opisywać dane pliki. Przykładowo, w przypadku obrazów i plików wideo metadane zawierają informacje o modelu aparatu i ustawieniach technicznych zdjęcia. Często znajdziemy w nich też czas i datę wykonania oraz, jeśli sprzęt wspiera tę opcję, współrzędne GPS miejsca, w którym powstało zdjęcie. Wszystkie formaty plików mogą posiadać informacje na temat autora, dzięki czemu łatwiej udowodnić naruszenie praw autorskich. Dodatkowo metadane mogą definiować słowa kluczowe dla plików, umożliwiając tym samym kategoryzowanie i wyszukiwanie w aplikacjach obsługujących na przykład kolekcje obrazów.

Standardy

W przypadku obrazów i plików wideo standardy do generowania metadanych to Exif, IPTC i XMP. Odpowiednie informacje znajdziemy w stałych polach, w nagłówku pliku.

W 1991 roku zdefiniowana została specyfikacja IPTC-IIM (International Press Telecommunications Council – Information Interchange) [1], która może być wykorzystywana we wszystkich cyfrowych multimediach.

Dużo młodszy standard to Exif (Exchangeable Image File Format) [2], który określa bardziej techniczne szczegóły i jest wykorzystywany niemal we wszystkich popularnych telefonach oraz aparatach cyfrowych do zapisywania metadanych obrazów. Ostatnia specyfikacja Exif pochodzi z 2010 roku, a była korygowana w 2019 roku.

Z kolei XMP (Extensible Metadata Platform) [3] to kontener formatu podobny do Exif, który definiuje metadane głównie dla plików obrazów. Jednak XMP, opracowany przez Adobe około 20 lat temu, może przechowywać dowolny tekst i dlatego jest popularny w aplikacjach takich jak Lightroom lub Darktable. Wszystkie produkty Adobe wspierają XMP.

Rysunek 1: Standardowy menedżer plików pod Linuksem potrafi wyświetlić informacje z różnych formatów plików.
Listing 1: Typowe polecenia ExifTool

01 $ exiftool --common PLIK PLIK.txt

02 $ exiftool -EXIF TAG='WARTOŚĆ TAGU' PLIK

03 $ exiftool --EXIF TAG PLIK

04 $ exiftool -all=PLIK
Rysunek 2: Pracujący w wierszu poleceń ExifTool szczegółowo wyświetli istniejące metadane.
Rysunek 3: jExifToolGUI pozwala użytkownikom sprawdzać i zmieniać metadane w łatwym w użyciu GUI.

Odczytywanie i edycja

Odczytywanie metadanych nie wymaga specjalnych narzędzi: menedżery plików wszystkich popularnych interfejsów pulpitu potrafią obsłużyć istniejące standardy. Zwykle pokazują one wybrane metadane przy dostępie do pliku, na przykład w przeglądarce obrazów. W wielu przypadkach możemy też wyświetlić najważniejsze metadane za pomocą menu kontekstowego w oknie właściwości (Rysunek 1). Jednak, aby je edytować, potrzebujemy specjalnych aplikacji, które skupiają się zwykle na jednym z istniejących standardów.

ExifTool

Wieloplatformowy ExifTool [4] jest już praktycznie standardem w edycji metadanych. Jest to narzędzie wiersza poleceń z potężnym zestawem poleceń, obsługujące szeroki zakres formatów obrazów i wideo. Twórcy ExifTool udostępniają prostą tabelę [5], w której znajdziemy opcje edycji dla każdego formatu.

ExifTool dostępny jest w repozytoriach najpopularniejszych dystrybucji Linuksa. Możemy go zwykle wygodnie skonfigurować za pomocą menedżera pakietów. Po zainstalowaniu ExifTool, w najprostszym przypadku możemy wyświetlać dane Exif pliku, wydając polecenie:

exiftool PLIK

Aplikacja bierze pod uwagę wszystkie istniejące metadane, więc zwracane informacje są zwykle bardzo długie i zawiłe (Rysunek 2).

Aby zapisać najważniejsze metadane w osobnym pliku, przekierowujemy wyjście do pliku tekstowego (Listing 1, wiersz 1). Oprócz metadanych dodawane są tagi Exif. Aby edytować poszczególne tagi Exif, korzystamy z polecenia z wiersza 2, a następnie weryfikujemy modyfikację poleceniem z wiersza 3. W ten sposób otrzymamy pojedynczy wiersz z odpowiednim tagiem Exif i jego wartością. Jeśli chcemy skasować wszystkie tagi, aby ochronić naszą prywatność w przypadku publikacji obrazu w Internecie, wydajemy polecenie z wiersza 4.


Rysunek 4: Istniejące metadane możemy w jExifToolGUI skasować bardzo szybko.
Rysunek 5: ExifCleaner to proste narzędzie do usuwania metadanych.
Rysunek 6: jhead kasuje lub modyfikuje metadane jedynie w plikach JPEG.

jExifToolGUI

Ze względu na skomplikowanie opcji edycji i wiele metadanych, nauka wykorzystania ExifTool trwa dosyć długo. Dużo prościej jest edytować metadane za pomocą jExifToolGUI [6], narzędzia z graficznym interfejsem użytkownika (GUI). Ta napisana w Javie aplikacja wymaga instalacji ExifTool oraz Java Runtime Environment w wersji 11, które łatwo znajdziemy w repozytoriach niemal wszystkich popularnych dystrybucji.

Po dosyć powolnym starcie pojawia się klarowny interfejs jExifToolGUI. Po lewej, poniżej paska menu i paska z przyciskami znajduje się panel wyświetlający niewielkie miniaturki plików wykrytych przez jExifToolGUI. Na prawo od tego panelu, korzystając z kart, możemy sprawdzać i zmieniać metadane wybranych plików.

Aby rozpocząć edycję, klikamy na ikonę katalogu w lewym górnym rogu okna i w menedżerze plików wybieramy katalog. jExifToolGUI odczyta wykryte pliki i wyświetli je, jeden pod drugim, w postaci miniaturek w panelu po lewej stronie. Po kliknięciu na jednym z plików, na karcie View Data pojawią się, w formie tablicy, powiązane z nim metadane (Rysunek 3).

Korzystając z karty Edit Data, możemy teraz modyfikować istniejące dane. Drugi pasek z kartami, który wprowadza kategorie danych, pozwala szybko przejść do danych, bez potrzeby mozolnego przeczesywania długiej, dezorientującej tabeli tagów Exif i ich wartości. Tagi Exif należące do odpowiednich kategorii pojawiają się jeden pod drugim na poszczególnych kartach. Możemy wpisać zmodyfikowane wartości do odpowiednich pól. Po prawej stronie zaznaczamy pole wyboru, aby zapisać nową wartość. Domyślnie jExifToolGUI zaznacza wszystkie pola, zapisując ich wartości.

Po zakończeniu edycji przenosimy nowe metadane z każdej karty do odpowiednich obrazów, klikając w aktywnym oknie na przycisk Copy to selected image(s) and save. jExifToolGUI przeniesie wtedy zmodyfikowane dane na odpowiednie pozycje metadanych. W razie potrzeby możemy też po prostu skopiować dane do odpowiedniej karty z kategoriami, klikając na Copy from selected images na dole danego segmentu, po wybraniu pliku. Wybierając tę opcję, powinniśmy sprawdzić dane w każdej z kategorii dla wybranych obrazów.

Rysunek 7: Za pomocą wtyczki możemy korzystać z mat2 w menedżerze plików Gnome’a, Nautilusie.
Rysunek 8: Metadata Cleaner wyróżnia się jasnym, kolorowym interfejsem.

Pozycja menu Metadata | Remove metadata oszczędzi nam pracochłonnego przeglądania poszczególnych kart w celu usunięcia metadanych. Po jej wybraniu otwiera się nowe okno dialogowe, w którym wybieramy kategorie, zaznaczając odpowiednie opcje (Rysunek 4). Jednocześnie domyślna opcja Back up originals zachowa oryginalne dane w formie kopii zapasowej.

Po kliknięciu na OK i kolejnym potwierdzeniu jExifToolGUI usunie metadane z nagłówka pliku. Jeśli ponownie wybierzemy ten obraz i odczytamy metadane za pomocą przycisku Copy from selected images, zobaczymy puste pola przypisane do tagów Exif.

ExifCleaner

ExifCleaner [7] również opiera się na ExifToolu i to za jego pomocą odczytuje i kasuje dane Exif. Ze względu na prosty interfejs ExifCleaner jest idealny dla użytkowników, którzy tylko okazjonalnie usuwają metadane z obrazów. Program nie potrafi edytować metadanych. Pakiety RPM i DEB ExifCleanera znajdziemy na GitHubie, tak jak i obraz AppImage. Kod źródłowy również jest dostępny na GitHubie.

ExifCleaner otwiera dosyć proste, puste okno, w którym znajdziemy tylko jeden pasek menu. Przeciągamy do niego pliki obrazów, z których chcemy usunąć metadane. Narzędzie przedstawi wszystkie znalezione w plikach dane w dwóch kolumnach wraz z informacją, które wartości pozostaną po zakończeniu usuwania (Rysunek 5). Widać jedynie liczbę wartości tylko do odczytu, których nie można usunąć, a nie tagi Exif, do których należą te wartości.

ExifCleaner rozpoczyna usuwanie metadanych automatycznie, zaraz po załadowaniu plików. Ponieważ narzędzie nie robi kopii zapasowej oryginalnych plików, skasowane metadane nie mogą być odtworzone. Aby uniknąć utraty danych, powinniśmy zachować szczególną ostrożność przy przenoszeniu plików obrazów do ExifCleanera.

W przeciwieństwie do tego, co sugeruje nazwa, ExifCleaner, poza plikami obrazów, potrafi też modyfikować metadane z formatów takich jak M4A, MOV, QT i MP4. Dodatkowo ExifCleaner usuwa wszystkie metadane poza tymi, które są tylko do odczytu (i dlatego nie można ich usunąć) w plikach PDF.

Rysunek 9: Pośród programów do edycji obrazów digiKam należy do wagi ciężkiej i na pierwszy rzut oka jego interfejs jest dosyć skomplikowany.
Rysunek 10: W digiKam możemy wygodnie edytować metadane, modyfikując zawartość pól.

jhead

Z małego programu wiersza poleceń jhead [8] możemy korzystać w celu modyfikacji nagłówków Exif w plikach JPEG. Ze względu na dużą liczbę parametrów, w zależności od sposobu jego wykorzystania, jhead wymaga dłuższego czasu na zapoznanie się z programem. Ponieważ jhead obsługuje jedynie pliki JPEG, jego użycie z innymi formatami plików zakończy się komunikatem o błędzie.

Aby wyświetlić metadane pliku obrazu, wydajemy polecenie:

jhead PLIK

Aplikacja wyświetli teraz w terminalu listę poszczególnych tagów Exif (Rysunek 6). Aby w oparciu o parametry wspierane przez program zmienić tagi, korzystamy z polecenia:

jhead PARAMETR PLIK

Poszczególne parametry programu poznamy, wywołując jhead -h. Aby zmienić ten sam tag Exif, w wielu plikach tego samego katalogu możemy podać nazwy plików wraz z wieloznacznikami. W ten sposób jhead wykona całą pracę za jednym uruchomieniem.

mat2

Metadata Anonymisation Toolkit 2 (mat2) [9] to klasyczne narzędzie do usuwania metadanych ze zbiorów plików, które nie tylko obsługuje obrazy oraz pliki audio i wideo, ale też formaty PDF i pliki biurowe. Dzięki temu mat2 jest szczególnie przydatny dla użytkowników z obszarów o szczególnym narażeniu na utratę prywatności, takich jak dziennikarze i prawnicy.

Jest to narzędzie wiersza poleceń, które posiada wiele opcji i parametrów, wymagające pewnego poziomu wiedzy. Jednak wtyczka do menedżera plików Nautilus pod Gnome’em umożliwia czyszczenie grup plików z wiersza poleceń bez potrzeby znajomości składni (Rysunek 7). Aby to zrobić, wybieramy po prostu pliki do wyczyszczenia i klikamy prawym przyciskiem myszy, aby wywołać menu kontekstowe, w którym wskazujemy opcję Remove metadata.

Dzięki wtyczce możemy wybierać pliki różnych formatów. mat2 identyfikuje formaty i stosuje do nich odpowiednie funkcje usuwania metadanych. W czasie czyszczenia wtyczka wyświetla też na górze okna pasek postępu. Oryginalne pliki nie są modyfikowane, a program tworzy w aktualnym katalogu ich kopie z dopiskiem cleaned.

Rysunek 11: XnView MP posiada też wiele funkcji przetwarzania obrazów.
Rysunek 12: W XnView MP możemy usunąć metadane za pomocą kilku kliknięć myszką.

Dystrybucja Tails dostarcza mat2 razem z wtyczką Nautilusa w standardowej instalacji.

Metadata Cleaner

Tylko kilka dystrybucji posiada aktualnie Metadata Cleanera [10] w swoich repozytoriach. Pakiety binarne dostępne są dla Arch Linuksa, Debiana i Ubuntu wraz z ich pochodnymi. Dostępny jest też pakiet Flatpak oraz kod źródłowy w Pythonie.

Po instalacji i pierwszym uruchomieniu Metadata Cleaner ładuje wizualnie nowoczesne i funkcjonalnie proste okno: program nie posiada standardowego paska menu czy paska z przyciskami. Ponieważ ta oparta na GTK aplikacja stosuje wytyczne Gnome’a, to wszystkie elementy menu znajdziemy na pasku tytułu (Rysunek 8).

Przycisk Add Files w lewym górnym rogu przenosi nas do menedżera plików, gdzie możemy wybrać pliki obrazów. Metadata Cleaner wyświetli je wtedy, w kolumnie po prawej stronie, w postaci listy z liczbą zidentyfikowanych tagów Exif podświetloną na czerwono. Kliknięcie na strzałkę z prawej strony, umieszczoną po każdym pliku, otwiera szczegóły na temat metadanych zagnieżdżonych w danym obrazie. Strzałka wskazująca w lewą stronę na pasku tytułu przenosi nas z powrotem do listy plików.

Aby usunąć metadane ze wszystkich załadowanych plików, wciskamy po prostu duży, czerwony przycisk Clean na dole okna, po prawej stronie. Metadata Cleaner zasugeruje utworzenie kopii zapasowej i następnie skasuje wszystkie metadane, jakie znajdzie. Aplikacja nie tworzy automatycznie żadnych kopii oryginalnych plików, więc nie można za jej pomocą odzyskać skasowanych metadanych.

Jeśli klikniemy na ikonie koła zębatego na lewo od przycisku Clean, otworzy się małe okno dialogowe, w którym możemy przełączyć się na Superficial cleanup. W tym trybie program nie usuwa całkowicie metadanych, ale próbuje zachować te, które są funkcjonalnie istotne. Superficial cleanup najlepiej nadaje się do plików takich jak PDF, w których możemy też wprowadzać zmiany. Modyfikacje w rodzaju zmian tekstu w pliku PDF lub kompresji obrazu mogą być kontrolowane przez metadane i utracimy je, jeśli odpowiednie tagi zostaną usunięte. Z tego powodu nie powinniśmy kasować wszystkich metadanych w tego typu formatach plików. Włączenie danego trybu kasowania obejmuje wszystkie pliki widoczne w oknie programu. Czyszczenie plików zajmuje trochę czasu, w zależności od ich liczby.

digiKam

Za pomocą digiKam [11], programu będącego częścią biblioteki KDE Plasma, możemy przeglądać metadane, wciskając jeden przycisk i edytować je w wygodnym edytorze. digiKam znajdziemy w repozytoriach wszystkich popularnych dystrybucji, a korzystać z niego możemy w dowolnym środowisku pulpitu. Przy pierwszym uruchomieniu pojawi się kilkuetapowy przewodnik, który pomaga w podstawowej konfiguracji, czyli między innymi ustawienia ścieżek oprogramowania oraz połączenia z bazą danych.

Okno programu, które pojawia się po zakończeniu konfiguracji, posiada standardowy pasek menu, pasek przycisków z często używanymi funkcjami oraz trzy główne panele poniżej (Rysunek 9). Po lewej wyświetlone jest drzewo katalogów systemu, w środku zobaczymy miniaturki plików obrazów z aktualnego katalogu, a po prawej znajdują się informacje na temat wybranego obrazu.

Tabela 1: Narzędzia do edycji metadanych

 ExifTooljExifToolGUIExifCleanerjheadmat2Metadata CleanerdigiKamXnView MP
L:LicencjaGPLGPLMITDomena publicznaLGPLGPLGPLKomercyjna
Właściwości
GUINieTakTakNieTak1TakTakTak
Interfejs tekstowyTakNieNieTakTakNieNieNie
WieloplatformowośćTakTak2TakTakTakNieTakTak
Wspierane standardy/formaty
Exif/IPTC/XMPTakTakTakTakTakTakTakTak
Multimedia (obraz/audio/wideo)TakTakTakJPEGTakTakTakTak
Pliki PDFNieNieTak3NieTakTakNieNie
Pliki biuroweNieNieNieNieTakNieNieNie
Funkcje
Usuwanie metadanychTakTakTakTakTakTakTakTak
Modyfikowanie metadanychTakTakNieTakNieNieTakTak
1Menedżer plików, 2Java, 3Ograniczone

Jeśli wybierzemy kartę Metadane z niecodziennego, ale oszczędzającego miejsce pionowego paska z kartami po prawej stronie, dane z nagłówków aktywnych obrazów pojawią się w panelu informacyjnym po prawej. digiKam dzieli ten panel na kilka kart. Domyślnie wyświetla tagi Exif. Dodatkowo, na kartach IPTC i XMP zobaczymy metadane z tych standardów, jeśli są dostępne.

Aby edytować metadane aktywnego obrazu, klikamy na Element na pasku menu i wybieramy Edytowanie Metadanych z menu kontekstowego, które się pojawi. Osobne okno wymieni teraz wszystkie metadane posortowane według tagów i umożliwi modyfikacje zawartości pól (Rysunek 10). Zaznaczając lub odznaczając pola po lewej stronie, możemy też wykluczyć lub dodać do modyfikacji poszczególne pola. Z lewej strony okna wybieramy kategorie, które grupują podobne ustawienia. Na górze obszaru roboczego widoczne są dodatkowe karty, dzięki którym możemy się przełączać pomiędzy różnymi standardami metadanych.

Okna dialogowe standardów IPTC i XMP zawierają głównie pola komentarza, informacje o prawach autorskich i słowa kluczowe. Kategorie na widocznym z lewej strony pasku zmieniają się, odzwierciedlając dostępne w każdym ze standardów opcje. Po wprowadzeniu zmian klikamy na przycisk Zastosuj na dole z lewej strony paska przycisków i zatwierdzamy, wybierając OK. Teraz możemy wrócić do głównego okna digiKam.

XnView MP

Komercyjne narzędzie XnView MP [12], rozpowszechniane za darmo na użytek prywatny i w edukacji, to wieloplatformowa przeglądarka obrazów z mnóstwem funkcji edycji. XnView MP obsługuje ponad 500 formatów obrazów i jest dostępny do pobrania dla Linuksa ze strony producenta w formie archiwum TGZ, pakietu DEB i AppImage. Pakiet DEB instaluje się bez problemów pod Ubuntu i jego pochodnych oraz tworzy wpis w menu danego pulpitu.

Po uruchomieniu XnView MP otwiera się prosty, oparty na kartach interfejs (Rysunek 11). Posiada on cztery panele, pasek menu i pasek przycisków. Górny lewy panel zawiera drzewo katalogów systemu, a w dużym panelu po prawej XnView MP wyświetla podgląd obrazów z aktualnego katalogu. Na dole z prawej strony znajduje się panel z poziomą listą kategorii do oznaczania obrazów oraz segment informacyjny na dole z lewej strony, w którym, na kartach EXIF, IPTC-IIM i XMP, wyświetlane są metadane. Jednak jeśli wybrany obraz nie posiada metadanych danego standardu, XnView MP nie wyświetli karty tego standardu.

W menu Narzędzia | Metadane znajdziemy różne opcje do edycji metadanych, posortowane według wspieranego standardu. Oddzielny wpis Edytuj dane GPS umożliwia zmianę istniejących współrzędnych GPS. Opcja Wyczyść usuwa istniejące metadane, a w kolejnym oknie, zaznaczając odpowiednie pola, możemy określić, które metadane powinny być skasowane (Rysunek 12). Jednak XnView MP nie rozpatruje pojedynczych tagów, ale całe standardy.

Chociaż XnView MP potrafi edytować tylko kilka wybranych tagów Exif, to umożliwia bardziej zaawansowane modyfikacje metadanych IPTC i XMP. Aby zmienić tagi Exif, przechodzimy do okna Przenoszenie, które znajdziemy w menu Narzędzia | Metadane i wybieramy poszczególne tagi z listy, a następnie uzupełniamy je predefiniowanymi wartościami z rozwijanej listy.

Wnioski

Jeśli chodzi o edycje metadanych, to Linux okazuje się bardzo elastycznym systemem obsługującym wiele formatów plików. Chociaż zadanie to realizuje mniej narzędzi niż w innych systemach operacyjnych, to znajdziemy tu programy wszystkich popularnych rodzajów (patrz Tabela 1). Zarówno użytkownicy wiersza poleceń, jak i ci, którzy wybierają interfejsy graficzne, odnajdą rozwiązanie spełniające ich potrzeby.

Edytory obrazów, takie jak digiKam lub XnView MP musimy najpierw poznać, zanim zaczniemy ich używać, gdyż posiadają wiele funkcji, które komplikują ich interfejs. Zwykłym użytkownikom, którzy chcieliby tylko usunąć metadane ze swoich obrazów przed publikacją, wystarczą programy, które skupiają się na realizacji tego konkretnego zadania za pomocą wskazania kursorem i kliknięcia.

Żródła:

[1] IPTC-IIM: https://en.wikipedia.org/wiki/IPTC_Information_Interchange_Mode

[2] Exif: https://pl.wikipedia.org/wiki/Exchangeable_Image_File_Format

[3] XMP: https://en.wikipedia.org/wiki/Extensible_Metadata_Platform

[4] ExifTool: https://exiftool.org/

[5] Opcje edycji ExifTool: https://exiftool.org/#supported

[6] jExifToolGUI: https://hvdwolf.github.io/jExifToolGUI/

[7] ExifCleaner: https://exifcleaner.com/

[8] jhead: https://www.sentex.ca/~mwandel/jhead/

[9] mat2: https://0xacab.org/jvoisin/mat2

[10] Metadata Cleaner: https://flathub.org/apps/details/fr.romainvigier.MetadataCleaner

[11] digiKam: https://www.digikam.org/

[12] XnView MP: https://www.xnview.com/de/xnviewmp/

Podziel się postem :)

Najnowsze:

Bezpieczeństwo

Powstanie Centrum Cyberbezpieczeństwa NASK. Ujawniono szczegóły

Powstanie Centrum Cyberbezpieczeństwa NASK, które będzie skupiać specjalistyczne centra, ośrodki i laboratoria, by wzmocnić krajowy system cyberbezpieczeństwa. Ma też wesprzeć działający już CSIRT NASK. Projekt zaplanowano do końca 2029 roku, jego wartość to 310 mln złotych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *