About USB dongles, every USB dongle that is commercially available has been hacked and has a working environment. No matter what they tell you, the principle of USB keys is spoiled by design.
To make matters worse, once you deliver your software product to a client, it will be hacked if they find the application valuable enough to spend time hacking it. It doesn't matter how much it is protected, if a hacker has access to binary content, he will be hacked.
In addition, many of your users will be honest people who will be annoyed by all of these security features. If you decide that the solution is very strong, you are actually inviting people not to use your software for the right, legitimate purposes.
As noted earlier, keep in mind that you must comply with Linux licenses. In fact, you may be forced to provide the source code for your application as an open source if you cannot prove that you have worked under the license.
However, there is a reasonable simple way to do periodic checks. Use CRON to launch the application for calls at least once a day. He will call the web service on your web host, providing additional information about this setting. As a response, your service reports that it is still legal or not. If this is legal, no problem. If this check fails, just report it to the community. If call-home has failed five times in a row or informs it of an illegal version, then this time annoys the user. (But without breaking the usability of your application, otherwise users will become really unhappy.) Now the material you want to protect can continue to work without any changes. Or you change them to check if the call-home application tried to try to contact. If the user has disabled this process or interfered with it in any other way, you can also block your applications.
Or, to use the simplest option: create a special administrator account with almost full access rights. Do not let your customers work like Root.
source share