Re: License / Registration key enabled software

2006-09-27 Thread Mike Playle
On Fri, 22 Sep 2006 11:51:01 -0700, T wrote:

> We all know that there are many softwares that require some license key
> or registration key to enable them.  How does one implement something
> like this in python?

Here's a slightly different take on license keys that
nobody else has mentioned:

License keys exist to make it easier for honest users to
remain honest. Since any scheme can be cracked, dishonest
users will use your software without paying for it with
or without a license key scheme, so there's no point
spending much effort on the dishonest. Focus instead on
what your honest users want.

For instance a customer might want to buy a license to
use your software on up to 5 machines at once, but still
have the software installed on every machine in the
company. License systems like FlexLM can work here, to
make it easier for them to ensure that they comply with
the terms of the license.

Forget about the people who'll crack your software. Ask
yourself whether a license key scheme offers anything
to the people who won't try to crack it. If it does, then
actually implementing the scheme becomes trivial; if it
doesn't, then leave it out, because it won't help against
crackers.

Mike

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: License / Registration key enabled software

2006-09-28 Thread Mike Playle
On Thu, 28 Sep 2006 10:19:37 +1000, Ben Finney wrote:
>> For instance a customer might want to buy a license to use your
>> software on up to 5 machines at once, but still have the software
>> installed on every machine in the company.
> 
> This need is adequately served by not imposing usage restrictions. Any
> effective imposition of usage restrictions is hostile to the wants of
> the user.

Who is "the user"? The person who uses the software isn't always
the same as the person who paid for it, or the person who'll be
in trouble if the license terms aren't adhered to.

Imagine you're an IT manager for a medium-to-large company who
wants to use some expensive piece of software. You talk to the
vendor and buy a licence to use the software on up to 5 machines
at once, but you don't know who in the company will want to use
it, so for convenience you want to install it on every PC in the
building.

Having installed it all over the shop, how can you be sure that
only 5 people are using it at any one time? Do you expect your
users to walk round the building asking everyone else if they're
using the software, or are they more likely to just start it up
and start working?

Of course this argument really applies only to large, expensive
commercial packages. I'd certainly agree that licence keys are
often used inappropriately in a way which doesn't really benefit
anyone, but this doesn't mean they don't have a place somewhere
in the grand scheme of things.

Mike

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: License / Registration key enabled software

2006-09-28 Thread Mike Playle
On Wed, 27 Sep 2006 12:21:08 -0500, Robert Kern wrote:

> Mike Playle wrote:
>> For instance a customer might want to buy a license to
>> use your software on up to 5 machines at once, but still
>> have the software installed on every machine in the
>> company. License systems like FlexLM can work here, to
>> make it easier for them to ensure that they comply with
>> the terms of the license.
> 
> But then you must weigh that against the inconvenience that you impose upon 
> your 
> customers. Although you may make it easier for them to comply with your 
> license, 
> you are also making it harder for them to *use* your software.

This is certainly true.

As with any other software feature it's vital to weigh up the
advantages against the disadvantages, and not blindly add
features which don't provide a clear overall benefit.

> I do not know a single person who has used FlexLM-licensed software and does 
> not 
> hate FlexLM with a burning passion.

Yup, I can agree with that. From the POV of the guy who just
wants to get some work done, it's usually a real pain.

His boss may have a different view of the matter, though.
I've met people who've _bought_ FlexLM-licensed software
who think it's the best thing since sliced bread.

Mike

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: License / Registration key enabled software

2006-09-28 Thread Mike Playle
On Thu, 28 Sep 2006 17:36:02 +0200, Sybren Stuvel wrote:

> Mike Playle enlightened us with:
>> Having installed it all over the shop, how can you be sure that only 5
>> people are using it at any one time?
> 
> Write the software in such a way that it needs a certificate on a
> smartcard, then supply the company with five smartcards.

And 150 smartcard readers?

Of course USB dongles would work just as well and wouldn't
need special readers, but really this is just a hardware
implementation of the same idea - dongles are just as hated
as FlexLM, and for all the same reasons :)

Mike

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: License / Registration key enabled software

2006-09-28 Thread Mike Playle
On Thu, 28 Sep 2006 18:44:13 +0200, Sybren Stuvel wrote:

> Steve Holden enlightened us with:
>> And you guarantee that the contents of the smartcard is only used by one
>> user at a time by building a licensing system for the smartcards?
> 
> We can never, ever make a 100% guarantee that people won't copy what you
> supply them. The only way to do that is to thoroughly monitor them 24/7,
> violating every privacy law in existance.

Yes, this is an important part of the point I'm trying to make.

The people who want to use your software illegitimately will succeed no
matter what you do, so you shouldn't worry about them. Worry instead about
the people who DON'T want to use it illegitimately. Can a license key
scheme help them? If so, implement it. No trickery is needed - a simple
comparison will suffice.

Mike

-- 
http://mail.python.org/mailman/listinfo/python-list