Click here to Skip to main content
15,883,851 members
Please Sign up or sign in to vote.
2.67/5 (3 votes)
Q. Is there any open source library which can be used on Linux for Licensing & Product Activation related stuff? If No, then is there any near by alternative?

Detailed Q. : The Licensing scheme is as follows:
1. A unique Serial No./Product Key is assigned to user
2. A public key (pgp) or a literal code is included inside of the app.
3. The user installs the application using Product Key
4. The user now needs to activate his application, by choosing the activate option
5. A unique Hardware Hash is generated for the user's machine (say using MD5 or SHA1), which is sent to the activation server together with the Product Key. The application contacts a web service at our hosting location.
6. The Activation Server verifies the Product key. Then identifies whether it’s a first time activation or re-activation.
7. The activation server uses RSA to encrypt the activation related information and form an activation code, which is sent back to the application on user’s side.
8. The Application will verify the activation code by decrypting it with the Public Key included in it, and activate the application on positive verification.
9. The Application periodically checks for any updates to the hardware and if re-activation is required.
10. Maintain a database of issued Product Keys & corresponding activation information.
11. Ensure that further new releases of the product have different Public Key each time and also some slight changes in the activation code verification procedure, so as to reduce chances of product being cracked.
12. License Expiry Information can also be integrated into the activation code. Expiry Date should be periodically checked while the program is running or on start-up. System Time modification should be identified.

Will be making it sure that the Serial key is not used by more than intended number of users/machines, in which case I will be revoking the key.

I know very well that there isnt a full proof anti-piracy solution, if microsoft windows activation can be cracked than anything can be.
I just want a decent enough anti-piracy solution with the requirements i mentioned above.
Providing ease to user is not my priority as user wont ever be required to install the application himself.
I am very much motivated by the anti piracy system used by the Kaspersky Internet Security.

Any suggestions to the desired Anti-Piracy System are most welcome.
Thanks in advance ...
Posted
Updated 30-May-11 2:42am
v4
Comments
Sergey Alexandrovich Kryukov 26-May-11 1:53am    
In a free word of Linux..? I don't know what to say...
--SA

1 solution

Think a little bit about you requirement on the user side:
- you are not the owner of the user computer and ...
- the use may want to change / modify / replace his own computer without asking a permission to whatever software vendor he may have in touch with (they can be hundredths ...) and ...
- you sell you license to the "user" (who signed a contract) not to his computer (that's just a machine, and it is not subject of "positive right")

As a user I have (at least in my country) the full right to make whatever number of copies or my own "personal use". What you are required to be granted by me is that it is just "me" (and "just one instance of me", or -more in general- a "number of instances of me" less than the number of licenses I own) using your app. The computer I'm actually using is not your business.

That said, you have probably better not to bind your license to an hardware or a piece of it, but to implement a (sort of) "login" mechanism the "user" (as a person) is required to do, allowing the application to work only if the number of "contemporary login" of a user stays into the number of licenses the user acquired. While doing that, consider also the "unreliability" of the Internet (you cannot "pretend a logoff": a machine can crash and be rebooted or the network may be "not in service" when your app is closed) so implement also an expiration and renew of the login, allowing a "grace period": if I have 10 licenses, and the token renewal proces is 10 minutes, give me the right to reach ... 12 logged session into a "grace period" of 5 minutes).

If you plan to sell your app also to companies, consider also a way to supply a "license manager" to the company as well: It could be they want (and in certain countries this is their own legal right) to manage themselves their own internal users, without giving you their own individual internal credentials. After all, you have to be granted only to their "number", not "personal identity".
 
Share this answer
 
v2
Comments
abhinav11 26-May-11 6:10am    
HiThanks for your response, but let me clear my requirements ....
-First of all, i am targeting my product only for few customers (say not more than 10),
-Secondly, the user wont ever be required to install the product himself, one of my guys will do so each time it is requested..
-And so, I dont want my product to be copied or run anywhere without my permission (strictly)
-Its just meant to be a single instance & single user program...
So I suppose that I am very clear that I require my license to be for specific machine and not user.
-Of course, License expiration will also be taken care of..
Is there any better way to protect a product from piracy than Key-Hardware Binding & Product Activation? I would be pleased to know...
Thanks
Abhinav
Emilio Garavaglia 26-May-11 15:32pm    
According to the European legal system, your rights to "protect a product from piracy" cannot overcome the rights a machine user has to manage his own machine as he wants, including change it. Binding a software to a specific hardware element not issued by yourself is not legal and a user has the full right to ask you to disable such a protection (including making the requirement coming from a court!)
Feel free to do as you like, but you risk to invest your time in something you will be required to dismount.

In the open world of Linux, you have better to ask to be payed for support, not for simple "usage".
Unless you already agree with your clients, its quite hard for you to conquer marketplace with such an idea.

abhinav11 30-May-11 8:36am    
Hey buddy, thanks for the info.
Ok tell me one thing, why are there n number of applications in the market that follow product activation scheme for licensing? Do you think that they are not using any sort of hardware binding internally?
To name a few products: Microsoft Windows Vista/7, Kaspersky internet Security 2011, and many more....
If they are using hardware binding, has any body taken any legal objections on them and won the case ever?
Just for your information, go through the Windows 7 EULA (End User License Agreement), they clearly state everything about data sent over for product activation.

No hard feelings. I got your point but, I am bound to follow those requirements...
Anyways... thanks for your suggestions
Emilio Garavaglia 31-May-11 8:41am    
"Do you think that they are not using any sort of hardware binding internally?" They bind a licence key with the hardware they run on. You can move the key as needed. A same MS windows DVD can be installed on many PC. But only one registration is "valid" (unless you unregister it). "go through the Windows 7 EULA ..." According to the Euoropean Council Court, EULAs are NOT SUPERIRO to laws. And the EEC law EXPLICITLY SAYS that to limit the end-user in using his own hardware (the user already payed for that) is illegal and that whatever the EULA say, it is invalid. It is a sentence of the European Court, valid across all the 24 member countries. No-one takes legal objection, since such EULAs had already been declared invalid, and there is no way for the EULA emitter to accuse anyone for that.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900