Launch Control
Overview
Launch control is a variant of Solidshield Activation with ephemeral one-time launch tokens, bound to the unique execution context variables. Launch tokens are immune to replay attacks, executing the same software twice on the same machine, will require a new unique launch token.
Use cases
Example use-cases for Launch control:
- Licensing: bind a software to a licensing server, so it runs only if the server validates its launch.
- Floating licenses for virtual appliances: when delivering your products as a virtual machine image, it is not possible to control how many virtual instances are running. Launch Control can cap the amount of simultaneously running instances.
- Confidentiality shutdown for emergency situation: useful in scenarios where the physical safety of where the software runs can be compromised.
Launch control setup
- Solidshield hosted launch control servers, requiring Internet connection
- SolidBond dongle local USB-form factor server, secured by chain-of-trust
Supported targets
- ELF x86-64
- ELF x86
- PE x86
- PE x86-64
- Java
Technical details
Check Custom configuration paragraph for an example.
Custom configuration
Launch Control allows specifying a configuration JSON file, so to override a few important run-time parameters. An example configuration file might be:
{
"token-servers": ["10.155.155.1:7007"],
"randomize-servers-list": false,
"connection-timeout": 300,
"connection-retries": 10
}
Property | Description |
---|---|
token-servers | An array of |
randomize-servers-list | If set to true, the list of servers will be shuffled, before starting connection attempts. This is very useful to perform client-side load-balancing, having multiple clients randomly addressing any of the available servers. |
connection-timeout | The amount of milliseconds to wait before quitting a connection attempt for timeout. |
connection-retries | How many times the list of servers will be iterated before exiting, with exit code 127. |
As an example of redundant configuration, having two Launch Control servers installed on two distinct machines, identified by IP addresses 192.168.1.17 and 192.168.1.18. a working launch-config.json file would look like this:
{
"token-servers": ["192.168.1.17:7007", "192.168.1.18:7007"],
"randomize-servers-list": true,
"connection-timeout": 500,
"connection-retries": 3
}
Run-time parameters
Environment variable | Description |
---|---|
SLD_LAUNCH_CONFIG | Path pointing to the Launch Control config JSON file |
Error Exit codes
Exit Code | Description |
---|---|
126 | Error parsing supplied Launch Control config JSON file. |
127 | Cannot connect to any Launch Control server |
Last update:
2019-04-29