Code Protection and Obfuscator For .Net, Licensing And Copy Protection for .Net, ActiveX and MFC

An Effective And Hassle-Free Machine Locking Scheme For Software Copy Protection & Licensing

Many software developers today wish to use a machine lock/hardware lock based licensing strategy to ensure adequate copy-protection for their software. However, it is important to devise a hassle-free scheme so that honest paying customers are not annoyed or made to jump to hoops to simply use your software. This article discusses how a secure and effective, yet hassle-free machine-locking scheme can be used to license your software using CryptoLicensing, our licensing, copy-protection and hardware-locking solution for software licensing.


Hardware Locked Licenses - A Bad Approach

A common mistake when devising a hardware locking scheme is to couple it too tightly with the hardware. Many such schemes use combination of multiple data like the CPU ID, motherboard ID, or the hard disk serial to derive a machine code. The drawback of using such a scheme is that even if a single hardware component changes, the entire machine code becomes invalid and license validation fails. Consequently, the customer has to get a new license code for the new hardware configuration. You risk annoying and angering legitimate paying customers if all of a sudden after some hardware upgrade, they find that their license is no longer working. Also consider the time required for you for administration and issuing of the new machine-locked licenses for these customers.


Hardware Locked Licenses - A Passable Approach

The above scheme can be improved by using a fuzzy matching of hardware characteristics. In this scheme, the machine code is still generated from hardware characters, but instead of requiring an exact match of all the hardware components, a partial match is also acceptable. So if just one of the hardware component changes, the machine code is still valid, but if two or more components change, the machine code is considered invalid. You can decide how strict you want to be with the matching. You can also assign priorities to the various hardware components such that a change of CPU ID will cause the machine code to become invalid, but a hard disk will not have any effect.


Hardware Locked Licenses - The CryptoLicensing Approach

CryptoLicensing uses a much better alternative to the above approaches. Each machine is identified by a hash of its computer name. This is a simple yet relatively foolproof way to uniquely identify machines. Note that the hash of the computer name is used instead of the computer name itself to protect the customer's privacy - if this is not a concern, then the actual computer name can be used.


Using Computer Name As Machine Code For Hardware Locked Licenses - Pros And Cons

Using the computer name as the machine code ensures that the activation and machine-locking scheme is free of common problems plaguing hardware-locking as described above. Even if the user's hardware profile changes- maybe the LAN card or hard disk changed - the computer name will most likely remain the same and will not disrupt validation of machine-locked licenses.

Using computer names also offers a high amount of security because users are unwilling or often unable (in a corporate environment) to change their computer name just for the sake of being able to use pirated copy of your software.



CryptoLicensing's system of using the computer name as the machine code offers an excellent balance between security and resistance to machine changes (and the resultant hassle for your customers to request a new license key which will work on the new machine configuration). First, your users have to somehow find that you use the computer name as the machine code. Even then, many users are unable to change machine code - maybe because they are novice computer users or because their setup (for example, in a corporate environment) does not allow them to change computer name. Note that since its not possible for a single network to have two computers with the same name, it is not possible to use the same license on multiple machines in a corporate network. In case of a home user, to use the same license key on another machine, he would have to choose a machine over a different network. Many users will not find it worth the hassle to change computer names and networks just to be able to use a pirated copy.


More Information About CryptoLicensing - .Net Edition | MFC Edition| ActiveX Edition
          Download CryptoLicensing - .Net Edition| MFC Edition| ActiveX Edition
Have a question? Email us.