Skip to content

Security: systemlocker/System-Locker-Nightflyer-.NET

Security

SECURITY.md

Security policy

Report vulnerabilities privately through System Locker support. Do not include license credentials, installation private keys, leases, or customer data in a public issue.

Trust boundary

The application developer must embed an initial Nightflyer Ed25519 public-key ring through a trusted release channel. This SDK accepts a replacement key only through a signed, linear key-transition token whose old key is already trusted. Persistent state stores and replays that signed transition chain from the embedded roots; it never treats a saved expanded key ring as authority. The complete state record is also signed by the installation key.

Nightflyer verifies the signature and fixed token type before consuming lease or status claims. A valid offline lease remains valid until its signed expiry; an offline device cannot observe server-side revocation until it reconnects.

Accepted limitations

EcdsaInstallationKey is intentionally memory-only. Applications choosing persistent leases must use an OS-protected, preferably non-exportable installation key and bind persistence to the current OS user. By default, cross-reboot offline use is accepted only when UTC has not moved behind the installation-key-signed high-water checkpoint. This rejects simple wall-clock rollback while preserving normal offline restarts and time-zone changes. Software-only storage cannot distinguish every coordinated replay of an older, correctly signed snapshot and matching clock value. Set RequireOnlineAfterReboot to true to require a signed online response after each OS boot when that stricter tradeoff is appropriate.

There aren't any published security advisories