Threat 1
License file tampering
Attack
Editing dates, machine fingerprint, features, or feature flags inside the JSON payload after it has been signed.
Defense
Ed25519 / RSA-SHA256 signature over the payload, verified at LicenseVerifier::load() against the public key embedded in your application.
Residual risk & mitigation
None for the file itself: any byte change invalidates the signature and load() returns SignatureInvalid. Residual: an attacker who steals your signing private key can sign anything; mitigation = keep private.pem on a secure machine and rotate keys per the versioning policy if compromise is suspected.