Содержание к диссертации
Введение
ГЛАВА 1. Шифровал и компьютерная стеганография 14
1.1 История стеганографии 14
1.2 Понятие стегосистемы 16
1.3 Классификация стеганосистем 17
1.4 Направления стеганографии 19
1.5 Выводы по главе 20
ГЛАВА 2. Исследование стеганоалгоритмов для графических контейнеров 22
2.1 Форматные методы 22
2.2 Стеганоалгоритмы пространственной области 23
2.3 Стеганоалгоритмы области преобразования 24
2.4 Выводы по главе 26
ГЛАВА 3. Разработка стегоалгоритма на базе форматных и пространственных принципов сокрытия данных 28
3.1 Анализ и описание основных маркеров файла JPEG 28
3.2 Исследование технической структуры формата JPEG/JFIF 29
3.2.1 Описание формата сегмента 29
3.2.2 Описание типов сегментов 30
3.3 Анализ особенностей структуры BMP-файла 36
3.4 Разработка комбинированного алгоритма StegoKS 39
3.4.1 Формулировка концепции системы скрытой передачи 39
3.4.2 Создание алгоритма внедрения сообщения 41
3.4.3 Разработка алгоритма подготовки сообщения к внедрению 42
3.4.4 Анализ потерь при сжатии и конвертации форматов 43
3.4.5 Разработка метода встраивания битов сообщения 44
3.4.6 Расчет потенциального объема сообщения*для контейнера 47
3.4.7 Реализация механизма компенсирования потерь 49
3.4.8 Используемая служебная информация алгоритма 52
3.5 Сравнительный анализ StegoKS и существующих алгоритмов 53
Методы и алгоритмы сокрытия больших объемов данных на основе стеганографии, Кувшинов Станислав Сергеевич, Санет-Петербург - 2010г.
3.5.1 Алгоритм JSteg 53
3.5.2 Алгоритм JPHS 53
3.5.3 Авторский алгоритм StegoKS 54
3.5.4 Результаты сравнения; 58
3.6 Тестирование фактора скрытности 60
3.7 Выводы по главе 60
ГЛАВА 4.Применение алгоритма 63
4.1 Применение стеганографии в Web-приложениях 64
4.1.1 Разработка метода защиты от несанкционированных ссылок.. 65
4.1.2 Оптимизации производительности решения 68
4.1.3 Реализация подписи изображений и внедрения ЦВЗ 71
4.2 Автоматизация работы со стегопосылками 73
4.2.1 Создание дополнения к программе Microsoft Outlook 73
4.2.2 Разработка дополнений к web-браузерам 74
4.3 Разработка модели «Postal Privacy» в социальных сетях 76
4.3.1 Анализ процесса обмена фотографиями 76
4.3.2 Реализация скрытой передачи сообщений 77
4.3.3 Анализ ограничений модели 79
4.3.4 Применение стеганографии в сети vkontakte.ru 80
4.4 Выводы по главе 84
Заключение 86
Выводы по диссертационной работе 87
Основные достигнутые результаты 88
Литература 89
Гоиложение А 98
Приложение Б 105
- Стеганоалгоритмы области преобразования
- Формулировка концепции системы скрытой передачи
- Расчет потенциального объема сообщения*для контейнера
- Реализация подписи изображений и внедрения ЦВЗ
Стеганоалгоритмы области преобразования
Использование графики в качестве стегоконтейнеров обусловлено -следующими причинами: 1. Высокая степень распространения цифровой графики (начиная с любительских фотографий, заканчивая файлами профессиональной графики) на электронных устройствах - носителях информации -личного пользования и в сети интернет. 2. Популярность, очевидность и простота процессов обмена цифровыми фотографиями и опубликования цифровых фотографий в сети интернет. 3. Удобный объем контейнера с точки зрения операций работы с файлами (аудиофайлы и видеофайлы, как правило, в среднем имеют больший объем, чем цифровые изображения) 4. Существование особенностей системы человеческого зрения, не позволяющих визуально определить наличие незначительных изменений контейнера. Существуют различные форматы изображений и различные подходы к встраиванию данных. Данная работа ориентирована на встраивание сообщений в изображения популярного формата JPEG. Ниже рассмотрены принципы стеганоалгоритмов, работающих с изображениями данного формата.
Форматные методы, по мнению специалистов, не относятся к цифровой стеганографии в чистом виде, поскольку не связаны с цифровой обработкой сигналов. Они основаны на избыточности форматов компьютерных данных, например, структуре файлов, ІР-пакетов. Цифровые изображения также являются сигналами, имеющими, однако, «застывший» характер. С этой точки зрения, при работе с алгоритмом, дописывающим в конец файла JPEG байты файла RAR, строго нельзя говорить о цифровой стеганографии изображений, поскольку это не что иное, как форматный метод в компьютерной стеганографии. Ниже предлагается собственное определение форматного метода в цифровой стеганографии изображений: - это метод, осуществляющий такое преобразование изображения, при котором вносимые изменения не инициируют визуализацию артефактов встраивания данных, и в то же время учитываются и используются в процессе декодирования файла изображения программой просмотра изображений в соответствии со спецификацией формата JPEG.
Как видно, данное определение не делает классификацию метода зависимой от конкретной программы просмотра, при условии соблюдения программами просмотра спецификации формата JPEG.
Стеганографический алгоритм, представляемый в данной работе, использует именно такой форматный подход к сокрытию информации в графическом изображении. Примечательно также, что сокрытие в формате осуществляется не с потоком собственно сообщения, а с сигнальной и служебной информацией, не несущей смысловой нагрузки. Это позволяет говорить о том, что в представляемом комбинированном стегоалгоритме форматная составляющая и исходное сообщение развязаны. Алгоритмы данного типа внедряют информацию в области самого изображения. Их преимуществом является то, что для внедрения нет необходимости выполнять вьшислительно громоздкие линейные преобразования изображений. Данные внедряются за счет манипуляций цветовыми составляющими \ЛХ У/ Ь{Х У) \Х У)) или яркостью l(x,y)e {{,..., L} Исторически, такие алгоритмы возникли во времена широкого распространения графического формата BMP, в котором подразумевается хранение информации о цветовых составляющих каждой точки. изображения. Отличие разновидностей BMP заключается в кодировании цветовых составляющих и, как следствие, в количестве цветов, полутонов и оттенков возможных быть представленными в том, или ином BMP изображении. Наиболее полноцветный формат - ВМР24 использует 3 байта для кодирования цвета каждой точки (пикселя). Каждый байт может кодировать 256 оттенков цвета, соответственно 3 байта дают возможность каждому пикселю быть представленным одним из 256 = 16777216 миллионов цветовых оттенков. Наиболее популярны в стеганографии изображений линейные ортогональные преобразования: 1. Дискретное косинусное преобразование (ДКП) 2. Вейвлет преобразование (ВЦ) ДКП используется в алгоритме сжатия JPEG, что является большим стимулом использования ДКП в стеганографии JPEG. ВП, в свою очередь, - основа сжатия в алгоритме JPEG 2000. ДКП может применяться как ко всему изображению в целом, так и к отдельным блокам пикселов изображения. Обычно же контейнер разбивается на блоки размером 8x8 пикселов. ДКП применяется к каждому блоку, в результате чего получаются матрицы коэффициентов ДКП, также размером 8x8. Коэффициенты будем обозначать через съ\J- %), где номер блока, \Ji - позиция коэффициента внутри блока. Если блок сканируется в зигзагообразном порядке (как это имеет место в JPEG), то коэффициенты будем обозначать через с ъ , j Коэффициент в левом верхнем углу ь\ ) обычно называется DC-коэффициентом. Он содержит информацию о яркости всего блока. Остальные коэффициенты называются АС-коэффициентами. Иногда выполняется ДКП всего изображения, а не отдельных блоков. Рассмотрим процесс внедрения/извлечения информации в области ДКП на примере алгоритма Koch. В данном алгоритме в блок размером 8x8 осуществляется встраивание 1 бита ЦВЗ. Описано две реализации алгоритма: псевдослучайно могут выбираться два или три коэффициента ДКП. Здесь мы рассмотрим вариацию алгоритма с двумя выбираемыми коэффициентами. Встраивание информации осуществляется следующим образом: для передачи бита 0 добиваются того, чтобы разность абсолютных значений коэффициентов бьгаа бы больше некоторой положительной величины, а для передачи бита 1 эта разность делается меньше некоторой отрицательной величины:
Формулировка концепции системы скрытой передачи
Формат файла BMP (сокращенно от BitMap) наиболее близко соответствует внутреннему формату Windows, в котором эта система хранит свои растровые массивы. Для имени файла, представленного в BMP-формате, чаще всего используется расширение BMP, хотя некоторые файлы имеют расширение RLE, означающее run length encoding (кодирование длины серий). Расширение RLE имени файла обычно указывает на то, что произведено сжатие растровой информации файла одним из двух способов сжатия RLE, которые допустимы для файлов ВМР-формата [5].
Как уже было сказано ранее во 2 главе, в файлах BMP информация о цвете каждого пикселя кодируется 1, 4, 8, 16 или 24 бит (бит/пиксель). Числом бит/пиксель, называемым также глубиной представления цвета, определяется максимальное число цветов в изображении. Изображение при глубине 1 бит/пиксель может иметь всего два цвета, а при глубине 24 бит/пиксель - более 16 млн. различных цветов.
BMP-файл, содержащий 256-цветное изображение (с глубиной 8 бит/пиксель) разбит на четыре основные раздела: заголовок файла растровой графики, информационный заголовок растрового массива, таблица цветов и собственно-данные растрового массива. Заголовок файла растровой графики содержит информацию о файле, в том числе адрес, с которого начинается область данных растрового» массива. В информационном заголовке растрового массива содержатся сведения об изображении, хранящемся в файле, например, его высоте и ширине в пикселях. В таблице цветов представлены значения основных цветов RGB (красный, зеленый, синий) для используемых в изображении цветов. Программы, считывающие и отображающие BMP-файлы, в случае использования видеоадаптеров, которые не позволяют отображать более 256 цветов, для точной цветопередачи могут программно устанавливать такие значения RGB в цветовых палитрах адаптеров.
Формат собственно данных растрового массива в файле BMP зависит от числа бит, используемых для кодирования данных о цвете каждого пикселя. При 256-цветном изображении каждый пиксель в той части файла, где содержатся собственно данные растрового массива, описывается одним байтом (8 бит). Это описание пикселя не представляет значений цветов RGB, а служит указателем для входа в таблицу цветов файла. Таким образом, если в качестве первого значения цвета RGB в таблице цветов файла BMP хранится R/G/B=25 5/0/0, то значению пикселя 0 в растровом массиве будет поставлен в соответствие ярко-красный цвет. Значения пикселей хранятся в порядке их расположения слева направо, начиная (как правило) с нижней строки изображения. Таким образом, в 256-цветном BMP-файле первый байт данных растрового массива представляет собой индекс для цвета пикселя, находящегося в нижнем левом углу изображения; второй байт представляет индекс для цвета соседнего справа пикселя и т. д. Если число байт в каждой строке нечетно, то к каждой строке добавляется дополнительный байт, чтобы выровнять данные растрового массива по 16-бит границам [6].
Не все файлы BMP имеют структуру из четырёх разделов. Файлы BMP с глубиной 16 и 24 бит/пиксель не имеют таблиц цветов; в этих файлах значения пикселей растрового массива непосредственно, характеризуют значения цветов RGB. Также могут различаться внутренние форматы хранения отдельных разделов файла. Разработанная мной система работает со следующей структурой BMP потоков: 1. Заголовок файла растровой графики (14 байт) 1.1 .Сигнатура файла BMP (2 байта) 1.2.Размер файла (4 байта) 1.3 .Не используется (2 байта) 1.4.Не используется (2 байта) 1.5.Местонахождение данных растрового массива (4 байта) 2. Информационный заголовок растрового массива (40 байт) 2.1. Длина этого заголовка (4 байта) 2.2.Ширина изображения (4 байта) 2.3.Высота изображения (4 байта) 2.4.Число цветовых плоскостей (2 байта) 2.5.Бит/пиксель (2 байта) 2.6.Метод сжатия (4 байта) 2.7. Длина растрового массива (4 байта) 2.8.Горизонтальное разрешение (4 байта) 2.9.Вертикальное разрешение (4 байта) 2.10. Число цветов изображения (4 байта) 2.11. Число основных цветов (4 байта) 3. Данные растрового массива (длина переменная) Особенностью является тот факт, что изображение сохраняется/ построчно снизу-вверх. Для хранения каждой строки выделяется: кратное 4 количество байт. В1 незначащих байтах- хранится мусор. Старшему биту или тетраде соответствует самый левый пиксель. При; хранении изображения True Color каждому пикселю соответствуют три последовательных байта, хранящие составляющие цвета В, G, R;.(He R, G, В). 3.4 Разработка комбинированного алгоритма StegoKS
Опытным путём определилось, что структура JPEG нерегулярна от файла к файлу. Рассмотренная выше иерархия маркеров присуща в том или ином объёме всем JPEG файлам, однако± каждый отдельно взятый файл имеет свои особенности. К примеру, в каких-то файлах заявлена одна таблица квантования, и соответственно один блок данных сканирования, в других файлах несколько таблиц и несколько блоков. В редких случаях встречаются файлы с маркерами перезапуска, что усложняет процедуру анализа и поэлементного разбора JPEG структуры. Так же файл JPEG может хранить в себе несколько уменьшенных копий изображения для предварительного просмотра; этот факт увеличивает количество сегментов данных изображения, что сказывается на времени анализа файла.
В качестве подготовительной работы были созданы алгоритмы разбора (парсинга) файлов JPEG и BMP и реализованы программы-парсеры. Возможности данных модулей позволяют получить структурированное представление блоков, для дальнейшего анализа потенциальных мест для внедрения битов сообщения.
Расчет потенциального объема сообщения*для контейнера
В ходе всего развития социальных сетей у интернет пользователей возникает вопрос о защите их персональных данных, тайны перепиской использовании, профилей в незаконных целях. Много слухов і и легенд распространено в интернет сообществе и о том, зачем кто-то создаёт, поддерживает и развивает подобные сетевые структуры. Между тем, сами создатели социальных сетей, утверждают, что информация о профиле пользователя, равно как его переписка и хранимые файлы, в достаточной степени защищены и предприняты необходимые меры для исключения какой-либо компрометации. Согласитесь, за счёт того, что отдельно взятый пользователь не может знать, а тем более, проверить качество (или, и того хуже, само наличие) применяемой зашиты его профиля, образуется некий фон беспокойства о том, не будут ли использованы переписка, контактные данные, автобиографические сведения в несанкционированных целях. Наличие такого "фона" спровоцировало анализ применимости защиты переписки стеганографическими средствами.
Рассмотрим следующий вариант сокрытия данных переписки пользователей. Обратим внимание на то, что данная переписка скрывается именно от создателей и администраторов сайта, то есть тех людей, для которых с большой долей вероятности не закрыты страницы пользователей. Стеганографические алгоритмы решают весьма актуальную задачу в нашем случае — это сокрытие самого факта переписки. Обмен сообщениями будет происходить под видом обьиного обмена цифровыми фотографиями, которые сами по себе какой-либо ценности для переписывающихся пользователей не представляют.
В каждой современной социальной сети есть сервис по публикации фотографий пользователя на страницах, относящихся к его личному профилю. Чаще всего, публикация происходит следующим образом -пользователь на своём локальном компьютере выбирает цифровые фотографии, которыми он хочет поделиться с другими пользователями сети, и, пользуясь специальным загрузчиком файлов через пользовательский интерфейс социальной сети, публикует выбранные файлы. После данной операции опубликованные фотографии доступны для просмотра всем или некоторым избранным пользователям. 4.3.2 Реализация скрытой передачи сообщений
Тайная переписка использует шаги озвученные выше, однако для обеспечения скрытности, необходимо провести дополнительную работу. Рассмотрим передачу отдельного сообщения от пользователя User_A пользователю User_B.
С помощью стеганографического алгоритма встраивания текст передаваемого сообщения внедряется в цифровую фотографию — стегоконтейнер, выбранную пользователем UserA для публикации, см. рисунок 23:
Далее UserA загружает полученную стегопосылку на сайт социальной сети и, если возможно и необходимо, настраивает права на просмотр новой фотографии. Затем, о передаче сообщения извещается адресат User_B. Это можно сделать как существующими механизмами социальной сети, так и другими способами, например, позвоним UserB по телефону. Возможен также сценарий, когда адресат периодически проверяет альбом с фотографиями пользователя UserA и сам определяет поступление новой стегопосылки. Описанные действия представлены схематически на рисунке 24. 1. Выбор Фотографии - Стегоконтейнера 2. Выбор Сообщения 3. Встраивание - Формирование Стегопосылки 4. Публикация Фотографии 5. Извещение Адресата Рисунок 28. Передача сообщения Обнаружив фотографию, UserB сохраняет её на своём локальном компьютере средствами веб-браузера или с помощью сторонних программ. Затем используя стеганографический алгоритм извлечения сообщения из стегопосылки, комплементарный алгоритму встраивания, использованному User_A, получатель выделяет текст сообщения из изображения. Схематически эта процедура представлена на рисунке 20. 1. Загрузка Стегопосылки 2. Извлечение Встроенного Сообщения 3. Прочтение Рисунок 29. Чтение сообщения Таким образом, при наличии стеганографической системы встраивания и извлечения данных в графические стегоконтейнеры можно осуществлять скрытый обмен сообщениями. Непосвящённые будут воспринимать происходящий процесс как безобидный обмен цифровыми фотографиями. 4.3.3 Анализ ограничений модели
Особенности работы различных социальных сетей накладывают ограничения на применимость той или иной части алгоритма тайной переписки, представленного выше. Наиболее интересно ограничение, связанное с работой загрузчиков. Как правило, эти утилиты помимо своей основной задачи, обрабатывают сообщение с целью уменьшения размеров файла. Таким образом, целостность встроенного сообщения оказывается под угрозой.
В каждом отдельном случае, необходимо проанализировать особенности загрузчика, чтобы понять, как он изменяет файл. От этого зависит дальнейший выбор стеганографического алгоритма. Наиболее часто загрузчики применяют такие операции к изображению, как уменьшение размеров (ширина, высота) и JPEG сжатие [2] .
С уменьшением размеров можно бороться, правильно выбирая контейнер. Если заметить, к какому размеру сводит изображение тот или иной загрузчик, можно заранее подготовить стегоконтейнер необходимой ширины и высоты.
Проблема JPEG сжатия решается менее успешно - всё упирается в природу выбранного стеганографического преобразования. Форматные методы, чаще всего не позволяют добиться устойчивости встроенного сообщения к сжатию, в то время как частотные при небольших степенях компрессии могут выстоять. При использовании методов расширения набора маркеров (распространённые форматные методы) для последующего встраивания в соответствующие сегменты есть большая доля вероятности, что загрузчик удалит эти сегменты как ненужные ещё задолго до применения дискретного косинусного преобразования [3].
Реализация подписи изображений и внедрения ЦВЗ
После этого пользователь загружает обработанную фотографию нат страницу своего профиля vkontakte.ru, используя одиночный загрузчик. Этот загрузчик при обработке изображения оставит встроенную информацию нетронутой, поскольку она содержится в сегментах, не затрагиваемых процедурой сжатия. Затем, используя функциональность «отметить человека», отправитель выделяет любую область на фотографии и помечает её как область с изображением адресата. Адресат получает извещение о том, что поступило новое изображение благодаря стандартному оповещению «новые фотографии со мной». Далее, получателю остаётся лишь открыть страницу с целевой фотографией и сохранить цифровое изображение на диск. К сохранённой на диске копии применяется стеганографический алгоритм извлечения сообщения, и адресат получает интересующее его сообщение.
В данной главе приведено несколько моделей применения разработанного стеганоалгоритма StegoKS и некоторых других методов обеспечения конфиденциальности и сохранения прав авторства. Простота реализации и ощутимая выгода от использования подобных решений являются привлекательным стимулом для развития стеганографии и формирования неких стандартов по ее использованию. Будем надеяться, что стандартизация подходов, в том числе основанных на базе данной диссертационной работы, в обозримом будущем получит хороший старт и начнет свое перспективное развитие. Выводы: 1. Для реализации стеганографического модуля необходимо придерживаться открытого контракта по сигнатуре входных и выходных параметров методов встраивания и извлечения байтов данных. 2. На базе открытого контракта можно- построить стеганографическую систему с возможностью выбора действующего стегоалгоритма и расширения набора алгоритмов, сигнатуры входных и выходных, параметров которых, соответствуют заявленному открытому контракту. 3. Реализация функциональности маркирования изображений и встраивания ЦВЗ в автоматическом режиме возможна посредством создания обработчика запросов к web-приложению. 4. При соблюдении открытого контракта по входным и выходным параметрам, а также корректном опубликовании интерфейса обработчика, модуль обработчика может использоваться различными web-приложениями без жестких привязок к коду конкретного приложения. 5. Система скрытой передачи сообщений в сети является вполне работоспособным решением наряду с криптографическими средствами защиты канала связи (использования шифруемых протоколов SSL/TLS). 6. Разрабатывая схему такой системы необходимо учитывать особенности web-сайта или социальной сети. 7. Основанием для применения того или иного стеганографического алгоритма встраивания/извлечения байтов сообщения в цифровые фотографии является устойчивость стего к работе механизма загрузки файла на сайт. 8. Программная реализация стеганографических дополнений к web-браузерам и почтовым клиентам сопряжена с разработкой систем принятия решений. В рамках диссертационной работы исследована проблема такого направления стеганографии как скрытая передача данных. Разработан. алгоритм под названием StegoKS, который ориентирован на увеличение полезного объема контейнера с целью сокрытия больших объемов информации. В алгоритме используется двухсторонний подход к JPEG изображениям, сообщение внедряется в декодированный байтовый поток JPEG, а служебная информация, необходимая для извлечения — оформляется как элемент нормальной структуры сегментов JPEG. Данная идея делает алгоритм интересным и актуальным. Алгоритм реализован программно на языке высокого уровня С#. На базе реализации алгоритма предложено построение стеганографических протоколов для социальных сетей, создание настольных приложений, дополнений для почтовых программ и браузеров, а также систем защиты контента web-сайтов. Работа алгоритма проверена на группе файлов с изображениями и файлов с текстовой информацией. Результаты проверки на скрытность внедрения и полезный объем байтов для внедрения, используемый алгоритмом StegoKS, представляются весьма интересными. 5. Цифровая и компьютерная стеганография в-наше время актуальны, применение их востребовано как с целью автоматизации поиска по электронным файлам, маркирования файлов необходимыми вспомогательными атрибутами, защиты авторских прав на объект интеллектуальной собственности, так и обеспечения тайны переписки путем скрытой передачи сообщений. 6. Стеганоалгоритмы, работающие с пространственной областью изображения основаны на визуальной избыточности зрительно-воспринимаемой информации и на данный момент не являются столь популярными, как стеганоалгоритмы области преобразования, за счет широкого распространения формата JPEG, в котором цветовые или яркостные составляющие точек скрыты за областью преобразования.