Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Сети Петри, пример модели для защиты программ



Защита программ

Сеть Петри является идеальным инструментом для моделирования переходов при выполнении определенных условий.

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

Допустим, что при начальной

маркировке можно задавать

кол-во фишек только в позициях

p0…p3. (p7 изначально содержит

одну фишку). Остальные позиции

недоступны для маркирования.

Зададим ключевому переходу t2

наименьший приоритет, после

чего он (переход t2) выполниться

тогда и только тогда, когда

начальная маркировка будет

в p0…p3 следующим образом:

p0=1, p1=0, p2=1, p3=1. При всех остальных начальных маркировках

переход t2 не сработает. Попытайтесь проверить.

Теперь представим, что каждый переход – это поток, который проверяет определенный набор бит на ВХОДЕ (входные позиции) и в зависимости от результата устанавливает биты на ВЫХОДЕ. Так, поток t3 проверяет фишки (биты) в позиции p0 и в зависимости от того есть там фишки (бит установлен) или нет (бит сброшен) устанавливает биты на выходных позициях (p5 и p6).

Допустим, пользователю необходимо зарегистрировать программу, введя 4-битный ключ. Биты ключа (фишки) помещаются в позиции p0,p1,p2 и p3 (если бит установлен, то фишка помещается, нет – значит соотв. позиция остается пустой). Этим обеспечивается начальная маркировка сети.

Программа будет считаться зарегистрированной, если переход t2 сработает (т.е. будет активным). Как уже было показано выше – переход t2 сработает только при такой начальной маркировке: p0=1, p1=0, p2=1, p3=1.

Все это легко можно реализовать программно.

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

На нашем примере легко видеть, что найти правильный ключ (т.е. правильную начальную маркировку) можно перебрав всего лишь 2^4 = 16 значений. Это можно сделать даже вручную, а взглянув на представление программы в виде сети Петри можно догадаться интуитивно за несколько секунд.

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






Дата публикования: 2015-02-03; Прочитано: 1279 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.015 с)...