Введение........................................................................................................................... 5
Глава 1. Анализ возможности скрытого вложения информации в исполняемые
файлы языка программирования Java, требований к цифровым водяным знакам в
исполняемых файлах, существующих методик......................................................... 19
1.1 Компьютерная стеганография ............................................................................ 19
1.1.1 Цифровая стеганография............................................................................... 22
1.1.2 Необходимость наличия цифрового водяного знака в современных
программных разработках...................................................................................... 25
1.2 Обзор способов отбора наиболее эффективного контейнера для вложения
цифрового водяного знака......................................................................................... 26
1.2.1 Способы отбора контейнера с применением методов стеганографии..... 28
1.3 Основные свойства языка программирования Java и его окружения ............ 30
1.3.1 Анализ принципов работы Java и Java Virtual Machine ............................. 30
1.3.2 Анализ структуры class-файла...................................................................... 32
1.3.3 Анализ структуры байт-кода Java ................................................................ 37
1.3.4 Анализ исполнения байт-кода class-файла в виртуальной машине Java . 38
1.3.5 Обзор наиболее используемых операционных кодов виртуальной
машины Java ............................................................................................................ 40
1.4 Безопасность языка программирования и виртуальной машины Java........... 43
1.4.1 Анализ загрузчиков class-файлов в виртуальную машину Java ............... 43
1.4.2 Верификация байт-кода................................................................................. 45
1.5 Обзор существующих методик вложения информации в байт-код Java ....... 46
1.5.1 Статические методики вложения ................................................................. 48
1.5.2 Динамические методики вложения.............................................................. 52
Выводы........................................................................................................................ 53
Глава 2. Методика создания и скрытого вложения цифрового водяного знака
увеличенного объема в class-файлы............................................................................ 58
2.1 Формулирование необходимости цифровых водяных знаков в исполняемых
файлах Java ................................................................................................................. 58
2.2 Теоретико-множественная модель языка программирования Java и
математическая модель стеговложения................................................................... 60
3
2.3 Отбор контейнера для вложения информации в исполняемые class-файлы
текущего исследования ............................................................................................. 64
2.4 Критерии применяемые к цифровому водяному знаку ................................... 68
2.5 Эквивалентность операционных команд (опкодов) виртуальной машины Java
...................................................................................................................................... 69
2.6 Методика создания и скрытого вложения цифрового водяного знака
увеличенного объема class-файлы............................................................................ 72
2.6.1 Анализ и выборка class-файлов java для вложения цифрового водяного
знака.......................................................................................................................... 74
2.6.2 Создание цифрового водяного знака на основе результатов анализа classфайлов java-проекта................................................................................................ 77
2.6.3 Вложение созданного цифрового водяного знака...................................... 81
2.6.4 Пример алгоритма на основе методики....................................................... 83
2.7 Пример создания и скрытого вложения цифрового водяного знака в байт-код
class-файла .................................................................................................................. 86
Выводы...................................................................................................................... 103
Глава 3. Методика создания и вложения устойчивого к атакам декомпиляцией
цифрового водяного знака в class-файлы java-приложения ................................... 106
3.1 Модель нарушителя java-приложения............................................................. 106
3.2 Методика создания и вложения цифрового водяного знака в class-файлы
java-приложения устойчивого к атакам декомпиляцией ..................................... 108
3.2.1 Пример алгоритма на основе методики..................................................... 113
3.2 Обзор существующих декомпиляторов class-файлов Java............................ 120
3.3 Категоризация цифровых водяных знаков в class-файлах при применении
разработанной методики ......................................................................................... 126
3.4. Исследование устойчивости цифрового водяного знака в class-файлах javaприложения к атакам декомпиляцией.................................................................... 135
3.4.1. Компиляция class-файла............................................................................. 136
3.4.2 Анализ структуры байт-кода полученного class-файла........................... 139
3.4.3 Изменения размера class-файла при редактировании байт-кода............ 143
3.4.4 Вложение цифрового водяного знака в чистый class-файл..................... 146
3.4.5 Атака перекомпиляцией на class-файл с цифровым водяным знаком... 152
3.5. Устойчивость class-файлов при использовании затрудняющих конструкций
в коде к декомпиляции ............................................................................................ 158
3.6. Анализ эффективности методики.................................................................... 163
4
Выводы...................................................................................................................... 168
Глава 4. Методика создания и вложения устойчивого к атакам обфускацией
цифрового водяного знака в class-файлы информационной системы................... 171
4.1 Модель злоумышленника информационной системы................................... 171
4.2 Методика создания и вложения устойчивого к атакам обфускацией
цифрового водяного знака в class-файлы информационной системы................ 176
4.3 Исследование эффективности атак обфускацией на цифровой водяной знак
.................................................................................................................................... 184
4.3.1 Анализ возможностей, существующих обфускаторов class-файлов Java
................................................................................................................................. 187
4.3.2 Влияние обфускации на class-файлы java-приложения........................... 196
4.4. Статистический анализ..................................................................................... 199
Выводы...................................................................................................................... 219
Заключение и выводы по работе ............................................................................... 223
Список сокращений и обозначений .......................................................................... 229
Список используемой литературы ............................................................................ 231
Приложение А ............................................................................................................. 244
Приложение Б.............................................................................................................. 245
Приложение В.............................................................................................................. 246
Приложение Г.............................................................................................................. 247
Приложение Д.............................................................................................................. 248



