RedJPEG XT и ImageSpyer G2: стеганография быстро и просто

Компьютерное шифрование данных применяется уже давно и широко, успешно (или наоборот) обеспечивая конфиденциальность во всех многочисленных случаях, когда это требуется. Но зашифрованный файл самим своим существованием указывает на то, что кто-то что-то хочет скрыть. Так что более оправданным оказывается не простое шифрование, а стеганография – подход, при котором «тот-кто-знать-не-должен» и не догадывается о самом факте передачи информации. Для этого используются специальные программы, две из которых я и рассмотрю в данном обзоре.

Классика и современность

Согласно классическому определению, стеганография (буквально «тайнопись») – слово греческого происхождения, обозначающее науку и технологию скрытой передачи информации путем сохранения в тайне самого факта передачи. Этот термин ввел в 1499 году Иоганн Тритемий в своем трактате «Стеганография» (Steganographia), зашифрованном под магическую книгу.

В отличие от криптографии, которая скрывает содержимое секретного сообщения, стеганография скрывает сам факт его существования. В результате сообщение выглядит как что-либо иное, например, как изображение, статья, список покупок, письмо или судоку. Стеганографию обычно используют совместно с методами криптографии, таким образом дополняя ее.

Согласно «Википедии», преимущество стеганографии перед чистой криптографией состоит в том, что сообщения не привлекают к себе внимания. Сообщения, факт шифрования которых не скрыт, вызывают подозрение и могут быть сами по себе уличающими в тех странах, в которых запрещена криптография. Таким образом, криптография защищает содержание сообщения, а стеганография защищает сам факт наличия каких-либо скрытых посланий. Первые сообщения об использовании стеганографии встречаются в трактате Геродота «История» (440 год до н. э.). Классической стала история, когда на обритую голову раба при помощи татуировки записывалось необходимое сообщение, а когда его волосы отрастали, он отправлялся к адресату, который вновь брил его голову и считывал доставленное сообщение.

В наши дни наибольшее распространение получила цифровая стеганография – направление классической стеганографии, основанное на сокрытии или внедрении дополнительной информации в цифровые объекты, вызывая при этом некоторые искажения этих объектов. Но, как правило, данные прячутся в мультимедиа-объектах (изображения, видео, аудио, текстуры 3D-объектов), и внесение искажений, которые находятся ниже порога чувствительности обычного человека, не приводит к заметным изменениям этих объектов. Кроме того, в оцифрованных объектах, изначально имеющих аналоговую природу, всегда присутствует шум квантования; далее, при воспроизведении этих объектов появляется дополнительный аналоговый шум и нелинейные искажения аппаратуры, что способствует большей незаметности сокрытой информации.

Не следует путать стеганографию с любительскими методиками сокрытия информации при помощи таких простых приемов, как склеивание файлов, один из которых является архивом, сохранение информации в спецтегах JPEG и дописывание избыточной информации к файлам тех типов, которые никак не контролируют свой размер и/или контрольную сумму.

Технология стеганографии

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

Технология стеганографии подразумевает незначительную модификацию контейнера до степени, не вызывающей выраженных отличий от оригинала. Например, в изображениях, не использующих сжатие с потерей информации, часто используют непосредственное изменение составляющих цвета каждого пикселя. Такой подход называют еще методом наименьшего значащего бита (Least Significant Bit, LSB) и он широко распространен ввиду своей прозрачности. Этот метод наиболее прост и позволяет скрыть максимальный объем данных. При этом сам контейнер может быть сжат стандартными методами компрессии – здесь речь идет о PNG, TIFF и похожих по концепции контейнерах.

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

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

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

Но это все в большей степени теоретические выкладки. На практике же стеганографический алгоритм должен быть намного сложнее простой линейной (потоковой) кодировки следующего бита. Здесь приходит на помощь алгоритм случайного секретного распределения (ССР), в основе которого – генерация матрицы распределения на основе источника энтропии. Как правило, оптимальным оказывается поточный шифр, инициализированный секретным ключом (как вариант, можно усложнить схему, применив для генерации секретного ключа ассиметричный криптоалгоритм). Алгоритм ССР становится источником схемы побитового распределения внедряемой информации. Как результат, вместо потокового линейного скрытия получается скрытие на основе случайной выборки.

Преимущество ССР-методов состоит в секретности самого конечного алгоритма – именно алгоритм скрытия становится секретным элементом схемы. В простой линейной схеме мы знаем фактическое расположение потенциальных данных – и это уже отправная точка для анализа (расшифровки). При использовании ССР злоумышленник не имеет понятия о местоположении искомых данных. Нет у него и возможности рассматривать набор свойств контейнера (пиксели изображения, таблицы кодировщика, фреймы звукового файла) как потенциально модифицированный материал. Это значит, что алгоритм ССР идеален для применения как в стеганографическом контейнере (для случайного распределения стегановложения на уровне бита или байта), так и в криптографии, в качестве механизма случайной ключезависимой перестановки на уровне всего потока. Этот алгоритм, являясь дополнением к основному алгоритму (например, LSB в стеганографии, блочному или поточному шифру в криптографии), будет служить простым и эффективным инструментом обеспечения безопасности на новом уровне, так как сводит до степени неэффективных целый ряд атак на объект.

Конечно, и у механизма ССР есть альтернативы. Например, упомянутую в начале последовательную побитовую поточную модификацию можно дополнить секретностью соответствия реального порядка бит и порядка внедряемого. Таким образом, секретным элементом будет являться матрица из 8x8 элементов.

