How do you protect your software application from missue? There are two software protection strategies.
Which strategy is right for you is dependent upon your unique needs. Factors to consider include:
Hardware-based software protection uses a piece of hardware, commonly referred to as a dongle or a hardware key. The dongle is integrated with your software so your software only runs when the dongle is present. Hardware-based protection is regarded as the most secure method of software protection because the dongle manufacturers embed security algorithms into the hardware key which run on the key rather than in computer memory.
The cost to implement hardware keys is typically low because the hardware vendors provide programming interfaces and charge a fixed unit fee. There are ususally no upfront fees. The unit cost can be easily calculated and budgetted for.
The time to market is short because the security and licensing functionality is already available. It just needs to be integrated with your software. The software protection solution should use a variety of the functions available to the developer. Just checking for the dongle does not leverage the hardware key. You need to develop your solution in layers, making it much more difficult and time-consuming for hackers to break your software protection scheme.
As stated above, hardware-based software protection provides the highest level of security.
Most hardware keys provide licensing features including demo and trial versions, module or feature toggles and networking and concurrent user options.
Hardware-based software protection provide a flexible software protection solution for both developers and end-users. End-users have the freedom to install the application on as many computers as they wish while developers control how many instances of the application can be in use at any given time. The end-user is not tied to a specific machine to run the application and does not have to worry about computer hardware changes or upgrades affecting the use of the protected software application. Most hardware keys are now driverless operating in HID mode, meaning the developer does not have to support a proprietary vendor driver and the end-user can just plug the device in and the operating system recognizes it, just like a keyboard or mouse. Hardware-based software protection is ideally suited for software vendors selling higher priced software and needed a secure software copy and intellectual property protection solution.
Software-based software protection uses a software key either input by the end-user or derived based upon the hardware configuration of the computer. Simple methods of software protection use a registration or license number, CD Key or password which the user enters and unlocks the software. Inexpensive software applications are great candidates for this method. An enhanced method of software based software protection locks the software application to the hardware ids of the computer, such as network card or hard drive id.
The cost to implement software keys has initial cost and a declining unit cost as volume increases. Vendors providing a software-based protection solution charge a fixed fee or calculate a tiered fee based upon the software developer's estimated revenue. The unit cost is variable based the fixed upfront fee. It is totally dependent upon your unit sales.
The time to market is short using a vendor provided solution because the security and licensing functionality is already available. It just needs to be integrated with your software. Most software-based solutions only check for the presence of the software key .
Software-based software protection solutions are less secure than hardware-based software protection solutions because they reside in the memory of the computer and there are many tools available to the hacker to reverse engineer these software protection schemes..
Most software keys provide licensing features including demo and trial versions, module or feature toggles and some provide networking and concurrent user options.
Software-based software protection solutions are used by software manufacturers who want a lower priced, less secure protection solution. End-users can be impacted by this methodology when the licensing is directly tied to the computer hardware and that hardware fails or needs to be upgraded, rendering the software key invalid.