If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register or Login
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Licensing software via internet.

Hi There! How are you?

I'm nearly finishing this project that consists of two parts: An electronic board with a microcontroller, eeprom memory and a firmware, and, the Windows software. I've finished it all, everything is great, except that I have no idea how to solve the following problem:

This board must be locked (not licensed), which means that it will not work unless it is unlocked (licensed via internet).

In order to unlock it, the end user will have to connect the board to the computer (USB), open the Windows software, which will acknowledge that the board is "unlicensed", and finally open the product's website and make a payment. Once the payment is made, the Windows software "somehow" will acknowledge the payment and UNLOCK the board. Once the board has been unlocked, it will work "forever"

The board lock / unlock process is fairly easy, as it contains a non-volatile memory that I can "flip a bit" for example. What I need help to accomplish is the part that once the payment is made via internet, the Windows software "gets to know it". I honestly have no idea how to do such thing. Any clues? Any suggestions? Where can I start digging around to find a solution?

Re: Licensing software via internet.

Well, I don't have any tip about the payment signaling thing, but that looks reatively common, so probaly someone else can jump in.

But... Why do you want to bind hardware activation to a software-bound payment confirmation? Now that looks rather uncommon to me. A vast lot of software vendors would be happy to sell their software "hard-bundled" (i.e. wouldn't work without it) with some bit of hardware. Software is easy to copy, hardware is not. Actually, the mere concept of dongles is based on the idea of selling software along with an otherwise unnecessary bit of hardware, just for the purpose of unlocking the software.

I can hardly imagine you'd be deploying your hardware over some free channel to people who then may or may not buy your software; and if they don't buy the software, they may use your hardware as some sort of really fancy free beer mat... Even more so if, as I understand your post, the hardware wouldn't be of any use without your software anyway.

Not just that hardware is harder to copy than software, it's also way more expensive to manufacture. So I somehow don't see any point at all in your question. ... or maybe I have completely misunderstood it...

Last edited by Eri523; January 2nd, 2013 at 09:44 PM.

I was thrown out of college for cheating on the metaphysics exam; I looked into the soul of the boy sitting next to me.

This is a snakeskin jacket! And for me it's a symbol of my individuality, and my belief... in personal freedom.

Re: Licensing software via internet.

Eri seems to have the right idea, I think. If on the other hand, you WERE committed to doing it as you describe: Not that I have any experience doing it, but my first thought would be to do the payment through something like Paypal and have the software query them via their API: https://cms.paypal.com/us/cgi-bin/?c...o_api_overview

Best Regards,

BioPhysEngrhttp://blog.biophysengr.net
--
All advice is offered in good faith only. You are ultimately responsible for effects of your programs and the integrity of the machines they run on.

Re: Licensing software via internet.

Yeah I imagine how this sounds strange!

But yeah! Here's what's going on: I've developed this project, hardware, firmware and software. I won't be the one manufacturing it (it's out of my possibilities), so I must arrange business with a well established company that is already in the market. If the product "works out of the box" I'm ****** because there won't be anyway to control how many have been sold and how much I can get. If I receive the fee from the manufacturer, I can only charge ridiculously little because the price builds up 5 times from factory -> shelf price. Therefore, I must get paid from the final user. Another problem is that the software can not be "attached" to one computer. Because this is the type of product that different computers at different moments will be hooked up to the product's hardware, any computer must work. So I can't have the license attached to the computer itself. Once activated, the board will work with any computer, that's why I'm "licensing the board" instead of the windows software. I was talking to my friend Alan, which is a developer, and he recommended me this:

Re: Licensing software via internet.

Hrm, would it be possible to just have the manufacturer produce a batch for your inventory that you can then sell at retail? That seems simplier. Alternatively, you might be able to get a reasonable price on PCBs (see, e.g. https://www.batchpcb.com/ ??) and components (Digikey or whatnot) and solder together the product yourself, depending on complexity. So, pretty much, how complex is the board (perhaps we can see some alternatives). It seems like it'd be MUCH better to give your customers a works-out-of-the-box solution than your current plan. Also, I think there may be some rules about sold goods being 'fit for a particular purpose' in some jurisdictions (I am not a lawyer), so be sure that selling a useless-until-activated device doesn't somehow violate whatever those regulations are.

I think you're going to find it difficult to implement a secure scheme. If you're protecting against casual ... uh... piracy? ... just having a bit you flip in the firmware is probably sufficient. Having some sort of complicated DRM scheme seems WAY overkill. If someone if going to go to the trouble of manually dumping the firmware of the board, they can just comment out the DRM-check instead of trying to reverse engineer the encryption.

At any rate, good luck. If you give more details, perhaps we might have more suggestions!

Best Regards,

BioPhysEngrhttp://blog.biophysengr.net
--
All advice is offered in good faith only. You are ultimately responsible for effects of your programs and the integrity of the machines they run on.

Re: Licensing software via internet.

Originally Posted by fernando306

Another problem is that the software can not be "attached" to one computer. Because this is the type of product that different computers at different moments will be hooked up to the product's hardware, any computer must work. So I can't have the license attached to the computer itself. Once activated, the board will work with any computer, that's why I'm "licensing the board" instead of the windows software.

You can make licenses that can be installed on different computers. Seems like the link you provided does just that. All the user would have to do to use the software on a different computer is install the license (i.e. activate the software).

Cheers, D Drmmr

Please put [code][/code] tags around your code to preserve indentation and make it more readable.

As long as man ascribes to himself what is merely a posibility, he will not work for the attainment of it. - P. D. Ouspensky