Developing Applications Using The SoftwareShield System > Introduction to the SoftwareShield System

Introduction To The SoftwareShield System


The SoftwareShield System is a license enforcement and copy-protection system. The licensing and copy-protection features it provides are briefly described below.

What is License Enforcement?

License enforcement is the mechanism by which you can enforce specific license terms (called a license model) between your organization and your clients (the users of your software).  This is performed in a collaborative effort between your application, the ClientProtector Run-Time components, and the deployed license file it manipulates on the clients machine.

See Available License Models for information on the variety of ways you can license your applications using SoftwareShield.

The licensing features you design can be optionally machine locked. If you choose to bind your license to hardware you will enable "Machine Locking". This is a mechanism that essentially encodes the client computers "FingerPrint" into all Activation Request Codes and, in-turn, the Activation Codes you remit to the client. This ensures that even if the client were to give an illegal copy of the program to someone else, along with the Activation Code you had provided for their use alone - that code would not work on the other computer. A machine-locked Activation Code will only work on the exact computer that the client requested the code for (with some specific exceptions - see: FingerPrint). However, there are many important considerations regarding whether you should use a FingerPrint with your Authorization Definitions.

What Is Copy-Protection?

The copy-protection mechanism that SoftwareShield provides is a software/hardware locking mechanism that ensures that the software will not run on any system for which the license does not specifically authorize. This copy-protection mechanism is a FingerPrint locked system very similar to an Authorization Code described above. Once you enable Copy Protection in a SoftwareShield License - Hardware Locking is automatically enabled.

As with other FingerPrint locked Authorization Definitions, this means that once your client purchases the software from you, the code to release copy-protection that you provide them (which works on their system) will not work on any other system. Again, there are important considerations when you are deciding whether or not to copy-protect your application in this manner.

The primary difference between Copy Protection and other FingerPrint locked Authorization Codes is that Copy Protection checks if the host system is explicitly added inside the encrypted license as an Authorized machine every time it starts up. On the other hand, simple FingerPrint locking alone ensures that Activation Codes are used only for the machine which they are intended. This check happens only once, when the code is input and verified, not every time the license starts up.

Parts of The SoftwareShield System:

The SoftwareShield Licensing and Copy Protection System is comprised of several components and applications (depending on your version):

  1. SoftwareShield License Manager (Win32 application)

  2. SoftwareShield FingerPrint Viewer (Win32 application)

  3. SoftwareShield ClientProtector Debug COM Server

  4. SoftwareShield ClientProtector Release COM Server

  5. SoftwareShield Manual-Activator (Win32 application)

  6. SoftwareShield COM-Activator (Enterprise and greater Editions only)

  7. SoftwareShield CheckPoint™ License Server (ISAPI web-server application, Server Edition only)

  8. SoftwareShield Web-Activator (CGI application - Internet and Server Editions only)

In this section, we will give you an overview of all of these elements of the SoftwareShield System and briefly explain how you can use them to realize your organization's licensing and copy-protection needs. We then go on to explain the logic behind the main parts of the SoftwareShield System, and discuss just how strong the system is. We then introduce you to each of the parts of the system, discussing the functionality of each briefly.

Introductory sections: