devzone.org.ua/post/mat2-ochyshchennia-meta-danykh-dlia-riznykh-formativ.md
2026-01-06 14:39:04 +02:00

6.4 KiB
Raw Permalink Blame History

mat2: очищення мета-даних для різних форматів

В мене давно назбиралась колекція дампів різних сторінок, які я зберігаю в PDF для бекапів, локального перегляду (оскільки такий формат складається з одного файлу) а також планую поділитися ними з іншими, опублікувавши десь на хмарі FTP (1, 2).

Як і більшість тодішніх соціально-орієнтованих форматів (от як зображення JPEG з EXIF-інформацією про GPS розташування) PDF - не є "безпечним" виключенням, оскільки може містити в собі як віддалений вміст, вбудований скриптинг так і цифровий відбиток пристрою: версію рушія, дату створення документу, тощо.

Згодом, зайнявся сабжем і першою знайшов утиліту mat2, яка написана мовою Python і розроблялась у якості частини проєкту Tails.

Підтримувані формати

На момент публікації, версія 0.14 підтримує наступні формати:

  • application/epub+zip (.epub)
  • application/pdf (.pdf)
  • application/vnd.oasis.opendocument.chart (.odc)
  • application/vnd.oasis.opendocument.formula (.odf)
  • application/vnd.oasis.opendocument.graphics (.odg)
  • application/vnd.oasis.opendocument.image (.odi)
  • application/vnd.oasis.opendocument.presentation (.odp)
  • application/vnd.oasis.opendocument.spreadsheet (.ods)
  • application/vnd.oasis.opendocument.text (.odt)
  • application/vnd.openxmlformats-officedocument.presentationml.presentation (.pptx)
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.xlsx)
  • application/vnd.openxmlformats-officedocument.wordprocessingml.document (.docx)
  • application/x-bittorrent (.torrent)
  • application/x-dtbncx+xml (.ncx)
  • application/x-tar (.tar)
  • application/xhtml+xml (.xht, .xhtml, .xhtm)
  • application/zip (.zip)
  • audio/flac (.flac)
  • audio/mpeg (.mp1, .mp2, .mp3, .mpga)
  • audio/ogg (.oga, .spx, .ogg, .opus)
  • audio/x-aiff (.aif, .aiff, .aifc)
  • audio/x-flac (.flac)
  • audio/x-wav (.wav)
  • image/bmp (.dib, .bmp)
  • image/gif (.gif)
  • image/heic (.heic)
  • image/jpeg (.jpeg, .jpg, .jfif, .jpe)
  • image/png (.png)
  • image/svg+xml (.svg, .svgz)
  • image/tiff (.tiff, .tif)
  • image/webp (.webp)
  • image/x-portable-pixmap (.ppm)
  • text/css (.css)
  • text/html (.htm, .html)
  • text/plain (.cc, .text, .log, .el, .hxx, .txt, .f90, .cxx, .pm, .conf, .hh)
  • video/mp4 (.mp4, .m4v, .mpg4)
  • video/x-ms-wmv (.wmv)
  • video/x-msvideo (.avi)

CLI

mat2, перш за все - інструмент командного рядка, яким власне і користуюся сам.

Встановлення

dnf install mat2

Перевірка залежностей

Перед початком роботи, варто перевірити наявність залежностей, без яких програма може працювати не коректно:

mat2 --dependencies

Повне стирання мета-даних

mat2 /path/to/file
  • у такому разі, буде створено копію документу з приставкою .cleaned
mat2 --inplace /path/to/file
  • перезаписати поточний файл (зручно, якщо оригінал більше не потрібен)

Часткове стирання мета-даних

На прикладі PDF, "Повне стирання" передбачає створення його графічної форми замість текстової. Наскільки я розумію, це потрібно для обфускації фінгерпринтів: шрифтів або можливо ідентифікації системного рендерера. Тому вихідний файл ".cleaned" займатиме замість умовних 100 Кб оригіналу - близько 2 Мб.

Тому, якщо потрібно просто скинути мета-інформацію без додаткової анонімізації, додаємо опцію --lightweight (або -L)

mat2 --lightweight /path/to/file
  • аналогічно, можна додати аргумент --inplace

Перевірка мета-даних

$ mat2 --show /path/to/file
  • відображає "чутливі" дані для поточного формату file

Наприклад, якщо початковий файл PDF містив такі мета-дані:

$ mat2 -show /path/to/file.pdf
[+] Metadata for /path/to/file.pdf:
    creation-date: 1764124192
    creator: Mozilla Firefox 145.0.1
    format: PDF-1.7
    mod-date: -1
    producer: cairo 1.18.0 (https://cairographics.org)

то його "очищена" версія виглядатиме так:

mat2 --show /path/to/file.cleaned.pdf
[+] Metadata for /path/to/file.cleaned.pdf:
    creation-date: -1
    format: PDF-1.5
    mod-date: -1

Повний список опцій

Інші комбінації підбирайте під власні потреби: їх там не так багато:

mat2 --help

Посилання

GUI

Metadata Cleaner - проста графічна обгортка для mat2 на базі GTK 4.

Встановлення

dnf install metadata-cleaner

Посилання