@Lil_BowlLeen

Предложения по лицензированию ПО на ВМ?

Как происходит лицензирование ПО на ВМ? Задача: необходимо продумать механизм лицензирования ПО. Текущая реализация программного лицензирования ПО подразумевает создание зашифрованного файла с параметрами лицензии. Шифрование осуществляется с помощью ключа, который генерируется на основе фиксированного набора параметров операционной системы. Эта плохо работает в случае виртуальной машины, у которой при миграции между хостами гипервизора используемые параметры могут меняться, что приводит к невозможности дешифровки файла лицензии. Задача, в решении которой требуется экспертная помощь: придумать способ шифрования и дешифрования файла лицензии, который с одной стороны должен быть привязан к параметрам конкретной инсталляции ОС, с другой – допускал изменение какого-то количества/набора этих параметров без потери возможности дешифровать файл лицензии со стороны ПО То есть достаточно защищал от несанкционированного запуска ПО, с другой – не мешал той же миграции по хостам гипервизора.
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Сделайте плавающую лицензию.
Примерный алгоритм

1. Вычисление хэша матери проца и дисков отправка к вам на сервер и ввод логина и пароля.
2. если хэши совпадают то просто запуск, но тут главное первый запрос на сервер

В итоге программа запускается в 1 экземпляре, если вторая машина регистрируется то все остальные билеты протухают
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Adamos
@Adamos
Я бы сказал, что этот вытащенный из прошлого века намордник для клиента в принципе не будет работать с виртуалками.
С одной стороны, попытки что-то к чему-то привязать создадут лояльному клиенту (а значит, и вашей поддержке) поле грабель.
С другой - хитрован, банально клонировавший виртуалку со всеми ее настройками, будет пользовать ваш софт столько раз, сколько захочет, и плевать он хотел на ваши защиты.

А если так или иначе предполагаются запросы к вам на сервер - вообще нет никакого смысла маяться дурью, для идентификации одного клиента с одной лицензией за глаза достаточно одной строчки UUID, генерируемой при установке вашего софта.
Ответ написан
Комментировать
Если софт - это что то корпоративное, требующее регулярных обновлений и поддержки, то можно скомбинировать:
1. Генерить ключ в зависимости от MAC-адреса. Клиент регистрирует ключ на портале поддержки и получает файл лицензии. Виртуалку склонировать это не помешает, однако в одной сети с одним маком будет неудобно;
2. Клиента на портале поддержки регистрируют только по корпоративным емейлам и в привязке к текущему контракту. Ну и поддержка должна быть полезной, а не для галочки;
3. Доступ к обновлениям - только для зарегистрированных клиентов;

Все это не помешает клонировать виртуалки, однако во совокупности компании проще купить, чем ловить геморрой с взломанным софтом без поддержки.
Да и принять для себя, что те кто сильно заморочился и готовы пользоваться без поддержки - скорее всего денег вам в любом случае не принесут.
Ответ написан
Комментировать
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Как только Ваш продукт станет интересен более чем полутора калекам - на него напишут кейген и все ваше шифрование пойдет лесом. Или сделают патч, который позволит принимать лицензию, даже если там написано слово #опа.
Единственный рабочий вариант - это проверять лицензию на сервере
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы