Подтвердить что ты не робот

Как защитить приложение от дублирования виртуальной машины

Мы используем стандартные элементы, такие как жесткий диск и идентификатор CPU, чтобы блокировать наши лицензии на программное обеспечение для физического оборудования. Как мы можем уменьшить риск установки клиентов на виртуальную машину, а затем клонировать виртуальную машину, минуя наше лицензирование?

4b9b3361

Ответ 1

Лицензия. Сообщите своим пользователям, что они не могут запускать нелицензированные копии.

На данный момент мы фактически не покупаем лицензию на программное обеспечение, потому что поставщик боится виртуальных машин: инфраструктура нашего отдела переводится в централизованное виртуализованное решение, и нам приходится бороться с продавцом, который будет разрешен купить лицензию для своего программного обеспечения!

Не бойтесь платить пользователям.

Люди, слишком обманутые, чтобы покупать лицензии, будут искать другое решение и будут слишком много хлопот.

(удачи, рассказывая своему боссу, что...)

Ответ 2

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

Если виртуальная машина дублируется, в следующий раз, когда он запрашивает сервер "Я действительно?", уникальный идентификатор будет некорректным для него или для другой виртуальной машины. Оба не будут продолжать работать.

Вам нужно будет определить, что делать, если сервер опускается, или сеть опускается, чтобы клиент не мог связаться с сервером. Вы сразу отключите свое программное обеспечение? Плохая идея! Не раздражайте своих клиентов. Вы захотите дать им льготный период. Как долго это должно быть? Несколько дней? Недели?

Скажем, вы даете им 1-месячный льготный период. Теоретически они могут клонировать родительскую виртуальную машину сразу после ввода лицензионного ключа, а затем восстанавливать другие виртуальные машины к этому клону незадолго до окончания льготного периода, отключая доступ к сети. Это было бы неприятностью для ваших клиентов, хотя бы для того, чтобы иметь пиратские дополнительные копии вашего программного обеспечения. Вы должны определить, какой льготный период не будет беспокоить ваших законных клиентов, надеясь, что вы получите защиту, которую вы ищете.

Дополнительная защита может быть достигнута путем проверки правильности установки часов VM. Это предотвратит пиратский подход.

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

Ответ 3

Нет причин для блокировки физической машины. Последнее, что я проверил, компьютеры могут сломаться, а затем пользователю, вероятно, будет не достать неудобство не только мертвому компьютеру, но и позвонить вам, чтобы программное обеспечение было заблокировано на новом компьютере. Если вы должны использовать draconian license management, используя (локальный) сервер управления и иметь текущие копии, убедитесь, что у них есть лицензия каждые несколько минут. Просто поймите, что, что бы вы ни делали, если кто-то действительно хочет использовать ваше программное обеспечение, не платя вам, они найдут способ.

Ответ 4

Вам нужно что-то за пределами "аппаратного обеспечения" компьютера для аутентификации. Большинство компаний выбирают аппаратные ключи (донглы) для программного обеспечения с высокой стоимостью, когда пользователи будут с ним мириться.

Другие компании используют онлайн-методы - если несколько пользователей с CPUID и другим оборудованием одновременно используют заданную лицензию, затем запрещают другое создание экземпляра или закрывают существующий экземпляр.

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

-Adam

Ответ 5

Нет многого, что вы можете сделать AFAIK, за исключением периодической онлайн-активации.

У нас есть проблемы с физическими машинами Norton-ghosting. По-видимому, серийные номера жестких дисков также призваны.

Ответ 6

Если ваше программное обеспечение работает под VM, оно будет работать под любым количеством клонированных виртуальных машин. Поэтому единственный вариант, по-видимому, предотвращает его запуск под виртуальной машиной вообще. Вот статья об обнаружении виртуальной машины: Обнаружение, если ваша программа запущена внутри виртуальной машины и одна о thwarting it.

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

Ответ 7

"Не беспокойтесь" - это короткая версия. Для ваших клиентов это достаточно просто, чтобы, если они это делают, либо они не будут платить за то, что они используют, независимо от того, что (они не будут использовать его, если они не могут получить его бесплатно), или вы просто плоские (как у вас вышивка.)

"Настоящий" клиент обычно будет платить за вещи. Из того, что я видел, такие места, как предприятия, обычно считают, что это не стоит усилий.

Ответ 8

Я знаю, что какое-то программное обеспечение виртуальной машины (по крайней мере, VMware) имеет функции, которые позволяют программному обеспечению обнаруживать виртуализацию. Но нет надежного способа, в любом случае, можно патчить такие функции. Таинственно изменяющаяся производительность (из-за пиков процессора в хосте) также может быть использована, надежность сомнительна. Существует множество "признаков виртуализации", но они, как правило, не на 100% надежны.

Ответ 9

Это проблема, и любой здравомыслящий пользователь сможет победить почти все, что вы с этим поделаете. Unsavvy пользователи могут быть пойманы поведением, таким как игрок VmWare, который изменяет MAC и другие идентификаторы виртуальной машины, когда вы ее перемещаете, предположительно, кивая на эту проблему.

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

Но, в конце концов, я согласен, что все это относится к надлежащему лицензионному языку и некоторым клиентам, которым вы доверяете. Если вы думаете, что люди дурят ​​вас таким образом, вы не должны продавать свое программное обеспечение им в первую очередь...