....................................................... Title: Licensing Version: 1.0 Author: John Ryland Company: Subflexion Copyright: (C) Copyright 2020 All rights reserved .......................................................
| Term | Definition |
|---|---|
| User | either a trial or paying Customer |
| Customer | a paying User |
| License | terms of use / a digitally signed file showing a Customer's proof of purchase |
| The Software | a particular version of the application |
| Machine | a specific computer (identified by atleast 2 of 3 of the same HDD+CPU+NIC) an instance is installed on |
| VirtualMachine | a virtualized computing environment that gives the appearance of being a Machine, but could be cloned or transferred |
| Installation | an installed instance of the software on a Machine |
| Trial | an evaluation Installation |
| Evaluation | to test out before purchasing |
| Registration | the process of purchasing a License |
| Fingerprint | method of identification based on collection of pertinent/unique data of a Machine |
| table | field | field | |||||||
|---|---|---|---|---|---|---|---|---|---|
| users | id* | name* | email* | puchaseId? | inst1 | inst2 | inst3 | inst4 | inst5 |
| products | id* | name | |||||||
| versions | id* | productId | version | ||||||
| trials | id* | ||||||||
| purchases | id* | userId* | date* | ||||||
| installations | id* | fingerprint* |
* - required ? - optional
| Record | Description |
|---|---|
| UserId | server can have mapping to user/customer record with all known details |
| ApplicationId | identification of what is licensed (application, version(s) etc) |
| PurchaseRecordId | reference number for the purchase |
| Date | when the purchase was made / license was created |
This is the file used to determine if allow the software to run
| Record | Description |
|---|---|
| UserId | |
| InstallationId | server can have mapping of InstallId -> Fingerprint |
- replacement of the public key used for license verifying / signing of data - skipping out license checks - patching license check code to always return true
- equivalent to domain redirection, but could manage to fool attempts to verify domain is correct
[ part 1 + pad ] [ part 2 + hash_p1^pad ] [ part 3 + hash_p2^pad ] license + hash_p3part of the problem is the data will be in different section to the code
TODO:
harden/test security of the site
should try to track when a trial is converted to a registration
Registration
License Checking/Validating
License types
purchase license (proof of purchase certificate) (limited to activated on 5 machines - every 6 months this resets)
(can be used to generate up to 5 active non-trial installation licenses with 6 month validity,
after 6 months if not used/renewed, the installation license is non-active and allows using on
another machine, non-trial installation license
User runs trial -> user enters details -> server generates an installation license
User registers -> 'license' is emailed to customer -> customer applies license inside of application
track installations
Customer ID
Activation ID
License ID - unique for the user
Installation ID