Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| playground:servers [2025-05-14 16:33] – [Fingerprinting] geek | playground:servers [2026-01-08 03:21] (current) – [Licensing Server] Write about unmanaged keys geek | ||
|---|---|---|---|
| Line 19: | Line 19: | ||
| It is also possible that in some jurisdictions, | It is also possible that in some jurisdictions, | ||
| - | Keeping all of this in mind, the only legally sound way to distribute closed-source software written | + | Keeping all of this in mind, the only clearly acceptable |
| ==== Alternate Interpreters ==== | ==== Alternate Interpreters ==== | ||
| Line 92: | Line 92: | ||
| Network card MAC addresses: '' | Network card MAC addresses: '' | ||
| - | ===== Oracle Free VPS ===== | ||
| + | Computer System Product UUID (This is used to identify an OEM PC, it may be generic for custom built PCs or VMs): | ||
| + | <code autohotkey> | ||
| + | MsgBox ComObjGet(" | ||
| + | </ | ||
| + | |||
| + | MachineGuid (This is used to identify a Windows installation, | ||
| + | <code autohotkey> | ||
| + | MsgBox RegRead(" | ||
| + | </ | ||
| + | |||
| + | ===== Licensing Server ===== | ||
| + | |||
| + | To effectively manage license keys, you generally need to run a server of some type. This server will hold the database and check that any presented licensing information is valid. There are free options for running servers online. | ||
| + | |||
| + | As an alternative, | ||
| + | |||
| + | Without a server, it is impossible to track whether a generic key is being shared between users. A derived key is harder for users to share because it must match the system fingerprint, | ||
| + | ==== Oracle Free VPS === | ||
| You must register with your legal name, address, phone number, and link a valid credit card (you shouldn' | You must register with your legal name, address, phone number, and link a valid credit card (you shouldn' | ||
| Line 100: | Line 117: | ||
| Create an ingress rule, CIDR 0.0.0.0/0 destination port range 80 https:// | Create an ingress rule, CIDR 0.0.0.0/0 destination port range 80 https:// | ||
| - | ==== Pay as You Go ==== | + | === Pay as You Go === |
| Instance creation is subject to availability at the time you're creating the instance. Priority is given to "pay as you go" accounts, which you can upgrade to under "Bill & Cost Management > Billing > Upgrade and Manage Payment" | Instance creation is subject to availability at the time you're creating the instance. Priority is given to "pay as you go" accounts, which you can upgrade to under "Bill & Cost Management > Billing > Upgrade and Manage Payment" | ||
| Line 108: | Line 125: | ||
| Account upgrades can take some time, so please be patient! For me, it took a little over six hours to complete. | Account upgrades can take some time, so please be patient! For me, it took a little over six hours to complete. | ||
| + | ==== Authentication Strategies ==== | ||
| + | |||
| + | Once you have installed a suitable VPS to act as your authentication server, you will need to consider what authentication strategy you will use. The two main strategies are HTTP Basic Authentication, | ||
| + | |||
| + | === HTTP Basic Authentication === | ||
| + | |||
| + | Basic authentication from the HTTP protocol allows you to require a username and password to be given in order to access resources from the web server. By assigning each user a username and password, your script can provide those credentials when trying to request a validation file from the server. | ||
| + | |||
| + | Fingerprinting information can be used with this authentication scheme. However, the fingerprint will be merely concatenated onto the password such that if any part of the fingerprint changes, the credentials will be invalid. This is less useful than custom authentication. | ||
| + | |||
| + | === Custom Authentication === | ||
| + | Custom authentication requires installing server-side software like PHP that can listen to requests made by your script and respond depending on the information your script provides in the request. Your script will make a request to the server providing the username and password, as well as each individual fingerprint component. The server can allow individual components of the fingerprint to change according to rules you decide, and keep track of those changes over time in a database. | ||