Page 1 of 1

WebLM

Posted: Tue Jan 21, 2014 8:50 am
by Killbrum
Доброго времени суток! Интересует несколько технических вопросов по поводу WebLM. Постараюсь всё структуризировать для более понятного осмысления происходящего.

Имеем:
  • Есть лицензия VMProt Ultimate полностью проплаченная.
  • Около 50 клиентов которые активно добавляются/удаляются.
  • Около десятка недоброжелателей и целой кучи любителей халявы. В общем всё как всегда :)
Проблемы:
  • Хочу сделать автоматическую раздачу ключей/кодов активации/продажу продукта без моего участия.
  • Некоторые хитрые люди попросту переводят локальную дату. Собственно ExpireDate можно смело считать бесполезным полем.
Вопросы:
  • Пользуюсь сервисом который позволяет продавать только ключи. Установить/дописать модуль веб-магазина нет возможности. Можно ли мы передать какой-то запрос на WebLM чтобы установить имя пользователя, его почту и другие нужные данные? Например при регистрации ключа?
  • Можно ли во время работы клиента отправить запрос на сервер и получить информацию валидный ли ключ или нет? Например на сервере мы заблокировали пользователя и хотим чтобы его ПО было заблокировано. Или же у пользователя кончился ExpireDate и ПО должно быть переведено в триальный режим.

Re: WebLM

Posted: Tue Jan 21, 2014 4:40 pm
by Admin
Пользуюсь сервисом который позволяет продавать только ключи. Установить/дописать модуль веб-магазина нет возможности. Можно ли мы передать какой-то запрос на WebLM чтобы установить имя пользователя, его почту и другие нужные данные? Например при регистрации ключа?
WebLM может работать как внешний кейген. Достаточно прописать в таблицу регистраторов доверенный IP адрес, с которого могут приходить запросы на создание ключей/кодов активации. Затем у продуктов скопировать "Keygen URL". Такой URL представлен в виде шаблона, поля которого заменяются на реальные значения при покупке на стороне регистратора.
Можно ли во время работы клиента отправить запрос на сервер и получить информацию валидный ли ключ или нет?
Нет, т.к. такой способ очень ненадежен. Достаточно будет подменить адрес вашего сервера на собственный и на любой запрос отправлять ответ "Ключ валиден".
Например на сервере мы заблокировали пользователя и хотим чтобы его ПО было заблокировано.
Заблокированные лицензии можно экспортировать в VMP файл и использовать его при защите следующей версии программы. КЛючи из блеклиста становятся невалидными.
Или же у пользователя кончился ExpireDate и ПО должно быть переведено в триальный режим.
Тогда уж проще получать текущую дату извне и самим сравнивать её с датой из ключа :))

Re: WebLM

Posted: Tue Jan 21, 2014 6:12 pm
by Killbrum
Admin wrote: WebLM может работать как внешний кейген. Достаточно прописать в таблицу регистраторов доверенный IP адрес, с которого могут приходить запросы на создание ключей/кодов активации. Затем у продуктов скопировать "Keygen URL". Такой URL представлен в виде шаблона, поля которого заменяются на реальные значения при покупке на стороне регистратора.
Увы, но у них нету Keygen URL. Вообще плохо то что пользователь/программист не может передать данные с ключем. Это стандартная практика. Человек вводит ключ и вводит регистрационные данные. Данные закрепляются за ключем.
Admin wrote:Нет, т.к. такой способ очень ненадежен. Достаточно будет подменить адрес вашего сервера на собственный и на любой запрос отправлять ответ "Ключ валиден".
Полностью не согласен. Что мешает поднять SSL/TLS/VPN/SSH или же взять и сделать свой протокол который будет накрыт тем же AES или же сделать ручную пермутацию и накрыть чем угодно. Как следствие если подменить адрес то ответ от сервера будет далеко не вразумительным - блокируем по причине подмена. Кто будет ломать тот же AES чтобы понять протокол? Да никто. Если сломают уровнем ниже (до отправки данных на сервер) это уже будет проблема протектора/программиста. В любом случае это гораздо лучше чем текущая реализация которая сводит на нет поле ExpireDate.
Admin wrote: Заблокированные лицензии можно экспортировать в VMP файл и использовать его при защите следующей версии программы. КЛючи из блеклиста становятся невалидными.
А Вы сами то часто выпускаете новые версии? :) Конечно с одной стороны - вариант. Но с другой? Порой куда важнее заблокировать копию "уже и сразу"
Admin wrote:Тогда уж проще получать текущую дату извне и самим сравнивать её с датой из ключа :))
Так я об этом и говорю. Получить дату. Получить данные о лицензии. Всё проверить.

Что я имею в виду:

Есть тот же WebLM. При добавлении ключа человек отправляет и остальные данные регистрации. А на сайте я например генерирую 1000 ключей которые загружаю в магазин. Собственно человек привязывается к ключу (ключ вида AAAA-AA-AAA-AAA; или как-то так). Дальше при надобности я увеличиваю ему время пользования. Ключ не меняется. Ничего не меняется. Просто когда клиент отправляет запрос на сервер он ему отправляет мол "валиден до". Всё это можно сделать любым защищённым методом.

