Pregunta

I was considering the various options that i have when i want to protect a generic chunk of data to apply this principles to the distribution of a generic application.

  • Encryption doesn't make sense, it's like giving something unusable for the user or i have to give both the encrypted file and the key do decrypt it which make even less sense.
  • Generating entropy does not make sense because this process will only re-arrange the data in other way without breaking the business logic of the application.
  • Wrapping my application in an executable that requires a password to the user, my real application and my wrapper are double-linked and if my wrapper does not gives a green light my application will not run.
  • Web based distribution like the popular "Steam" service with a customized compilation for every user based on some login/ID verification.

What are the other options? I know that this will not end up with a definitive solution but at least i want to avoid the user to just redistribute my application with a simple copy and paste and i want to have at least a small edge over the software distribution system.

¿Fue útil?

Solución

The usual way of doing this is to encrypt the data using some piece of information that is already on the user's system as the key; the data is then keyed to that system. For instance, on Mac OS X you can get the system serial serial number with a library call. Sun systems have a gethostid() library call that makes this trivial. An alternative that works on dumb systems cough Winders cough is to use the MAC address of an ethernet interface, or something like that.

It can be tricky, you typically have to write a little program that will grovel around in the system and generate a key, and then have the customer email this key to you, or at least OK the program to email the key to you. You can then encrypt the protected data using the key information you got back, and have the customer download it. It is possible to add this entire transaction to your application installer, if the size of the data blob is reasonable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top