It has been a while since I have seen anything you can download which has to connect to license server in order to monetize a piece of software (and the last time I saw it, it went very wrong when the software provider decided to discontinue the licensing server).

So apart from encrypting / obfuscating (e.g. Zend Guard) the piece of code which handles the actual authentication to this server, what other ways are there (if any?) of creating some kind of Authentication system for a distributable open source project?

Are there any methodologies other than providing it SaaS style?

  • 7
    Typically, open source code forgoes license keys and the like becauses it infringes on the various freedoms that open source strives for. – user40980 Feb 16 '15 at 4:16
  • Sure I agree with that, but in the cases where you wanted to monetise a piece of code you have created in a non-compiled language (e.g. PHP, Ruby etc) would there be any methodologies you could implement to do this, I would think it would be pretty difficult seeing as the code is open and therefore able to be modified, or is protecting it with something like Zend Guard the only way of handling it? I guess now people mainly host it themselves and provide it as a service, or issue a copyright protected licence on the software and require payment? – Voycey Feb 16 '15 at 4:19
  • 5
    OSS for profit is all about making money on services, premium functionality, and commercial (dual) licensing. – user22815 Feb 16 '15 at 4:26
  • @Voycey Restricting use or re-distribution of code and use of Open Source licensing are diametrically opposed. If you do one, you aren't doing the other. – Ross Patterson Feb 16 '15 at 10:42
  • 2
    @Voycey Then open source is the wrong term. The term you mean is "source available" – Philipp Feb 16 '15 at 13:55

"Open source" typically includes that you provide the source code of your program in an understandable, compilable and changeable form. So any kind of artificial licence check could be easily disabled by anyone who is able to compile your code and has a basic knowledge of programming .

Of course, you could use a license which forbids to change anything in your program (or at least to distribute any changed branch of your software), so people are only allowed to read your program, not to change it. What you cannot enforce, however, that people will remove your license key check secretly, or that people will do this outside of your jurisdiction. And when your licensing scheme is completely open, you cannot hinder people to imitate that licensing scheme, generate their own keys or provide a fake license server, even without changing the original code. (In fact, this is done regularly even when programs are closed source, but for an open source program you make this "approach" more feasible to the "average developer", not only to people with experience in reengineering.)

So one of the most popular ideas to get paid for open source is to have an important part of the software not beeing included in the source code, the part you provide from your server. The more functionality you put on the server side, the lesser is the risk having the server become rebuilt by anyone else. A server which does provide only a boolean information if a "certain license key is valid" is far too easy to be copied. In fact that means that your monetising model becomes a service model. For example, as a vendor of a multiplayer game, the game client might be open sourced, but the server controls lethal parts of the game, and you can charge people for using that service for a particular duration.

The other option you have for monetising is to create an open source library which can be used freely by anyone for non-commercial software, freely for inhouse-software, but paid for commercial, off-the-shelve software. People will pay you because there is a certain risk that a licence breach can be proven by you, because they get paid for their software (so they could affort it to spend part of that money to you), and because they want to get updates of your library from you. For such a distribution model, however, you typically don't need any license keys.

EDIT: Of course, there are more alternatives to get money for open source software than the two above. This Wikipedia article lists a few.

  • I guess that is the crux of this, enforcement :) – Voycey Feb 16 '15 at 8:44
  • +1 for ".. to have an important part of the software not beeing included in the source code" that is way how google controls android. Android is open source. Many interesting android apps and services like google maps, google calendar, playstore, ... are closed source and the opensource community has a lot work to do to have open-source-replacements for these parts. If you want to use "google maps" on android you have to aquire a license key – k3b Feb 16 '15 at 15:35
  • Thanks Doc! Have accepted this - would still love to hear feedback from other people! I like the whole "have an important part of the software not being included" – Voycey Feb 18 '15 at 5:22
  • 1
    @Voycey: see my edit. – Doc Brown Feb 18 '15 at 6:34
  • That is spot on :) – Voycey Feb 19 '15 at 1:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.