securing my software (unique computer identification number)

T

tiewknvc9

Ive created an application, and of course Im coming to the part i know
very little about, except that regardless of the protection scheme I
use, people will hack the software. I created the software with Java,
and hope that this can be considered the appropriate forum for this...

What I was thinking, was to use a unique computer identification
"whatever format", to generate a string or integer value, encrypt the
number with my own code (via server), and give that number or string
to the user.

When the user enters the string to unlock the application, I will
check with my server to see if that number is correct for their unique
computer identification "number", and if it matches, then they can use
the application.

There is only tw questions that come to mind.

1. Is there a unique computer identification number (for PCs) that I
can reach with Java?

2. Is there a better approach to use to "secure" my software from the
general public?

thank you for your responses!
 
K

Knute Johnson

tiewknvc9 said:
Ive created an application, and of course Im coming to the part i know
very little about, except that regardless of the protection scheme I
use, people will hack the software. I created the software with Java,
and hope that this can be considered the appropriate forum for this...

What I was thinking, was to use a unique computer identification
"whatever format", to generate a string or integer value, encrypt the
number with my own code (via server), and give that number or string
to the user.

When the user enters the string to unlock the application, I will
check with my server to see if that number is correct for their unique
computer identification "number", and if it matches, then they can use
the application.

There is only tw questions that come to mind.

1. Is there a unique computer identification number (for PCs) that I
can reach with Java?

2. Is there a better approach to use to "secure" my software from the
general public?

thank you for your responses!

There is a pretty good system that uses a dongle (USB or parallel port
key). You buy them and distribute them with the code. You write your
code so that without the dongle it won't run.
 
T

tiewknvc9

There is a pretty good system that uses a dongle (USB or parallel port
key). You buy them and distribute them with the code. You write your
code so that without the dongle it won't run.

--

Knute Johnson
email s/nospam/knute/- Hide quoted text -

- Show quoted text -

Ah, excellent concept...

Unfortunately I am a tiny individual, and I am trying to avoid
distributing hardware...

Any other ideas?
 
J

Joe Attardi

Unfortunately I am a tiny individual, and I am trying to avoid
distributing hardware...

Any other ideas?

I don't know anything about your application - but have you considered
making it open source/donationware? It may not make you as much money
but I guarantee more people will use it.
 
T

tiewknvc9

I don't know anything about your application - but have you considered
making it open source/donationware? It may not make you as much money
but I guarantee more people will use it.

I considered it, but really, how much money have you given to
donationware?
 
J

Joe Attardi

I considered it, but really, how much money have you given to
donationware?

No, I know, you do make a good point. If your goal is to make money
with this software then you're right - donationware isn't the way to
go. I just thought I'd mention it, just in case.

Because the thing is, no matter how good the copy protection on
software is, there will always be talented crackers out there that
will either crack it or break your key generation algorithm and make a
keygen for it.
 
M

Mark Thornton

tiewknvc9 said:
Ive created an application, and of course Im coming to the part i know
very little about, except that regardless of the protection scheme I
use, people will hack the software. I created the software with Java,
and hope that this can be considered the appropriate forum for this...

What I was thinking, was to use a unique computer identification
"whatever format", to generate a string or integer value, encrypt the
number with my own code (via server), and give that number or string
to the user.

When the user enters the string to unlock the application, I will
check with my server to see if that number is correct for their unique
computer identification "number", and if it matches, then they can use
the application.

There is only tw questions that come to mind.

1. Is there a unique computer identification number (for PCs) that I
can reach with Java?

A PC as a whole does not have such a number. Some components of a PC do
have unique IDs but these are not readily accessible from Java. Also any
of these components could be replaced and the user might reasonably
contend that it is still the same PC (and their software should continue
to run). Microsoft's activation permits changes provided that not too
many of the identified components are changed within a time interval.

Components that have IDs include:
Hard disks
CD/DVD drives
network cards
Some processors

In addition you could record the number and model of installed
processors. The size of the installation file system (this is accessible
from Java 6).

Mark Thornton
 
R

RedGrittyBrick

tiewknvc9 said:
Ive created an application, and of course Im coming to the part i know
very little about, except that regardless of the protection scheme I
use, people will hack the software. I created the software with Java,
and hope that this can be considered the appropriate forum for this...

What I was thinking, was to use a unique computer identification
"whatever format", to generate a string or integer value, encrypt the
number with my own code (via server), and give that number or string
to the user.

When the user enters the string to unlock the application, I will
check with my server to see if that number is correct for their unique
computer identification "number", and if it matches, then they can use
the application.

There is only tw questions that come to mind.

1. Is there a unique computer identification number (for PCs) that I
can reach with Java?

The ethernet address (MAC address) of an Ethernet adapter, most PCs have
an ethernet adapter.
2. Is there a better approach to use to "secure" my software from the
general public?

Probably :)

There are various licence manager products for Java, both commercial and
open source. Google will find them.
 
G

Gordon Beaton

The ethernet address (MAC address) of an Ethernet adapter, most PCs
have an ethernet adapter.

Two points about that:

- there could be more than one
- the MAC address is settable in software.

/gordon
 
R

RedGrittyBrick

Gordon said:
Two points about that:

- there could be more than one

Having access to more than one unique number isn't exactly a problem.
- the MAC address is settable in software.

True, but, as far as I know, there isn't anything closer to a unique
serial number that a Java application can extract from a single source
in PCs in general.
 
G

Gordon Beaton

True, but, as far as I know, there isn't anything closer to a unique
serial number that a Java application can extract from a single
source in PCs in general.

My point was that if you're trying to "secure" the software by
associating it with a particular MAC address, then someone who wants
to "borrow" it can easily do so, with the result that you're really
only protecting yourself from people who are honest in the first
place.

Those who want to rip you off won't be stopped by symbolic security,
and you might as well save some trouble and use a splash screen that
says "please don't steal my software".

/gordon
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,228
Members
46,817
Latest member
AdalbertoT

Latest Threads

Top