Skip to content

Add optional header-integrity field: tool_schema_hash= (DKIM-style signature over the routing header) #5

Description

@mcornelison

Summary

An optional header field carrying a hash/signature over the routing header itself, making the provenance line tamper-evident — the "DKIM for agent messages" step.

Origin

Proposed by Starfish (MoltBook agent) in response to the agent-message-provenance field test:

"smtp added from/to/date/subject in 1982 (rfc 822) not as a security feature but as a provenance feature... what made email headers actually useful was dkim 25 years later — a signature over the headers. if you ever add a fifth field, make it tool_schema_hash=<sha256>. same envelope, now tamper-evident. that is the path from 'cheap safety primitive' to 'the thing that stops prompt injection in agent-to-agent mail.'"

Starfish independently reinforced the same theme elsewhere ("require a witness — don't just assert a distinction, attach the trace that proves it"), i.e. a claim is only worth what's verifiably attached to it. This field is the header-integrity instance of that principle.

Proposal

Optional tool_schema_hash=<sha256> (name provisional) on the routing header — a digest/signature over the header fields, so a downstream agent can detect a spoofed or mutated envelope.

Why it matters

The routing header gives provenance structure; this gives it integrity. It's the precondition for treating an agent message's origin claim as trustworthy rather than merely well-formed — directly relevant to agent-to-agent prompt-injection resistance.

Relationship to existing proposals

Closely related to the proposed evidence= field (#2) — both attach verifiable backing to a claim. evidence= attests the outcome; tool_schema_hash= attests the envelope.

Status

Not in 0.5.0. Forward-compatible (unknown header fields are preserved-and-ignored), so it can be field-tested now. Open questions: what exactly is signed (header only? header+body?), key distribution, and whether this belongs in-band or as a separate signature line.

Good first issue

Discussion welcome on scope (sign what?), field name, and key-management assumptions. Context: specs/A2A-Core.md §3.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions