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



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

Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем Доля Алексей Владимирович

Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем
<
Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем
>

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

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

Доля Алексей Владимирович. Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем : диссертация ... кандидата технических наук : 05.13.11 Ростов-на-Дону, 2007 156 с., Библиогр.: с. 109-114 РГБ ОД, 61:07-5/4702

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

Введение

Глава 1. Исследование и анализ существующих средств и методов лицензионной защиты программного обеспечения на основе цифровых водяных знаков 15

1.1. Постановка задачи внедрения цифровых водяных знаков в программное обеспечение 16

1.2. Атаки на системы цифровых водяных знаков в программном обеспечении 17

1.3. Формальная модель встраивания цифровых водяных знаков в программное обеспечение 23

1А Статические цифровые водяные знаки в программном обеспечение 28

1 АЛ. Встраивание цифровых водяных знаков на уровне бинарного кода 30

1-4.2. Встраивание цифровых водяных знаков на уровне исходного и бинарного кода 36

1.5. Динамические цифровые водяные знаки в программном обеспечении..40

1.5,1. Цифровые водяные -знаки в программном обеспечении на динамических графах 41

1.6. Постановка задачи исследования 45

1.7. Выводы 49

Глава 2. Разработка лицензионной защиты программного обеспечения на основе сетей Петри 51

2.1. Модель лицензионной защиты программного обеспечения 52

2.2. Реализация модели на сетях Петри 58

2.3. Кодирование данных в сетях Петри 60

2Л К вопросу о кодировании данных в других графах 65

2.5. Наращивание сложности сети Петри 66

2.6. Концептуальные свойства сетей Петри , 70

27. Выводы 73

Глава 3. Программная реализация алгоритмов безопасного перехода в сетях Петри 75

3.1. Динамические данные и многопоточное управление системой лицензионной безопасности на сетях Петри 75

3.2. Анализ требований к аппаратным ресурсам со стороны системы лицензионной зашишенности на сетях Петри 78

3.3. Выводы 80

Глава 4, Реализация системы лицензионной безопасности на сетях Петри для защиты конечно-элементного комплекса ACELAN 81

4.1. Архитектура системы лицензионной безопасности ACELAN 81

4.2. Компоненты системы лицензионной безопасности 85

4.3. Модуль идентификации 86

4A ACELAN Security Client 89

4.5. ACELAN Security Server 92

4.6. Модуль контроля целостности 95

4.6.1. Однонаправленные хеш-функции .95

4.6.2. Применение SHA в модуле контроля целостности 96

4.7. Менеджер лицензий 97

4.8. Защита кода от исследования 98

4.8.1, Средства и методы атаки 98

4.8.2. Защита от статического и динамического исследования 101

4.9. Выводы... 104

Заключение 105

Литература

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

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

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

По сведениям организации BSA (Business Software Alliance - Альянс производителей коммерческого ПО), в среднем доля пиратского ПО составляет 40% в глобальном масштабе. Другими словами, каждые четыре из десяти копий программы оказываются в каком-то смысле украденными у производителя и лишают его прибыли. По расчетам BSA в 2002 году убытки софтверной отрасли от пиратства составили порядка 13 миллиардов долларов. При этом Россия находится на пятом месте в списке стран с наивысшими показателями пиратства, и доля пиратского ПО в нашей стране составляет 89%, Для западных компаний это хоть и приносит ощутимые убытки, но не является критичным для их бизнеса. Для российских же компаний такая распространённость пиратства может оказаться подводной скалой, о которую разобьются все инвестиционные планы.

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

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

Рисунок 1 - Динамическая зависимость прибыли от степени защищенности

продукта

На рисунке 1 показаны графики получения прибыли от продаж незащищённого и защищенного продуктов [1]. Как видно из графиков, если продукт плохо защищен, то его достаточно быстро "вскрывают", и на рынке появляется дешёвая пиратская версия, которая не позволяет лицензионной версии завоевать свою долю рынка, и продажи легального продукта быстро падают. Если же продукт хорошо защищен, то у пиратов уходит достаточно много времени на вскрытие защиты и продукт успевает достичь требуемого уровня продаж и достаточно долго удерживаться на рынке.

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

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

Объект исследования; система лицензионной безопасности программного продукта, основанная на использовании сетей Петри в качестве графа управляющей логики и контейнера для хранения ЦВЗ.

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

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

Исходя из поставленной цели> основной научной задачей является: разработка алгоритмов безопасного перехода и кодирования ЦВЗ в сетях Петри, устойчивых к существующим угрозам лицензионной безопасности программных продуктов.

Основная задача включает следующие этапы решения;

анализ существующих и потенциальных угроз лицензионной безопасности ПО, а также атак на ЦВЗ в программных продуктов;

