Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Неволин Александр Олегович

Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия
<
Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Неволин Александр Олегович. Методы интерпретации информационных потоков с целью обеспечения безопасности информационного взаимодействия : диссертация ... кандидата технических наук : 05.12.13 / Неволин Александр Олегович; [Место защиты: Моск. гос. авиац. ин-т].- Москва, 2009.- 171 с.: ил. РГБ ОД, 61 09-5/2260

Содержание к диссертации

Введение

1. Постановка задачи 12

1.1. Обоснование интереса к XML как технологии, обеспечивающей

«открытое» информационное взаимодействие (XML-ИВ) в гетерогенной среде с применением форматированных сообщений и протоколов высокого уровня 12

1.1.1. Протокол SOAP 13

1.1.2. Протокол ХМРР 15

1.1.3. Общие достоинства протоколов, основанных на XML 15

1.2. Анализ проблем «открытого» XML-информационного взаимодействия 16

1.2.1. Низкая производительность парсеров 16

1.2.2. Избыточность XML-документов 16

1.2.3. Проблемы безопасности 17

1.3. Задача обеспечения безопасности XML-информационного взаимодействия 18

1.4. Способы обеспечения безопасности XML-информационного взаимодействия 20

1.4.1. Шифрующие протоколы 20

1.4.2. Технология Xml'Security 21

1:4.2.1. XML Digital Signature 21

1.4.2.2. XML Encryption 22

1.4.2.3. Управление ключами XML (XML Key Management) 23

1.4.2.4. Язык разметки утверждений безопасности (Security Assertion Markup Language) .' 24

1.4.2.5. Расширяемый язык контроля доступа (XML extensible Access Control Markup Language) 25

1.5 Анализ. , проблем/ обеспечения безопасности? XML-

информационного взаимодействия известными методами 26

Г.5.1. Шифрующие протоколы...: ...:. 26

1.5.2. Технология ХтГ Security. .1 27

1.6. Обоснования альтернативных подходов к решению поставленной задачи. ...29

1.7. Формулировка проблем в границах поставленной задачи...:...32

Математическаяформулировк задачи...;... 34

2:1. Анализ близких задач и способов их решения 34

2.1. г: Цифровая стеганография .34

2.1.2. Запутывание программного кода (обфускация). 39

2.1.2.1. Символьное запутывание ...39

2.1:212. Запутывание символьных данных ...41

2.1.2.3; Запутывание данных... .„ ...42

2.1.2.4; Запутывание графа потока управления:... ...42і

2.2. Анализ формальных методов решения задач... 50

212.1. Цифровая стеганография..." ...50

212.2"..Запутывание программного кода:... 58

2.3; Обоснование собственного метода решения и его математическая формулировка.. ...:... 67

2.3.11 Предлагаемые способы запутывания „67

2.3.2. Рассмотрение способов: с точки зрения принадлежности к теории кодирования. 73

2.3.2.1: Кодированиеисточника. ...1...:...73

2.3.2.2: Кодирование канала ...74*

2.3.2.3. Шифрование:... 1 .1 75

2.3.3. Рассмотрение возможности применения формальных методов схожих задач (стеганография^ обфускация) 78

3. Разработка методов решения задачи .80

3.1. Обоснование модели системы. 80

3.2. Обоснование моделей защищающегося и атакующего 81

3.2.1. Модель защищающегося 81

3.2.2. Модель атакующего 83

3.2.2.1. Модель «сначала установление факта запутывания, потом определение протокола» 84

3.2.2.2. Модель «сначала определение протокола, потом установление факта запутывания» 93

3.3. Формулировка задач разработки оптимальных стратегий атаки и защиты 94

3.4. Обоснование системы показателей эффективности атак и защиты 95

3.4.1. Общие положения 96

3.4.2. Результаты и выводы 102

3.5. Оценка эффективности предложенных алгоритмов запутывания 104

4. Апробация результатов разработки 107

4.1. Разработка компьютерных (имитационных) моделей атак и защиты 107

4.1.1. Модель для оценки эффективности запутывания различных алгоритмов 107

