I am trying to find a good way of protecting a program that needs to manage its users. The program is targeted for a very specific market that has a low chance of being people going out of their way to crack or pirate it, so that is not the issue.
Currently we bind the user by username / MAC address and that is a very bad way of securing the software due to issues with laptop docks or wifi.
I need a way figuring out how to bind the user to a machine so if they try to use the same software on another computer it will not work.
-Does not need to be totally secure, just needs to have less rate of failure
It will be a windows only environment from xp-> windows 7 that could be on anything from laptop to servers and VMs.
Thanks
Usually they bind to multiple ID-s (HDD serial number, MAC address, processor serial, etc.) and check that at least some of the ID-s are matching (so a replaced HDD will not break the sw). But the list of hw/licence ids are quite platform specififc, so without knowing that there is no exact answer.
Edit: (if you bind to a single MAC address, you could still perform quite well, assuming you're using the built-in LAN interface(s), not the active one) (for servers its more difficult, as they usually have multiple LAN if-s, so you would definitely need an id list)