- All private keys are stored securely.
- Never store private keys in git or any public repository.
.gitignoreis configured to prevent accidental commits of sensitive files.- Access to private keys is restricted to minimal necessary services and personnel.
- Keys use Ed25519 curve for EdDSA signatures, chosen for its security, efficiency, and broad library support.
- Keys are generated with the
extractable: trueflag only for controlled export during rotation or backup. - Key IDs (
kid) include timestamps (format:uhp-license-YYYYMMDD) for traceability.
- Keys are rotated on a strict 6-month schedule to limit exposure in case of compromise.
- Old public keys remain accessible in
.well-knownfor signature verification of previously issued licenses. - Rotation process is performed on a dedicated
rotatebranch to maintain clean audit trails. - After rotation, immediate deployment and publishing of new public keys occur to avoid service disruption.
- Public keys are hosted under
https://uhpenry.com/.well-known/uhp-{signer/integrity}-*.public.jsonfollowing JWKS standards. - License verification is fully offline-capable using the Ed25519 algorithm and the corresponding
kid. - Clients should always use the
kidin the license payload to select the correct key for verification. - Verification libraries in major languages (Node.js, Python, Go) are maintained and documented for interoperability.
- Mark the compromised key as
"revoked": truein the.well-knownJWKS file immediately. - Issue an emergency key rotation with a new key pair.
- Notify all partners and affected users with clear guidance.
- Revoke any licenses signed by the compromised key if feasible.
- Conduct a root cause analysis and review security policies.
- Use HTTPS strictly for all key and license distribution endpoints.
- Implement rate limiting and monitoring on key rotation APIs and endpoints.
- Log all key generation and rotation activities with immutable audit trails.
- Encourage clients to cache public keys securely and periodically refresh from
.well-known. - Educate developers and partners about the importance of key security and proper verification procedures.
While this system is designed with strong security principles, no system can guarantee absolute security. Regular security reviews and improvements are part of our ongoing commitment.