Как защитить приложение от дублирования виртуальной машины - PullRequest
19 голосов
/ 26 сентября 2008

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

Ответы [ 9 ]

8 голосов
/ 26 сентября 2008

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

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

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

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

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

7 голосов
/ 21 ноября 2013

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

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

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

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

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

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

6 голосов
/ 07 октября 2008

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

2 голосов
/ 07 октября 2008

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

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

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

-Adam

1 голос
/ 07 октября 2008

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

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

1 голос
/ 26 сентября 2008

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

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

1 голос
/ 26 сентября 2008

AFAIK не так много, кроме периодической онлайн-активации.

У нас проблемы с людьми. Нортон-призрак Физические машины. Серийные номера жестких дисков, видимо, тоже призрачны.

0 голосов
/ 07 октября 2008

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

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

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

0 голосов
/ 26 сентября 2008

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

...