Защита программ и данных с использованием электронных ключей. Часть 2
Оформил: DeeCo
Автор: lel
Идея электронных ключей появилась в начале восмедесятых, тогда
появились и первые ее реализации. Возможность привязки данных и ПО обеспечения
к какой-нибудь аппаратной части ЭВМ в современном мире приобрела все большую
актуальность. Нелицинзионное использование, нарушение авторских прав в мире
программных продуктов, ставит перед разработчиком задачи, не только сделать
хороший продукт, но и думать как защитить его от нелицензионного копирования и
использования. Так что же такое электронный ключ?
Электронный ключ - это современное средство защиты от
незаконного копирования программ и несанкционированного доступа к ним. Защита
состоит в том, что программа не работает в отсутствие электронного ключа, к
которому она привязана. Сейчас электронные ключи становяться все более
функциональными и предоставляют разработчику все больше разнообразных
возможностей защиты программного обеспечения и данных. К преимуществам
использования электронных ключей можно отнести возможность создания
дополнительного уровня защищенности Вашего ПО. Если сравнивать просто
программный механизм защиты и аппаратный, хочу заметить, что используя
доступные Вам методы программной защиты (никто же не заставляет Вас
отказываться от них), Вы можете усилить защищенность Вашего ПО, просто добавив
механизм защиты электронных ключей, как дополнительный барьер для
взломщика.
Вот еще один секрет хорошей защиты, не допускайте чтобы код
Вашей защиты превышал по размерам код самой Вашей программы, иногда излишними
наворотами в защите вы можете просто отпугнуть пользователя (это в большей
мере касаеться просто программной защиты). Особенность использования
электронных ключей, еще в том что разработчик используемого в защите
предоставляет Вам API к ключу (как правило оно поддерживает все популярные
средства разработки в том числе и Delphi) и Вам не нужно быть дaже очень
сильным проффесионалом в системном программирование, что бы создать довольно
стойкую защиту.
Электронный ключ обычно представляет собой небольшое
устройство (размером со спичечный коробок), которое присоединяется к
компьютеру через один из возможных интерфейсов (обычно это: COM, LPT или
USB порты, хотя бывают варианты и в ISA-card исполнении). Например на
картинке ключ Eutron для LPT-порта.
Электронные ключи различаються по следующим категориям:
По функциональным возможностям:
ключи с памятью.
алгоритмические ключи.
алгоритмичиские ключи с памятью.
микропроцессорные ключи.
По сфере применения:
Локальные ключи.-для защиты локальной копии приложения.
Сетевые ключи.-для защиты одним ключом несколько приложений.
По виду подключения:
LPT - время отклика у LPT ключей ниже чем у USB, вообще ключи
как бы гарантируют прозрачность порта для других устройств, но это не всегда
так.(например HASP используемый 1С иногда забивает принтер)
USB - эти ключи с более быстрым временем отклика, чем LPT,
соответсвенно дороже.
Вообщем я не хочу вдаваться в логику работы ключей, что хуже,
что лучше, так как я профессионально не занимаюсь их разработкой и поддержкой,
нагружать Вас алгоритмами и математикой совершенно не хочеться (это всего лишь
обзорная статья, что такое ключ и где его взять). Делать сравнительный обзор
электронных ключей, тоже не имеет смысла(ключ выбираеться от задач которые
перед вами стоят, по формуле цена-эффективность, это в целом относиться ко
всему процессу реализации защиты).Я думаю если нужно Вы найдете всю
интересующую информации без меня, дам только общие принципы
защиты.
Общие принципы защиты таковы:
Защита должна быть многоуровневой. Усложните жизнь взломщику,
пусть помучается пытаясь снять уровень за уровнем Вашу защиту (возможно это
ему и надоест).
Защита должна быть разнообразной. Уповать на то, что при
использование электронных ключей Вас это спасет от взлома, глупо. Добавьте
реализации каких либо видов программной защиты(проверку CRC и подобное).
Не пытайтесь навредить нелегальным пользователем, будут проблемы
с легальными. Не пытайтесь делать в программе блоков для порче данных или
системы нелегала(запуск вируса, стирание данных), так как Вы не сможете до
конца быть увереным, что это при каких либо обстоятельствах данный метод не
сработает у легального пользователя.
Правильная реализация слабых методов, лучше чем неправильная
сильных. Не стоит делать блоки защиты в которых Вы не уверенны, помните что
цель Вашей программы в других функциях, а не в очень сложной защите.
Защита должна регулярно меняться. От версии к версии Вашего ПО
меняйте, преобразуйте алгоритм Вашей защиты.
Защита известных популярных программных продуктов - бег на
перегонки со взломщиками. Зайдите на Astalavista все поймете сами.
Где тонко - там и рветься. Сделав защиту еще раз проверьте
алгоритм защиты, вы должны защищать точки принятия решений Вашего продукта.
Если чуствуете, что у Вас слабое место в защите, попробуйте усилить его.
И в заключении хорошой защитой является, не сложная и дорогая, а
простая и эффективная. Вот и все, что я хотел рассказать, понимаю, что обзор
не в кое-мере не претендует на полноту, но выбор за Вами. Если Вас
заинтересовало то вот сайты производителей электронных ключей, можете
связаться с их службами технической поддержки, и они Вам расскажут в
подробностях о защите с применением их продуктов. На этом пока все...
|