...
...
...

и снова о стеганографии – обзор утилиты steghide

Задача: требуется скрыть сам факт передачи важных данных по открытым каналам связи.

Решение: несколько стеганографических утилит, доступных по лицензии GNU GPL, помогут решить проблему.


Дистрибутив Дебиан - просто энциклопедия самых разнообразных и чрезвычайно полезных утилит манипулирования данными. А уж программ сокрытия данных в нем просто огромное количество. Вот одна из них - небольшая, но весьма навороченная утилита steghide для стеганографического внедрения данных в рисунки или звуковые файлы.

Стеганография - в переводе с греческого дословно означает «тайнопись». Это наука о скрытой передаче информации путем сохранения в тайне самого факта передачи. В отличие от криптографии, которая скрывает содержимое секретного сообщения, стеганография скрывает само его существование. О программе steghide и пойдет речь далее.





установка и работа

Для того чтобы поставить все стеганографические утилиты, что есть в Дебиан, мне потребовалось 4Мб и несколько секунд ожидания. При помощи друга всех дебианщиков, команды apt-get install, было установлено:

- outguess - Universal Steganographic tool;

- stegdetect - Detect and extract steganography messages inside JPEG;

- steghide - A steganography hiding tool;

- snowdrop - plain text watermarking and watermark recovery.

Чего с лихвой хватит для любых параноидально одержимых приватностью своих данных граждан.

сокрытие данных

Хотелось бы отметить чрезвычайно подробный и толковый мануал steghide - увлекательнейшее чтиво, где подробно расписываются параметры и рассказывается вкратце, как программа работает и какие алгоритмы использует.

Вдоволь насладившись чтением, приступаем к непосредственно скрыванию своих сокровенных данных в какой-нибудь безобидный рисунок. Например, в такой (см. рис. 1).



Рис. 1.

Когда я оформлял трудовой контракт, меня попросили написать свою краткую автобиографию - чем не конфиденциальные данные? Файл сохранился, вот его и внедрю в картинку - благо это простой текст, форматирования нет.

Для этого нужно набрать команду:

$ steghide embed -ef autobio.txt -cf MacOS.jpg -sf MacOShide.jpg

То есть внедряем файл autobio.txt (ключ -ef, embed file) внутрь рисунка MacOS.jpg (ключ -cf, cover file), в результате чего имеем рисунок со внедренным стего под названием MacOShide.jpg (ключ -sf, stego file). При этом прогамма спросит дважды пароль:

Enter passphrase:
Re-Enter passphrase:
embedding "autobio.txt" in "MacOS.jpg"... done
writing stego file "MacOShide.jpg"... done


Все готово, и на рисунке 1 вы видите (то есть не видите ;) весь мой жизненный путь за четверть века :)

Для того, чтобы снова иметь возможность прочесть скрытый текст, извлекаем его оттуда:

$ steghide extract -sf MacOShide.jpg -xf autobio2.txt

То есть извлечь из стего-файла MacOShide.jpg скрытую информацию в файл autobio2.txt (ключ -xf, extract file). Утилита будет лаконична:

Enter passphrase:
wrote extracted data to "autobio2.txt".


Готово, файл записан.

небольшое исследование

Кто умеет читать маны, мог почерпнуть то же, читая пример в конце man steghide. Но мне стало интересно, насколько изменился рисунок не визуально, а количественно. Для этого люди, занимающиеся обработкой изображений, традиционно применяют среднеквадратическое отклонение между двумя изображениями. Вооружившись исчерпывающий статьей Финапа (Fienup, J. Invariant error metrics for image reconstruction, Applied Optics, 32, 1997, 36, 8352-57) и реализовав ее в MATLAB, вычисляем разницу:

>> kmvRMSandnorm('MacOS.jpg', 'MacOShide.jpg')

ans =

0.0032


Да, разумеется, такую разницу в изображении мы не увидим, даже если будем пристально вглядываться: отличие всего лишь на 0.32%! Отличия между изображениями можно увидеть, не сильно напрягаясь, где-то при 3-5%.

Ну и, разумеется, контрольная сумма файла изменилась:

$ md5sum MacOS.jpg
da6d7d25d5560fb22eb9d2f6ca09417f MacOS.jpg

$ md5sum MacOShide.jpg
87a02d9714ed43f49d2aeb37c4e75d94 MacOShide.jpg


Так что изменения, конечно, есть, но очень небольшие - на глаз не заметить, так что можно смело переправлять личную информацию по электронной почте, даже если ее просматривает злобный админ.



Михаил Конник




© Сетевые решения