I'm developing an application (Desktop) that requires license renewal periodically, following a SaaS template.
The license template should work as follows:
- The license will be downloaded from a web service. This requires the user to be connected to the internet on the first use of the product;
- The license will be periodically updated by an automatic background process, connecting to the service and renewing the expiration date;
- If the user in question breaks the subscription (fail to pay) or no longer connects to the licensing server, you can use the product until a certain date (last license expiration date).
In this case, how do you deal with tampering with the machine's local date / time, so that the user is prevented from using the product even by retro-clocking your computer?