Copy protection is the addition of technical measures to an application to prevent unauthorized copies of the application from being made or used.
Copy protection is the process of adding mechanisms to an application that prevent unauthorized copies of the application being made, usually related to copyright law.
Also known as: Digital Rights Management (DRM)
Copy protection schemes include such things as:
- Registration keys (where the application must be provided with a code by the user before being fully usable, with such a code being generated by the developer for the user after sale).
An example: Microsoft Windows requires a 25 character CD key before being fully usable:
Remote authentication (where the application contacts a server under the developer's control to enable functionality).
Hardware dongles (where a small physical device, provided by the developer, is connected to the user's computer, and queried by the application). The Sentinel HASP is such a dongle.
Effectiveness
It is worth mentioning that all such schemes have a 100% failure rate over time - if someone wants to use an unauthorized copy of your application bad enough, you absolutely will not be able to stop them with technical measures. Many large enterprises have spent billions of dollars and many man-years attempting to make the "uncrackable" application, and none have succeeded after eventually getting the attention of the pirates.
You should carefully consider the following before implementing any copy protection schemes:
Is the time I'm going to spend, ultimately to fail, worth more or less than fixing other bugs or adding other features to my application?
If my scheme doesn't work flawlessly, is the annoyance my users will put up with (remember, such a scheme only helps you, not your users) worth my support time and the loss of goodwill incurred?