<?xml version="1.0" encoding="utf-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="std"
     docName="draft-durga-agent-clear-revocation-00"
     ipr="trust200902"
     submissionType="IETF"
     version="3"
     xml:lang="en">
  <front>
    <title abbrev="Transitive CLEAR DAG Revocation &amp; OT Firewall">Transitive CLEAR Revocation and Composite Physical-Safety Windows for Multi-Hop Autonomous Agent DAGs</title>
    <seriesInfo name="Internet-Draft" value="draft-durga-agent-clear-revocation-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>WIMSE / OAuth 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>When an orchestrator agent delegates sub-tasks across a multi-hop Directed Acyclic Graph (DAG) of specialist agents, OAuth 2.0 Token Revocation (RFC 7009) revokes only individual client tokens and provides no mechanism to atomically halt in-flight child, grandchild, or sibling branches or enforce composite time-to-live windows across the entire execution tree. Furthermore, no protocol binds IEC 62443 / Purdue Enterprise Reference Architecture (PERA) zone boundaries into agent capability receipts. This document specifies the Transitive CLEAR (Cryptographic Lease Early-Abort &amp; Revocation) DAG protocol and hard Operational Technology (OT) Level 0-2 physical-safety firewalling.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true">
      <name>Introduction and Problem Statement</name>
      <t>In multi-agent workflows, revoking a parent agent's token leaves already-spawned downstream sub-agents free to execute stale tool calls against enterprise or industrial infrastructure. Existing delegation specs lack a transitive DAG epoch heartbeat and a cryptographic Purdue-zone firewall bit that unconditionally blocks autonomous writes to Level 0, Level 1, and Level 2 Programmable Logic Controllers (PLCs) and Safety Instrumented Systems (SIS).</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 Transitive CLEAR DAG Revocation &amp; OT Firewall.</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>Transitive CLEAR Token and OT Zone Firewall Profile</name>
      <t>Every node in a multi-hop agent execution DAG MUST carry and verify a signed CLEAR DAG Envelope prior to executing any downstream tool call:</t>
      <sourcecode type="json"><![CDATA[
{
  "clear_version": "1.0",
  "dag_root_id": "urn:uuid:9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
  "hop_index": 3,
  "parent_node_hash": "sha256:4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a",
  "composite_window_start_ms": 1793404800000,
  "composite_window_end_ms": 1793404805000,
  "clear_revocation_epoch": 19,
  "effect_class": "ACTUATE_ADVISORY",
  "target_purdue_zone": "PERA_LEVEL_3_MES",
  "sis_hardware_interlock_present": false,
  "signature": {
    "alg": "Ed25519",
    "kid": "sha256:b600306cfa76723fdec395e53a9b3d9fdb78b1e2d7a23c32fcbcd2dc6d0c4092",
    "sig": "Ns1GRnHE2CtxrTdUqpjcxTq1Wpn_1VEx-zuUNz63I9hzBkJoruECGHT4sRFyLQfkX9meQ7BfxkjhlQ08wY0uDQ"
  }
}
]]></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>TRANSITIVE_ANCESTOR_REVOCATION: If any ancestor node in dag_root_id broadcasts a signed CLEAR abort frame or increments clear_revocation_epoch, all descendant nodes MUST immediately abort pending tool calls and release held resource leases within one heartbeat interval.</li>
        <li>COMPOSITE_WINDOW_CONTAINMENT: At every hop i, the child execution window [start_i, end_i] MUST be a strict subset of its parent's window [start_{i-1}, end_{i-1}], and execution MUST fail closed if current_time > composite_window_end_ms.</li>
        <li>OT_PURDUE_L0_L2_FIREWALL: Any agent invocation targeting target_purdue_zone in {PERA_LEVEL_0_PROCESS, PERA_LEVEL_1_BASIC_CONTROL, PERA_LEVEL_2_SUPERVISORY} with effect_class != READ_ONLY MUST be unconditionally rejected by the protocol gateway.</li>
      </ol>
    </section>
    <section anchor="strict-parser-determinism" numbered="true">
      <name>Strict Parser Determinism and Wire-Level Input Hardening</name>
      <t>In multi-hop industrial and enterprise agent DAGs, a single permissive parser on an intermediate hop can allow a revoked or expired branch to actuate downstream systems. Conforming CLEAR DAG verifiers and OT zone gateways MUST enforce five pre-canonicalization parser invariants:</t>
      <ol spacing="normal">
        <li>DUPLICATE_KEY_REJECTION: The JSON parser MUST reject any CLEAR envelope containing duplicate keys (such as duplicate <tt>target_purdue_zone</tt> or <tt>effect_class</tt> fields) at parse time before policy evaluation.</li>
        <li>IEEE754_FINITE_SAFE_INTEGER_BOUNDS: All epoch and window fields (<tt>hop_index</tt>, <tt>composite_window_start_ms</tt>, <tt>composite_window_end_ms</tt>, <tt>clear_revocation_epoch</tt>) MUST be exact JSON integers within <tt>[0, 2^53 - 1]</tt>. Boolean types, string-coerced integers, and non-finite IEEE-754 floats (<tt>NaN</tt>, <tt>Infinity</tt>, <tt>1e1000</tt>) MUST fail closed.</li>
        <li>CYCLE_SAFE_TRANSITIVE_DAG_VERIFICATION: Verifiers MUST track visited node digests along the <tt>parent_node_hash</tt> chain and immediately reject any cyclic graph or hop depth exceeding the policy maximum.</li>
        <li>CANONICAL_HEX_AND_BASE64URL_ENFORCEMENT: <tt>parent_node_hash</tt> and <tt>kid</tt> MUST match <tt>^sha256:[0-9a-f]{64}$</tt>, and <tt>sig</tt> MUST be canonical unpadded Base64url with zero non-zero trailing pad bits.</li>
        <li>EVIDENCE_TO_RULE_BYTE_BINDING: When a multi-hop CLEAR receipt chain is evaluated inside an external Verdict Record (<xref target="I-D.wright-verdict-record"/>), the rule checker MUST extract <tt>composite_window_end_ms</tt>, <tt>target_purdue_zone</tt>, and <tt>parent_node_hash</tt> directly from the digest-verified hop receipt bytes rather than trusting copied summary fields in the Verdict Record body.</li>
      </ol>
    </section>
    <section anchor="implementation-status" numbered="true">
      <name>Implementation Status and Empirical Benchmark Evaluation</name>
      <t>The transitive CLEAR DAG revocation protocol and Purdue Level 0-2 physical-safety firewall specified in this document have been implemented and benchmarked across open-source governance suites:</t>
      <ul spacing="normal">
        <li>Open-Source Delegation &amp; Kill-Switch Verifiers: Multi-hop delegation link verification, kill-switch signature validation, and scope-attenuation assertions are implemented across <tt>agentrust-io/trace-spec</tt>, <tt>agentrust-io/cmcp</tt>, <tt>OWASP/Agent-Security-Regression-Harness</tt>, and <tt>GenAI-Security-Project/GenAI-Agent-Security-Initiative</tt> (<xref target="AGENTIC-GOV-BENCHMARKS"/>).</li>
        <li>Core Rust Evidence Engine: Deterministic RFC 8785 JCS trace evidence reporting and monotonic confidence bounds are merged 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 across 100 contested multi-agent trials in the OWASP ASI01-ASI10 benchmark (<xref target="OWASP-ASI-BENCHMARK-DOI"/>) and the companion Technical Report (<xref target="ZENODO-TR-2026-03"/>), cycle-safe transitive CLEAR revocation halts downstream child and grandchild branches within a single heartbeat window and achieves 0.0% unauthorized writes across Purdue Level 0-2 PLC/SIS boundaries.</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>620</tt> bytes) hashes to SHA-256 <tt>efc24ed02692c73f33560c5f91924dedb24da33dfcbd2f02eba6960d2f4119fa</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/agent-clear-dag+json</tt> and the registry <tt>IETF Agent Industrial Purdue Zone Identifiers (PERA_LEVEL_0_PROCESS through PERA_LEVEL_5_ENTERPRISE)</tt>, alongside the following header fields:</t>
      <ul spacing="normal">
        <li>HTTP/MCP Header Field: <tt>Agent-Clear-DAG</tt></li>
        <li>HTTP/MCP Header Field: <tt>Agent-OT-Zone-Assertion</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-03" target="https://doi.org/10.5281/zenodo.23735278">
        <front>
          <title>Transitive CLEAR DAG Revocation, Pre-Release Compensation Leases, and Purdue OT Firewalls for Autonomous Industrial Agents</title>
          <author fullname="Raghuvar Karthik Durga" initials="R. K." surname="Durga"/>
          <date month="October" year="2026"/>
        </front>
        <seriesInfo name="DOI" value="10.5281/zenodo.23735278"/>
      </reference>
    </references>
  </back>
</rfc>
