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

кандидата технических наук
Доля, Алексей Владимирович
город
Ростов-на-Дону
год
2007
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Алгоритмы безопасного перехода в сетях Петри для лицензионной защиты программных систем»

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

На правах рукописи ^Сьеиг^

ДОЛЯ АЛЕКСЕЙ ВЛАДИМИРОВИЧ

АЛГОРИТМЫ БЕЗОПАСНОГО ПЕРЕХОДА В СЕТЯХ ПЕТРИ ДЛЯ ЛИЦЕНЗИОННОЙ ЗАЩИТЫ ПРОГРАММНЫХ СИСТЕМ

05 13 11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

Автореферат диссертация на соискание ученой степени кандидата технических наук

Ростов-на-Дону 2007 г

003065856

Работа выполнена в Научно-исследовательском Институте Механики и Прикладной Математики Южного Федерального Университета

Научный руководитель доктор физико-математических наук

Ведущая организация ЗАО «Лаборатория Касперского», г Москва

Защита диссертации состоится «18» октября 2007 г в 11 часов на заседании диссертационного совета К212 208 04 по физико-математическим и техническим наукам при Южном Федеральном Университете по адресу 344090, г Ростов-на-Дону, пр Стачки 200/1, корп 2, ЮГИНФО ЮФУ, аудитория 206

С диссертацией можно ознакомиться в Зональной научной библиотеке РГУ по адресу г Ростов-на-Дону, ул Пушкинская, 148

Наседкин Андрей Викторович

Официальные оппоненты доктор технических наук

Аграновский Александр Владимирович

кандидат физико-математических наук Деундяк Владимир Михайлович

Автореферат разослан «_» сентября 2007 г

Ученый секретарь

диссертационного совета К212 208 04 кандидат физико-математических наук, доцент

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

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

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

V

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

;, прибыль, $

Т1 Т2 I, месяцы

— - плохо защищенный яродукт

«—» - хорошо защищенный продает

Т1 - время взлома плохо защищенного продукта

Т2 - аремя азлома хорошо защищенного продукта

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

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

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

Сегодня особое развитие получили системы лицензионной безопасности программных систем, построенные на цифровых водяных знаках (ЦВЗ) Первые результаты в этой области были получены в конце 90-ых годов в новозеландском университете доктором Томборсоном (ТЬотЬогеоп) и доктором Колльбергом (СоНЬе^)1 Дальнейшее развитие схемы использования ЦВЗ в ПО получили в работах тех же авторов, а также группы ученых из Государственного Университета Аризоны, США2

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

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

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

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

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

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

1 C Collberg, C Thomborson Software watermarking Models and dynamic embeddmgs In Principles of Programming Languages, pages 311-324,1999

2 C Collberg, C Thomborson, G Townsend Dynamic graph-based software watermarking Technical report, Dept of Computer Science, Umv of Arizona, 2004

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

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

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

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

Москве в 2004 году и III Школе- семинаре «Математическое

моделирование, вычислительная механика и геофизика» в Ростове-на-Дону в 2004 году)

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

Публикации По теме диссертации опубликовано 14 научных трудов, из которых 11 опубликовано без соавторов, в том числе 3 научных статьи в центральных научных журналах, входящих в перечень ВАК

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

Содержание работы

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

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

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

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

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

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

полной, следовательно, решить ее за приемлемое время не представляется возможным.

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

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

Приведем основные требования модели к синтезируемым с ее помощью алгоритмам

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

2 Наличие механизмов наращивания сложности графа управляющей логики,

3 Теоретически обоснованная невозможность решения за приемлемое время при заданных вычислительных возможностях конкретных математических задач на графе и наличие у графа свойств цифрового водяного знака

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

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

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

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

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

