Схема лицензии, защита от спуфинга и отзывать возможности

, это мой первый вопрос, поэтому, пожалуйста, будьте осторожны ...

Я работаю над программным обеспечением, которое я хотел бы защитить, используя какое-то лицензирование. схема. A basic scheme would be to generate some "unique" key for a user. The user sends this key and a registration code when he wants to register the software and receives an activation code.

When the application runs it validates the activation code by comparing the "unique" key and a datablob received by decrypting the activation code.

This is fair and quite simple to implement, one can choose different crypto algorithms etc. however this scheme lacks two properties:

  1. If the user manages to spoof hardware signature etc. to produce the same "unique" key on another computer he could use the same license data.
  2. If the user decides to uninstall the application and wants to move it to another computer, there is nothing that prevents him from using the old license data again at the old computer and still obtaining new license data for the new installation.

Do you have any suggestions on how to resolve these issues?

One idea I had was to add some random data to the "unique" key, this random data would be stored in an obscure way, if the user deinstalls the application this random data would be removed, and some kind of hash with the previous random data and the license data would be generated which could be sent to me to verify that he really have uninstalled the application and made me sure that he wont be able to use the previous license data again since the random data had changed.

Over and out, for now...

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

Кроме того, из-за этого программное обеспечение, скорее всего, не будет работать внутри ВМ, но это хороший момент, и я об этом не думал.

Приложение не вызывает регулярно, если доступно сетевое соединение, пользователь получает возможность сделать более автоматическую регистрацию, в противном случае он / она получает регистрационный ключ, вводит его в программное обеспечение и получает идентификатор установки, который является предоставил мне, Регистрационный код + идентификатор установки генерирует ключ активации, который пользователь получает от меня, и затем разблокирует программное обеспечение.

Я ищу хорошие / выполнимые решения по двум пунктам. Подмена оборудования, отзыв лицензионных ключей, т. Е. Чтобы убедиться, что пользователь не может использовать один и тот же regcode + код активации.

Спасибо за ваши отзывы

Нет необходимости

6
задан Daniel Wedlund 6 August 2010 в 21:36
поделиться