KineGrant Protocol reference implementation v0.1.1
This security-hardening release implements KGP-001 Experimental Open Draft 0.1. It remains experimental and must not be used as the sole safety control for real machinery.
Security hardening
- Trust no policy issuer by default; untrusted rules cannot grant permission.
- Fail closed on unknown or incomplete ODRL/MyTerms authorization semantics.
- Evaluate request freshness and policy validity against trusted local time.
- Bind capabilities to a digest of the complete normalized policy snapshot.
- Enforce strict capability fields, version, time ordering, 300-second maximum TTL, nonce, digest, and request binding.
- Atomically consume capabilities once, with persistent SQLite replay protection across restarts.
- Require gate-verified capabilities for receipt creation and enforce trusted executors and one terminal receipt per capability.
- Protect adapter-owned context and validate runtime models strictly.
- Publish five Draft 2020-12 JSON Schemas and expanded threat-model and implementation guidance.
Validation
- 33 unit, schema, adapter, replay, capability, policy-trust, and receipt-trust tests passed.
- Python 3.11, 3.12, and 3.13 GitHub Actions passed.
- Demo smoke test passed.
- Wheel and sdist builds passed.
Compatibility and boundaries
The protocol wire format remains 0.1; only the Python reference implementation version changes to 0.1.1. Existing permissive integrations may need explicit trusted issuers, supported authorization constraints, durable replay storage, and trusted executor configuration.
License: Apache-2.0. Verify downloadable assets with SHA256SUMS.txt.