473,406 Members | 2,312 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,406 software developers and data experts.

Using a webservice for product licensing

Hi,

Does anyone have any experience with/suggestions for using a webservice for
product licensing?

What I have in mind is something like where the client app sends their
product key to the webservice for validation and the webservice then return
the validation result.

Good idea? Bad idea?

What if the program checked for a valid license every X times the program is
run? I don't want it to be obtrusive to the user but I would like it to be as
secure as I can make it, after all, this is the coolest program ever. ;)

I'm 99% new to webservices so all comments are appreciated.
Jan 6 '06 #1
2 1368
twotoed wrote:
Hi,

Does anyone have any experience with/suggestions for using a webservice for
product licensing?

What I have in mind is something like where the client app sends their
product key to the webservice for validation and the webservice then return
the validation result.

Good idea? Bad idea?

What if the program checked for a valid license every X times the program is
run? I don't want it to be obtrusive to the user but I would like it to be as
secure as I can make it, after all, this is the coolest program ever. ;)

I'm 99% new to webservices so all comments are appreciated.


Well, like many other protection methods it has its share of problems.
If you're doing this, you would have to use encryption and/or digital
signatures otherwise people will be able to easily understand how it
works and "forge" valid answers - and then you run into the usual
cryptography issues like how to protect your encryption keys and such
(using the DPAPI could be a solution)... Eventually it can become a bit
complicated.

The other big issue? Most users nowadays use some form of software
firewall that will easily (and perhaps by default) block these requests.
There are other ways which could be used to block it (like adding your
server's URL to the hosts file) And there will be people who will want
to use it on standalone PCs (with no internet access). What do you do
then? Some people don't like applications that need internet access like
that for no apparent reasons either (privacy concerns or otherwise).

There is no perfect protection. This can be used in combination with
other methods (obfuscation, exe-wrappers, encrypted licenses, etc). All
can be defeated, it's just that some take more skill and time than
others. The best way to protect your software nowadays seems to be
adding a fair amount of hidden/random license checks that crackers will
most likely miss (like say, if Microsoft word would have a 1/3 of a
chance to check your key every time you spell checked or such). You can
perfect it by doing these at the middle of other operations (not right
after a button click but say, how about doing that license check at the
middle of a "file save" operation or such?). Toying around with multiple
copies of those licensing numbers in memory can make it more complicated
for them too (run those random checks off copies)...

There are tons of things one can do, but almost certainly (if you
application becomes popular) someone or some group will crack it. You
can't really prevent it completely, but by adding those hidden checks
that most will miss, you sort of provide an incentive for people to buy
it (well, if the price is reasonable) - the buggy/bad cracks will be
frustrating. I find that using those extra checks (not just initial/on
program load checks) with obfuscation and a healthy dose of encryption
works pretty good - add some exe wrapper if you want to... Or for the
lazy there's some pre-made licensing components. Some are good, but
often you'll see that it's not enough to stop skilled crackers anyways,
and there may even be generic unwrappers/cracks/loaders for some of
these protections.

Anyways. There is no perfect protection...
Jan 6 '06 #2
Thanks a lot. That was very helpful.
Jan 6 '06 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
by: nunodonato | last post by:
hi there. i'm thinking of developing an app using Java to manage a library (books, clients, orders..etc). I am not sure of how to store the data, maybe using files or a DBMS. The ammount of data...
38
by: Remco Groot Beumer | last post by:
Hello, I'm trying to decide if the following situation would be workable: Generate an MS Access Front End (which will run localy on client computers), which will link to a DBMS (SQL server or...
3
by: silesius | last post by:
Hi all, I'm new to asp.net and are just working on a few examples to get some practice. The following is a simple webservice with two web methods. The HowMuchWillItCost method works fine the...
11
by: Paul Aspinall | last post by:
Hi Can anyone offer any hints / tips for creating registration keys / application activation, as software copy protection measures for a Winform app developed in C#? Thanks
3
by: Paul Aspinall | last post by:
Hi Can anyone point me in the right direction to find some encryption routines / algorithms for use with product licensing?? I want to pull data such as the computer name etc etc, and encrypt...
11
by: Andy | last post by:
Make the story short, I have a VB.NET client interface calling .NET webservice, written in VB.NET as well. I am trying to make the client as thin as possible so I let the webservice part to...
3
by: sp3d2orbit | last post by:
I've read the MySQL licensing material and what I've found online, but I'm still unclear about when I have to pay MySQL for a license. Scenario: I've created an application that stores some data...
53
by: Hexman | last post by:
Hello All, I'd like your comments on the code below. The sub does exactly what I want it to do but I don't feel that it is solid as all. It seems like I'm using some VB6 code, .Net2003 code,...
3
by: Nagu | last post by:
Hi, I made a small recommendation engine for our company using python, django, and mySQL. My supervisor and the senior management are worried about the copyright and licensing issues. They want...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.