Search code examples
licensingtrialwareshareware

Phone-home for licence checking considered evil


Phoning home to enforce a user licence is considered by many to be "evil". But for my web-dependent Windows application it seems like the perfect method of enforcing a single-user, multi-workstation licence, i.e. one licence on many machines, but only one can be active at a time. As an example, think in terms of a single rendering engine licence with a worker process spanning several hours only being active on one machine.

A licensing server must therefore authenticate the application when it is first run and check that the licence is not currently in use before a worker process is started. I can see how this would be considered evil if the application required Internet access just to check its licence, but my application is useless without an Internet connection anyhow. A site licence would only require one check.

If the licensing server is ever down (hopefully almost never), the app should gracefully degrade to a limited version until it can be authenticated. It has to phone home to check for updates and report (consensual) usage statistics anyway, so why is this so bad?

How do I keep honest men honest without being evil?


Solution

  • Trust your customers to pay the bill. If they want to run your program on two computers at the same time, they will find a way.

    Make it as easy as possible for your users to use the software. Often, a pirated version of a program is more user-friendly than the legal version. For one thing, the pirated version just keeps working if the license server is down.

    I advise you to give the user full access if the license server is down, instead of giving them a limited version.