разработка алгоритмов безопасного (скрытого) перехода в сетях Петри и методов кодирования ЦВЗ в граф управляющей логики сети Петри;

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

разработка методов программной реализации смоделированной системы защиты ПО в условиях угроз лицензионной безопасности.

Методы исследования основаны на использовании математического моделирования, численного эксперимента, теории сложности и криптологаи, а также стеганографии.

Границы исследования, В работе рассматриваются вопросы конструирования системы лицензионной безопасности ПО посредством алгоритмов безопасного перехода и кодирования ЦВЗ в сетях Петри.

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

Основные положения и научные результаты, выносимые на защиту:

L Впервые разработанные алгоритмы безопасного перехода в сетях Петри» использующихся в качестве графа управляющей логики программного продукта с помощью синтеза сети Петри из базовых блоков;

2. Методы внедрения ЦВЗ в сети Петри в зависимости от идентификационного или серийного номера, внедряемого в сеть Петри, на основе сконструированных примитивов;

  1. Впервые разработанная модель системы лицензионной безопасности, имеющая не только эмпирические, но и теоретические обоснования стойкости к атакам противника;

  2. Методы программной реализации системы защиты программного продукта в соответствии с разработанной моделью лицензионной безопасностью, отличающиеся динамическим размещением ЦВЗ и многопоточной реализацией сети Петри;

5. Программная реализация системы лицензионной безопасности
программного продукта на основе разработанной модели защиты ПО с применением
сетей Петри со встроенным ЦВЗ-

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

Основные результаты исследований использованы в конечно-элементном комплексе ACELAN (свидетельство о регистрации программы №2005611013 от 27.05,2005 Федеральной службы РФ по интеллектуальной собственности, патентам и товарным знакам), а также в промышленных программных продуктах: Антивирусе Касперского (разработчик - ЗАО «Лаборатория Касперского») и InfoWatch Enterprise Solution (разработчик - ЗАО «Инфовотч»).

Апробация работы. Основные результаты диссертационной работы докладывались и обсуждались на российских и международных научных конференциях (в том числе на Международной конференции «Автоматизация в

промышленности» в Институте проблем управления РАН в 2007 году, Региональной научно-практической конференции молодых ученых и специалистов «Высокие информационные технологии в науке и производстве» в Ростове-на-Дону в 2006 году, VII международной конференции «Право и Интернет» в Москве в 2005 году, III Межрегиональной научно-практической конференции студентов, аспирантов и молодых ученых «Молодежь XXI века - будущее Российской науки» в Ростове-на-Дону в 2005 году, Международной конференции «РусКрипто-2005» в Москве в 2005 году, Восьмой московской международной телекоммуникационной конференции «Молодежь и наука» в МИФИ в 2004 году, VI международной конференции «Право и Интернет» в Москве в 2004 году и ГО Школе-семинаре «Математическое моделирование, вычислительная механика и геофизика» в Ростовс-на-Дону в 2004 году).

Публикации, По теме диссертации опубликовано 25 научных трудов, из которых 20 опубликовано единолично, в том числе 14 научных статей в центральных научных журналах (в том числе в журналах, включенных в перечень ВАК).

Структура и объем диссертации. Диссертация состоит из введения, четырех глав, заключения, списка литературы и приложений. Работа содержит 114 страниц основного текста, 40 страниц приложений и включает 29 рисунков. Список литературы состоит из 60 наименований,

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

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

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

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

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

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

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

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

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

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

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

Атаки на системы цифровых водяных знаков в программном обеспечении

Согласно [3] эффективность любой стеганографической системы зависит от размера встраиваемых данных (то количество информации, которое можно разместить в конкретном контейнере), скрытности (характеризующей, насколько внедренные данные незаметны для наблюдателя) и стойкости (определяющей способность заполненного контейнера противостоять атакам противника). Следует отметить то перечисленные выше стегшіофагрчеоше характеристики: мт&йх друг от друга. Например, стойкость системы можно увеличить, если задействовать большее чист избыточных битов контейнера (вплоть до того, чтобы встраивав одно и то же сообщение несколько раз), однако это яриведет к снижению іфОнужной способности

Чтобы определить эффективность системы ЦВЗ, необходимо знать, кш &т противостоит различным типам атак, Оїитаетаї (для систем ЦВЗ в мультше/йа-кантейисрк [10]), что не существует системы ЦВЗ, которая может противостой хь всем типам атак. Ниже будет тоош рассмотрен вопрос о невозможности создания преобразования, которое бы могао трансформировать заполненные ЇЩЗ контейнеры и делать их стойкими ко всем возможным атакам [11].

