Licensing – Prevent Product Key Use on Multiple Virtual Machines

licensingvirtual machine

I have a software product. it will probably run on VMs that have no network connection at all.

I want the user to pay for each VM the user runs.

I thought to ask the user for some kind of hardware ID and provide him with serial that is unique for his machine.

But user can just copy the VM image and than have two machines running?

So I thought of having a security dongle. But how can I prevent user from running two VM's on the same machine both connected to the same dongle?

This should be only basic defense so that actual hacking will be required to breach the license and not only spinning one more VM.

Best Answer

A security dongle can easily do what you want, as this is a commonplace requirement. The dongle gives out a sequence of values according to a predetermined pattern. Two copies of your software running consecutively will see two sequences, each valid. Two copies running concurrently will see sequence breaks, where accesses by one copy interrupt the sequence for the other. Talk to your dongle provider for details. That's what they charge money for.

Thinking somewhat laterally, you don't have to solve this problem right away as long as your software expires. Make sure it can only run for some weeks or months and that it needs to be re-activated and/or updated at intervals. It should be easy to ensure that only one copy per licence key can be updated, and that the user would have to then re-clone all VMs. As you learn more about whether you actually have a problem and what shape it is, you can update the software to take increasingly aggressive counter-measures.

It may never be needed. Customers who come to depend on your software but are not paying enough yet are just future sales prospects.

Related Topic