ip
infini
pass
 
intellectual property
intelligent protection
home page
overview
technical details
faq
news
costs
downloads
resources
contact us today

design - eggworx.com
hosted by platformlabs.com
microsoft platform specialists

INFINIPASS LICENSE CONTROL SYSTEM

Description of Operation

The INFINIPASS system is designed to enable software publishers to grant and control software licenses using the internet.

The INFINIPASS client software module converses with the INFINIPASS server using the http protocol on port 80. The protocol and port were chosen because they are normally open in most firewall implementations.

The module is incorporated into the released software as a linked library. There are two public interfaces to the module, initauth() which starts the license tracking processes and stopauth() which disable these processes.

During the lifetime of the license tracking processes, the following tasks are performed:

when the license has 14 or less days remaining, the communications process will try to request a license extension from the licensing server. this process will keep trying to reach the licensing server periodically until license expiry. as long as internet access is available at some point during this period and the licensing server is reachable, it will be possible to renew the license

when a response is received from the licensing server, an authentication process examines the validity of the response. if the response is valid, then the license is extended for another 30 days. if the response is invalid, the remaining license period is still permitted to be used while additional attempts are made to renew the license

in the event that the license cannot be renewed before the designated expiry, then, depending on the options selected by initauth(), two things can happen:

a - the protected code pointer will be overwritten with a pointer to an empty function

b - a signal will be raised to the main program, which can take further action as desired

Recommended Usage

The intended use of the library is the protection of licensing revenues from long running software processes such as server software or modules. Examples would be mail servers, application servers, isapi filters and the like. This focus is due to the fact that the initial license period runs for a number of days before expiry. Client software which only runs for a matter of hours will need to have client side license caching mechanisms to use this module properly.

The models which can be implemented using this module are: - fully functional trials or demos which will time out unconditionally - one time perpetual licenses granted upon full payment - periodic licenses generating a revenue stream

These methods can be used in any combination that the publisher determines to be of interest. Only one software image needs to be created to use any or all of these schemes because the results are determined on the server side.

Some of the possiblities are:

Granting trials to either all or some potential customers for an arbitrary period. No matter how long that period may be. But, once that trial is over, the software is effectively dead without the possibility of reactivation

Granting permanent licenses to customers upon payment which are tied to a network address. This stops the proliferation of borrowed software.

Granting periodic licenses to customers and creating a permanent revenue stream. This ensures that you generate ongoing income for future development. It also makes some higher priced software affordable for some projects by moving the expenditure from capital expenditures to operating costs.

Granting usage rights for special events or projects. You can donate your software for a limited times and locations for marketing purposes on a campus for the duration of the school term.

Using the Library

DEMO.C has been included as a very simple example to demonstrate the techniques needed to use the library.

In order to use the library, the header file tracker.h must be included in your source code. It declares the two functions, initauth() and stopauth().

initauth() starts operation of the licensing processes and should be called on program startup. the function prototype is:

initauth(char* srv,int prt,char* pay, int day, HANDLE sig, void* fun);

defined as:

srv - pointer to the fully qualified domain name of the licensing server as given to you by us

prt - port number to use in communicating with the licensing server except under exceptional circumstances, this will be 80

pay - pointer to an optional payload string to be delivered with the licensing request

day - duration in days of initial license period, not exceeding 32

sig - event to signal on license expiry, if not == 0

fun - function pointer that will be overwritten on license expiry if not == NULL

System Requirements

The INFINIPASS licensing module is targetted to executables running on Windows NT/2000/XP/.NET only. It has not been tested on any other systems.

Availability and Pricing

The client library is freely downloadable and useable without charge. The server responder is available only as a subscription service. Pricing on these services is dependent on the requirements put forth by the client. Please contact us to initiate a service proposal.

Standalone Mode

The Tracker client library can be used standalone to create demos and trials that time out automatically. Simply specify a server host such as 'localhost' that does not resolve to our servers.

When the software times out, it will stop functioning until it is restarted.

There is no charge for this usage.

Other Considerations

cpu usage is extremely light because the software is sleeping most of the time.

the communications volumes are very light and open to inspection by network monitoring tools. this decision was made to eliminate suspicions that the software is disclosing confidential data to the licensing server.

the communications stream is secure due to the use of crytopgraphic hashes

//END OF DOCUMENT//

answers to questions about software licensing protection