Skip to content

security: add evidence_class to audit entries for tool response assurance#322

Merged
imran-siddique merged 1 commit into
mainfrom
security/evidence-class
Jun 19, 2026
Merged

security: add evidence_class to audit entries for tool response assurance#322
imran-siddique merged 1 commit into
mainfrom
security/evidence-class

Conversation

@imran-siddique

Copy link
Copy Markdown
Contributor

Adds `evidence_class: str` (`hash-only` | `tls-pinned`) to `AuditEntry`. The proxy sets `tls-pinned` when the upstream server URL is HTTPS and the catalog entry carries a real TLS certificate fingerprint (not the dev placeholder `SHA256:AAA...=`).

Verifiers can now distinguish audit entries where the response server identity was cryptographically verified via a pinned TLS certificate from those where it was not. Documents both evidence classes and the non-repudiation limitation in `LIMITATIONS.md`.

Changes

  • `src/cmcp_runtime/audit/chain.py`: Add `evidence_class` field to `AuditEntry` (default `hash-only`) and `evidence_class` param to `append()`
  • `src/cmcp_runtime/mcp/proxy.py`: Compute `evidence_class` from catalog TLS fingerprint and pass to audit entry
  • `LIMITATIONS.md`: Document tool server non-repudiation limitation and both evidence classes

Test plan

  • 646 unit tests pass locally
  • CI green

🤖 Generated with Claude Code

…ance

Introduce evidence_class field on AuditEntry (hash-only | tls-pinned).
The proxy sets tls-pinned when the catalog entry carries a real TLS
fingerprint (not the dev placeholder) and the upstream URL is HTTPS.
Verifiers can use this field to distinguish responses received over
a verified TLS channel from those received without cert pinning.
Documents both classes and the non-repudiation limitation in LIMITATIONS.md.

Signed-off-by: Imran Siddique <imran.siddique@opaque.co>
@imran-siddique imran-siddique merged commit a648ef0 into main Jun 19, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant