<?xml version="1.0" encoding="UTF-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="info"
     docName="draft-watts-high-assurance-agent-control-envelope-00"
     ipr="trust200902"
     submissionType="IETF"
     version="3">
  <front>
    <title abbrev="High-Assurance Agent Control">High-Assurance Agent Control Envelope</title>
    <author fullname="Deonte O'dell Watts" initials="D. O." surname="Watts">
      <organization>GoodShyt Group Inc.</organization>
      <address>
        <postal>
          <city>San Francisco</city>
          <region>CA</region>
          <country>US</country>
        </postal>
        <email>deonte@goodshyt.fun</email>
        <uri>https://orcid.org/0009-0005-8586-3650</uri>
      </address>
    </author>
    <date year="2026" month="October" day="14"/>
    <keyword>agentic systems</keyword>
    <keyword>authorization</keyword>
    <keyword>zero trust</keyword>
    <keyword>revocation</keyword>
    <keyword>assurance</keyword>
    <keyword>audit</keyword>
    <abstract>
      <t>Agentic systems can authenticate successfully, hold a valid authorization object, and still be unsafe to execute because required evidence is missing, the software has not reached a required assurance stage, the authority epoch is stale, a prior revocation is unresolved, or a human-approval requirement is unsatisfied. This document defines the High-Assurance Agent Control Envelope (HAACE), a protocol-neutral profile that binds an exact agent action to identity status, authorization state, policy, assurance stage, evidence state, authority epoch, revocation state, oversight requirements, and an action-time decision. HAACE requires fail-closed treatment of missing or indeterminate prerequisites, separates authorization from execution, and produces non-bearer decision and execution receipts. The profile composes with OAuth, workload identity, attestation, transparency, and agent-authorization mechanisms rather than replacing them.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro"><name>Introduction</name>
      <t>High-consequence agent deployments combine several independently useful mechanisms: workload identity, delegated authorization, evidence or attestation, policy evaluation, revocation, software-assurance evidence, human oversight, and execution logging. A recurring systems failure occurs when one valid artifact is silently treated as sufficient for a stronger conclusion. For example, a valid identity does not prove that an action is authorized; a valid authorization does not prove that the underlying software meets a deployment assurance requirement; and invalidating a credential does not prove that stale delegated authority can no longer reach a consequential effect.</t>
      <t>HAACE defines a narrow execution-gate profile. A relying party declares an Assurance Requirement Profile (ARP). An agent or intermediary presents an Action Request Record (ARR) plus references to the required evidence. An independent Action Control Point (ACP) evaluates the request. The ACP emits a non-bearer Action Decision Receipt (ADR). If an effect is attempted, the enforcement point emits a separate Action Execution Receipt (AER). No receipt defined by this document is itself a bearer credential.</t>
      <t>This document is intended for deployments that need stronger action-time assurance, including government, critical-infrastructure, regulated, and enterprise systems. It is not a U.S. Government standard and does not imply endorsement by any government agency.</t>
    </section>

    <section anchor="requirements"><name>Requirements Language</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.</t>
    </section>

    <section anchor="principles"><name>Design Principles</name>
      <ol>
        <li><t>Identity is not authorization. A valid identity result MUST NOT by itself authorize an action.</t></li>
        <li><t>Evidence is not authority. Evidence artifacts MAY influence an authorization decision but MUST NOT be accepted as bearer authorization.</t></li>
        <li><t>Authorization is not execution. An authorization decision MUST be bound to the exact action, resource, policy, audience, and authority epoch evaluated.</t></li>
        <li><t>Unknown is not allow. Missing, stale, unverifiable, contradictory, or indeterminate required premises MUST NOT produce ALLOW.</t></li>
        <li><t>Revocation request is not closure. When an ARP requires closure evidence for a superseded authority epoch, an unresolved closure state MUST NOT be treated as closed.</t></li>
        <li><t>Software assurance does not self-promote. A local conformance result MUST NOT satisfy an ARP that requires independent reproduction or security testing.</t></li>
        <li><t>Agent self-approval is invalid. A principal or agent MUST NOT satisfy an ARP requirement for independent authorization or independent human approval by issuing the required approval to itself.</t></li>
        <li><t>Decision receipts are non-bearer records. Possession of an ADR or AER MUST NOT confer permission to execute another action.</t></li>
      </ol>
    </section>

    <section anchor="terms"><name>Terminology</name>
      <dl>
        <dt>Action Request Record (ARR)</dt><dd><t>A canonical description of the proposed action and its security-relevant bindings.</t></dd>
        <dt>Assurance Requirement Profile (ARP)</dt><dd><t>A relying-party policy object stating which identity, authorization, evidence, software-assurance, revocation, and oversight predicates are required for a class of actions.</t></dd>
        <dt>Action Control Point (ACP)</dt><dd><t>An enforcement-adjacent component that evaluates an ARR against an ARP and current authority state.</t></dd>
        <dt>Action Decision Receipt (ADR)</dt><dd><t>An integrity-protected, non-bearer record of an ACP decision and the inputs evaluated.</t></dd>
        <dt>Action Execution Receipt (AER)</dt><dd><t>An integrity-protected record describing whether the authorized action was attempted, completed, failed, or remained indeterminate at the effect boundary.</t></dd>
        <dt>Authority Epoch</dt><dd><t>A monotonically distinguishable authorization generation used to prevent stale or superseded authority from being accepted as current.</t></dd>
        <dt>Assurance Stage</dt><dd><t>One of REGISTERED, SPEC_VALIDATED, LOCAL_CONFORMANT, INDEPENDENTLY_REPRODUCED, SECURITY_TESTED, or RELEASE_ELIGIBLE.</t></dd>
        <dt>High-Impact Action</dt><dd><t>An action classified by the relying party as requiring heightened assurance or oversight because of potential consequence. This document does not define a universal legal or regulatory classification.</t></dd>
      </dl>
    </section>

    <section anchor="arp"><name>Assurance Requirement Profile</name>
      <t>An ARP is controlled by the relying party, not by the agent whose action is being evaluated. The ARP identifies a profile identifier and version, covered resources or action classes, accepted identity methods, minimum software-assurance stage, evidence requirements, required policy digest, authority-epoch behavior, revocation checks, human-oversight requirements, freshness limits, and receipt-retention requirements.</t>
      <t>An ARP MAY distinguish low-impact and high-impact actions. A deployment MAY require stronger assurance stages, independent approval, shorter freshness bounds, or prior-epoch closure evidence for higher-impact actions.</t>
    </section>

    <section anchor="arr"><name>Action Request Record</name>
      <t>An ARR MUST bind the following security-relevant values: profile version, request identifier, agent identifier, principal identifier when applicable, target resource, operation, action digest, requested audience, authorization identifier, authority epoch, policy digest expected by the requester, and references to evidence artifacts. An ARR MAY carry context that is explicitly declared non-authoritative.</t>
      <t>The action digest MUST cover all parameters whose substitution could change the security-relevant meaning of the action. A relying party MUST reject an ARR if the action presented at enforcement time does not reproduce the registered action digest.</t>
    </section>

    <section anchor="decision"><name>Action-Time Decision Algorithm</name>
      <t>The ACP evaluates an ARR using current relying-party state. A conforming implementation performs the following checks in order:</t>
      <ol>
        <li><t>Validate ARR syntax, required fields, and canonical digest.</t></li>
        <li><t>Verify the agent identity result using a deployment-selected identity mechanism. INVALID or UNKNOWN identity MUST NOT produce ALLOW.</t></li>
        <li><t>Verify an authorization artifact issued by an authority independent of the requesting agent. The authorization MUST bind the agent or principal, resource, operation, audience, scope, validity interval, and authority epoch required by the ARP.</t></li>
        <li><t>Compare the authorization epoch with the current epoch for the resource. A stale epoch MUST be denied.</t></li>
        <li><t>If the ARP requires closure evidence for a superseded epoch, verify an applicable closure result. UNKNOWN, PARTIAL, FAILED, or unresolved closure MUST NOT satisfy a CLOSED requirement.</t></li>
        <li><t>Verify that the software-assurance stage meets or exceeds the ARP minimum. A local PASS MUST NOT satisfy an independent-reproduction requirement.</t></li>
        <li><t>Verify each required evidence predicate. FAIL, UNKNOWN, stale, contradictory, or missing required evidence MUST NOT produce ALLOW.</t></li>
        <li><t>Verify that the current policy digest equals the ARP-pinned policy digest, unless the ARP explicitly defines an allowed successor policy.</t></li>
        <li><t>If human approval is required, verify that the approval was issued by an eligible approver independent of the requesting agent and is bound to the exact action digest and current authority epoch.</t></li>
        <li><t>Verify that the action presented to the effect boundary still matches the evaluated resource, operation, action digest, and audience.</t></li>
        <li><t>Return ALLOW only if every required predicate is satisfied. Return DENY for a known failing predicate. Return INDETERMINATE when a required predicate cannot be established.</t></li>
      </ol>
    </section>

    <section anchor="receipt"><name>Decision and Execution Receipts</name>
      <t>An ADR records the request identifier, action digest, agent identifier, principal identifier when applicable, resource, operation, authority epoch, ARP identifier and version, policy digest, identity result digest, authorization digest, evidence digests, software-assurance stage, revocation or closure state used, oversight state, decision, decision time, enforcement-point identifier, and predecessor receipt digests when applicable.</t>
      <t>An AER records the ADR digest plus one of NOT_ATTEMPTED, ATTEMPTED, COMPLETED, FAILED, or INDETERMINATE. An AER MUST NOT be used to infer that the underlying authorization was valid merely because an action completed successfully.</t>
      <t>For interoperable JSON digests, implementations SHOULD use JSON Canonicalization Scheme (JCS) <xref target="RFC8785"/> and an approved digest algorithm. Deployments requiring specific cryptographic algorithms SHOULD select them through an external cryptographic policy rather than redefining algorithm suites in this document.</t>
    </section>

    <section anchor="conformance"><name>Conformance and Falsification</name>
      <t>A HAACE implementation claiming conformance MUST reproduce the companion positive and negative vectors. The vector set includes valid identity with missing authorization, missing evidence, stale authority epoch, unresolved revocation closure, insufficient software-assurance stage, absent required human approval, policy-digest mismatch, action substitution, self-issued authorization, and receipt-integrity failure.</t>
      <t>The central falsifiers are direct. If a valid identity alone produces ALLOW, the implementation is non-conformant. If an UNKNOWN required premise produces ALLOW, the implementation is non-conformant. If a stale authority epoch is accepted, the implementation is non-conformant. If a local conformance result satisfies an ARP that requires independent reproduction, the implementation is non-conformant. If an agent satisfies an independent-approval requirement with its own approval, the implementation is non-conformant.</t>
    </section>

    <section anchor="gov"><name>High-Assurance and Government Deployment Considerations</name>
      <t>HAACE is vendor-neutral. It can be used to express action-time controls in environments that follow zero-trust principles, workload-identity policy, secure-software-development practices, or agency-specific AI governance. NIST SP 800-207 separates authentication and authorization and focuses protection on resources; NIST SP 800-207A extends identity-oriented access control to cloud-native and multi-cloud applications. NIST AI 800-5 reports broad agreement that AI-agent security requires adaptation of existing cybersecurity practices and that standards and implementation guidance can support secure adoption. These sources motivate the profile but do not make HAACE a NIST or U.S. Government standard.</t>
      <t>U.S. Executive Branch deployments may also have obligations under current OMB AI governance and acquisition policy. Those obligations are external to this protocol and can change independently. A federal deployment profile SHOULD therefore pin the applicable policy identifiers and versions outside the HAACE core.</t>
    </section>

    <section anchor="relation"><name>Relationship to Existing Work</name>
      <t>Agent Operation Authorization defines structured authorization for specific agent operations <xref target="I-D.agent-op-auth"/>. Authorization Evidence Chains compose heterogeneous evidence artifacts <xref target="I-D.aec"/>. WIMSE authorization-evidence work defines signed evidence records for authorized agent actions <xref target="I-D.wimse-evidence"/>. HAACE does not replace these mechanisms; it defines a relying-party execution-gate profile that evaluates identity, authorization, evidence, software-assurance stage, revocation state, policy state, oversight, and the exact action together.</t>
      <t>Revocation Closure for Agentic Authorization Systems distinguishes invalidation from closure and defines closure states and receipts <xref target="I-D.watts-closure"/>. Agent Authority Transition Receipts record authority-state transitions <xref target="I-D.watts-aatr"/>. Non-Collapse Semantics separates evidence, authorization, and execution state <xref target="I-D.watts-nc"/>. HAACE composes these ideas into action-time relying-party requirements and does not treat any one artifact as sufficient by itself.</t>
    </section>

    <section anchor="security"><name>Security Considerations</name>
      <t>Threats include action substitution after authorization, stale authority replay, agent self-authorization, evidence substitution, policy downgrade, confused-deputy behavior, delegation laundering, clock skew, forged or replayed approval, unresolved queued effects after revocation, and circular testing in which the implementation under test generates its own expected values.</t>
      <t>The ACP and effect boundary SHOULD be controlled independently of the agent. The agent MUST NOT be able to advance its software-assurance stage, change the relying-party ARP, redefine the current authority epoch, rewrite prior receipts, or mark an unresolved revocation state as CLOSED.</t>
      <t>HAACE receipts preserve what was evaluated; they do not prove that external evidence was true, that a model was safe, or that a deployment is secure. Implementations require independent conformance testing, fault injection, authorized penetration testing, provenance, and release governance appropriate to the deployment.</t>
      <t>Privacy-sensitive deployments SHOULD minimize the contents of receipts and prefer digests or references where full evidence disclosure is unnecessary. Receipt retention and disclosure MUST comply with applicable law and local policy.</t>
    </section>

    <section anchor="iana"><name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>

  <back>
    <references><name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/rfc/rfc2119"><front><title>Key words for use in RFCs to Indicate Requirement Levels</title><author initials="S." surname="Bradner"/><date year="1997" month="March"/></front><seriesInfo name="RFC" value="2119"/></reference>
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/rfc/rfc8174"><front><title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title><author initials="B." surname="Leiba"/><date year="2017" month="May"/></front><seriesInfo name="RFC" value="8174"/></reference>
      <reference anchor="RFC8785" target="https://www.rfc-editor.org/rfc/rfc8785"><front><title>JSON Canonicalization Scheme (JCS)</title><author initials="A." surname="Rundgren"/><author initials="B." surname="Jordan"/><author initials="S." surname="Erlandsson"/><date year="2020" month="June"/></front><seriesInfo name="RFC" value="8785"/></reference>
    </references>
    <references><name>Informative References</name>
      <reference anchor="I-D.agent-op-auth" target="https://datatracker.ietf.org/doc/draft-liu-agent-operation-authorization/"><front><title>Agent Operation Authorization</title><author initials="C." surname="Liu"/><date year="2026" month="March"/></front><seriesInfo name="Internet-Draft" value="draft-liu-agent-operation-authorization-02"/></reference>
      <reference anchor="I-D.aec" target="https://datatracker.ietf.org/doc/draft-schrock-ep-authorization-evidence-chain/"><front><title>Authorization Evidence Chains: Composing Heterogeneous Agent-Action Evidence</title><author initials="I." surname="Schrock"/><date year="2026" month="September"/></front><seriesInfo name="Internet-Draft" value="draft-schrock-ep-authorization-evidence-chain-07"/></reference>
      <reference anchor="I-D.wimse-evidence" target="https://datatracker.ietf.org/doc/draft-munoz-wimse-authorization-evidence/"><front><title>Signed Authorization-Evidence Records for WIMSE-Authorized AI Agent Actions</title><author initials="M." surname="Munoz"/><date year="2026" month="May"/></front><seriesInfo name="Internet-Draft" value="draft-munoz-wimse-authorization-evidence-00"/></reference>
      <reference anchor="I-D.watts-closure" target="https://datatracker.ietf.org/doc/draft-watts-oauth-agent-revocation-closure/"><front><title>Revocation Closure for Agentic Authorization Systems</title><author initials="D. O." surname="Watts"/><date year="2026" month="October"/></front><seriesInfo name="Internet-Draft" value="draft-watts-oauth-agent-revocation-closure-01"/></reference>
      <reference anchor="I-D.watts-aatr" target="https://datatracker.ietf.org/doc/draft-watts-agent-authority-transition-receipts/"><front><title>Agent Authority Transition Receipts for Agentic Systems</title><author initials="D. O." surname="Watts"/><date year="2026" month="September"/></front><seriesInfo name="Internet-Draft" value="draft-watts-agent-authority-transition-receipts-00"/></reference>
      <reference anchor="I-D.watts-nc" target="https://datatracker.ietf.org/doc/draft-watts-authorization-noncollapse-semantics/"><front><title>Non-Collapse Semantics for Authorization, Evidence, and Execution State</title><author initials="D. O." surname="Watts"/><date year="2026" month="October"/></front><seriesInfo name="Internet-Draft" value="draft-watts-authorization-noncollapse-semantics-00"/></reference>
      <reference anchor="NIST800207" target="https://csrc.nist.gov/pubs/sp/800/207/final"><front><title>Zero Trust Architecture</title><author initials="S." surname="Rose"/><author initials="O." surname="Borchert"/><author initials="S." surname="Mitchell"/><author initials="S." surname="Connelly"/><date year="2020" month="August"/></front><seriesInfo name="NIST SP" value="800-207"/></reference>
      <reference anchor="NIST800207A" target="https://csrc.nist.gov/pubs/sp/800/207/a/final"><front><title>A Zero Trust Architecture Model for Access Control in Cloud-Native Applications in Multi-Cloud Environments</title><author initials="R." surname="Chandramouli"/><author initials="Z." surname="Butcher"/><date year="2023" month="September"/></front><seriesInfo name="NIST SP" value="800-207A"/></reference>
      <reference anchor="NISTAI8005" target="https://www.nist.gov/publications/summary-analysis-responses-request-information-regarding-security-considerations-ai"><front><title>Summary Analysis of Responses to the Request for Information Regarding Security Considerations for AI Agents</title><author initials="J." surname="Riggs"/><author initials="M." surname="Hamin"/><author initials="N." surname="Perry"/><author initials="B." surname="Edelman"/><author initials="P." surname="Cihon"/><date year="2026" month="May"/></front><seriesInfo name="NIST AI" value="800-5"/></reference>
    </references>
  </back>
</rfc>
