Software companies like Autodesk, Adobe, etc all offer online licensing schemes with the following features:
- (1) to use the software, you must login from your workstation to activate your license
- (2) the software may phone home periodically to ensure the validity of your license and also tell the license server that the license is in use
- (3) once you activate your machine, if you lose internet you can still use the software for a period of time (often days/weeks)
- (4) you may migrate your activation from machine to machine, but not activate multiple machines simultaneously
What I don't understand is how (3) and (4) are implemented without easily being abused. What's to stop a user from activating a machine and then denying the application internet access once the license is authenticated? Lack of phoning home from that point on will cause the license server to think the machine is offline (2), allowing you to authenticate a different machine in accordance with (4) while continuing to use the software on the previous machine (3).
Surely there are ways to setup a license scheme like this without enabling such an easy bypass...but I'm having a hard time thinking of any. Of course one idea would be to keep some application logic server-side, requiring an always-online connection, but that precludes (3), which is important for mission critical software.
Any ideas?