2008-09-26 4 views
18

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

+1

Как упоминалось ниже, блокировка на основе аппаратного обеспечения делает боль больной даже для оплаты пользователям. Я предпочел бы как-то проверить, что другой компьютер использует одну и ту же лицензию где-то в сети (лицензия указывает также, сколько пользователей разрешено использовать ее) и перестает безмолвно, если лицензия отменена: просто сделайте свою программу аварийной с не столь явным например, сообщение об ошибке. Платя клиенты свяжутся с вами, если это когда-нибудь случится, пираты просто перейдут на другое программное обеспечение ... –

ответ

1

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

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

0

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

1

Если ваше программное обеспечение работает под виртуальной машиной, оно будет работать под любым количеством клонированных виртуальных машин. Поэтому единственный вариант, по-видимому, предотвращает его запуск под виртуальной машиной вообще. Вот статья об обнаружении виртуальной машины: Detect if your program is running inside a Virtual Machine и одна о thwarting.

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

8

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

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

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

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

(удачи сказать вашему боссу, что, хотя ...)

+1

Я согласен, пираты будут пиратами - драконовские соглашения о лицензировании только вредят реальным конечным пользователям. – Ycros

+1

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

+0

@jake: так же, серверы лицензий позволяют использовать как можно больше рабочих станций. – BCS

0

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

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

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

+1

Я бы предположил, что изменение MAC было для более практической причины, на самом деле: что, по вашему мнению, произойдет, если две виртуальные машины с одним и тем же MAC-адресом будут подключены к одному и тому же (виртуальному) ethernet? – SamB

6

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

1

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

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

+8

Неправда. Существует три разных типа пользователей: а) те, кто никогда не будет пиратствовать в программном обеспечении, либо из-за этических соображений, либо потому, что это не стоит беспокоить. б) Те, кто будет пиратировать, если это легко сделать (т. е. просто клонировать мгновенную виртуальную машину, где уже лицензировано ваше программное обеспечение). c) Те, кто обладает навыками взломать любой механизм борьбы с пиратством, который вы хотите внедрить. Имеет смысл установить базовую защиту для пользователей в категории «B». Не беспокойтесь слишком много о C - они всегда найдут способ. –

+0

Я утверждаю, что клонирование виртуальной машины не является составной частью «простой в использовании», независимо от вашего набора навыков, выполняемого приложением, а затем становится болью. Другие пороги для «легкого» могут отличаться, но я не думаю, что (без доказательств) достаточно будет иметь значение. – BCS

2

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

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

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

Адам

+0

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

+1

@ david - устройства Dongle, особенно USB, не могут совместно использоваться клонированными виртуальными машинами, к чему относится OP. –

+0

Если вы можете обнаружить повторяющиеся идентификаторы CPUID, то нет * причины * для предотвращения двух экземпляров с одинаковым CPUID в любом случае: просто считайте это как два экземпляра и сделайте с ним! – SamB

7

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

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

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

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

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

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

+0

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

+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^