Re: WebLM

Posted: Wed Jan 22, 2014 2:59 am
by Admin
Полностью не согласен. Что мешает поднять SSL/TLS/VPN/SSH или же взять и сделать свой протокол который будет накрыт тем же AES или же сделать ручную пермутацию и накрыть чем угодно. Как следствие если подменить адрес то ответ от сервера будет далеко не вразумительным - блокируем по причине подмена. Кто будет ломать тот же AES чтобы понять протокол? Да никто. Если сломают уровнем ниже (до отправки данных на сервер) это уже будет проблема протектора/программиста. В любом случае это гораздо лучше чем текущая реализация которая сводит на нет поле ExpireDate.
Никто не будет ломать никаких протоколы :)) Поставят WebLM на свой сервер, ваш адрес подменят через hosts, ну а дальше дело техники - на все запросы на стороне WebLM будут возвращать "Ключ валиден".
А Вы сами то часто выпускаете новые версии? :) Конечно с одной стороны - вариант. Но с другой? Порой куда важнее заблокировать копию "уже и сразу"
Если пользователь хочет вас обмануть - он обманет при любом раскладе. Начиная с того, что отрубит программу от инета сразу после активации. Зачем придумывать всякие мегамонстральные механизмы, которые "ломаются" за 2 минуты штатными средствами любого фаирвола?
Есть тот же WebLM. При добавлении ключа человек отправляет и остальные данные регистрации. А на сайте я например генерирую 1000 ключей которые загружаю в магазин. Собственно человек привязывается к ключу (ключ вида AAAA-AA-AAA-AAA; или как-то так). Дальше при надобности я увеличиваю ему время пользования. Ключ не меняется. Ничего не меняется. Просто когда клиент отправляет запрос на сервер он ему отправляет мол "валиден до". Всё это можно сделать любым защищённым методом.
Про подмену вашего сервера активации я уже писал - на любой запрос будут возвращать максимальную дату и т.п.

Re: WebLM

Posted: Mon Jan 27, 2014 8:14 am
by Killbrum
Вы меня не поняли. Я вел к тому чтобы добавить API в WebLM такой же как и у обычного VMProt Ultimate. При надобности на него повесить защиту.

Re: WebLM

Posted: Mon Jan 27, 2014 11:13 am
by Admin
Я то вас прекрасно понял, а вот вы меня почему-то не хотите понимать. Любая проверка на стороне WebLM обходится 2-мя способами:
1. Пользователь отрубает прогу от инета сразу после активации (штатными средствами фаирвола).
2. Пользователь подсовывает программе собственный WebLM (через модификацию hosts), который на все запросы от программы возвращает "правильный ответ".

Re: WebLM

Posted: Mon Jan 27, 2014 3:17 pm
by V.I.R.U.S.
Admin wrote:Я то вас прекрасно понял, а вот вы меня почему-то не хотите понимать. Любая проверка на стороне WebLM обходится 2-мя способами:
1. Пользователь отрубает прогу от инета сразу после активации (штатными средствами фаирвола).
2. Пользователь подсовывает программе собственный WebLM (через модификацию hosts), который на все запросы от программы возвращает "правильный ответ".
1) Да, пользователь может отрубить программу от интернета (или интернет сам отрубится вдруг), но никто не мешает сделать сколько нужно запросов на свой сервер, если он недоступен, то принять какие то меры.

2) Лично я WebLM вообще не использую, хотя покупал когда то лицензию вдовесок к своей VMP Ultimate. но так и не понял где новые версии располагаются) Есть только так сказать стартовый дистрибутив, полученный при покупке)

Есть сервер, есть выделенный IP, есть SSL сертификат, есть шифрование ARC4 с обменом ключей по протоколу HTTPS.
В клиенте проверяется, от моего ли сервера?
На сервере проверяется, от моей программы?

Хватает более чем =)

Re: WebLM

Posted: Mon Jul 14, 2014 4:34 am
by enotlesnoy
Всем здравствуйте.
Скажите пожалуйста, а можно ли программно изменить адрес сервера активации, или он "прошивается" на этапе навеса защиты?
Сразу скажу для чего мне это нужно. Допустим, у меня есть два сервера WebLM (один резервный). При запуске программа проверяет основной сервер и, если он недоступен, меняет адрес на резервный.

Re: WebLM

Posted: Mon Jul 14, 2014 5:07 am
by Admin
Да, адрес сервера прошивается на этапе обработки вмпротектом и извне меняться не может. По поводу использования резервного сервера - а как вы потом собираетесь синхронизовать БД с основным сервером?

Re: WebLM

Posted: Tue Jul 15, 2014 8:52 am
by enotlesnoy
Спасибо за ответ. Это та информация, которую я и хотел узнать.
Что касается синхронизации, то планировал это делать вручную, поскольку мой проект не предполагает Вселенских масштабов. :)