Avoid key generators by public key
Posted: 03 Feb 2008, 11:16
Hello,
as everybody knows all commercial software gets hacked and there is no way to avoid that. There are different levels of hacking:
1. removing license testing and putting a modified binary on the web
2. publishing keys on the web
3. publishing key generators on the web
4. reverse engineering entirely and stealing the ideas
1. cannot be avoided. It is not so harmful for the author, because people should think twice before downloading a hacked version. It might be an older version and might be malware.
The cost of avoiding 2 is binding the keys to a specific hardware id. That is inconvenient for both the user and the author (who has to offer license moving etc.). You have to think twice before you decide to do that. Binding the license to a specific user real name will not avoid 2., but at least you know which customer did it. (He might have used a faked identity or live in Siberia or China, so that does not help much.)
Apart from 4, which I don't want to discuss again, the worst thing that can happen to the author is the apperance of a key generator on the web. There seems to be a key generator for at least one commercial engine on the web. ("seems" because I did not test it.)
I wonder why 3 is possible. I think it can be avoided by creating a file with the user name and signing this file with a public key method. The engine should have the public key compiled in (not in a file because this could be exchanged more easily) to check the signature. But the key generator needs to have the private key.
So there isn't any chance for hackers to write a key generator, is there?
How much efford is it to write a reliable public key generator? Are there ready-to-use public key generators availble which can be used in commercial software (i.e. non-GPL)?
EDIT: I would only trust a solution if the sources are available.
Onno
as everybody knows all commercial software gets hacked and there is no way to avoid that. There are different levels of hacking:
1. removing license testing and putting a modified binary on the web
2. publishing keys on the web
3. publishing key generators on the web
4. reverse engineering entirely and stealing the ideas
1. cannot be avoided. It is not so harmful for the author, because people should think twice before downloading a hacked version. It might be an older version and might be malware.
The cost of avoiding 2 is binding the keys to a specific hardware id. That is inconvenient for both the user and the author (who has to offer license moving etc.). You have to think twice before you decide to do that. Binding the license to a specific user real name will not avoid 2., but at least you know which customer did it. (He might have used a faked identity or live in Siberia or China, so that does not help much.)
Apart from 4, which I don't want to discuss again, the worst thing that can happen to the author is the apperance of a key generator on the web. There seems to be a key generator for at least one commercial engine on the web. ("seems" because I did not test it.)
I wonder why 3 is possible. I think it can be avoided by creating a file with the user name and signing this file with a public key method. The engine should have the public key compiled in (not in a file because this could be exchanged more easily) to check the signature. But the key generator needs to have the private key.
So there isn't any chance for hackers to write a key generator, is there?
How much efford is it to write a reliable public key generator? Are there ready-to-use public key generators availble which can be used in commercial software (i.e. non-GPL)?
EDIT: I would only trust a solution if the sources are available.
Onno