Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
На правах рукописи
Нечта Иван Васильевич
РАЗРАБОТКА МЕТОДОВ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ ИСПОЛЬЗОВАНИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, БАЗИРУЮЩИХСЯ НА ИДЕЯХ СТЕГАНОГРАФИИ
Специальность 05.13.17 Теоретические основы информатики
АВТОРЕФЕРАТ
диссертации на соискание ученой степени
кандидат технических наук
Новосибирск-2012
Работа выполнена в Федеральном государственном образовательном бюджетном учреждении высшего профессионального образования «Сибирский государственный университет телекоммуникаций
и информатики» (ФГОБУ ВПО «СибГУТИ»)
Научный руководитель: доктор технических наук
Фионов Андрей Николаевич
Официальные оппоненты: доктор технических наук
Шувалов Вячеслав Петрович
кандидат физико-математических наук
Монарёв Виктор Александрович
Ведущая организация: ФГБОУ ВПО «Новосибирский государственный технический университет»
Защита состоится ______ в ____ часов на заседании диссертационного совета
Д 219.005.02 при ФГОБУ ВПО «СибГУТИ» по адресу: 630102,
г. Новосибирск, ул. Кирова, 86.
С диссертацией можно ознакомиться в библиотеке ФГОБУ ВПО «СибГУТИ».
Автореферат разослан «___»_______________2012 г.
Ученый секретарь
Диссертационного совета
к.т.н., доцент Резван И.И.
ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ
Актуальность исследования Разработка теоретических основ систем защиты информации является одной из центральных проблем теоретической информатики. Среди задач, решаемых в рамках систем защиты, особое место занимает задача специального кодирования информации в виде данных, предназначенных для скрытой передачи информации, называемая задачей стеганографии. Построение стеганографических методов привлекает внимание многих специалистов, занятых разработкой новых технологий (например, технологий анализа и фильтрации передаваемой информации
в сети), направленных на обеспечение высокой надежности информационных систем. В целом задача стеганографии, т.е. встраивания данных для скрытой передачи, и противоположная ей задача стегоанализа, т.е. обнаружение скрытой информации, являются одними из базовых проблем в теории надежности и безопасности информационных технологий. В отличие
от криптографии, ограничивающей доступ к информации, содержащейся
в передаваемом сообщении с помощью некоторого секретного ключа, задача стеганографии состоит в том, чтобы скрыть сам факт передачи какого-либо сообщения от третьих лиц. Обычно, такая задача решается путем внедрения передаваемого секретного сообщения в безобидный на вид объект данных, так называемый контейнер. Сам контейнер подбирается таким образом, чтобы факты его существования или передачи не вызывали никакого подозрения. Основными характеристиками методов стеганографии следует считать объем внедряемого сообщения и устойчивость к анализу (обнаружению факта наличия внедрения).
В современном мире, в связи с бурным развитием компьютерной техники, большой объем информации передается в цифровом виде.
Как следствие, одним из активно развивающихся направлений стеганографии является цифровая стеганография. В этом направлении в качестве контейнера используется цифровой объект компьютерный файл. Современные методы встраивания позволяют внедрять скрытую информацию в файлы аудио, видео, текста, исполняемых программ и т.д.
В настоящее время существует большое количество стеганографических программных пакетов как коммерческих, так и бесплатных, с графическим интерфейсом и в виде консольных приложений.
Цифровая стеганография получила широкое применение в сфере защиты авторских прав. В объект авторского права может быть внедрена специальная метка отпечаток пальца (fingerprint), которая идентифицирует законного получателя. Например, в каждую продаваемую копию программы может быть внедрена метка, идентифицирующая лицензионного покупателя.
В случае обнаружения пиратской копии программы при помощи встроенной метки без труда может быть отслежен пользователь, нарушивший лицензионное соглашение. Еще одной встраиваемой меткой может быть цифровой водяной знак (watermark), идентифицирующий автора. Предположим, в фотографию внедряется специальная метка, содержащая паспортные данные автора. Затем обнаруживается постороннее лицо выдающее эту фотографию как свою собственную. В ходе судебного разбирательства с помощью извлеченного водяного знака может быть установлен истинный автор фотографии.
Существует также обратная стеганографии задача стегоанализ. Задача стегоанализа состоит в обнаружении факта передачи секретного сообщения. Можно сказать, что стеганография и стегоанализ два параллельно развивающихся направления науки. Так, для существующего метода стеганографии может быть разработан метод стегоанализа, который, как правило, накладывает ограничения на исходную схему встраивания информации в контейнер. Например, уменьшается допустимый объем передаваемой информации.
Стегоанализ получил широкое применение в сфере обеспечения информационной безопасности и, в частности, для борьбы
с незаконной передачей информации. Например, в некоторых отечественных и иностранных компаниях служба безопасности проверяет исходящую электронную почту сотрудников для пресечения утечки закрытой коммерческой информации. Принимая во внимание широкую доступность
и разнообразие программных продуктов, позволяющих встраивать скрытую информацию в обычные «невинные» письма, становится очевидной актуальность совершенствования методов стегоанализа. Учитывая большой объем передаваемых данных, перспективными следует считать методы компьютерного анализа, работающие без участия человека.
Стегоанализ также может быть применен злоумышленником. Например, для случаев с цифровыми отпечатками пальцев в программе, атакующий может выявить факт существования специальных меток
в программе и попытаться их исказить или удалить. В таком случае развитие методов стегоанализа необходимо для установления потенциальных возможностей злоумышленника и, соответственно, для корректировки схем внедрения скрытой информации.
В настоящее время проводится множество конференций, по проблемам информационной безопасности. С каждым годом растет число публикаций, посвященных методам стеганографии и стегоанализа. В этом направлении науки работают многие российские и зарубежные ученые: В.Г. Грибунин, И.Н. Оков, Б.Я. Рябко, И.В. Туринцев, А.Н. Фионов, Р. Бергмар (R. Bergmar), К. Качин (C. Cachin), М. Чапман (M. Chapman), Ж. Чень (J. Chen),
Д. Фридрич (J. Fridrich), и др. Однако вопросам текстовой стеганографии посвящено сравнительно мало работ. Автором диссертации был проведен анализ основных отечественных и зарубежных источников за более чем 10 последних лет. Список этих источников отражен в тексте диссертации. Основные работы, с которыми производилось сопоставление результатов диссертации, принадлежат специалистам, таким как Ж. Чень (J. Chen),
Л. Хуанг (L. Huang), Ж. Ю (Z. Yu).
Цель работы обеспечение надежности и безопасности использования информационных технологий, базирующееся на методах стеганографии.
Объектом исследований в предлагаемой работе являются методы
и алгоритмы стеганографии текстовых данных и программ (как особого вида текста).
Состояние проблемы Существует два основных подхода
к встраиванию информации в текстовый контейнер. Первый подход предполагает использование семантических особенностей языка. Например, метод, реализованный в программе Tyrannosaurus lex, работает следующим образом. В тексте производится поиск слов, которые имеют некоторый набор синонимов. Затем, в соответствии со скрываемым сообщением, осуществляется замена найденных слов на соответствующие им синонимы. Подобный подход обеспечивает высокую степень устойчивости к анализу, так как получающийся текст практически не отличается от исходного
ни по смысловому содержанию, ни по синтаксической конструкции предложений.
Второй подход заключается в генерации искусственного текста.
Для получения стеготекста используются контекстно-свободные грамматики. Нетерминальные символы могут быть раскрыты по заданным правилам несколькими возможными способами. В зависимости от входного сообщения выбирается правило раскрытия. Получившийся стеготекст не содержит грамматических и орфографических ошибок. На сегодняшний день самыми популярными программами, генерирующими искусственный текст, являются Nicetext, Texto и Markov-Chain-Based. Эти программы имеют высокое соотношение размера входного сообщения к размеру генерируемого текста,
и получающийся текст максимально похож на естественный. Стоит отметить, что получившийся искусственный текст, как правило, является бессмысленным.
Методы внедрения, основанные на семантических особенностях текста, являются трудно обнаружимыми. Замена одного слова на соответствующий ему синоним не нарушает синтаксическую структуру предложения
и не искажает смысловое содержание. Несмотря на указанную особенность, такой метод внедрения также не лишен недостатков. При замене некоторых слов возможно нарушение стиля языка. Например, во фразе “what time is it?” слово time может быть заменено на синоним duration, но это будет некорректно для английского языка. Также использование некоторых слов
в качестве синонимов может нарушать авторский стиль написания текста.
На этих фактах базируются многое методы анализа.
Устойчивость методов, генерирующих стеготекст, подобный естественному, обеспечивается заданными правилами грамматики. Отсутствие грамматических и орфографических ошибок в предложениях делает затруднительным поиск отличий искусственного текста
от естественного. Анализ осмысленности текста можно производить только
с участием человека, что не всегда возможно из-за огромного объема анализируемой информации. Наиболее эффективный метод анализа использует прогнозирование для выявления искусственной природы текста, порожденного программой Nicetext. Сначала производится анализ слов первой половины текста, и составляется прогноз каждого последующего слова из второй части текста. Если в подавляющем большинстве случаев прогноз оказывается успешным, то это означает, что мы имеем дело
с естественным текстом. Частые ошибки при прогнозировании могут свидетельствовать о наличии искусственного текста. Для программ Texto
и Markov-Chain-Based используются методы, учитывающие корреляцию слов между предложениями. Так, считается, что предложения, содержащие слова, встречающиеся только в технических текстах, не могут стоять рядом
с предложениями, содержащими слова, встречающиеся только в текстах художественной литературы.
Подобно текстовым контейнерам, современные методы стеганографии позволяют встраивать информацию в исполняемые файлы. Основным требованием, предъявляемым к таким методам, является сохранение алгоритма работы программы. Один из подходов задействует некоторую незначительную избыточность в программных файлах, которая позволяет внедрять водяной знак. Подобный подход используется в программах Stilo
и Diablo, чтобы скрыть данные непосредственно в исполняемых файлах. Общая особенность этих методов состоит в нахождении некоторого набора эквивалентных способов генерации исполняемого файла и сокрытие данных через выбор одного из них. Методы генерации кода зависят от компилятора и, в частности, от его методов выбора типа команды, планирования инструкций, размещения текста программы, выделения регистров
и расстановки адресов функций в таблицах импорта. Следует обратить внимание на то, что некоторые модификации кода могут быть применены
к уже готовому исполняемому файлу, в то время как другие только
во время компиляции и, поэтому, требуется специально разработанный компилятор.
Другой подход предлагает внедрять секретное сообщение
в неиспользуемые места исполняемого файла. Неиспользованные области обычно заполняются нулевыми байтами, но они также могут быть заменены на секретное сообщение. Доказать, что область программы является неиспользуемой, можно только при наличии исходных кодов. В отличие
от предыдущего подхода, преимущество данного заключается в отсутствии воздействия на работу программы. Более того, внедрение секретного сообщения может быть осуществлено в готовый исполняемый файл.
Для проведения эффективного стегоанализа вышеописанных подходов, существующие методы предполагают работу с исходными кодами программ3. Это требует дизассемблирования исполняемого файла,
что является достаточно трудоемкой задачей, проходящей
в полуавтоматическом режиме (с участием человека). В настоящей работе предлагается эффективный метод стегоанализа, лишенный указанного недостатка.
Задачи исследования Для достижения указанных целей с учетом изложенного состояния проблемы в рамках диссертационной работы решаются следующие задачи:
Методы исследования В процессе проведения исследований были использованы основные положения и методы теории информации, теории вероятностей, алгоритмы сжатия данных и эксперименты.
Результаты, выносимые на защиту
Научная новизна результатов работы
Практическая ценность полученных результатов
Реализация и внедрение результатов работы Основные результаты использованы при выполнении следующих проектов и государственных программ:
Результаты работы внедрены:
Апробация работы
Основные результаты данной работы докладывались и обсуждались
на следующих российских и международных конференциях:
Публикации По теме диссертации опубликовано 16 работ, в числе которых 7 статей в журналах и сборниках, из которых 6 входят в список ВАК.
Личный вклад В работах, выполненных в соавторстве, вклад автора состоит в построении и реализации предлагаемых схем и алгоритмов, а также в проведении необходимых экспериментальных исследований.
Структура и объем работы Диссертация содержит 128 страниц текста и состоит из введения, четырех глав, заключения, списка литературы
и приложения. Работа содержит 23 таблицы и 49 рисунков. Список литературы включает в себя 64 источника.
КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ
Во введении обосновывается актуальность темы, формулируются основные цели и задачи исследования, представлены основные положения, выносимые на защиту. Вводятся основные понятия стеганографии, производится краткий обзор существующих методов встраивания информации в текстовые и исполняемые файлы.
В первой главе был представлен подробный обзор существующих методов стеганографии и стегоанализа текстовых данных. Также предложен новый метод стегоанализа текстовых файлов, базирующийся на сжатии. Приводится описание разработанной схемы анализа. Осуществляется выбор оптимальных параметров работы алгоритма и производится сравнение разработанного метода с современными аналогами.
Предложенный метод стегоанализа, основанный на подходе Рябко Б.Я4., который заключается в том, что для выявления факта наличия стеготекста используется сжатие обычным архиватором. Основная идея подхода состоит в том, что внедряемое сообщение нарушает статистическую структуру контейнера, повышая его энтропию. Следовательно, заполненный контейнер будет «сжиматься» хуже, чем незаполненный. В отличие
от предыдущих известных аналогов, данный метод обладает рядом преимуществ:
Рассмотрим основную идею предлагаемого метода на следующем примере. Пусть существуют контейнеры и . Один из них содержит стеготекст. Размеры контейнеров до и после сжатия архиватором приведены в (табл. 1).
Контейнер |
До сжатия |
После сжатия |
500 |
300 |
|
500 |
320 |
Возьмем контейнер , содержащий стеготекст. Допишем в конец контейнеров и , сожмем и сравним получившиеся длины файлов после сжатия. Исходя из полученных размеров до и после сжатия (табл. 2), можно утверждать, что контейнер является статистически зависимым относительно контейнера , что обеспечивает хорошее «сжатие».
И наоборот, является независимым относительно , то есть «сжатие» будет хуже. Следовательно, стеготекстом является контейнер . На этом принципе строится стегоатака на широко известное программное средство Texto.
Контейнер |
До сжатия |
После сжатия |
50 |
45 |
|
50 |
20 |
Теперь перейдем к формальному описанию метода. Анализируемый контейнер должен иметь размер в 400 байт (лишнее следует удалить). Допишем в специально подобранные тексты (полученные с помощью программ Nicetext и Texto) размером и соответственно, содержимое анализируемого контейнера. Обозначим получившиеся размеры текстов
и соответственно. Далее производится сжатие имеющихся текстов
с помощью архиватора Bzip2. Затем производится расчет статистических характеристик по следующим формулам: (индекс означает размер после сжатия)
Определение факта наличия или отсутствия стеготекста в контейнере осуществляется исходя из полученных характеристик и . Эмпирическим путем в ходе ряда экспериментов было установлено, что для естественного текста должно выполняться хотя бы одно из следующих условий:
Если ни одно из приведенных условий не выполняется, то это означает наличие стеготекста в контейнере.
По результатам проведенных экспериментов было установлено,
что предложенный метод стегоанализа имеет высокую эффективность.
Для текстовых контейнеров размером 400 байт, полученных с помощью программы Texto, точность работы метода (отношение числа правильных срабатываний метода на различных контейнерах к общему числу контейнеров) составляет не менее 99.9%. На рис. 1 представлено сравнение эффективности работы предлагаемого метода с современными аналогами
(Chen Z.и др. 2008 (1)5 и Chen Z. и др. 2008 (2)6).
Рис. 1. Сравнительные графики эффективности работы методов стегоанализа контейнеров, полученных с помощью программы Texto.
Таким образом, на сегодняшний день, разработанный метод превосходит по эффективности другие современные аналоги.
Во второй главе рассматриваются методы, основанные
на семантических особенностях языка, для внедрения скрытых сообщений
в текстовые данные. За основу берется метод, реализованный в программе Tyrannosaurus Lex7, использующий для встраивания сообщений замену слов на синонимы. В данной главе предлагается новый метод обнаружения внедрения информации в текстовые контейнеры, базирующийся
на статистических свойствах внедряемого сообщения. Описывается схема проведения анализа контейнеров и производится сравнение разработанного метода с существующими аналогами.
Известно, что перед внедрением сообщение будет предварительно зашифровано. Следовательно, внедряемая последовательность будет выглядеть как случайная. В ходе исследований было установлено,
что последовательность, извлеченная из пустого контейнера, отличается
от случайной. Таким образом, проверяя на случайность извлекаемое
из подозрительного контейнера сообщение, мы можем обнаруживать наличие факта внедрения скрытой информации.
В данной работе предлагается использовать статистический тест
хи-квадрат для проверки извлеченного сообщения на случайность. Извлекаемая последовательность разбивается на элементы по бит. Затем проверяется случайность распределения этих элементов. В ходе многочисленных экспериментов было установлено, что при бит стегоанализ проходит наиболее эффективно. В целях повышения эффективности работы метода было предложено модифицировать тест
хи-квадрат путем использования квантиля, дающего оптимальные результаты стегоанализа. Можно сказать, что квантиль представляет собой границу, отделяющую значения хи-квадрат случайных последовательностей от неслучайных последовательностей и эту границу мы будет подбирать эмпирически. В диссертационной работе для проверки случайности входного сообщения предлагается дополнительно использовать «тест со смещением», представленный на рис. 2.
Тест состоит из пяти шагов. На первом шаге извлечённое сообщение (начиная с первого бита) разбивается на элементы размером 4 бита
и проверяется случайность распределения этих элементов. На каждом последующем шаге происходит отбрасывание одного левого бита сообщения. Затем производится аналогичное разбиение на элементы
и проверка на случайность. Если на одном из пяти шагов сообщение признается неслучайным, то считается, что контейнер был пустым.
Рис. 2. Схема работы теста со смещением
Для проверки эффективности работы предлагаемого метода
был проведен эксперимент. Ниже приведены результаты сравнения разработанного метода с известными аналогами (Taskirian C. и др. 20068,
Yu. Z. и др. 20099, Chen Z. и др. 201110).
Таблица 3. Результаты сравнения метода с известными аналогами
Метод |
||||
Род ошибки |
Chen Z. |
Yu. Z. |
Taskirian C. и др. 2006 |
Новый метод |
I рода11 |
2.3 % |
7.8 % |
61.4 % |
2.3 % |
II рода12 |
0.5 % |
8.9 % |
15.1 % |
1.9 % |
Объем входных данных, бит |
100-150 |
64 |
1-4 |
4000 |
Из представленных результатов видно, что предложенный метод
не уступает по точности работы современным аналогам. Несмотря на то,
что реализованный алгоритм требует сравнительно больший объем данных, его реализация значительно более проста, чем у приведенных аналогов.
В третьей главе рассматривается идея применения статистического анализа к исполняемым программам. Можно утверждать, что подход, примененный ранее для анализа текстовых данных, можно также применять к коду программы. Подход предполагает использовать архиватор
для выявления случайности сообщения. Известно, что зашифрованное сообщение выглядит как псевдослучайная последовательность.
А это означает, что при сжатии архиватором такой последовательности
ее размер более уменьшаться не может. Программа, наоборот, имеет часто повторяющиеся наборы двоичных инструкций. Архиватор такие повторения обнаружит, следовательно, это даст уменьшение размера при сжатии.
На этой особенности и основан предлагаемый метод стегоанализа. Стоит отметить, что для выявления случайности сообщения можно использовать
не только архиваторы, но и любой другой код, применяющийся при сжатии данных. В настоящей работе предлагается использовать код Хаффмана. Экспериментально получены данные о высокой вероятности обнаружения внедренного сообщения.
В работе за основу берется метод внедрения сообщений в исполняемые файлы формата Portable Executable. Идея исходного метода встраивания информации состоит в следующем. Исполняемая программа состоит
из секций, при этом размер каждой секции должен быть кратен 4 Кбайт. Обычно, не хватающий объем секции заполняют нулевыми байтами (байтами выравнивания). Рассматриваемый метод внедрения13 использует замену байтов выравнивания на секретное сообщение.
В данной главе предлагается метод стегоанализа исполняемых файлов. Основная идея состоит в том, что самый последний участок секции кода (будем называть его окном), будет подвергаться анализу на случайность.
Как было описано ранее, случайность содержимого окна может означать наличие факта внедрения. В ходе экспериментов было установлено, что при размере окна байт метод анализа работает наиболее эффективно. Если размер закодированного окна превосходит 56 байт контейнер считается заполненным, иначе пустым.
Ниже приведены результаты работы предлагаемого метода
при различных размерах внедрения. Анализу были подвергнуты 1000 заполненных контейнеров.
Размер внедрения, байт |
|||||
40 |
50 |
60 |
70 |
80 |
|
Успешно обнаружено |
46.6% |
64.2% |
83.8% |
99.1% |
99.9% |
Из (табл. 4) видно, что уже при внедрении 70 байт метод стегоанализа работает достаточно эффективно. На пустых контейнерах метод работает
без ошибок. Основными достоинствами данного метода является высокая точность обнаружения и отсутствие необходимости дизассемблировать программный код.
Исходя из особенностей разработанной схемы стегоанализа, в данной главе также даются рекомендации, направленные на повышение устойчивости к анализу рассмотренного метода внедрения сообщения.
Так как анализ выявляет отсутствие избыточности окна, то является целесообразным предварительно кодировать внедряемое сообщение, увеличивая, таким образом, избыточность.
В работе предлагается использовать код Хаффмана
для предварительного кодирования. В диссертации рассматриваются различные способы получения оценок вероятностей необходимых
для построения кода. В ходе экспериментов было установлено, что на этапе кодирования сообщения для построения дерева Хаффмана следует использовать одно из следующих распределений вероятностей:
Рис. 3. Особое распределение вероятностей байт кода программы
Подробное обоснование причин выбора указанных распределений описано
в диссертационной работе.
Как показывают многочисленные эксперименты, применение вышеуказанных распределений на этапе кодирования сообщения, делает метод внедрения устойчивым к разработанному стегоанализу.
В четвертой главе описываются системы защиты авторских прав, базирующихся на методах стеганографии. Предлагается метод встраивания стеганографических меток в тексты программ. Приводятся результаты экспериментального определения объема внедряемой информации
в исходные код программ на C\C++.
Поскольку мы говорим о водяных знаках в программах, то следует отметить, что внедряемые данные в программные файлы имеют свою собственную специфику, например, внедрение не может быть сделано прямой модификацией файлов, потому что любая такая модификация, с высокой долей вероятности, уничтожит алгоритм работы программы. Внедрение должно быть сделано таким путем, который гарантирует правильное функционирование программы.
В настоящей работе предлагается метод внедрения водяных знаков
в исходные тексты программ. В нашем алгоритме нанесения водяных знаков, было применено лексикографическое упорядочивание операции присваивания
и локальных переменных. Рассмотрим пример работы нашей программы. Пусть дана следующая функция:
int f (int x)
{
int a, b;
a = x + 1;
b = x 1;
return a + 2 * b;
}
Согласно нашему подходу мы можем внедрять два бита водяного знака
в эту функцию путем выбора порядка объявления локальных переменных:
0→ int a, b; 1→ int b, a;
и порядка следования «независимых» операторов присваивания:
0→ a = x + 1; 1→ b = x 1;
b = x 1; a = x + 1;
Здесь «независимость» операторов присваивания подразумевает независимость результатов выполнения операторов от их порядка.
Так, исходная функция, в которой объявления переменных и инструкции упорядочивают лексикографически, соответствует водяному знаку “00”. Чтобы внедрять водяной знак “11”, мы перезаписываем функцию в виде:
int f (int x)
{
int b, a;
b = x - 1;
a = x + 1;
return a + 2 * b;
}
Когда мы говорим об эффективности внедрения, мы учитываем число битов, которые могут быть внедрены в исходные файлы. Исходя
из особенностей описываемого метода, емкость определяется двумя вещами: сколько переменных объявлены в каждой функции и сколько мы групп независимых инструкций мы можем найти. Однако существуют ограничения, уменьшающие объем внедряемой информации. Например, допускается перестановка переменных, объявленных только в начале блока.
Это согласуется с общепринятой практикой программирования на C++: прежде чем использовать переменные, их необходимо объявить. Хотя некоторые переменные могут быть объявлены по ходу выполнения программы, их позиции в исходном тексте не следует менять, потому что это нарушит область и видимость и может вести к различного рода ошибкам. Также запрещается переставлять кажущиеся независимыми инструкции, если они содержат любую косвенную ссылку (указатель, массив). Проследить содержимое указателей по их имени, чтобы гарантировать независимость инструкций, не представляется возможным. Например, операции:
*p = 5;
*q = 4;
могут быть зависимы, когда указатели p и q ссылаются на одну
и ту же область памяти. Как показывают эксперименты, эти ограничения очень сильно уменьшают объем внедряемой информации. Другие ограничения подробно рассмотрены в диссертационной работе.
Для практической проверки внедрения информации, были использованы программы на C\C++. Ниже приводятся результаты проведенного эксперимента для некоторых проектов (табл. 5).
Имя |
Число файлов |
Размер файлов |
Длина водяного знака |
HView v113b |
10 |
58 Кб |
27 бит |
SymTorrent 1.3 |
2007 |
679 Кб |
40 бит |
DosBox |
107 |
2066 Кб |
127 бит |
Putty 1.5.1 |
227 |
3650 Кб |
1018 бит |
Vim |
395 |
3980 Кб |
207 бит |
OpenVideoHub |
405 |
6853 Кб |
2205 бит |
Следует отметить, что часть проектов была малопригодна для встраивания, позволяя внедрить всего от 0 до 10 битов. Анализ причин такого низкого объема внедрения показывает, что, в дополнение к выше описанным ограничениям, разработанный метод плохо согласуется с широко распространенной объектно-ориентированной технологией программирования. Почти любая операция применяет методы класса,
и трудно определить, безопасно ли изменить порядок операций из-за возможных побочных эффектов к свойствам класса.
В заключении приводятся выводы по диссертационной работе.
В приложении даются исходные коды программ, реализующих разработанные алгоритмы.
ОСНОВНЫЕ ЗАКЛЮЧЕНИЯ И ВЫВОДЫ
В рамках диссертационной работы были разработаны методы обеспечения безопасности использования информационных технологий. Предложенные алгоритмы, базирующиеся на методах стеганографии, могут быть использованы, например, для анализа и фильтрации передаваемого трафика в сети, с целью пресечения утечки коммерческой информации предприятия. Первый разработанный метод стегоанализа базируется на выявлении статистической зависимости свойств заполненного
и анализируемого контейнеров. Зависимость может быть выявлена обычным архиватором. На сегодняшний день данная схема стегоанализа является наиболее эффективной по сравнению с существующими аналогами. Второй метод обнаружения скрытой информации основан на статистической особенности встраиваемого сообщения, которое выглядит как случайная последовательность. Проверяя извлеченное из подозрительного контейнера сообщение на случайность, разработанный метод стегоанализа позволяет обнаруживать наличие внедрения с высокой точностью. Третий разработанный метод стегоанализа, также использует сжатие для выявления факта передачи секретного сообщения в исполняемых файлах. Предложенная схема обладает высокой эффективностью работы и, в отличие от имеющихся аналогов, не требует дизассемблировать программу. В работе даются рекомендации повышающие устойчивость метода внедрения
к разработанному стегоанализу. Четвертый разработанный метод, использующий внедрение стеганографических меток в исходные тексты программ, может быть использован для построения систем защиты авторских прав.
ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ
Нечта Иван Васильевич
РАЗРАБОТКА МЕТОДОВ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ ИСПОЛЬЗОВАНИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, БАЗИРУЮЩИХСЯ НА ИДЕЯХ СТЕГАНОГРАФИИ
Автореферат
Подписано в печать «__»________2012г.
Формат бумаги 60х84/16, отпечатано на ризографе, шрифт №10,
изд. л. 1,6, заказ № ___, тираж 100. ФГОБУ ВПО «СибГУТИ»
630102, Новосибирск, ул. Кирова, 86
3 исходные коды на языке ассемблера.
4 Ryabko B. Compression-based methods for nonparametric density estimation, on-line prediction, regression and classification for time series // IEEE Information Theory Workshop, Porto, Portugal, 59 May, 2008.
5 Chen Z., Huang L., Yu Z., Zhao X., Zheng X. Effective Linguistic Steganography Detection // IEEE 8th International Conference on Computer and Information Technology Workshops. 2008. P. 224-229.
6 Chen Z., Huang L., Yu Z., Li L., Yang W. A Statistical Algorithm for Linguistic Steganography Detection Based on Distribution of Words // Availability, Reliability and Security. 2008. P. 558 - 563.
7 Winstein K. Tyrannosaurus lex 1999. [Электронный ресурс]. Режим доступа: http://alumni.imsa.edu/~keithw/tlex/, свободный. 2009.
8 Taskiran C., Topkara U., Topkara M., Delp E. Attacks on Lexical Natural Language Steganography Systems // Proceedings of the SPIE International Conference on Security, Steganography, and Watermarking of Multimedia Contents VI. San Jose. 2006.
9 Yu Z., Huang L., Chan Z., Li L., Zhao X., Zhu Y. Steganalysis of Synonym-Substitution Based Natural Language Watermarking // International Journal of Multimedia and Ubiquitous Engineering. V. 4, №. 2, April 2009.
10 Chen Z., Huang L., Yang W. Detection of substitution-based linguistic steganography by relative frequency analysis // Digital investigation 2011. V. 8(1), Elsevier. P. 68-77.
11 Ошибка I рода случай, когда пустой контейнер признается заполненным.
12Ошибка II рода случай, когда заполненный контейнер признается пустым.
13 Shin D., Kim Y., Byun K., Lee S. Data Hiding in Windows Executable Files // Australian Digital Forensics Conference. 2008. P. 51.