| Internet-Draft | Merkle Model Activation Binding | November 2026 |
| Durga | Expires 6 May 2027 | [Page] |
Supply Chain Integrity, Transparency, and Trust (SCITT) provides transparent artifact statements, and Remote Attestation Procedures (RATS, RFC 9334) provide hardware/runtime attestation evidence. However, no existing internet standard defines an atomic cryptographic binding between a chunked AI model weight release manifest, a hardware-monotonic anti-rollback epoch counter, and a live RATS attestation result at the moment model weights are mapped into accelerator memory. This document specifies the Model Activation Binding Token (MABT) protocol, preventing load-time weight substitution, silent quantization downgrade, and rollback attacks across cloud and edge AI inference fleets.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 6 May 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
AI model weights (GGUF, Safetensors, ONNX) are multi-gigabyte artifacts loaded dynamically by agent runtimes. Standard container image signing verifies the container binary at boot, but does not cryptographically bind the active model tensor chunks, LoRA adapter layers, and quantization profile in GPU/NPU memory to a SCITT transparency receipt and a RATS hardware nonce during inference execution.¶
This specification complements the foundational execution-trace verification architecture defined in draft-durga-agenttrust-trace-verification-00 by introducing deterministic, fail-closed wire semantics specifically addressing Merkle Model Activation Binding.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 ([RFC2119] [RFC8174]) when, and only when, they appear in all capitals, as shown here.¶
Prior to serving inference requests for a governed agent workflow, the inference runtime MUST generate and register a COSE_Sign1 or JCS-canonicalized Model Activation Binding Token (MABT):¶
{
"mabt_version": "1.0",
"workload_id": "spiffe://example.org/ns/prod/sa/agent-inference-node-04",
"weight_merkle_root": "sha256:6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b",
"manifest_meta": {
"chunk_size_bytes": 4194304,
"total_byte_length": 16106127360,
"quantization_profile": "FP16_STRICT"
},
"anti_rollback_security_epoch": 42,
"rats_eat_attestation_hash": "sha256:d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35",
"scitt_transparency_receipt_ref": "sha256:4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce",
"activation_nonce": "9f86d081884c7d659a2feaa0c55ad015",
"exp": 1793491200,
"signature": {
"alg": "Ed25519",
"kid": "sha256:b600306cfa76723fdec395e53a9b3d9fdb78b1e2d7a23c32fcbcd2dc6d0c4092",
"sig": "b3cCTQWySKBHRIbG2jPGHgJXcAsxYhAXLZ6sYdn_vhQrhViPT48ZRjLk-yG3N0A1Aj-XDJspWC6eT4jryzLYAA"
}
}
¶
Conforming verifiers and relying-party gateways MUST enforce the following deterministic invariants before releasing any downstream side effect:¶
Cross-language interoperability testing across Rust and Python attestation verifiers demonstrates that standard RFC 8785 JCS canonicalization is necessary but insufficient if the outer JSON/CBOR parser silently coerces malformed inputs prior to canonicalization. Conforming MABT verifiers MUST enforce five pre-canonicalization parser invariants:¶
manifest_meta map containing duplicate member names at the lexer/object-pairs hook prior to dictionary construction, preventing last-key-wins shadow payload attacks.¶
chunk_size_bytes, total_byte_length, anti_rollback_security_epoch, exp) MUST be exact JSON integers within the IEEE-754 safe integer range [-(2^53 - 1), +(2^53 - 1)]. Boolean literals (true/false), fractional numbers, and non-finite constants (NaN, Infinity, -Infinity, or exponent-overflow tokens such as 1e1000) MUST be rejected immediately.¶
sha256:-prefixed digest fields (weight_merkle_root, rats_eat_attestation_hash, scitt_transparency_receipt_ref, kid) MUST consist of the literal lowercase prefix sha256: followed by exactly 64 lowercase ASCII hexadecimal characters ([0-9a-f]{64}).¶
sig field MUST be unpadded RFC 4648 Section 5 Base64url with zero non-zero trailing pad bits. Any embedded or referenced JWK key material MUST reject private key parameters (d, p, q, dp, dq, qi, oth, k) and non-minimal Base64urlUInt RSA exponents.¶
The normative mechanisms and strict parser hardening rules specified in this document have been implemented and evaluated across open-source reference verifiers and production attestation pipelines:¶
HCLAkPub JWK validation, and RFC 9162 Merkle weight-custody proofs is implemented in the agentrust-io/cmcp, agentrust-io/weight-custody-manifest, and agentrust-io/trace-spec verifier suites ([AGENTIC-GOV-BENCHMARKS]).¶
TraceEvidenceReport) and pinned citation verification are implemented in Rust in xerj-org/xerj (engine/crates/xerj-common/src/hub_evidence.rs, [XERJ-HUB-EVIDENCE]).¶
All pre-image objects MUST be canonicalized using RFC 8785 JSON Canonicalization Scheme (JCS) prior to signature generation or verification under RFC 8032 Ed25519. Any clock skew exceeding 60 seconds, digest mismatch, or missing cryptographic binding MUST cause the verifier to fail closed and emit an auditable security rejection receipt. For the normative test vector in Section 3, the Ed25519 test key seed is 2a2a...2a (32 bytes of 0x2a), yielding raw 32-byte public key 197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61 (kid = sha256:b600306cfa76723fdec395e53a9b3d9fdb78b1e2d7a23c32fcbcd2dc6d0c4092), and the full RFC 8785 JCS-canonicalized envelope (822 bytes) hashes to SHA-256 f12feb5bf217115ee22b4e82b9da13de2497000fddd248ebeaec6d4969b405c1. This specification cross-references the companion Internet-Drafts ([I-D.durga-agenttrust-trace-verification], [I-D.durga-wimse-ctx-isolation], [I-D.durga-pquip-pqc-agentic-delegation], [I-D.durga-agent-tx-compensation-lease]), external Verdict Record evidence binding ([I-D.wright-verdict-record]), Remote Attestation ([RFC9334]), Merkle Tree domain separation ([RFC9162]), and the 100-scenario OWASP ASI01-ASI10 benchmark ([OWASP-ASI-BENCHMARK-DOI]).¶
This document requests IANA registration of the media type application/mabt-activation+json and the registry IETF Model Activation Verification Profiles, alongside the following header fields:¶
Agent-Model-Activation-Binding¶