Чтобы предельно затруднить анализ злоумышленником файла-контейнера со стеганографической информацией, сам контейнер должен быть равномерно заполнен, а внедряемый объект должен иметь равномерное распределение, близкое к случайности. Проще говоря, данные должны быть как минимум сжаты. Чтобы обеспечить и случайность распределения, и защиту от несанкционированного доступа к информации даже в случае извлечения, к внедряемым данным обычно применяется один из криптоалгоритмов. Данные зашифровываются перед их сокрытием либо непосредственно в процессе сокрытия. Последний подход считается более прогрессивным, так как позволяет удобно скрыть служебную информацию (заголовки, контрольные суммы, флаги). Существует и комбинированный подход, включающий оба метода.

Прикладные программы

В этом обзоре я рассмотрю две несложные бесплатные стеганографические программы от одного российского разработчика – Александра Мясникова. Первая программа – RedJPEG XT – представляет собой стеганографическое решение высокой производительности для сокрытия любых данных в изображении JPEG (фото, картинка) с помощью авторского стеганографического метода. В программе применен механизм внедрения непосредственно в само изображение, используются открытые алгоритмы шифрования и мощная LZMA компрессия. В данной редакции присутствует расширенный режим с дополнительной маскировкой факта внедрения и усиленной процедурой инициализации поточного шифра на основе характеристик изображения. Поддерживается режим случайного секретного распределения.

Red JPEG XT включает открытые криптографические алгоритмы (AMPRNG rev.1.1, Cartman Cipher 2.DDP.4). Само изображение изменяется лишь незначительно, без искажений. Модификацию практически не различить визуально, не имея перед глазами оригинала. При этом чем выше разрешение исходной картинки (и, соответственно, размер ее файла), тем менее заметны внесенные изменения.

Скрытые в картинке данные защищаются пользовательским паролем, который предварительно хешируется. В отличие от множества аналогов и распространенных методик, в программе используется реальная стеганография, которая заключается в незначительной модификации самого изображения. Емкость отдельного графического файла зависит от его характеристик (цветности, яркости и контраста, набора вариаций пикселей). Данные предварительно сжимаются и шифруются поточным криптоалгоритмом. При извлечении проверяется корректность и целостность архива, правильность ввода пароля путем подсчета контрольной суммы.

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

Работать с программой просто. Сперва выбираем контейнер – файл изображения в формате JPG («Load Image»). Далее выбираем и подтверждаем пароль («Submit key»). Затем выбираем файл, который следует скрыть от посторонних глаз («Embed data»). После этого только жмем «Save JPEG» – и, указав имя нового файла, получаем ту же картинку, только со спрятанным внутри вторым файлом.

Чтобы извлечь скрытые данные, действуем аналогично. Подгружаем файл с картинкой, вводим пароль, жмем «Extract data» – и спрятанный файл появляется на рабочем столе.
Для эксперимента я использовал фотографию певицы Тарьи Турунен в высоком разрешении (2203х3307х24b jpeg), размер файла составлял 921 Кб. Спрятать от врагов я решил свой же бизнес-обзор, опубликованный в этом номере «КГ» – «IT-индустрия: немного лучше, чем мировая экономика» – файл it-business_KG.doc размером 57 Кб. В результате преобразования получилась внешне никак не отличимая от оригинала картинка, только размер файла уже составлял 977 Кб (на один килобайт меньше, чем простая сумма размеров двух файлов).

Обратный процесс (извлечения спрятанного файла) прошел без каких-либо проблем. Единственное, что смутило, – то, что RedJPEG XT «заточен» под DOS'овские восьмизначные имена файлов, и на выходе вместо «it-business_KG.doc» я получил «it-busi~.doc». Впрочем, на его содержимом это никак не сказалось.

Название: RedJPEG XT
Лицензия: freeware
Автор: AM Software
Дата актуального релиза: 07.02.2013
Язык интерфейса: английский
Платформы: WinXP, Win2003, WinVista, Win2008, Win7, Win8
Размер дистрибутива: 4,4 Мб
На диске программа занимает: 13,9 Мб.

Вторая программа – ImageSpyer G2 – это еще одна бесплатная утилита, которая позволяет пользователю скрывать информацию в изображениях с использованием методов современной стеганографии. Данные зашифровываются двухслойной криптографической защитой, которая, по словам разработчика, включает более двадцати блочных шифров и поточный криптоалгоритм для зашифровки стегопотока. Механизмы, используемые в программе, направлены на то, чтобы не только сокрыть сам факт наличия данных, но и защитить ее от возможных атак.

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

Между тем, вторая криптографическая софтинка меня изрядно разочаровала. Во-первых, убогостью интерфейса. Но главное – при повторении того же эксперимента, что был описан выше, программа ImageSpyer G2 в качестве продукта выдала… файл в формате BMP. Получается, на входе мы имеем JPEG- файл размером менее мегабайта, а на выходе – BMP-файл размером 20,8 Мб. Не знаю как у вас, а у меня вызвал бы подозрение уже сам человек, который хранит картинки в файлах формата BMP.

Название: ImageSpyer G2
Лицензия: freeware
Автор: AM Software
Дата актуального релиза: 04.02.2013
Язык интерфейса: английский
Платформы: WinXP, Win2003, WinVista, Win2008, Win7, Win8
Размер дистрибутива: 1,17 Мб
На диске программа занимает: 3,7 Мб.

Страничка автора обеих программ Александра Мясникова – с огромным количеством его собственного софта и полным отсутствием личных данных – доступна по адресу http://amsoftware.narod.ru.

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

Денис Лавникевич


Компьютерная газета. Статья была опубликована в номере 07 за 2013 год в рубрике soft

©1997-2024 Компьютерная газета