Security

Truth lives on the server

No licensing API makes a binary uncrackable. Keyguard makes piracy expensive: entitlements, files, and minting stay off the client.

LayerWhat it does
PanelCloudflare Turnstile, email code, Argon2id, JWT
Client sessionHMAC + nonce + timestamp after init
PasswordsArgon2id (owners, resellers, end users)
Seller keysHeader only, hashed at rest, prefix lookup
FilesRandom IDs, SHA-256, auth-required default
WebhooksSSRF allowlist, no seller key in the product
Rate limitsRegister / verify / login / client / seller

Your product still has a job

  • Never embed seller keys.
  • Compare file SHA-256 before writing to disk.
  • Call check on a heartbeat so we can kill sessions.
  • Obfuscate your own binary if the threat model needs it. Keyguard is not a packer.