Как организовать систему лицензий (ключей) для проекта на PHP?
Собственно вопрос в чем: есть CRM написана на PHP, частично на Java и Perl. Нужно организовать систему лицензий (ключей), как, например, это сделано у большинства коммерческих CMS на PHP, ну или антивирей.
Система строго коммерческая, вот и возник вопрос не просто организовать, а качественно и безопасно создать такую систему.
Буду рад любой информации: ссылки, статьи, да что угодно, ибо в интернете мало чего нашёл полезного.
Если есть живой пример - вообще просто супер!
Затраты на сервера или аренду облака. Плюс если крупные компании будут юзать и злые конкуренты устроят DDoS. При DDoS-атаке накроются все пользователи (следовательно доп. затраты на услуги QRATOR или подобных компаний)
Часть функционала вынести в облако и обращаться к нему по API с ключом.
Либо использовать SaaS подход.
Либо кодирование через ioncube например.
Коммерческие CMS кстати "нулятся") Такие как DLE, Битрикс тому пример. Поэтому лично мне очень нравится подход к вопросу у JetBrains. Кто готов заплатить - заплатит, а кто не готов платить - либо не будет пользоватся совсем, либо будет пользоватся взломанным продуктом.
К сожалению null-ятся многие продукты, не только CMS. Вот я и хочу подойти к этому вопросу более серьёзно. Про облако идея понравилась, достаточно вынести ядро, но опять же возрастёт время отклика продукта, плюсом встанет вопрос о секьюрности взаимодействия API.
Про шифрование тоже думали, но тогда нужен хостинг с поддержкой того же Зенда или Иона (хотя большинство площадок поддерживают и то, и другое).
Интересует именно практическая часть реализации, некий алгоритм, логика. Пока неясен сам алгоритм действий, не ясно как это организовать применив систему локально (не вынося функционал в облако, хотя, думаю, систему проверки выносить все равно придётся).
Нужно понимать, что в продукте на PHP вы всё равно отдаете исходный код, а значит не составит большого труда найти место где проверяется лицензия, и убрать проверку вообще. Это просто по определению. Кому нужно - всё равно взломают, поверьте.
Вы бы сильно облегчили задачу и себе, и пользователям отдавая версию как есть.
После оплаты человек получает ссылку на скачивание.
@zelenin Что мешает раскодировать, и выложить в открытый доступ?
Возьмите любую популярную коммерческую CMS - найти взломанный вариант не проблема. Можно добавлять какую-то уникальную метку чтобы определить, чей дистрибутив в итоге "утёк".
@nazarpc я тоже сначала подумал, что ключ и будет уникальной меткой: если две копии зареганы одним ключом - блок, а если заnullить продукт, тут и ключи не нужны, а значит и не вычислить утечку. Да и что помешает обnullить эту самую метку? Тогда опять встает вопрос о более глобальной системе учёта проданных ключей и копий продукта.
Отсюда три варианта:
1) Выносить ядро в облако (следовательно доп. затраты) и заморачиваться над секьюрностью взаимодействия API
2) SaaS и нагрузка на наши сервера или облако (следовательно доп. затраты) + API При DDoS-атаке накроются все пользователи (следовательно доп. затраты на услуги QRATOR или подобных компаний)
3) Кодировать (во-первых, можно раскодировать и обnullить; во-вторых, пользователь, который заплатил свои кровные лишается возможности перестроить систему "под себя", а многим это действительно необходимо)
Ну есть и еще вариант, забить на всю эту канитель и уйти в опенсорс ;)
@zelenin я хоть и очень плохо разбираюсь в системах защиты, но знаю точно, Zend - не панацея, дезендеров куча, некоторые за денюжку, многие бесплатно. Про ioncube вроде как тоже слухи ходят, что научились ломать. Достаточно в поиске набрать Ioncube Decoder. Вот если есть еще какие энкодеры, можно попробовать. Хотя тут опять тоже два минуса:
1) нужен декодер на площадке клиента
2) пользователь, который заплатил свои кровные лишается возможности перестроить систему "под себя"
ну 2 не существенно, так как кодировать можно лишь часть кода.
@zelenin Проблема ровно один раз, потом же распространять можно взломанную, и тут мы возвращаемся к исходной ситуации. @medvedhack Посмотрите, например, на Unreal Engine - ситуация немного другая, но факт в том, что они дают полностью открытые исходники.
Если Adobe Photoshop ломают в течении суток, то с PHP кодом и подавно.
Open Source тоже вариант, но тогда модель заработка будет иной.
@nazarpc взлом ПО на PC и взлом закодированного ПО - разные вещи. С Фотошопом ситуация опять же не такая, как вы описываете - после смены системы активации лет 8-10 назад ФШ не могли сломать несколько месяцев. Но после взлома используется практически один и тот же ход, а последние 3-4 версии так точно одним и тем же патчем ломаются.
@zelenin Не важно. Автоматические раскодировщики есть, так что суть проблемы не важна. Ну и я бы, например, никогда не купил кота в мешке без возможности поправить что меня не устраивает.
@nazarpc Совершенно верно про кота, поэтому и хотелось бы отдавать чистенькую копию. @zelenin Вся идея и задумывалась ради заработка, ибо клиенты уже есть =) Просто на опен соурсе не заработать таких денег, а ждать донат от добрых пользователей... можно с голоду и коньки отбросить. Ну эт я образно конечно все и сильно утрирую. Тем не менее суть такова
@nazarpc вы сами говорите, что не знаете ситуацию на рынке кодировщиков, а сейчас утверждаете, что есть ДАЖЕ автоматические декодеры. Нет, они конечно может и есть, но не на все же кодеры. А раз мы обсуждаем не конкретный ломающийся кодер, то это по факту неломающийся. Например свеженький ионкьюб.
@zelenin Последний взломали даже быстрее. А то, что там почти не изменился алгоритм зашиты в очередной раз доказывает, что в этом нет большого смысла. Те, кто покупает софт - будут продолжать это делать, а те, кто пользуется ломанным - подождут, и будут дальше пользоваться взломанным.
@medvedhack моем нение - продавайте поддержку и обновления. Мой опыт работы с закодированным ПО - гемор. Пример: был в конторе скрипт старенький, но работающий, с огромной набитой базой. При перезде на новый сервер не смогли его запустить, поскольку php 5.5, а на тот момент не было либы ионкьюба под php 5.5.
@zelenin обновленная версия точно также может появиться в сети, как очередная обновленная cms-ка :(
Может правда продавать клиентам уникальные ссылки на скачивание продукта, модулей и обновлений... Но тогда нужно либо поднимать цену, либо дальнейшее развитие просто не окупится. Уже третью неделю не можем найти золотую середину