При даашейнаш рассмотрений различных еттржв атак ншоаьзуются следующие обозначения Алиса встраивает ЦВЗ W в объект О с ЖШОЇДЬЮ ключа Ж, а Штш продаст О Бобу, Шрел тем, каж Боб сможет продать О Jlynmcy, ом должен убедишь что ЦБЗ W стад «бешолезныы». В противном случае Алиса еэдшйет доказать, что се права собственности н& объект О былн нарушены (рис, 2).

Рису НІЖ 2. Алиса создает объеасг 0і- Для зтого она встраивает ЇЩЗ Ж в объект О t? помощью своего юіш і JT На втором ищпз Боб крадет копию ? но Чарльз извлекает Ifrj F щ таким образом, догазьшает что F принщугажш Алии, Таким образом, существуют следующие атаки на системы ЦВЗ: Атака, направленная на удаление ЦВЗ. Если Боб сможет определить наличие и местоположение ЦВЗ И7, он может попытаться удалить (извлечь) Гиз О. Данная атака будет успешной в том случае, если объект, получившийся после удаления ЦВЗ, будет по-прежнему представлять ценность для Боба»

Атака, направленная на искажение ЦВЗ (в терминологии [2] -геометрическая атака). Если Боб не может определить местонахождение ЦВЗ W, но может каким-либо образом трансформировать объект О, то он может попытаться изменить О так, чтобы Алиса не смогла определить наличие W в трансформированном объекте О. Атака будет успешной, если модифицированный объею10 по-прежнему представляет ценность для Боба.

Атака, направленная на добавление ЦВІ. Боб может попытаться вставить в объект О свой собственный ЦВЗ W (или несколько таких ЦВЗ). Атака будет успешной, если Бобу удастся перезаписать ЦВЗ W, вставленный Алисой (следовательно, ЦВЗ W больше нельзя будет распознать), или вставить свой собственный ЦВЗ W так, чтобы Алиса не смогла доказать, что ее ЦВЗ W был встроен раньше.

Атака сговора. Данная атака имеет смысл в основном для систем идентификационных номеров, где каждый встраиваемый ЦВЗ уникален. Атака подразумевает, что Боб попытается собрать несколько копий помеченных объектов, сравнить их и проанализировать. Атака будет успешной, если в результате Бобу удастся создать «абсолютно чистый» объект О, Следует отметить, что в данной атаке могут принимать участие несколько противников, имеющих свои помеченные копии объекта О. В работе [2] показано, чго теоретически атака сговора, когда количество анализируемых помеченных объектов стремится к бесконечности, всегда успешна. Тем не менее, на практике противник часто ограничен экономическими и другими факторами.

Далее (рис, 3) приведена стандартная схема, иллюстрирующая различные типы успешных атак на системы ЦВЗ.

Реализация модели на сетях Петри

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

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

На рис. 15 переход t4 имеет две входящие дуги из позиций pi и р2. В этом случае переход t4 будет разрешен тогда и только тогда, когда каждая из позиций pi и Р2 будет иметь, по крайней мере, по одной фишке. Для разрешимости перехода /j (рис. 16) необходимо и достаточно, чтобы в позиции р6 было, по крайней мере, три фишки.

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

Задача представления данных (обычно длинных целых чисел) с помощью топологии различных графов подробно рассматривается в работах [27] и [28], однако основное внимание обычно уделяется различным видам деревьев и списков. Кодирование данных в сетях Петри остается непокрытым в этих основополагающих работах. Поэтому для реализации модели на сетях Петри были разработаны специальные примитивы. Примитивы запрещающих сетей Петри с 4-битовым входом представлены на рис-17, а разрешающих на рис. 18.

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

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

