Защита программного обеспечения от копирования, обзор методов решения задачи защиты
Защита программного обеспечения на сегодняшний день является одной из актуальных задач. Впервые задача защиты была озвучена в 70х годах.
Задача защиты программного обеспечения от копирования заключается в установлении зависимости между программным обеспечением и объектом привязки. Причем объект привязки должен быть таким, который невозможно скопировать. Таким образом, скопированное защищенное программное обеспечение становиться неработоспособным в отсутствии объекта привязки.
Задача защиты программного обеспечения от копирования разбивается на две подзадачи:
1) установление зависимости между защищаемым программным обеспечением и объектом привязки;
2) создание не копируемого объекта привязки.
От того, как будут эффективно решены эти две подзадачи, зависит эффективность защиты программного обеспечения от копирования.
В настоящее время для защиты программного обеспечения от копирования используются программные и аппаратно-программные методы, в которых решены обе указанные подзадачи задачи.
Аппаратно-программные методы защиты
Аппаратно-программные средства защиты программного обеспечения обладают существенным недостатком по сравнению с программными. Этот недостаток заключается в невозможности распространения программного обеспечения с помощью сети Интернет. Поэтому программное обеспечение защищенное аппаратными методами можно распространять только через торговые сети.
В настоящее время широкое распространение получили аппаратно-программные методы защиты основанные на USB ключах и носителях CD-ROM.
Так, например защита программного обеспечения на основе USB ключей требует наличия ключа в момент использования защищенного программного обеспечения. Данный способ является очень эффективным потому, что на рынке имеются USB ключи дающие возможность запрограммировать функции или набор функций, которые будут выполняться внутри ключа. Основное преимущество и эффективность данного метода заключается в том, что, подавая на вход ключа какой-то набор данных, в ответ приходят данные зависимые от запрограммированного в ключе алгоритма. С помощью USB ключей возможно построить достаточно сложную систему защиты, которая обеспечит наивысший уровень защиты программного обеспечения от копирования.
Задача создания не копируемого объекта привязки в этом методе решена путем использования USB ключа. Задача установления зависимости между защищаемым программным обеспечением и объектом защиты решена путем вынесения части алгоритма приложения в USB ключ.
Методы защиты от копирования на основе USB ключей были бы самыми эффективными и широко применяемыми, если бы не следующие его недостатки:
1. Медленный процессор USB ключа – в USB ключе далеко не такой производительный процессор как центральный процессор компьютера и по этой причине к защищаемым алгоритмам приложения нельзя предъявлять высокие требования по производительности.
2. Изолированность процессора USB ключа от оперативной памяти компьютера ? по этой причине очень сложно реализовать возможность вызова API функций операционной системы из защищенных алгоритмов. По этой же причине невозможно вызывать функции незащищенных элементов приложения из защищенного алгоритма.
3. Одно приложение один USB ключ – если использовать в один момент пять различных приложений, то это потребует использования в компьютере пяти USB ключей.
4. Малый объем памяти для защищаемого кода - большинство современных USB ключей невысокой стоимости имеют 64 килобайта памяти для исполняемого кода.
5. высокая стоимость USB ключа – минимальная стоимость ключа составляет около 500 рублей, данный ключ нецелесообразно использовать для защиты приложений от копирования, рыночная стоимость которых до 2000 рублей.
Другой распространенный аппаратно-программный способ защиты от копирования заключается в привязке программного обеспечения его к непосредственному носителю. Для примера, 90% современных игр требуют наличия CD-ROM в приводе. Но данный способ также обладает следующими существенными и очевидными недостатками:
1. Требование наличия CD-ROM в приводе ? невозможно запустить два и более различных приложения защищенных данным образом, учитывая, что в персональном компьютере один привод CD-ROM.
2. Хрупкость носителя – испорченность CD-ROM приводит к утрате купленной копии программного обеспечения.
Алгоритм работы данного аппаратно-программного метода основывается на физических свойствах диска CD-ROM. Физические свойства CD-ROM преобразуются в уникальное число, от которого зависит корректная работа алгоритмов защищенного программного обеспечения. По этой причине задача создания не копируемого объекта привязки решена в виде использования физический свойств носителя CD-ROM. А задача установления зависимости между защищаемым программным обеспечением и объектом защиты решена путем проверки этих свойств в алгоритмах приложения.
Данный метод защиты является достаточно надежным для некоторого класса программного обеспечения. Защищаемое данным методом программное обеспечение, как правило, ориентировано на широкое потребление и основным способом его распространения является только «магазинная» продажа. Примером подобного программного обеспечения служат: игры, каталоги, базы данных, демонстрационные версии продуктов.
Программные методы защиты
Программные методы защиты программного обеспечения от копирования свободны от указанных недостатков, но по своей эффективности защищенности уступают аппаратно-программным методам. В широком смысле слова можно сказать, что программные методы уступают только аппаратно-программным основанным на использовании USB ключей. Так как закрыт доступ расположенному в USB ключе защищенному алгоритму приложения.
В существующих распространенных программных методах защиты программного обеспечения от копирования, задача создания не копируемого объекта привязки решена в виде использования серийных номеров оборудования компьютера. А задача установки защиты решена в виде проверки серийных номеров оборудования компьютера в алгоритмах защищаемого программного обеспечения. Очевиден недостаток такого способа решения задачи защиты от копирования. Программное обеспечение защищенное данным способом зависимо от аппаратной конфигурации компьютера. В случае смены или изменения аппаратной конфигурации компьютера установленное ранее защищенной программное обеспечения становиться неработоспособным.
Специалистами компании crypline разработан программный метод защиты программного обеспечения от копирования. В разработанном методе защиты решена задача создания некопируемого объекта привязки, который не зависит от аппаратной конфигурации компьютера.
В программных и аппаратно-программных методах основанных на привязке защищаемого программного обеспечения к его непосредственному носителю возникает дополнительная задача. Эта задача заключается в сокрытие от злоумышленника алгоритмов защищенного программного обеспечения, в которых реализована проверка наличия объекта привязки. Для сокрытия алгоритмов получили распространение следующие методы:
1) метод запутывания;
2) метод виртуального процессора;
3) метод мусора.
Из вышесказанного можно сделать вывод, что самыми универсальными и удобными методами защиты программного обеспечения от копирования являются программные методы.
Ваши отзывы