How do you protect your software from illegal distribution?

petr k. picture petr k. · Sep 21, 2008 · Viewed 16.6k times · Source

I am curious about how do you protect your software against cracking, hacking etc.

Do you employ some kind of serial number check? Hardware keys?

Do you use any third-party solutions?

How do you go about solving licensing issues? (e.g. managing floating licenses)

EDIT: I'm not talking any open source, but strictly commercial software distribution...

Answer

Adam Davis picture Adam Davis · Sep 21, 2008

There are many, many, many protections available. The key is:

  • Assessing your target audience, and what they're willing to put up with
  • Understanding your audience's desire to play with no pay
  • Assessing the amount someone is willing to put forth to break your protection
  • Applying just enough protection to prevent most people from avoiding payment, while not annoying those that use your software.

Nothing is unbreakable, so it's more important to gauge these things and pick a good protection than to simply slap on the best (worst) protection you are able to afford.

  • Simple registration codes (verified online once).
  • Simple registration with revokable keys, verified online frequently.
  • Encrypted key holds portion of program algorithm (can't just skip over the check - it has to be run for the program to work)
  • Hardware key (public/private key cryptography)
  • Hardware key (includes portion of program algorithm that runs on the key)
  • Web service runs critical code (hackers never get to see it)

And variations of the above.