For the most control, protected applications typically rely on some form of product activation process. A good licensing system will offer solutions for computers directly connected to the internet as well as for those that are not.
During application startup, the protected software application will open and read its license file. This file can contain many license parameters that govern the features the customer is allowed to use. It may also read a computer fingerprint.
A computer fingerprint is very similar to how your fingerprints can identify you uniquely as a person. The licensing system will read one or more hardware identifiers so as to uniquely identify a physical computer as accurately as possible.
To avoid passing around potentially user-identifiable information, the computer fingerprint is often hashed. For some licensing systems (such as the SoftwareKey System), fingerprinting isn't limited to computer hardware information. Some applications have their own unique data (e.g. tax ID in the case of medical billing software, database connection strings for a client / server application, other custom information such as an external piece of hardware with a serial number which can be read), which can be perfect for fingerprinting during software activation.
Most developers use a licensing system for copy protection purposes - to make sure that the customer is using the software within the limits of their license agreement. In order to do this, a computer fingerprint must be stored in the license file. During application startup, the software will open/validate the license file and compare the fingerprint of this computer's hardware to the fingerprint stored in the license file (which was previously approved).
When you trust your customer and you want to allow their IT department to mass distribute your software across the company's network, a Volume License File can be used. This is nothing more than a license file that does not have a fingerprint.
During application startup, the software will open/validate the license file and read the parameters under which it should run. It does not need to perform any type of fingerprint comparison. Any computer with the valid license file can simply run the software, which is why you would only use this with a trusted customer.
Product activation typically involves communication between your software running on the customer's computer and an authoritative body that has the necessary privileges to approve activation requests. This authoritative body can be a customer service representative at your office or a central licensing server located on the internet.
The software can be activated with a simple two-step process - challenge and response. The first step involves generating a secure request from the computer being activated. A computer fingerprint will be included in the challenge request along with other information to identify what license is being activated on this computer. The authoritative body or computer can generate the secure activation response that ultimately creates an encrypted license file on the computer being activated with the license parameters along with the approved computer fingerprint.
Because the encrypted license file contains a computer fingerprint tied to a specific computer which was previously-activated, copying this file to a different computer will not allow the customer to use the license on that second computer.
They can. You can set parameters with the central authoritative body as to how many times a specific customer's license can be activated. Typically, when the user goes through the challenge / response process, an activation counter is decremented. Once the counter reaches zero, the customer will no longer be able to activate the software on a new computer (at least until they deactivate a computer first or contact you for a license reset).
The product activation process is quite easy when both the computer being activated and the central licensing server are both connected to the Internet. Activating a disconnected computer still requires a challenge / response process since:
When internet access is not available on the computer being activated but access is available through a nearby computer, it is possible to use a thumb drive with the request / response process:
The disconnected computer now has an encrypted license file approved with the fingerprint matching the hardware passed up in the request.
It is even possible to securely activate disconnected computers running in very remote locations, if telephone access is available. A volume license file containing all of the license parameters can be taken to the remote site along with the software installer. A simple exchange of numbers over the telephone can properly "approve" the volume license file for use on this specific computer. In this case, two license files will be used on the activated computer. During application startup, the software will open/validate both license files to make sure everything matches.
The SoftwareKey System has product activation features covering all of the cases described in this article, from volume licenses to activating very remote computers without Internet access.
Be up and running in minutes. Try a fully-featured 30-Day trial of the SoftwareKey System Protection + Automation Bundle. Use our hosted server, which has no server software to install and configure. Transition seamlessly when you purchase - no wasted work.
Mike Wozniak is one of the co-founders of SoftwareKey.com and responsible for marketing, content and product strategy. When he isn't plotting new ways to help customers solve licensing and business automation challenges, he likes to travel and entertain guests who come to visit the Orlando area. He also writes most of the licensing tips here.
How Your Software’s Environment Affects Copy Protection and Software Protection
Why Software Licensing is a Smart Move
Licensing for non-visual software and services
How to Protect a Web Application with Licensing Controls
4 things developers often overlook when securing their software
5 Essential Strategies to Boost Software Revenue through Licensing