💾 Archived View for tilde.team › ~rami › matreshka.gmi captured on 2024-08-31 at 12:48:25. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
רמי
SUBJECT: Создание "матрешки" стандартными консольными командами
AUTHOR: Rami Rosenfeld
DATE: 08/10/22
TIME: 02.00
LANG: en, ru
LICENSE: GNU FDL 1.3
TAGS: gnu, software, opensource, linux, system, man, manual, bash, privacy, terminal, console, security, stego
Данный способ прост и изящен тем, что здесь, по сути, используются три стандартные команды Linux: zip, unzip, cat.
Важно: Применяемый метод не является криптостойким или устойчивым к стеганографическому анализу. Правильно оценивайте степень и вектор гипотетических угроз и применяйте его только в исключительных (достаточно безопасных) случаях.
Важно: При необходимости - предварительно используйте gpg2. Это резко повысит криптостойкость, но не защитит от факта сокрытия информации при стегоанализе.
Примечание: Более надежный метод рассмотрен в материале "Steghide: Хранение данных в мультимедийных контейнерах" (см. раздел Manuals).
Пусть имеются: picture.jpg (будущий контейнер) и secret.txt (встраиваемый файл).
Создание архива archive.zip, содержащего файл secret.txt (степень компрессии - 9) и зашифрованного симметричным алгоритмом:
$ zip -9 -e archive.zip secret.txt
Enter password:
Verify password:
adding: secret.txt (deflated 56%)
Соединение вместе двух файлов: picture.jpg и archive.zip - с получением на выходе нового графического файла-контейнер new.jpg:
$ cat picture.jpg archive.zip > new.jpg
Проверка содержимого файла-контейнера (как у обычного компрессированного архива):
$ unzip -l new.jpg
Archive: new.jpg
warning [new.jpg]: 2458981 extra bytes at beginning or within zipfile
(attempting to process anyway)
Length Date Time Name
6764 10-07-2022 19:55 secret.txt
6764 1 file
Тестирование файла-контейнер на ошибки без распаковки:
$ unzip -t new.jpg
Archive: new.jpg
warning [new.jpg]: 2458981 extra bytes at beginning or within zipfile
(attempting to process anyway)
[new.jpg] secret.txt password:
testing: secret.txt OK
No errors detected in compressed data of new.jpg.
Распаковка файла-контейнера как обычного архива:
$ unzip new.jpg
Archive: new.jpg
warning [new.jpg]: 2458981 extra bytes at beginning or within zipfile
(attempting to process anyway)
[new.jpg] secret.txt password:
replace secret.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: secret.txt
Создатели утилиты zip честно предупреждают: их шифрование является нестойким и предлагают предварительно использовать Pretty Good Privacy / GNU Privacy Guard для надежной защиты данных. Таким образом, можно вначале зашифровать текстовый файл средствами gpg2, потом - заархивировать его, а затем уже встраивать в контейнер. Например:
gpg2 --symmetric --cipher-algo=AES256 secret.txt && shred -n 3 -fuzv secret.txt
(Команда shred уничтожит исходный файл secret.txt).
Примечание: Вполне естественно, что графический файл-контейнер можно просматривать как обычный файл.
Подробнее см.: man cat, zip, unzip, gpg2
🄯 Rami Rosenfeld, 2022. GNU FDL 1.3.