В рамках диссертационной работы рассматриваются маркированные сети Петри Маркировка (I есть присвоение фишек позициям сети Петри Сами фишки используются для выполнения сети Петри, которое происходит посредством запуска переходов

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

Рис 2 Иллюстрация разрешимости и неразрешимости переходов в сетях Петри Переход слева неразрешен, так как в него входят две дуги, а в соответствующих позициях размещена только одна фишка В свою очередь переход справа разрешен, так как в соответствующих позициях находятся две фишки, что не меньше числа входящих в переход дуг

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

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

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

Приметив для 1, 2, 4, 8 Примитив для 3, - 5, 9, б, 10 и 12

Примитив для 7, 11, 13,14

Примитив для 15

Рис 3 Примитивы запрещающих сетей Петри с 4-битовым входом

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

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

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

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

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

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

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

Объем сети Петри в зависимости от длины ключа

Л 16 32 И 120

Дпина ключа (в бита*)

Рис. 4. График зависимости объема (н байтах) сети Петрн при размещении в оперативной памяти от длины ключа (в битах).

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

На рис. 5 представлена организационная схема, в результате которой пользователь получает свою копию пакета ДСЕЬАТЧ, В этом

На рис. 5 представлена организационная схема, в результате которой пользователь получает свою копию пакета АСЕЬАЫ В этом процессе участвуют сам пользователь, коллектив разработчиков и автоматические компоненты системы лицензионной безопасности

Рис 5 Процесс получения клиентом персональной копии пакета ACELAN

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

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

Модуль контроля целостности защищает менеджер лицензийи модуль идентификации от модификации

со стороны злоумышленника

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

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

ACELAN Security Client ' использует модуль идентификации для ; извлечения уникальных идентификаторов на ! компьютере пользователя !

Менеджер лицензий . использует модуль ! идентификации для ,

осуществления финальной проверки < уникальных идентификаторов

Рис 6 Модель системы лицензионной безопасности

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

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

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

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

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

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

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

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

В Заключении автор формулирует основные результаты диссертационной работы Указанные результаты получены автором диссертации самостоятельно Результаты, полученные при практическом использовании разработанной методологии, подтверждают научную и практическую ценность проведенного исследования

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

Результаты, представляемые к защите

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

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

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

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

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

ОСНОВНЫЕ ПУБЛИКАЦИИ ПО МАТЕРИАЛАМ ДИССЕРТАЦИИ

1 Доля AB Разработка модели лицензионной безопасности программного обеспечения на основе задач теории сложности и пример ее реализации на сетях Петри // Фундаментальные и прикладные проблемы современной техники Сборник работ лауреатов конкурса молодых ученых имени академика ИИ Воровича 9-ый выпуск - Ростов-на-Дону Изд-во Северокавказского научного центра высшей школы, 2006, С 41-49

2. A Dolya, R Airapetyan, Software obfuscating and watermarking based on Petri Nets // Материалы VII Международной научно-практической конференции «Информационная безопасность» -Таганрог Изд-во ТРТУ, 2005, С 186-189

3 Доля AB Формальная модель защиты ПО с помощью цифровых водяных знаков // Безопасность информационных технологий (БИТ, МИФИ), №3, 2005, С 26-32

4 Доля А В Анализ современных подходов к использованию цифровых водяных знаков для защиты программного обеспечения // Международная конференция РусКрипто'2005 Москва, 2005 Статья доступна в Интернете http //www íuscrvpto Ri/netcat files/File/ruscrvpto 2005 004 zip

5 Доля А В , Айрапетян Р А Защита программных продуктов с помощью сложных математических объектов на примере сетей Петри // «Молодежь XXI века - будущее Российской науки» Тезисы докладов III Межрегиональной научно-практической конференции студентов, аспирантов и молодых ученых Ростов-на-Дону ЦВВР, 2005, С 26-27

6 Доля AB Защита от внутренних угроз информационной безопасности в телекоммуникационных компаниях // Вестник Связи, №4, 2006, С 43-48

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

// Материалы 31 Международного семинара-презентации и выставки «Автоматизация Программно-технические средства Системы. Применения» Институт проблем управления РАН, 2007

http //www avtprom ru/default asp?page=3&doc=2576

8. Доля А.В Защита персональных данных по закону // Вестник связи, №1,2007 С. 54-58

9 Доля AB Встраивание цифровых водяных знаков в ПО на уровне ассемблерного и исходного кода // Восьмая московская международная телекоммуникационная конференция «Молодежь и наука» МИФИ, 2004 Статья доступна в Интернете http //library mephi ru/data/scientific-sessions/2005/vnpk/l-l-2 doc

10 Доля А В Сравнительный анализ систем лицензионной защиты CAE- и CAD-пакетов на примере конечно-элементного комплекса ACELAN // Математическое моделирование, вычислительная механика и геофизика Труды III Школы-семинара, Ростова-на-Дону, 15-19 ноября 2004, Изд-во «ЦВВР», 2004, С 81-83.

11 Доля А В , Надолин Д К Применение конфигурационных данных в пакете ACELAN // Математическое моделирование, вычислительная механика и геофизика Труды III Школы-семинара, Ростова-на-Дону, 15-19 ноября 2004, Изд-во «ЦВВР», 2004, С 78-80

12 Доля А В Внутренняя IT-безопасность в фактах и цифрах // VII международная конференция «Право и Интернет», Москва, 2005 Статья доступна в Интернете http //www ifap ru/pi/07/mdex htm

13 Доля AB Юридические аспекты контроля над почтовым трафиком организации //VII международная конференция «Право и Интернет», Москва, 2005 Статья доступна в Интернете http //www ifap ru/pi/07/index htm

14 Доля AB Эволюция угроз информационной

безопасности в Интернете // VI международная

конференция «Право и Интернет», Москва, 2004 Статья доступна в Интернете http //www ifap ru/pi/06/r!5 htm

В совместных работах [2, 5, 11] личный вклад автора заключается в исследованиях и разработках, связанных с анализом свойств сетей Петри, присущих цифровым водяным знакам, а также конструированием сетей Петри, удовлетворяющих требованиям модели лицензионной безопасности

Благодарности

Автор выражает признательность научному руководителю Наседкину Андрею Викторовичу за многолетнюю помощь и поддержку

Оглавление автор диссертации — кандидата технических наук Доля, Алексей Владимирович

Принятые обозначения и сокращения.

Введение.

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

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

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

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

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

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

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

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

1.5.1. Цифровые водяные знаки в программном обеспечении на динамических графах.

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

1.7. Выводы.

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

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

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

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

2.4. К вопросу о кодировании данных в других графах.

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

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

2.7. Выводы.

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

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

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

3.3. Выводы.

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

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

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

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

4.4. ACELAN Security Client.

4.5. ACELAN Security Server.

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

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

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

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

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

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

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

4.9. Выводы.

Введение 2007 год, диссертация по информатике, вычислительной технике и управлению, Доля, Алексей Владимирович

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

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

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

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

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

1-*---!

Т1 Т2 I, месяцы

->— - плохо защищенный продукт

- хорошо защипанный продукт

Т1 - время взлома плохо защищенного продукта

Т2 - время взлома хорошо защищенного продукта

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4.9. Выводы

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

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

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

ЗАКЛЮЧЕНИЕ

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

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

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

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

В соответствии с поставленной целью были сформулированы следующие научные задачи исследования:

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

- разработать методы кодирования уникальных идентификаторов в динамический граф на основе сетей Петри;

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

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

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

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

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

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

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

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

Описана система лицензионной безопасности конечно-элементного пакета АСЕЬАЫ. Предложена общая организационная схема получения уникальных идентифицирующих данных у пользователя. На основе этих идентификатора различные компоненты системы принимают решения о том, является ли использование комплекса АСЕЬАЫ лицензионным.

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

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

Библиография Доля, Алексей Владимирович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Новичков А., Сардарян Р. Анализ рынка средств защиты от копирования и взлома программных средств // PC Week RE, №6,2004.

2. Цифровая стеганография / В. Г. Грибунин, И.Н. Оков, И.В. Туринцев. -М.: СОЛОН-Пресс, 2002.

3. С. Collberg, С. Thomborson. Software watermarking: Models and dynamic embeddings. In Principles of Programming Languages, pages 311-324,1999.

4. J. Palsberg, S. Krishnaswamy, M. Kwon, D. Ma, Q. Shao, Y. Zhang. Experience with software watermarking. In Annual Computer Security Applications Conference 2000 (ACSAC'02), pages 308-316,2000.

5. Доля А.В., Надолин Д.К. Применение конфигурационных данных в пакете ACELAN. Математическое моделирование, вычислительная механика и геофизика. Труды III Школы-семинара, Ростова-на-Дону, 15-19 ноября 2004, Изд-во «ЦВВР», 2004, С.78-80.

6. A. Monden, Н. Iida, К. Matsumoto, К. Inoue, К. Torii. Watermarking java programs. In International Symposium on Future Software Technology '99, pages 119124, October 1999.

7. A. Monden, H. Iida, K. Matsumoto, K. Inoue, K. Torii. A practical method for watermarking java programs. In The 24th Computer Software and Applications Conference, pages 191-197, October 2000.

8. C. Collberg, C. Thomborson, G. Townsend. Dynamic graph-based software watermarking. Technical report, Dept. of Computer Science, Univ. of Arizona, 2004.

9. W.Bender, D. Gruhl, N. Morimoto, A. Lu. Techniques for data hiding. IBM Systems Journal. 1996.

10. B. Barak, O. Goldreich, R. Impagliazzo, S. Rudich, A. Sahai, S. Vadhan, K. Yang. On the (Im)possibility of Obfuscating Programs. In Proceedings of the 21st Annual International Cryptology Conference on Advances in Cryptology (CRYPTO '01).

11. C. Collberg, C. Thomborson, D. Low. A Taxonomy of Obfuscating Transformations. Technical report, Dept. of Computer Science, Univ. of Auckland, New Zealand, 2004.

12. S. Moskowitz, M. Cooperman. Method for Stega-Cipher Protection of Computer Code. US Patent 5,745,569, January 1996. Assignee: The Dice Company.

13. P. Samson. Apparatus and Method for Serializing and Validating Copies of Computer Software. US Patent 5,287,408.1994.

14. Counsil for IBM Corporation. Software birthmarks. Talk to BCS Technology of Software Protection Special Interest Group.

15. R. Davidson, N. Myhtvold. Method and system for generating and auditing a signature for a computer program. US Patent 5,559, 884. September 1996, Assignee: Microsoft Corporation.

16. J. Stern, G. Hachez, F. Koeune, J. Quisquater. Robust object watermarking: Application to code. In Information Hiding Workshop '99, pages 368-378,1999.

17. G. Hachez. A comparative study of software protection tools suited for ecommerce with contributions to software watermarking and smart cards. 2003.

18. R. El-Khalil, A. Keromytis. Hydan: Information hiding in program binaries. In International Conference on Informaton and Communications Security, 2004.

19. N. Provos. Defending Against Statistical Steganalysis. In: Proceedings of the 10th USENIX Security Symposium. 2001.

20. S. Thaker, M. Stamp. Software Watermarking via Assembly Code Transformations. In Proceedings of ICCSA, 2004.

21. The IDA Pro Disassembler and Debugger: http://www.datarescue.com/idabase/

22. R. Venkatesan, V. Vazirani, S. Sinha. A graph theoretic approach to software watermarking. Information Hiding, LNCS, 2137:157-168, 2001.

23. C. Collberg, S. Kobourov, E. Carter, C. Thomborson. Error-correcting graphs for software watermarking. In 29th Workshop on Graph Theoretic Concepts in Computer Science, July 2003.

24. C. Collberg, A. Huntwork, E. Carter, G. Townsend. Graph theoretic software watermarks: Implementation, analysis, and attacks. In Workshop on Information Hiding, 2004.

25. D. Knuth. Fundamental Algorithms, volume 1 of The Art of Computer Programming. Addison-Wesley, Reading, MA, USA, Third Edition, 1997.

26. F. Harray, E. Palmer. Graphical Enumeration. Academic Press, New York,1973.

27. C. Thomborson, J. Nagra, R. Somaraju, C. He, Tamper-proofing Software Watermarks. In Proc. Second Australasian Information Security Workshop (AISW2004). 2004.

28. Скляров Д. Искусство защиты и взлома информации. СПб.: БХВ-Петербург, 2004.

29. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. М.: Издательство ТРИУМФ, 2003.

30. D.P. Bovet and P. Crescenzi, Introduction to the Theory of Complexity, Englewood Cliffs, N.J.: Prentice-Hall, 1994.

31. Молдовян H.A., Молдовян A.A., Еремеев М.А. Криптография: от примитивов к синтезу алгоритмов, С-Пб.: BHV-Петербург, 2004.

32. Котов В.Е. Сети Петри, М.: Наука, 1984.

33. Питерсон Д. Теория сетей Петри и моделирование систем, М.: Мир,1984.

34. С. Collberg, С. Thomborson. Software watermarking: Models and dynamic embeddings. In Principles of Programming Languages, pp. 311-324, 1999.

35. A. Dolya, R. Airapetyan, Software obfuscating and watermarking based on Petri Nets. Материалы VII Международной научно-практической конференции «Информационная безопасность». Таганрог: Изд-во ТРТУ, 2005, С. 186-189.

36. Доля A.B. Формальная модель защиты ПО с помощью цифровых водяных знаков // Безопасность информационных технологий (БИТ, МИФИ), №3, 2005, С. 26-32.

37. Доля A.B. Защита от внутренних угроз информационной безопасности в телекоммуникационных компаниях. // Вестник Связи, №4, 2006, С. 43-48.

38. Доля A.B. Защита персональных данных по закону // Вестник связи, №1, 2007, С. 54-58.

39. Зубков C.B. Assembler для DOS, Windows и UNIX. 2-е изд., испр. и доп. -М.: ДМК, 2000.

40. Сорокина С.И. и др. Программирование драйверов и систем безопасности, СПб.: БХВ-Петербург, 2003.

41. Шнайер Б. Секреты и ложь. Безопасность данных в цифровом мире, СПб: Питер, 2003.

42. Румянцев П.В. Исследование программ Win32: до дизассемблера и отладчика, М.: Горячая линия Телеком, 2004.

43. CyberManiac, Теоретические основы крэкинга. Статья доступна в Интернете: http://wasm.ru/print.php?article=tbc03

44. Фомичев В.М. Дискретная математики и криптология. М.: Диалог-МИФИ, 2003.

45. Абель П. Ассемблер. Язык и программирование для IBM PC. М.: ЭНТРОП, 2003.

46. Бурдаев О.В., Иванов М.А., Тетерин И.И. Ассемблер в задачах защиты информации, М.: Кудиц-Образ, 2002.

47. Введение в криптографию / Под общей ред. В.В. Ященко, СПб.: Питер,2001.

48. Харин Ю.С. и др. Математические и компьютерные основы криптологии, Мн.: Новое знание, 2003.

49. Карпов Б., Баранова Т. С++: специальный справочник, СПб: Питер, 2001.

50. Ховард М., Лебланк Д. Защищенный код, М.: Русская редакция, 2003.