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:23] – geek | playground:servers [2025-05-22 19:51] (current) – 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 38: | Line 38: | ||
Software licenses are usually tied to both a user of the software, and some number of computer systems that the software will be installed onto. In order to enforce the installation limit, one or more metrics of the computer system must be fingerprinted to validate that the user did not attempt to impermissibly transfer the software from one computer to another. Together, these collected metrics form what is called a " | Software licenses are usually tied to both a user of the software, and some number of computer systems that the software will be installed onto. In order to enforce the installation limit, one or more metrics of the computer system must be fingerprinted to validate that the user did not attempt to impermissibly transfer the software from one computer to another. Together, these collected metrics form what is called a " | ||
+ | |||
+ | Some metrics can change over the lifetime of a single installation. For example, the operating system version, processor, motherboard, | ||
Here are some of the fingerprint-able metrics you can access from AutoHotkey: | Here are some of the fingerprint-able metrics you can access from AutoHotkey: | ||
Line 57: | Line 59: | ||
<code autohotkey> | <code autohotkey> | ||
MsgBox ComObjGet(" | MsgBox ComObjGet(" | ||
+ | </ | ||
+ | |||
+ | Operating System Version: | ||
+ | <code autohotkey> | ||
+ | MsgBox A_OSVersion | ||
</ | </ | ||
Line 82: | Line 89: | ||
</ | </ | ||
+ | Storage volume identifiers: | ||
+ | |||
+ | Network card MAC addresses: '' | ||
+ | |||
+ | 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(" | ||
+ | </ | ||
===== Oracle Free VPS ===== | ===== Oracle Free VPS ===== | ||
Line 98: | Line 118: | ||
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. |