4.1.2. Модель для оценки производительности модуля запутывания 109

4.1.3. Модель для оценки размера запутанного документа 110

4.2. Планирование эксперимента 110

4.2.1. Определение областей, использующих XML-ИВ, пригодных для применения запутывания 110

4.2.2. Расчет необходимого количества XML-документов для обеспечения точности оценки эффективности запутывания 115

4.2.3. Программные компоненты для выполнения экспериментальной части 120

4.2.3.1. Модуль подсчета статистики Хи-квадрат 121

4.2.3.2. Модуль запутывания XML-документов 123

4.2.3.3. Приложение с графическим интерфейсом пользователя 127

4.2.4. Планирование эксперимента по оценке производительности запутывания различных алгоритмов и Xml Security 128

4.2.5. Планирование эксперимента по оценке размера

запутанного/зашифрованного документов 128

4.3. Результаты эксперимента 129

4.3.1. Результаты эксперимента по оценке эффективности запутывания различных алгоритмов 129

4.3.2. Результаты эксперимента по оценке производительности различных алгоритмов запутывания и шифрования с помощью Xml Security 137

4.3.3. Результаты эксперимента по оценке размера запутанного документа 138

4.4. Выводы и рекомендации по применению результатов в различных

областях 139

Заключение 141

Список используемой литературы

Введение к работе

Актуальность темы.

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

