Простая лицензионная защита для приложения Python - PullRequest
12 голосов
/ 10 июня 2011

Хотя таких вопросов довольно много, пожалуйста, потерпите меня, потому что я думаю, что у меня все по-другому ...

У меня есть приложение Python за 5 долларов, которое я распространяю с использованием py2exe, py2app и source для Linux. Приложение имеет годичную лицензию, поэтому пользователям необходимо перейти на более новую версию через год. Я хотел бы добавить какую-то простую лицензионную защиту для обеспечения ограничения на один год. Поскольку приложение стоит всего 5 долларов, мне все равно, можно ли его легко обойти. Наличие чего-либо побудит многих пользователей платить 5 долларов за обновление через год, а не игнорировать лицензию.

Обратите внимание, что:

  • Я хочу, чтобы источник был легко читаемым, чтобы не было запутывания
  • Я не хочу иметь скомпилированный код или SaaS
  • Я бы рассмотрел какую-нибудь систему лицензионных ключей, если бы она была действительно простой, но не хочу ничего сложного

Моя первая мысль - просто записать дату установки (например, с помощью wxConfig) и отключить программное обеспечение через год с вежливым сообщением для обновления.

Есть ли лучшие решения для этого?

1 Ответ

4 голосов
/ 10 июня 2011

Почему оператор if, сравнивающий дату, не может решить эту проблему для вас?

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

Вы сказали, что код доступен для чтения из исходного кода. Что еще вы могли бы сделать? Вы можете иметь много таких if-оценок ... но grep, perl или другой скрипт на python также могут быстро найти их все и быстро восстановить. Если у вас есть рынок для вашего продукта за 5 долларов, раздраженный клиент может распространить сценарий отключения даты среди своих собеседников или через Интернет.

Это как багажный замок. Работает только на честных людей ... но, возможно, этого достаточно.

Вы можете поместить уведомление DMCA рядом с критическим оператором if в исходном коде. Утверждение if является мерой для предотвращения использования после даты лицензии. Спросите хорошего адвоката. Ваш пробег может варьироваться.

В Википедии есть это на DMCA в разделе "Обход":

Обход контроля доступа Раздел 103 (17 США, раздел 1201 (а) (1)) DMCA заявляет: никто не должен обойти технологическую меру который эффективно контролирует доступ к работа защищена этим названием. Закон определяет, что это значит в разделе 1201 (а) (3): (3) Как используется в этом subsection-

(A), чтобы обойти технологический мера 」означает расшифровать шифрованная работа, чтобы расшифровать зашифрованная работа или иным образом, чтобы избежать, обходить, удалять, деактивировать или ухудшать технологическая мера, без полномочия владельца авторских прав; и

(Б) технологическая мера Controls эффективно контролирует доступ к работа 」если мера, в обычном Ход его работы, требует применение информации, или процесс или лечение, с полномочия владельца авторских прав, чтобы получить доступ к работе. Таким образом, если есть какая-то "технологическая мера" который эффективно контролирует доступ к работать ", это незаконно, чтобы обойти эта мера. Тем не менее, раздел 1201 создает несколько исключений из этого правило, и Библиотека Конгресса уполномочен создавать дополнительные исключения.

Если у вас есть дата в строке со знаком GPG, подписанная вашим открытым ключом ... тогда, IMHO, вы можете утверждать, что эта строка информации об истечении срока действия ... была уполномочена владельцем авторских прав. Вы также можете проверить на предмет подмены открытый ключ, но не очевидно, что вы должны это делать, так как обойти это незаконно ...

Примечание: Ричард Столлман, пионер свободного программного обеспечения, придерживался теории, что конкуренция имеет тенденцию устранять анти-функции из таких программ, как платные экраны, раздражающие напоминания и т. Д.

...