Отказ от ответственности. Подобные вопросы были заданы несколько раз на SO, однако этот вопрос гораздо более конкретный и до сих пор не был адекватно рассмотрен.
Мы разрабатываем новое упакованное программное обеспечение, которое по соображениям безопасности бизнеса должно запускаться на нашем клиентском сервере в PHP. Программное обеспечение продается с конечной лицензией для каждого пользователя; ценовой диапазон составляет от $20-80 за пользователя, целевой рынок - это небольшие (и веб-сайты) консультанты и ИТ-агентства.
Чтобы отбить пиратство (например, удаление пользовательской лицензии), мы хотели бы максимизировать защиту кода PHP любыми доступными технологиями, что не создает неудобства для пользователя.
Давайте сломаем это:
-
не вызывает неудобств у пользователя: никаких дополнительных серверных установок (без декодера zend или других двоичных файлов). Должен работать на общедоступном PHP-хостере с простым ванилом.
-
Максимизируйте защиту: нарушение защиты должно перевесить стоимость покупки дополнительной лицензии. То есть для профессионального хакера требуется не менее 3-5 рабочих дней, чтобы удалить защиту пользовательской лицензии.
- Любые средства, технологически доступные: могут звонить домой, использовать криптографию высокого класса, могут реализовать эмулятор c64.
Проактивно решать самые невысокие решения:
-
НЕ Ищем идеальную обфускацию, просто чрезвычайно тяжелые (определяемые как: должны занимать не менее 3-5 рабочих дней для дешифрования), или другие методы борьбы с пиратством
-
НЕ Ищем программные пакеты "черного ящика", которые я не знаю, как они работают, и не может определить, соответствует ли это нашей цели; ищет алгоритмические и готовые идеи.
-
НЕ Ищем лицензию/защиту на стороне закона, мы уже имеем это.
-
Мы знаем, что, учитывая достаточное время и фокус, всякая запутанность будет взломана рано или поздно; мы просто хотим, чтобы это не было экономичным решением.
Учитывая приведенные выше ограничения, какие методы или идеи вы бы использовали для максимизации мер по борьбе с пиратством?
Bounty-hunt: точка подходит для самого сложного алгоритмического метода для обратного проектирования кода с учетом вышеприведенных ограничений.
Update/Bounty-hunt: я принял решение Ира Бакстера, в основном потому, что остальные не смогли ответить на основной вопрос и попытались подвергнуть сомнению основные предположения (бизнес, закрытый источник, yadda yadda). Спасибо всем!