К примеру, с появлением электронной почты значительно сократились
сроки доставки сообщений. Впоследствии было разработано множество
других средств общения: системы мгновенного обмена сообщениями,
мультимедиа-средства (например, возможность организации

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

Большое распространение получили и средства передачи различных данных: финансовых документов, производственных отчетов и т.п.

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

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

информации становятся все более интенсивными во всех областях, начиная

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

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

Объектом исследования данной диссертации являются высокоуровневые протоколы (XML-протоколы) и телекоммуникационные системы, их использующие.

Целью работы является разработка новых методов защиты информации, передаваемой с помощью XML-протоколов, а также критериев оценки эффективности разработанных методов.

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

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

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

10 модуля позволяет легко добавить новые алгоритмы (допустим,

разработанные другими организациями) и также оценивать их

эффективность, вырабатывать рекомендации по использованию в системах

различного класса.

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

Положения, выносимые на защиту.

  1. Разработанные методы запутывания XML-протоколов позволяют обеспечить безопасность информационного обмена, достигая до восьмикратного сокращения вычислительных и временных затрат по сравнению с существующими средствами.

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

  3. Предложенная классификация протоколов областей применения XML позволила совместно с дисперсионным анализом обосновать требования к объему статистической выборки протоколов данного класса.

  4. Разработанная имитационная модель XML-телекоммуникационной системы, реализующая запутывание, позволяет сравнивать различные методы запутывания и вырабатывать рекомендации по их применению.

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

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

Достоверность.

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

Структура диссертационной работы.

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

В разделе 2 выполнен анализ предлагаемых методов с точки зрения их принадлежности к смежным областям (кодирование, шифрование, стеганография и др.), произведен анализ смежных областей на предмет возможности заимствования их моделей и показателей эффективности, более подробно описаны предлагаемые методы запутывания XML-документов.

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

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

Общие достоинства протоколов, основанных на XML

Наряду с вышеописанными достоинствами , у протоколов, основанных на XML, также существуют некоторые недостатки, которые будут описаны, далее.

В связи; с тем, что ХМЬ — полностью текстовый формат, XML-парсеры интенсивно используют функции для работы со строками. Эти; функции сами по себе довольно медлительны, особенно в С-подобных языках, где хранение строк реализовано с помощью нуль-символа: например, функции strlen каждый раз приходится перебирать весь массив символов чтобы определить длину строки. Поскольку разработка программного обеспечения; в большинстве случаев- ведется на си-подобных языках (C++, Java) с такой же реализацией, работы со строками, производительность системы в. целом может упасть из-за низкой производительности парсера [4].

Из-за того, что вся информация представлена в текстовом виде, общий занимаемый объем возрастает. Например, если при использовании двоичного протокола для передачи числа 30 потребовался бы один байт, то в случае XML-протокола на это же число потребуется уже два байта (один байт на число «3» и второй на число «О»).

Кроме того, то, что в двоичных протоколах задается порядком следования и заранее определенным форматом данных — структура сообщения — в XML-протоколах описывается каждый раз в сообщении. Иными словами, если в двоичном протоколе требуется передать дату рождения, то, вероятнее всего, разработчики просто будут передавать подряд три числа (год, месяц, день), описав формат в официальном документе. В случае XML-протокола передаваемая дата будет выглядеть так: date_of_birth 30-10-1983 /date_of_birth Возможно даже более полное представление даты: date_of_birth day 30 /day month l 0 /month year 1983 /month /date_ofbirth

Как видно, объем информации, который необходимо передать, значительно выше, чем при использовании бинарного протокола. По сути, это является следствием открытости протокола: любой XML-документ является набором «самодокументированных» данных.

Кроме того, XML плохо приспособлен для передачи любых нетекстовых данных (файлов, мультимедиа-содержимого). Способ передачи, тем не менее, остается - это кодирование с помощью Base64 [5], однако, как и в приведенном ранее примере с целым числом, объем данных при этом значительно возрастает.

Проблемы безопасности

Как было сказано ранее, достоинство XML-основанных протоколов — открытость — имеет и недостатки, один из которых уже был описан.

Кроме этого, открытость также вызывает проблему безопасности информационного взаимодействия. Это связано с тем, что открытые, «самодокументированные» данные легко интерпретировать как легальному пользователю системы, так w злоумышленнику. Например, если в системе используется бинарный протокол, неизвестный атакующему, то ему тяжело найти нужную информацию в двоичном потоке данных (например, номер кредитной карты, т.к. поток может состоять из- большого числа цифр). В то же время, он сможет легко найти эту информацию в подобном XML-документе: transaction card_number 129381290381 /card_nnmber date 21-06-2008 /date atm_code 41 /atm_code money 10.000.000 /money /transaction

Таким образом, открытость протокола является достоинством с точки зрения легальных пользователей, но недостатком с точки зрения объема передаваемых данных и безопасности. В настоящее время существуют частичные решения некоторых проблем, которые будут рассмотрены и проанализированы далее.

Символьное запутывание

Первым и самым легко реализуемым запутыванием является символьное запутывание. Запутыватели, которые используют алгоритмы символьного запутывания, называются запутывателями первого поколения. Символьное запутывание включает в себя запутывание имен классов, названий методов, параметров и т. п. Данные запутыватели применяют следующие методы:

1) Переименование методов, переменных и т.д. в набор бессмысленных символов. Например: был метод класса GetPassword(), после запутывания данный метод будет иметь имя KJHS92DSLKaf(). Однако, многие декомпиляторы, встречая на своем пути подобного рода имена заменяют их на более читабельные (method_l, method_2).

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

3) Использование для имен переменных нечитаемых символов. Часть запутывателей вставляют в имена нечитаемые на компьютере злоумышленника символы, например символы японского языка. Хотя .NET и работает с кодировкой UTF8, не все декомпиляторы адекватно обрабатывают ее символы. Некоторые заменяют имена с такими символами на более понятные, некоторые проставляют вместо непонятных символов их код, некоторые просто отказываются работать с данными символами.

4) Использование ключевых слов языков программирования. Этот вид символьного запутывания позволит защититься от самых примитивных декомпиляторов, которые, увидев в качестве имени зарезервированное слово, считают, что сборка неправильна и отказываются с ней работать. 5) Использование имен, меняющих смысл. Этот тип запутывания скорее использует психологический фактор. Допустим, был класс Securitylnformation с методом Getlnformation, а стал Саг, с методом Wash [18].

