Предлагаемые до сих пор решения этой задачи неудачны по двум причинам.
Первая – они неудобны.
При использовании технологий типа Product Activation ограничено число компьютеров, на которых ПО может быть активировано. Из понимания этой проблемы выросла технология аппаратной защиты (HASP – Hardware Against Software Piracy), привязывающая ПО к пользователю, а не к компьютеру, что справедливо – именно человек заплатил за лицензионную копию и является ее владельцем.
Механизм защиты с помощью HASP примерно такой – в комплект поставки ПО помимо собственно ПО на том или ином носителе входит также USB-ключ, необходимый для того, чтобы подтвердить легальность копии – без этого ключа ПО работать не будет. Однако эмулировать эмулировать это не намного сложнее, чем введение «уникального» серийного номера или лицензионного ключа.
Это и есть вторая проблема – предлагаемые технологии не обеспечивают защиты от нелицензионного использования.
Происходит это потому, что выполнение лицензионных соглашений контролируется самим программным обеспечением. В него встроены какие-то защитные механизмы, которые требуют введения каких-то данных, которые должны (по замыслу) быть только у легального пользователя (на том или ином носителе, например, USB-ключе).
Хорошо понятно, в чем уязвимость таких методов – она в возможности копировать и исследовать исходный код программ, в том числе и встроенные в них защитные механизмы.
Значит, для того чтобы защита была эффективной, лицензионный функционал должен быть труднокопируемым и недоступным для исследования.
Если программный продукт хранится и, что важнее, выполняется на ПК пользователя, добиться этого нельзя. Значит, на компьютере пользователя должна храниться и выполняться только интерфейсная часть кода, исследование и копирование которой не представляет собой никакого интереса для злоумышленника и никаких проблем для правообладателя. Эта интерфейсная часть будет взаимодействовать с функциональной, выполняющейся на другом компьютере, где она недоступна для анализа.
Вариант с отдельным дополнительным компьютером для каждой программы перестает быть дикостью, если такой компьютер уменьшить и подключить его к пользовательскому компьютеру через стандартный интерфейс. Если при этом технологически обеспечена невозможность несанкционированного доступа к коду и данным в этом компьютере, то получается вариант, устраивающий и правообладателей, и пользователей. Пользователь имеет у себя обе части кода и может пользоваться законно приобретенной копией на любом количестве компьютеров, а правообладатель имеет гарантии того, что функциональная часть кода не будет исследована или скопирована и перепродана.
ОКБ САПР предлагает реализацию именно такой схемы защиты программного обеспечения от нелицензионного использования с применением ПСКЗИ ШИПКА: код и данные программного продукта разделяются на две части – «открытую», поставляемую на обычных носителях и выполняющуюся на центральном процессоре пользовательского компьютера, и «закрытую», лицензированную, поставляемую внутри ШИПКИ и выполняемую на процессоре ШИПКИ. Пользователь может устанавливать общую часть программного продукта на любой компьютер, но необходимый функционал он получит только после того, как подключит к этому компьютеру ШИПКУ.
Реализация этой схемы предполагает этап совместной работы правообладателя с разработчиками ОКБ САПР, на котором от правообладателя требуется лишь разделить программный продукт на «открытую» и «закрытую» части и предоставить его разработчикам ПСКЗИ ШИПКА.
Если Вы хотите обсудить детали технологии, оценить ее применимость к Вашему случаю, или наметить способы ее реализации для защиты Вашего ПО, обращайтесь к нам по адресу cd@okbsapr.ru, и мы все обсудим.
Подробнее о том, что такое ШИПКА – на сайте http://www.shipka.ru/.