<?xml version="1.0" encoding="utf-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="std"
     docName="draft-durga-scitt-model-activation-binding-00"
     ipr="trust200902"
     submissionType="IETF"
     version="3"
     xml:lang="en">
  <front>
    <title abbrev="Merkle Model Activation Binding">Merkle-Anchored Model Weight Release and RATS-Attested Runtime Activation Binding for Edge and Cloud AI Fleets</title>
    <seriesInfo name="Internet-Draft" value="draft-durga-scitt-model-activation-binding-00"/>
    <author fullname="Raghuvar Karthik Durga" initials="R. K." surname="Durga">
      <organization>Microsoft Corporation</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>rdurga@microsoft.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="2"/>
    <area>Security</area>
    <workgroup>SCITT / RATS Working Group</workgroup>
    <keyword>Agentic AI</keyword>
    <keyword>MCP</keyword>
    <keyword>A2A</keyword>
    <keyword>JCS</keyword>
    <keyword>Ed25519</keyword>
    <keyword>Zero Trust</keyword>
    <abstract>
      <t>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.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true">
      <name>Introduction and Problem Statement</name>
      <t>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.</t>
      <t>This specification complements the foundational execution-trace verification architecture defined in <tt>draft-durga-agenttrust-trace-verification-00</tt> by introducing deterministic, fail-closed wire semantics specifically addressing Merkle Model Activation Binding.</t>
    </section>
    <section anchor="conventions" numbered="true">
      <name>Conventions and Definitions</name>
      <t>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 (<xref target="RFC2119"/> <xref target="RFC8174"/>) when, and only when, they appear in all capitals, as shown here.</t>
    </section>
    <section anchor="wire-format" numbered="true">
      <name>Model Activation Binding Token (MABT) Structure</name>
      <t>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):</t>
      <sourcecode type="json"><![CDATA[
{
  "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"
  }
}
]]></sourcecode>
    </section>
    <section anchor="verification-rules" numbered="true">
      <name>Normative Fail-Closed Verification Rules</name>
      <t>Conforming verifiers and relying-party gateways MUST enforce the following deterministic invariants before releasing any downstream side effect:</t>
      <ol spacing="normal">
        <li>CHUNKED_WEIGHT_MERKLE_VERIFICATION: The weight_merkle_root MUST be computed as a binary Merkle tree (RFC 9162 style domain separation: 0x00 for leaves, 0x01 for internal nodes) over ordered, fixed-size tensor chunks prior to DMA transfer into accelerator memory.</li>
        <li>ANTI_ROLLBACK_EPOCH_ENFORCEMENT: Conforming verifiers MUST reject any MABT whose anti_rollback_security_epoch is strictly less than the minimum security epoch persisted in hardware NVRAM or the fleet policy ledger.</li>
        <li>RATS_NONCE_FRESHNESS: The rats_eat_attestation_hash MUST bind the runtime's hardware measurement, weight_merkle_root, and activation_nonce so replayed attestations from prior boot cycles fail closed.</li>
      </ol>
    </section>
    <section anchor="strict-parser-determinism" numbered="true">
      <name>Strict Parser Determinism and Wire-Level Input Hardening</name>
      <t>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:</t>
      <ol spacing="normal">
        <li>DUPLICATE_KEY_REJECTION: The JSON parser MUST reject any MABT object or nested <tt>manifest_meta</tt> map containing duplicate member names at the lexer/object-pairs hook prior to dictionary construction, preventing last-key-wins shadow payload attacks.</li>
        <li>IEEE754_FINITE_SAFE_INTEGER_BOUNDS: All integer fields (<tt>chunk_size_bytes</tt>, <tt>total_byte_length</tt>, <tt>anti_rollback_security_epoch</tt>, <tt>exp</tt>) MUST be exact JSON integers within the IEEE-754 safe integer range <tt>[-(2^53 - 1), +(2^53 - 1)]</tt>. Boolean literals (<tt>true</tt>/<tt>false</tt>), fractional numbers, and non-finite constants (<tt>NaN</tt>, <tt>Infinity</tt>, <tt>-Infinity</tt>, or exponent-overflow tokens such as <tt>1e1000</tt>) MUST be rejected immediately.</li>
        <li>CANONICAL_LOWERCASE_HEX_DIGESTS: All <tt>sha256:</tt>-prefixed digest fields (<tt>weight_merkle_root</tt>, <tt>rats_eat_attestation_hash</tt>, <tt>scitt_transparency_receipt_ref</tt>, <tt>kid</tt>) MUST consist of the literal lowercase prefix <tt>sha256:</tt> followed by exactly 64 lowercase ASCII hexadecimal characters (<tt>[0-9a-f]{64}</tt>).</li>
        <li>MINIMAL_BASE64URL_AND_PUBLIC_JWK_HYGIENE: The <tt>sig</tt> 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 (<tt>d</tt>, <tt>p</tt>, <tt>q</tt>, <tt>dp</tt>, <tt>dq</tt>, <tt>qi</tt>, <tt>oth</tt>, <tt>k</tt>) and non-minimal <tt>Base64urlUInt</tt> RSA exponents.</li>
        <li>EVIDENCE_TO_RULE_BYTE_BINDING: When a MABT is cited as an evidence item inside an external Verdict Record (<xref target="I-D.wright-verdict-record"/>), the verifier rule evaluation MUST bind directly to the digest-verified MABT envelope bytes rather than unverified summary copies in the outer claim body.</li>
      </ol>
    </section>
    <section anchor="implementation-status" numbered="true">
      <name>Implementation Status and Empirical Benchmark Evaluation</name>
      <t>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:</t>
      <ul spacing="normal">
        <li>Open-Source Attestation &amp; Custody Verifiers: Production verifier hardening for AMD SEV-SNP VCEK/ASK chains, Intel TDX Quote v4, NVIDIA NRAS EAR appraisal, Azure CVM HCL <tt>HCLAkPub</tt> JWK validation, and RFC 9162 Merkle weight-custody proofs is implemented in the <tt>agentrust-io/cmcp</tt>, <tt>agentrust-io/weight-custody-manifest</tt>, and <tt>agentrust-io/trace-spec</tt> verifier suites (<xref target="AGENTIC-GOV-BENCHMARKS"/>).</li>
        <li>Core Rust Evidence Engine: Deterministic RFC 8785 JCS evidence digesting (<tt>TraceEvidenceReport</tt>) and pinned citation verification are implemented in Rust in <tt>xerj-org/xerj</tt> (<tt>engine/crates/xerj-common/src/hub_evidence.rs</tt>, <xref target="XERJ-HUB-EVIDENCE"/>).</li>
        <li>Empirical Benchmark Results: Evaluated against the 100-scenario OWASP ASI01-ASI10 Enterprise Agentic AI Security Regression Benchmark (<xref target="OWASP-ASI-BENCHMARK-DOI"/>) and the companion Technical Report (<xref target="ZENODO-TR-2026-01"/>), two-layer Merkle weight-release verification and tri-anchor hardware lease enforcement detect 100% of weight-chunk tampering, quantization downgrades, and epoch rollback attempts with sub-millisecond verification overhead.</li>
      </ul>
    </section>
    <section anchor="security" numbered="true">
      <name>Security Considerations</name>
      <t>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 <xref target="wire-format"/>, the Ed25519 test key seed is <tt>2a2a...2a</tt> (32 bytes of <tt>0x2a</tt>), yielding raw 32-byte public key <tt>197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61</tt> (<tt>kid</tt> = <tt>sha256:b600306cfa76723fdec395e53a9b3d9fdb78b1e2d7a23c32fcbcd2dc6d0c4092</tt>), and the full RFC 8785 JCS-canonicalized envelope (<tt>822</tt> bytes) hashes to SHA-256 <tt>f12feb5bf217115ee22b4e82b9da13de2497000fddd248ebeaec6d4969b405c1</tt>. This specification cross-references the companion Internet-Drafts (<xref target="I-D.durga-agenttrust-trace-verification"/>, <xref target="I-D.durga-wimse-ctx-isolation"/>, <xref target="I-D.durga-pquip-pqc-agentic-delegation"/>, <xref target="I-D.durga-agent-tx-compensation-lease"/>), external Verdict Record evidence binding (<xref target="I-D.wright-verdict-record"/>), Remote Attestation (<xref target="RFC9334"/>), Merkle Tree domain separation (<xref target="RFC9162"/>), and the 100-scenario OWASP ASI01-ASI10 benchmark (<xref target="OWASP-ASI-BENCHMARK-DOI"/>).</t>
    </section>
    <section anchor="iana" numbered="true">
      <name>IANA Considerations</name>
      <t>This document requests IANA registration of the media type <tt>application/mabt-activation+json</tt> and the registry <tt>IETF Model Activation Verification Profiles</tt>, alongside the following header fields:</t>
      <ul spacing="normal">
        <li>HTTP/MCP Header Field: <tt>Agent-Model-Activation-Binding</tt></li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
      </reference>
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
      </reference>
      <reference anchor="RFC8785" target="https://www.rfc-editor.org/info/rfc8785">
        <front>
          <title>JSON Canonicalization Scheme (JCS)</title>
          <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
          <author fullname="B. Jordan" initials="B." surname="Jordan"/>
          <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
          <date month="June" year="2020"/>
        </front>
        <seriesInfo name="RFC" value="8785"/>
      </reference>
      <reference anchor="RFC8032" target="https://www.rfc-editor.org/info/rfc8032">
        <front>
          <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
          <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
          <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
          <date month="January" year="2017"/>
        </front>
        <seriesInfo name="RFC" value="8032"/>
      </reference>
    </references>
    <references>
      <name>Informative References</name>
      <reference anchor="RFC9162" target="https://www.rfc-editor.org/info/rfc9162">
        <front>
          <title>Certificate Transparency Version 2.0</title>
          <author fullname="B. Laurie" initials="B." surname="Laurie"/>
          <author fullname="E. Messeri" initials="E." surname="Messeri"/>
          <author fullname="R. Stradling" initials="R." surname="Stradling"/>
          <date month="December" year="2021"/>
        </front>
        <seriesInfo name="RFC" value="9162"/>
      </reference>
      <reference anchor="RFC9334" target="https://www.rfc-editor.org/info/rfc9334">
        <front>
          <title>Remote ATtestation procedureS (RATS) Architecture</title>
          <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
          <author fullname="D. Thaler" initials="D." surname="Thaler"/>
          <author fullname="M. Richardson" initials="M." surname="Richardson"/>
          <author fullname="N. Smith" initials="N." surname="Smith"/>
          <author fullname="W. Pan" initials="W." surname="Pan"/>
          <date month="January" year="2023"/>
        </front>
        <seriesInfo name="RFC" value="9334"/>
      </reference>
      <reference anchor="I-D.durga-agenttrust-trace-verification" target="https://datatracker.ietf.org/doc/html/draft-durga-agenttrust-trace-verification-00">
        <front>
          <title>Cryptographic Execution-Trace Verification, JCS Canonicalization, and Fail-Closed Delegation Chains for Autonomous AI Agents</title>
          <author fullname="Raghuvar Karthik Durga" initials="R. K." surname="Durga"/>
          <date month="October" year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-durga-agenttrust-trace-verification-00"/>
      </reference>
      <reference anchor="I-D.durga-wimse-ctx-isolation" target="https://datatracker.ietf.org/doc/html/draft-durga-wimse-ctx-isolation-00">
        <front>
          <title>Cryptographic Context Isolation and Instruction-Data Plane Separation for Autonomous Agent Tool Invocations</title>
          <author fullname="Raghuvar Karthik Durga" initials="R. K." surname="Durga"/>
          <date month="October" year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-durga-wimse-ctx-isolation-00"/>
      </reference>
      <reference anchor="I-D.durga-pquip-pqc-agentic-delegation" target="https://datatracker.ietf.org/doc/html/draft-durga-pquip-pqc-agentic-delegation-00">
        <front>
          <title>Post-Quantum Hybrid Cryptographic Delegation Chains and Merkle-Aggregated Execution Receipts for Autonomous AI Agents</title>
          <author fullname="Raghuvar Karthik Durga" initials="R. K." surname="Durga"/>
          <date month="October" year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-durga-pquip-pqc-agentic-delegation-00"/>
      </reference>
      <reference anchor="I-D.durga-agent-tx-compensation-lease" target="https://datatracker.ietf.org/doc/html/draft-durga-agent-tx-compensation-lease-00">
        <front>
          <title>Pre-Release Transactional Compensation Leases and CAS Fencing Receipts for Autonomous Agents Over Systems of Record</title>
          <author fullname="Raghuvar Karthik Durga" initials="R. K." surname="Durga"/>
          <date month="November" year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-durga-agent-tx-compensation-lease-00"/>
      </reference>
      <reference anchor="I-D.wright-verdict-record" target="https://datatracker.ietf.org/doc/html/draft-wright-verdict-record-01">
        <front>
          <title>Verdict Records: Results on Claims that Cite Receipts as Evidence</title>
          <author fullname="Darren Wright" initials="D." surname="Wright"/>
          <date month="November" year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-wright-verdict-record-01"/>
      </reference>
      <reference anchor="OWASP-ASI-BENCHMARK-DOI" target="https://doi.org/10.57967/hf/11352">
        <front>
          <title>OWASP ASI01-ASI10 Enterprise Agentic AI Security Regression Benchmark Dataset (N=100 Scenarios)</title>
          <author fullname="Raghuvar Karthik Durga" initials="R. K." surname="Durga"/>
          <date month="October" year="2026"/>
        </front>
        <seriesInfo name="DOI" value="10.57967/hf/11352"/>
      </reference>
      <reference anchor="XERJ-HUB-EVIDENCE" target="https://github.com/xerj-org/xerj/pull/2857">
        <front>
          <title>XERJ Common Rust Engine: Deterministic JCS TraceEvidenceReport, PinnedCitation, and Isotonic Confidence Verification</title>
          <author fullname="Raghuvar Karthik Durga" initials="R. K." surname="Durga"/>
          <date month="November" year="2026"/>
        </front>
        <seriesInfo name="GitHub" value="xerj-org/xerj#2857"/>
      </reference>
      <reference anchor="AGENTIC-GOV-BENCHMARKS" target="https://github.com/drk-ram/enterprise-agentic-governance-benchmarks/releases/tag/v1.0.0">
        <front>
          <title>Enterprise Agentic Governance Benchmarks and Reference Verifier Suite v1.0.0</title>
          <author fullname="Raghuvar Karthik Durga" initials="R. K." surname="Durga"/>
          <date month="November" year="2026"/>
        </front>
        <seriesInfo name="Version" value="1.0.0"/>
      </reference>
      <reference anchor="ZENODO-TR-2026-01" target="https://doi.org/10.5281/zenodo.23735274">
        <front>
          <title>Cryptographic Model Weight Release, Hardware Anti-Rollback Leases, and RATS-Attested Activation Binding for Edge AI Fleets</title>
          <author fullname="Raghuvar Karthik Durga" initials="R. K." surname="Durga"/>
          <date month="October" year="2026"/>
        </front>
        <seriesInfo name="DOI" value="10.5281/zenodo.23735274"/>
      </reference>
    </references>
  </back>
</rfc>