Помимо имен классов, переменных, методов, сборка содержит в себе множество символьной информации, которая будет помогать взломщику в понимании кода. Помимо этого, некоторые программисты хранят в строковых константах конфиденциальную информацию, как то строки соединения с базой данных, секретные ключи и т. п. Помимо этого сборка хранит в себе имена других пакетов используемых в этом классе (объявленные в директивах «import», «using») и прочее. Запутывание подобных строк заключается в их кодировании (string encryption). Таким образом, либо при обращении к закодированной строке во время выполнения программы производится вызов алгоритма раскодирования строки, который представлен в виде отдельного метода данного класса, либо при запуске программы сначала выполняется раскодирование всех ее закодированных строк (алгоритм раскодирования помещается в отдельный класс), и только потом выполняется программа.

На сегодняшний день среди .Net запутывателей наиболее распространены символьные запутыватели. Данный тип запутывания наиболее прост в реализации, однако, запутанные программы наименее устойчивы к взлому. Рассмотрим цикл работы символьного .Net запутывателя.

В первую очередь запутыватель исследует метаданные на предмет того, что он может запутать. Например, не всегда возможно запутывание виртуальных и абстрактных методов. Далее, получив список элементов для запутывания, будь то имена классов, методов, параметров, запутыватель, используя тот или иной алгоритм, обрабатывает данные. Далее, в зависимости от реализации запутывателя, происходит либо запись данных обратно в сборку, либо генерация новой сборки. По сути своей новая сборка отличается от незапутанной только разделом строк (один из разделов метаданных) [19].

Модель «сначала установление факта запутывания, потом определение протокола»

Остановимся на этапах «определение используемого протокола» и «попытка обнаружения факта запутывания» более подробно. Установление факта запутывания В данной модели предполагается, что злоумышленник должен установить факт запутывания (или его отсутствия) без знания конкретного протокола. Рассмотрим способ, которым он может это выполнить.

Как было сказано в разделе 3.2.1, защищающаяся сторона применяет алгоритм запутывания, который, в свою очередь, изменяет статистические свойства протокола. Также было сказано, что алгоритм запутывания меняется с определенным интервалом. Следовательно, с тем же интервалом меняются и статистические свойства перехватываемых атакующим сообщений. Из этого вытекает, что если злоумышленник будет иметь две выборки — одну до момента смены алгоритма запутывания, вторую — после — и установит, что они не принадлежат одному и тому же закону распределения с одинаковыми параметрами, то для него будет очевиден факт смены алгоритма запутывания, а, следовательно, и факт его применения как такового. Для выявления факта соответствия/несоответствия двух серий перехваченных данных одному и тому же закону распределения с одинаковыми параметрами злоумышленник может воспользоваться аппаратом из математической статистики - критерием согласия. Наиболее часто применяется критерий Пирсона (Хи-квадрат). Этот критерий можно использовать не только для проверки гипотезы о принадлежности результатов опыта какому-либо известному распределению, но и для проверки гипотезы о принадлежности результатов одной выборки к результатам другой выборки.

В качестве меры расхождения R между двумя распределениями при пользовании критерием Хи-квадрат берется сумма квадратов отклонений Рп — Р{2 статистических вероятностей в первой и второй выборках, взятых с некоторыми «весами» (3.1): Д= " с, {рп-р12) (3.1) »-і где R - мера расхождения между распределениями; РІЬ Ріг — вероятности і-го события в первой и второй выборках; с; — весовые коэффициенты. Коэффициенты Cj вводятся потому, что отклонения, относящиеся к разным значениям р;, нельзя считать равноправными по значимости: одно и то же по абсолютной величине отклонение может быть малозначительным, если сама вероятность р, велика, и очень заметным, если рі мала. Пирсон доказал, что если положить (3.2) с,=- (3.2) Рг где п - общее число опытов, Pi - вероятность і-го события, то при большом числе опытов закон распределения величины R приближается к распределению Хи-квадрат [39].

Допустим, перехвачено s серий (выборок) сообщений системы (в нашем случае s = 2), каждая серия состоит из rij, j=(l, г) тегов. На основе перехваченных сообщений злоумышленник находит частоты появления каждого из тегов р j=nj/n (iij - число появлений тега, п — общее число тегов в серии) в каждой из серий.

5) Принимается статистическое решение: отклонить гипотезу Н0, если cp(zn) G, и принять гипотезу Н0, если cp(zn) G [40].

