Стоит ли применять защиту всегда, как страховку на непредвиденный случай? Зачем вообще нужна защита чего-либо? Давайте разбираться.
Допустим, что у вас есть небольшой скрипт, который вы создали с целью его дальнейшей реализации. Перед вами стоит проблема - создавать защиту своего продукта или выпустить его в мир без таковой. Не всегда защита является таковой - иногда она необходима для ускорения исполнения, т.е. мы говорим о так называемой компиляции.
Но если защита создается, то она должна быть достаточно надежной. К примеру, привязываться к железу, отсылать код на проверяющий количество лицензий сервер и т.д. Каждая такая особенность будет вызывать необходимость выполнения дополнительных действий - дополнительного программинга, дополнительной оплаты, дополнительного саппорта. И глючить в случае проблем будет теперь не только программа, но и (возможно) его защитный модуль.
Возникнет и еще одна проблема, с которой я лично столкнулся, когда активно программировал базы данных. Поначалу я привязывал базы к винчестеру. И все бы хорошо, но возникла ситуация, когда компьютер сломался у бывшего заказчика, и мне пришлось ехать к нему (бесплатно) и перепривязывать программу - удаленно решить проблему не вышло. Еще хуже, когда модуль защиты начинает глючить - было и такое, когда серийный номер винчестера стал отдаваться со знаком минус. А публичный код был построен на сложении и умножении. В итоге получалось число, которое давало некорректное обратное вычисление. И код, отправляемый мной не подходил - приходилось снова ехать и править. Опять бесплатно. И ни разу за 10 лет никто не попытался обойти защиту!
Следующая проблема связана с задержкой обновления. Зашифрованная программа требует правки вначале на компьютере разработчика и только потом откомпилированная копия переносится заказчику - и не факт, что она тоже не будет глючить. Слава Богу, я так и не научился программировать на Визуал Бэйсике и С++, иначе это бы меня убило. Я всегда программировал на системах с открытым API. Приехал, исправил, до свидания.
А какие плюсы? Единственный плюс - усложение неправомерного тиражирования. Не сказать, что шифрохитрости помогут полностью его избежать, но отсекутся школьники, которые просто не смогут взломать шифр - знаний не хватит.
На этом плюсы кончаются. Что из этого следует?
Любое действие по защите всегда должно быть меньше возможного ущерба. Иначе это будет пиррова победа: вроде и защитились, но потратили на это денег втрое больше, чем выручили от продаж. Да еще и сами продажи из-за требований защиты упали. Это будет все равно, как работая менеджером за 10 тыс.руб., нанимать телохранителя. Вероятность, что на вас нападут, есть всегда, но к тому времени вы столько задолжаете своему телохранителю, что скорей всего он и будет тем самым грабителем.
Если продажи продукта не превысят определенного количества копий - нет большого смысла его защищать вообще. Индивидуальные продукты сильны именно своей уникальностью - суть неприменимостью для других пользователей.
Если есть возможность применить другие методики по сохранению авторских прав - применяйте. Например, сложный некомментируемый код = компиляция. Посчитайте возможную выгоду от приобретения лицензионных копий на каждое рабочее место и на одно плюс символическая доплата за каждое следующее. Если есть вероятность, что ущерб от распространения нулленой версии будет сильнее, чем второй вариант - почему бы не поступиться идеалами и не продавать одну копию в одни руки, но без ограничений по числу рабочих мест. Это не предложение так поступать. Это предложение так думать. Ищите оригинальный ход. Никогда не слышал, чтобы топорные методики позволяли решать проблему защиты надолго и всерьез.
И под конец - о самой лучшей защите. Лучшей защитой на все времена является справедиливая цена. Цена, которую человек готов заплатить за данный продукт. Когда я разговариваю с заказчиками, я люблю спрашивать про то, сколько было сэкономлено/заработано благодаря данной программе. В этот момент заказчик мысленно прикидывает, а стоило ли ему тратиться вообще на данный продукт.
В России принято тратить на рекламу 3-5% от общего бюджета предприятия. Т.е. вкладывая деньги в рекламу бизнесмен ждет от нее 20-30-кратной отдачи. Надо сказать, что те же выкладки можно смело применять и на софт. Т.е. от покупателей сатХ я жду, что они извлекут выгоду не менее 600 долларов, что согласитесь - не такая уж недостижимая сумма.
От зарплаты, вкладываемой в работника я жду всего лишь троекратной отдачи (а не один к одному - как мыслят некоторые фрилансеры). И мне очень обидно, если не удается добиться такой эффективности. Ведь труд работника - те же инвестиции, только краткосрочные.
Впрочем, это скорее интерлюдия, которая еще четче обрисовывает один из возможных способов защиты. Человек изначально не собирается воровать. Он только ищет приемлемое ценовое решение. И если его предложит автор (и пусть оно будет в 10 раз дороже, но в рамках разумного), то пользователь приобретет у автора. И больше никаких способов защиты не потребуется. Потому что просто приятно получить продукт у того, кто его изобрел, а у не у того, кто спер.