Security Practices
Harden your client application when integrating LibreAuth.
Client-side
- Obfuscate API URL, app name, owner ID (LibreAuth Protect L1 + xorstr / custom XOR)
- Verify response signatures before trusting JSON
- Send exe
hashon init when hash check is enabled - Call
check()periodically to detect session hijack - Do not store license keys in plain text on disk
- Never expose
Application Secretin client binaries — use Ed25519 public key only
Wire security
- Always use HTTPS
- Enable signature verification — see Response Signing
- Send 35-char
enckeyon init for AES-encrypted responses - Send HWID on login and license when HWID lock is enabled
- Send
cpuandpcuseron login so admins can identify machines — Users & Machines - Ban repeat offenders with scoped machine ban — HWID Bans · panel guide
API v1.4 wire
- Enterprise plan required —
/api/1.4/returns 404 for other plans - Use opaque wire on
/api/1.4/— handled by official SDK - If per-app pepper is set, embed it obfuscated in the client — see Panel Configuration
- Implement
seqcounter — increment only after successful responses - Parse compact response keys (
s,m,i, …) — see mapping table
Server checklist
- Rotate
api.wire_pepperin config — see/health.phpsecurity_advisory - Set
trusted_proxieswhen behind Cloudflare or nginx - Enable Redis for distributed rate limits
- Turnstile on panel + customer login (Hub → Platform)
- Per-app wire pepper for API 1.4 apps
- Enterprise integrations may opt into Protocol v2 (
/api/v2/) — no client-held pepper; API 1.x remains supported - Run
php scripts/security-audit.php --htmlafter deploy
INFO
Panel toggles: Access Controls · Users & Machines · HWID Bans · Anti-tamper: Anti-Tamper · API 1.4: API v1.4 · Native hardening: Hardening Guide