views:

88

answers:

3

hi, I need to create a software license key, and one of the requirement is to bound the key to a particular server, to avoid image duplication. 1. what is the preferred way to achieve this task (CPU, MAC, other) ? 2. Can it be achieved on virtual machines?

Extra credits for to cross-platform approaches :)

Thanks,

+3  A: 

Follow the same approach as the Windows activation does. Collect the information about hardware, convert it into some sort of hash and here is your machine key.

Check here what hardware it watches:

Windows Product Activation

Windows Product Activation (WPA) on Windows XP

Developer Art
+1  A: 

The tricky thing is to find a unique key determined by the above, with some reduncancy. I.e. to allow that either CPU(s), MAC or harddisk is replaced, but not all of them. Actually, CPU-ID is less likely to change as MAC and harddisk, so it is more suitable. It can be acchieved on virtual machines, although virtual machines can also clone these IDs. In that case you may want to combine an active license with a single internet based server which validates the activity; this way if VM's are cloned, only one can be active.

Adriaan
+4  A: 

Please don't do anything like this: all you are doing is pissing off your legitimate customers. The bad guys will find a way around whatever you do.

The last thing any customer wants is to be up at 4:00am trying to convince a piece of software they paid good money for that, yes, it is still running on the same machine as before only the network card/ disk controller/ motherboard/ etc. has been changed.

Ken Keenan
The cost to the developer and the customer are likely to far exceed any possibly savings from avoiding piracy. All things being equal, a smart customer will pick the product without the "protection", since it punished the paying customer more than it could any pirate.
Steven Sudit
A strange game. The only winning move is not to play.
Imagist

related questions