Защита для тех, кто делает софт и не только

Технология защиты

Электронные ключи представляют собой небольшие устройства, подсоединяемые к параллельному (LPT) или USB-порту компьютера и являются на сегодняшний день наиболее эффективным инструментом защиты коммерческого программного обеспечения от незаконного копирования.

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

В общих чертах схему работы с электронными ключами можно описать так:

  • Приложение «привязывается» к ключу при помощи специального программного обеспечения;
  • Во время работы защищенное приложение обменивается с ключом информацией, с помощью которой ключ «опознается»;
  • Если ключ отсутствует или имеет неверные параметры, то приложение не работает.

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

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

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

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

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

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

Методы защиты

В основе защиты программ с помощью электронных ключей лежат два метода построения защиты:

  • с использованием интерфейса прикладного программирования (API);
  • в автоматическом режиме с использованием сервисной утилиты.

В случае использования API Guardant защита полностью интегрируется с приложением и составляет с ним единое целое, поскольку встраивание защиты в приложение происходит на уровне исходного кода. Для построения API-защиты можно воспользоваться Генератором исходных текстов - утилитой, которая автоматически создает исходный код с использованием функций API на основе данных защищаемой программы. Полученный код реализует сложные механизмы опроса ключа.

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

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

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

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