Данная сеть может быть использована в тех случаях, когда пользователю необходимо зарегистрировать программу, введя 4-битный ключ» В этом случае позициями для начальной маркировки, куда будет записываться ключ, являются po,...j j. Отметим, что позиция р7 всегда имеет одну фишку, а остальные позиции при начальной маркировке не имеют фишек. Решающим является переход /г, то есть программа будет считаться зарегистрированной, если переход t2 сработает (другими словами, будет активным). Зададим решающему переходу t2 приоритет ниже, чем переходу ti (это означает, что если одновременно разрешены переходы t2 и //, то сработает переход /j).

Утверждение. Переход t2 выполнится тогда и только тогда, когда начальная маркировка помечает позиции/ ,.,,j?s следующим образом:р 1,/?;=0,р =1,рз=\.

Действительно, при таком значении ключа выполнятся переходы t$ и t3 После этого позиции р4,р5 ярб будут иметь по одной фишке, и сработает решающий переход t2. Если хотя бы одна из позиций ри Pi или р3 не содержит фишек, то не выполнится переход Ц или t3, следовательно, решающий переход тоже не сработает. Поэтому все эти позиции (р$5 р2 и рз) должны обязательно содержать по одной фишке. Остается рассмотреть вопрос о позиции pJt Если / /-1, то может сработать и переход //, и переход І2. Для того чтобы решающий переход t2 в этом случае не сработал, нужно, чтобы сработал ґ/. Поэтому данному переходу (tj) назначается более высокий приоритет. Следовательно, ts выполняется, забирает фишку у позиции р7, а решающий переход выполниться не может. Значит, можно сделать вывод, что при/?/-1 решающий переход не достижим.

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

Анализ требований к аппаратным ресурсам со стороны системы лицензионной зашишенности на сетях Петри

На рис. 23 показана зависимость объема (в байтах) сети Петри при размещении в оперативной памяти от длины ключа (в битах). Согласно [32] начальной приемлемой длиной ключа, применяемого для защиты программ, является 56 бит. Сеть Петри соответствующая данной длине ключа будет занимать примерно 3 Кб. Однако предложенная концепция позволяет использовать длину ключа «с запасом», например, 128 бит. Сеть Петри соответствующая данному значению требует примерно 8,5 Кб оперативной памяти, что на несколько порядков меньше доступных ресурсов в стандартном компьютере. Таким образом, можно сделать вывод, что спроектированный в рамках модели алгоритм на сетях Петри подходит для практического использования.

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

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

2. Кроме того, в данной главе показано, что спроектированная и реализованная система лицензионной защищенности на основе сетей Петри удовлетворяет всем требованиям к машинной реализации, которые предъявляет общая модель лицензионной безопасности, А именно; машинная реализация сети

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

В результате исследования, проведенного в предыдущих двух главах, было установлено, что сети Петри подходят как кодирования уникального идентификатора и ЦВЗ, а также для машинной реализации. Таким образом, в этой главе решается научно-техническая задача внедрения модели лицензионной безопасности на основе сетей Петри в систему защиты конечно-элементного комплекса ACELAN [41, 42],

В первом параграфе рассматривается общая организационная схема работы системы безопасности пакета ACELAN, а также компоненты, которые эту систему образуют.

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

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

Компоненты системы лицензионной безопасности

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

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

ACELAN Security Client Этот компонент осуществляет предварительный сбор информации (уникальных идентификаторов) на компьютерах пользователя, а также транспортировку этой информации коллективу разработчиков через ресурсы сети Internet

ACELAN Security Server. Задачей этого модуля является прием информации, посылаемой ACELAN Security Client, запись ее в промежуточный буфер (например, файл на жестком диске) и уведомление уполномоченного лица (системного администратора, начальника проекта и других) о факте получения уникальных идентификаторов.

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

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

Следует отметить, что функции получения уникальных идентификационных данных выделены в отдельный модуль не случайно. Это сделано по следующим причинам: - часть кода, отвечающего за получение уникальных данных, работает на низком уровне операционной системы. Включение этого кода в текст программ остальных модулей, сделало бы их необычайно трудными для тестирования и не дало бы взамен никаких выгод разработчику или пользователю; - услугами данного модуля пользуется сразу несколько других компонентов системы лицензионной безопасности: менеджер лицензий и ACELAN Security Client. Таким образом, реализовав разделяемый код в отдельном программном объекте, мы снизили затраты на разработку оставшихся модулей.

Откомпилированный код данного модуля представлен в виде библиотек двух видов: DLL (динамически подключаемой) и LIB (статически подключаемой). Заметим, что библиотеки DLL легко подцаются обновлению, а библиотеки LIB позволяют внедрить чувствительный код внутрь крупных исполняемых файлов комплекса (и, таким образом, скрыть его от глаз потенциального злоумышленника).

В качестве уникальных данных были выбраны следующие: 1. Серийный номер жесткого диска (уникальное значение). 2. Дата создания видео-BIOS a. 3. Дата создания системного BlOS a, Даты создания системного и видео- BIOS OB находятся в реестре операционной системы Windows. Для работы с реестром использовалась функция (код на языке C++ для среды разработки Borland C++ Builder): AnsiString GetRegistryValue(AnsiString KeyName, AnslString ValueName) // функция возвращает значение, находящееся в переменной ValueName узла // реестра с названием KeyName { AnsiString S;. TRegistry Registry = new TRegistry(KEY_READ); try { Registry- RootKey = HKE Y_LOCAL_MACHINE; H false because we do not want to create it if it doesn t exist Registry- OpenKey(KeyName,faIse); S " Registry- ReadString( ValueName); } finally { delete Registry; } return S; }

Похожие диссертации на Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем