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

148 lines
No EOL
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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