9
I am developing an application (Desktop) that requires license renewal periodically, following a model Saas.
The model of the licence shall function as follows::
- The license will be downloaded from a web service. This requires the user to be connected to the internet in the first use of the product;
- The license will be updated periodically by an automatic background process, connecting to the service and renewing the expiration date;
- If the user in question breaks the subscription (stops paying) or no longer connects to the licensing server, he can use the product until a certain date (expiry date of the last downloaded license).
In this case, how to deal with tampering on the local machine date/time, so that the user is prevented from using the product even by rewinding the clock from his computer?
If your system is totally offline, it has a mix of techniques. One of them is that you store the amount of system usage linked to some newly entered data. Even if the date is changed, there is no going back with the "hours consumed". If your system is online, just check the date and time externally, preferably from your server, with some key to checksum the request.
– Bacco