From 4789e24a1de911e19646201e5a861b82c8830c9b Mon Sep 17 00:00:00 2001 From: postscriptum Date: Tue, 6 Jan 2026 12:02:05 +0200 Subject: [PATCH] add `mat2-ochyshchennia-meta-danykh-dlia-riznykh-formativ.md` --- ...ennia-meta-danykh-dlia-riznykh-formativ.md | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 post/mat2-ochyshchennia-meta-danykh-dlia-riznykh-formativ.md diff --git a/post/mat2-ochyshchennia-meta-danykh-dlia-riznykh-formativ.md b/post/mat2-ochyshchennia-meta-danykh-dlia-riznykh-formativ.md new file mode 100644 index 0000000..459b4ca --- /dev/null +++ b/post/mat2-ochyshchennia-meta-danykh-dlia-riznykh-formativ.md @@ -0,0 +1,148 @@ +# mat2: очищення мета-даних для різних форматів + +В мене давно назбиралась колекція дампів різних сторінок, які я зберігаю в PDF для бекапів, локального перегляду (оскільки такий формат складається з одного файлу) а також планую поділитися ними з іншими, опублікувавши десь на хмарі FTP ([1](https://devzone.org.ua/post/orhanizatsiia-hostyovoho-servera-ftp), [2](https://devzone.org.ua/post/orhanizatsiia-bahatokorystuvatskoho-servera-ftp-na-bazi-vsftpd)). + +Як і більшість тодішніх соціально-орієнтованих форматів, от як зображення JPEG з EXIF-інформацією про GPS розташування зокрема, PDF - не є "безпечним" виключенням, оскільки може містити в собі як віддалений вміст, вбудований скриптинг так і "відбитки пальців" ([fingerprint](https://uk.wikipedia.org/wiki/Цифровий_відбиток_пристрою)): версію рушія, дату створення документу, тощо. + +Згодом, зайнявся сабжем і першою знайшов утиліту `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`, перш за все - інструмент командного рядка, яким власне і користуюся сам. + +### Встановлення + +``` bash +dnf install mat2 +``` + +### Перевірка залежностей + +Перед початком роботи, варто перевірити наявність залежностей, без яких програма може працювати не коректно: + +``` bash +mat2 --dependencies +``` + +### Повне стирання мета-даних + +``` bash +mat2 /path/to/file +``` +* у такому разі, буде створено копію документу з приставкою `.cleaned` + +``` bash +mat2 --inplace /path/to/file +``` +* перезаписати поточний файл (зручно, якщо оригінал більше не потрібен) + +### Часткове стирання мета-даних + +На прикладі PDF, "Повне стирання" передбачає створення його графічної форми замість текстової. Наскільки я розумію, це потрібно для обфускації фінгерпринтів: шрифтів або можливо ідентифікації системного рендерера. Тому вихідний файл ".cleaned" займатиме замість умовних 100 Кб оригіналу - близько 2 Мб. + +Тому, якщо потрібно просто скинути мета-інформацію без додаткової анонімізації, додаємо опцію `--lightweight` (або `-L`) + +``` bash +mat2 --lightweight /path/to/file +``` +* аналогічно, можна додати аргумент `--inplace` + +### Перевірка мета-даних + +``` bash +mat2 --show /path/to/file +``` +* відображає "чутливі" дані для поточного формату `file` + +Наприклад, якщо початковий файл PDF містив такі мета-дані: + +``` bash +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) +``` + +то його "очищена" версія виглядатиме так: + +``` bash +mat2 --show /path/to/file.cleaned.pdf +[+] Metadata for /path/to/file.cleaned.pdf: + creation-date: -1 + format: PDF-1.5 + mod-date: -1 +``` + +### Повний список опцій + +Інші комбінації підбирайте під власні потреби: їх там не так багато: + +``` bash +mat2 --help +``` + +### Посилання + +* [Схоже на актуальний репозиторій проєкту](https://github.com/jvoisin/mat2) +* [Ще один репозиторій, який чомусь в топах Google (востаннє оновлений 4 роки тому)](https://github.com/tpet/mat2) + +## GUI + +Metadata Cleaner - проста графічна обгортка для `mat2` на базі GTK 4. + +### Встановлення + +``` bash +dnf install metadata-cleaner +``` + +### Посилання + +* https://metadatacleaner.romainvigier.fr +* https://gitlab.com/rmnvgr/metadata-cleaner \ No newline at end of file