Re: Want to Protect my Software - Recommendations?
- From: gordonb.m0pu3@xxxxxxxxxxx (Gordon Burditt)
- Date: Mon, 11 Aug 2008 15:13:54 -0500
I want to protect my software such that upon invocation of installer,
it sends to my web site some hash of the customer's PC hardware
configuration, then in my web server a script will generate a matching
"unlock" key that will let the installer proceed and send it back to
the user (via HTTP).
If you don't want your software pirated then don't sell it. Better
yet, don't write it. Something is seriously broken if your software
requires re-authorization (or worse, payment again) just because
the user upgraded his CPU, hard disk, network card, or quantity of
RAM. And if you don't advertise this defect *on the outside of the
box* (or in the description on the web site if you deliver online),
expect to lose in court when customers demand a refund.
I am not a cryptologist but my initial thoughts about implementing the
above were that I am basically looking for a function (C/C++) that
knows how to do asymmetric encryption/decryption.
Your biggest problem is trying to avoid a place in the code where
"does the unlock code match the hardware" is decided, and have
someone patch that into an unconditional branch. It's very difficult
to make an encryption setup work when you have to run on the enemy's
computer, and your program has to have information that you must
not let the enemy have. The closest analogy I can think of is cable
and satellite boxes, which try to protect the keys with tamper-proof
hardware but still get cracked often.
(it seems like a symmetric encrypt/decrypt function would do, too, if
I send the hardware configuration representation clear text, then
generate an encrypted version of it that would serve as the unlocking
key, but then once the encryption function is known, all such keys are
broken...)
Since I am still operating on a shoe string budget, I am looking for
such a function (or library) that I can include in my code, without
having to be bound by the GPL license (having to publish my entire
software's source code just because I used GPG).
Can you recommend a public-domain (or LGPL) library/function that can
help me implement the above?
Distribute a live lawyer in the box with your software. The license
will have to deal with who feeds the lawyer.
.
- References:
- Want to Protect my Software - Recommendations?
- From: holtz . regina
- Want to Protect my Software - Recommendations?
- Prev by Date: Re: Want to Protect my Software - Recommendations?
- Next by Date: Re: Announcing Keyczar
- Previous by thread: Re: Want to Protect my Software - Recommendations?
- Next by thread: Re: Want to Protect my Software - Recommendations?
- Index(es):
Relevant Pages
|