Остановимся более подробно на вероятности ошибки. При принятии решения существует некоторая вероятность допустить одну из двух ошибок: ошибку первого рода («ложная тревога» - отклонение гипотезы при том, что она верна) и второго рода («пропуск цели» - принятие гипотезы при том, что она ложна). Фактически, решение о принятии или отклонении гипотезы принимается на основе сравнения полученного значения статистики z с некоторым порогом. В соответствии с п.4 порог выбирается исходя из заданной вероятности ошибки первого рода.

Из математической статистики известно [40], что с понижением порога (сужением доверительной области) повышается вероятность ошибки первого рода (фактически, критерий становится более «строгим»), а с повышением порога (расширением доверительной области) — повышается вероятность ошибки второго рода (критерий может получиться слишком «мягким»).

В таком случае злоумышленник может применить критерий Неймана-Пирсона, используемый в радиолокации: выбрать такое оптимальное решение, которое обеспечивает минимум вероятности пропуска цели (Р2) при условии, что вероятность ложной тревоги не больше некоторого заданного значения. Будучи примененным к текущей задаче, этот критерий предполагает следующее: злоумышленник выбирает максимально допустимую для него вероятность ложной тревоги и устанавливает порог в соответствии с этой вероятностью. Понижение порога вызовет превышение приемлемой вероятности ложной тревоги, а повышение порога будет неоптимальным, т.к. повысится вероятность пропуска цели (при том, что вероятность Pi будет по-прежнему устраивать атакующего).

Допустим, злоумышленник выбрал максимально допустимую для него вероятность ошибки первого рода в 5% (0,05). Тогда согласно таблице критерия Хи-квадрат для 5 степеней свободы доверительная область (G) имеет интервал (0; 11.1), а критическая — (11.1; + ).

Т.к. вычисленное значение статистики z (равное 0.86) попадает в доверительную область, то гипотеза об однородности распределений тегов в двух сериях сообщений принимается.

Показатели, влияющие на эффективность установления факта запутывания, будут рассмотрены далее в разделе 3.3.

Определение используемого протокола.

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

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

Определение областей, использующих XML-ИВ, пригодных для применения запутывания

В качестве примера для эксперимента возьмем запутывание с применением переименования. Этот метод будет развит таким образом, что по результату он будет также похож на различные методы перестановки.

Как упоминалось ранее, можно варьировать не только методы запутывания, но и их параметры. В случае переименования будем использовать следующие параметры:

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

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

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

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

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

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

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

В случае, если используется перегрузка, алгоритм несколько усложняется тем, что необходимо среди выбранных для переименования тегов выбрать устойчивые и неустойчивые теги. Устойчивым будем называть такой тег, который не меняет количества атрибутов и их имен на протяжении всего XML-документа. Соответственно, если тег встречается в документе в различных вариантах (например, в одном месте с двумя атрибутами, а в другом — с тремя), то такой тег будем называть неустойчивым. Очевидно, что переименовывать с применением перегрузки можно только устойчивые теги.

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

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

Если очередной рассматриваемый тег является неустойчивым, то его имя выбирается индивидуально: либо по словарю, либо из других неустойчивых тегов, в зависимости от выбранной стратегии.

На данный момент также возможно переименование атрибутов. Выбор новых имен в данном случае возможен только по словарю, т.к. переименование атрибутов между собой представляется весьма сложным процессом: необходимо разрешать возникающие коллизии — следить за тем, чтобы два атрибута, встречающиеся в одном теге, не получили одинаковое имя (иначе получившийся документ станет некорректным XML-документом). Ввиду своей сложности данный способ не был реализован в программном модуле.

С целью создать возможность дальнейшей доработки модуля (например, добавления новых алгоритмов запутывания) был создан единый интерфейс [48], заключенный в базовый абстрактный класс XmlObfuscatorBase.

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