<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sharif-attp-01" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="ATTP">ATTP: Agent Trust Transport Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-sharif-attp-01"/>
    <author fullname="Raza Sharif">
      <organization>CyberSecAI Ltd</organization>
      <address>
        <email>contact@agentsign.dev</email>
      </address>
    </author>
    <date year="2026" month="June" day="03"/>
    <keyword>agent</keyword>
    <keyword>trust</keyword>
    <keyword>transport</keyword>
    <keyword>AI</keyword>
    <keyword>MCP</keyword>
    <keyword>payments</keyword>
    <keyword>signing</keyword>
    <keyword>identity</keyword>
    <abstract>
      <?line 53?>

<t>This document specifies the Agent Trust Transport Protocol (ATTP),
a protocol-agnostic framework for trust scoring, cryptographic
identity, action-limit enforcement, compliance gating, and
tamper-evident audit for autonomous AI agents.</t>
      <t>ATTP separates trust from identity.  Identity protocols answer
"who is this agent?"  ATTP answers "should this agent be allowed
to perform this action, at this magnitude, against this
counterparty, right now?"</t>
      <t>The protocol defines five progressive trust levels (L0-L4),
per-agent ECDSA P-256 cryptographic identity, a five-dimension
behavioural trust scoring model, action-limit tiers derived from
trust scores, real-time compliance gating (sanctions screening,
jurisdictional controls), kill switches for instant revocation,
anomaly detection for agent behaviour, and a public trust query
API.</t>
      <t>ATTP is transport-agnostic.  This document defines the core
framework.  Protocol-specific bindings map ATTP trust enforcement
to individual transports:  MCPS provides the binding for the
Model Context Protocol (MCP), with additional bindings defined for
REST APIs, Google A2A, gRPC, GraphQL, and SPIFFE/SPIRE.</t>
      <t>This specification supersedes draft-sharif-agent-payment-trust-00,
broadening the scope from payment transactions to any agent action
requiring trust-gated authorisation, and consolidates the parallel
draft-sharif-attp-agent-trust-transport-00 into a single ATTP
lineage.</t>
    </abstract>
  </front>
  <middle>
    <?line 85?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="the-trust-gap">
        <name>The Trust Gap</name>
        <t>The emergence of autonomous AI agents that discover resources at
runtime, execute multi-step tasks across trust domains, and take
consequential actions without human oversight creates a security
gap that identity protocols alone cannot close.</t>
        <t>Authentication answers a binary question: is this agent who it
claims to be?  The answer is yes or no.  But consequential actions
-- financial transactions, data access, infrastructure changes,
contract execution -- require graduated assessment:</t>
        <ul spacing="normal">
          <li>
            <t>Has this agent earned the right to perform actions of this
magnitude?</t>
          </li>
          <li>
            <t>Does this agent's behavioural history justify the level of
trust required?</t>
          </li>
          <li>
            <t>Is the counterparty cleared for this interaction (sanctions,
jurisdictional compliance)?</t>
          </li>
          <li>
            <t>Can this agent be stopped instantly if something goes wrong?</t>
          </li>
          <li>
            <t>Is there a tamper-evident record of every action for audit?</t>
          </li>
        </ul>
        <t>Identity is necessary but not sufficient.  ATTP provides the
trust layer that sits above identity and below application logic.</t>
      </section>
      <section anchor="relationship-to-identity-protocols">
        <name>Relationship to Identity Protocols</name>
        <t>ATTP is not an identity protocol and not a Privileged Access
Management (PAM) replacement.  It is a trust-decision and
action-governance layer for autonomous agents, designed to
compose with identity and transport-security mechanisms such as
OIDC, mTLS, SPIFFE/SPIRE, and HTTP Message Signatures, and with
protocol bindings such as REST and A2A.</t>
        <t>ATTP does not replace identity protocols.  It consumes identity
assertions from any standards-compliant source:</t>
        <ul spacing="normal">
          <li>
            <t>OAuth 2.0 / OpenID Connect tokens (RFC 6749, OpenID Core)</t>
          </li>
          <li>
            <t>X.509 certificates (RFC 5280)</t>
          </li>
          <li>
            <t>HTTP Message Signatures (RFC 9421)</t>
          </li>
          <li>
            <t>Self-issued cryptographic identities (JWKS-based)</t>
          </li>
          <li>
            <t>Keycloak, Azure AD, Okta, or any OIDC-compliant provider</t>
          </li>
        </ul>
        <t>ATTP requires proof that an agent is who it claims to be.  It
does not prescribe how that proof is obtained.  Once identity is
established, ATTP evaluates trust, enforces limits, gates
compliance, and records the decision.</t>
      </section>
      <section anchor="relationship-to-existing-specifications">
        <name>Relationship to Existing Specifications</name>
        <t>This specification is part of a three-layer stack:</t>
        <t>+---------------------------------------------+
   |  AEBA (Behavioural Analytics)                |
   |  draft-sharif-aeba                           |
   |  Anomaly detection, ML-based monitoring      |
   +---------------------------------------------+
   |  ATTP (Trust Transport) [this document]      |
   |  draft-sharif-attp                           |
   |  Trust scoring, limits, compliance, audit    |
   +---------------------------------------------+
   |  MCPS (MCP Secure)                           |
   |  draft-sharif-mcps-secure-mcp                |
   |  Message signing for MCP transport           |
   +---------------------------------------------+</t>
        <t>MCPS provides message-level cryptographic security for the Model
Context Protocol.  ATTP provides the trust framework that MCPS
(and other transport bindings) enforce.  AEBA provides behavioural
analytics that feed into ATTP trust scoring.</t>
      </section>
      <section anchor="relationship-to-other-ietf-work">
        <name>Relationship to Other IETF Work</name>
        <t>The IETF agent-identity and delegation space is active.  ATTP is
the trust-decision and action-governance layer ABOVE these
mechanisms; it composes with them rather than replacing them.</t>
        <t>Workload identity for agents is addressed by the WIMSE
architecture <xref target="I-D.ietf-wimse-arch"/> and by composition guidance
such as <xref target="I-D.klrc-aiagent-auth"/>, which combines workload
identity, OAuth, and shared signals.  ATTP consumes such
identities; the SPIFFE/SPIRE binding in this document is one such
integration.</t>
        <t>Delegation and on-behalf-of semantics are provided by OAuth 2.0
Token Exchange <xref target="RFC8693"/> (the "act" and "may_act" claims), the
actor-chain profiles in <xref target="I-D.mw-spice-actor-chain"/>, and
capability attenuation in
<xref target="I-D.niyikiza-oauth-attenuating-agent-tokens"/>, which covers
delegation depth, intent binding, and monotonic scope
attenuation.  ATTP evaluates these delegation chains as inputs to
a trust decision; it does not define a competing delegation
format.</t>
        <t>Pre-action signed authorisation with live risk assessment is
explored in <xref target="I-D.nelson-agent-delegation-receipts"/>.  ATTP's
action signing and trust scoring address the same need and can
interoperate with such receipts.</t>
        <t>ATTP's distinct contribution is the graduated trust model
(L0-L4), action-limit enforcement, compliance gating, kill
switches, and tamper-evident audit applied on top of whichever
identity and delegation mechanisms a deployment already uses.</t>
      </section>
      <section anchor="design-goals">
        <name>Design Goals</name>
        <ol spacing="normal" type="1"><li>
            <t>Transport-agnostic.  ATTP defines trust semantics, not wire
format.  Protocol bindings map ATTP to specific transports.</t>
          </li>
          <li>
            <t>Identity-agnostic.  ATTP consumes identity from any source.
It does not compete with any identity protocol -- OAuth, OIDC,
mTLS, SPIFFE, HTTP Message Signatures, or future standards.</t>
          </li>
          <li>
            <t>Graduated trust.  Binary identity is insufficient.  Five
trust levels (L0-L4) with associated action limits provide
proportional authorisation.</t>
          </li>
          <li>
            <t>Fail-closed.  If trust cannot be evaluated, the default is
deny.  No silent degradation.</t>
          </li>
          <li>
            <t>Instant revocation.  Kill switches take effect on the next
request.  No waiting for certificate expiry or CRL refresh.</t>
          </li>
          <li>
            <t>Compliance-native.  Sanctions screening and jurisdictional
controls are built into the protocol, not bolted on.</t>
          </li>
          <li>
            <t>Self-hostable.  The Trust Authority has no external service
dependency.  Operators run their own instance.</t>
          </li>
          <li>
            <t>Auditable.  Every trust decision produces a tamper-evident
record with hash-chain integrity.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</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="RFC8174">RFC2119</xref> when, and only when, they appear in
all capitals, as shown here.</t>
      <t>Agent:  An autonomous software entity that performs actions on
   behalf of a principal (human or organisation) via standardised
   protocols.  Actions include but are not limited to: financial
   transactions, data queries, tool invocations, infrastructure
   changes, and contract execution.</t>
      <t>Principal:  The human or organisational entity accountable for an
   agent's actions.</t>
      <t>Trust Authority (TA):  The service that maintains agent
   registrations, computes trust scores, evaluates compliance
   gates, enforces action limits, and records audit entries.
   The TA is self-hostable with no external dependency.</t>
      <t>Trust Score:  A numerical value (0-100) representing the assessed
   trustworthiness of an agent based on multiple behavioural
   dimensions.</t>
      <t>Trust Level:  A discrete classification (L0-L4) derived from the
   trust score, with associated action limits.</t>
      <t>Action:  Any operation an agent requests that requires trust
   evaluation.  Actions are protocol-specific: a payment in
   Stripe, a tool call in MCP, an API request in REST, a task
   in A2A.</t>
      <t>Action Limit:  A constraint on the magnitude or frequency of
   actions an agent may perform at a given trust level.</t>
      <t>Kill Switch:  A per-agent or per-principal flag that, when
   activated, causes immediate denial of all actions regardless
   of trust level.</t>
      <t>Compliance Gate:  A check performed before action execution that
   evaluates regulatory constraints (sanctions lists,
   jurisdictional rules, embargo lists).</t>
      <t>Protocol Binding:  A specification that maps ATTP trust
   enforcement to a specific transport protocol (MCP, REST,
   A2A, gRPC, GraphQL).</t>
      <t>Agent Passport:  A cryptographically signed identity document
   containing the agent's public key hash, principal identity,
   authorised scope, trust level, and issuance metadata.</t>
    </section>
    <section anchor="agent-identity">
      <name>Agent Identity</name>
      <section anchor="key-pair-generation">
        <name>Key Pair Generation</name>
        <t>Each agent MUST have a unique ECDSA key pair using the P-256
curve <xref target="FIPS186-5"/>.</t>
        <t>Key pairs MAY be generated by the Trust Authority and provided
to the principal (the private key MUST be returned exactly once
and MUST NOT be stored by the Trust Authority), or generated by
the principal and the public key registered with the Trust
Authority (RECOMMENDED for production deployments).</t>
        <t>Implementations MUST support ECDSA P-256 (ES256).
Implementations MAY additionally support Ed25519 (EdDSA) for
environments where P-256 is not available.</t>
      </section>
      <section anchor="public-key-registration">
        <name>Public Key Registration</name>
        <t>The principal MUST register the agent's public key with the
Trust Authority at agent creation time.  The Trust Authority
stores ONLY the public key.  The private key MUST remain under
the principal's control at all times.</t>
        <t>For production deployments, the private key SHOULD be stored in
a Hardware Security Module (HSM), cloud Key Management Service
(KMS), or platform-native secure storage.</t>
      </section>
      <section anchor="agent-passport">
        <name>Agent Passport</name>
        <t>Upon registration, the Trust Authority issues an Agent Passport
-- a signed JSON document containing:</t>
        <ul spacing="normal">
          <li>
            <t>agentId:  Unique identifier for the agent.</t>
          </li>
          <li>
            <t>publicKeyHash:  SHA-256 hash of the agent's public key,
binding the passport to a specific key pair.</t>
          </li>
          <li>
            <t>principalId:  Identifier of the owning principal.</t>
          </li>
          <li>
            <t>scope:  Array of authorised action categories.</t>
          </li>
          <li>
            <t>trustLevel:  Current trust level (L0-L4).</t>
          </li>
          <li>
            <t>issuedAt:  ISO 8601 timestamp of issuance.</t>
          </li>
          <li>
            <t>expiresAt:  ISO 8601 timestamp of expiry.</t>
          </li>
          <li>
            <t>issuer:  Identifier of the Trust Authority.</t>
          </li>
          <li>
            <t>protocolVersion:  ATTP version (this document: "1.0").</t>
          </li>
        </ul>
        <t>The passport is signed by the Trust Authority's key using
ECDSA P-256.  The signature covers the JSON Canonicalization
Scheme (JCS) <xref target="RFC8785"/> serialisation of the passport fields.</t>
        <t>Passports MUST expire.  Maximum lifetime MUST NOT exceed
365 days.  RECOMMENDED lifetime is 90 days for L0-L2 agents
and 180 days for L3-L4 agents.</t>
      </section>
      <section anchor="key-rotation">
        <name>Key Rotation</name>
        <t>Agents MUST support key rotation without identity loss.
When rotating keys:</t>
        <ol spacing="normal" type="1"><li>
            <t>The principal generates a new key pair.</t>
          </li>
          <li>
            <t>The principal registers the new public key with the TA.</t>
          </li>
          <li>
            <t>The TA issues a new passport binding the agentId to the
new public key.</t>
          </li>
          <li>
            <t>The old key enters a grace period (RECOMMENDED: 24 hours)
during which both keys are accepted.</t>
          </li>
          <li>
            <t>After the grace period, the old key is revoked.</t>
          </li>
        </ol>
        <t>Key rotation MUST NOT reset the agent's trust score.</t>
      </section>
    </section>
    <section anchor="challenge-response-identity-verification">
      <name>Challenge-Response Identity Verification</name>
      <t>When a platform needs to verify an agent's identity before
granting access, it uses the following challenge-response
protocol.</t>
      <section anchor="challenge-issuance">
        <name>Challenge Issuance</name>
        <t>The platform (or TA on behalf of the platform) generates a
challenge:</t>
        <ul spacing="normal">
          <li>
            <t>challenge:  32 bytes of cryptographically random data,
hex-encoded (64 characters).</t>
          </li>
          <li>
            <t>expiresAt:  Timestamp, MUST be no more than 60 seconds
from issuance.</t>
          </li>
          <li>
            <t>agentId:  The agent for which the challenge is issued.</t>
          </li>
        </ul>
        <t>Each challenge MUST be single-use.  The TA MUST reject any
attempt to verify a challenge that has already been used.</t>
      </section>
      <section anchor="challenge-signing">
        <name>Challenge Signing</name>
        <t>The agent signs the challenge using its private key:</t>
        <t>signature = ECDSA-Sign(SHA-256(challenge), agentPrivateKey)</t>
        <t>The signature uses IEEE P1363 fixed-length r||s encoding
(64 bytes for P-256) per RFC 7518 Section 3.4.</t>
      </section>
      <section anchor="signature-verification">
        <name>Signature Verification</name>
        <t>The TA verifies the signature using the agent's registered
public key.  If valid, the TA returns the agent's current
trust score, level, and recommendation.</t>
      </section>
      <section anchor="failure-handling">
        <name>Failure Handling</name>
        <t>If verification fails:</t>
        <ul spacing="normal">
          <li>
            <t>The TA MUST log the failure as a potential impersonation
attempt.</t>
          </li>
          <li>
            <t>The agent's trust score MUST be penalised (RECOMMENDED:
-10 points per failed attempt).</t>
          </li>
          <li>
            <t>The response MUST include an error code: IMPERSONATION,
CHALLENGE_EXPIRED, CHALLENGE_REPLAYED, or AGENT_MISMATCH.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="trust-scoring-model">
      <name>Trust Scoring Model</name>
      <section anchor="scoring-dimensions">
        <name>Scoring Dimensions</name>
        <t>The trust score is computed from five dimensions:</t>
        <ol spacing="normal" type="1"><li>
            <t>Code Attestation (CA):  Whether the agent's code or
configuration has been cryptographically verified against
its declared specification.</t>
          </li>
          <li>
            <t>Execution Success Rate (ES):  The proportion of the
agent's past actions that completed without anomaly,
dispute, or reversal.</t>
          </li>
          <li>
            <t>Behavioural Consistency (BC):  The statistical consistency
of the agent's action patterns relative to its established
baseline.</t>
          </li>
          <li>
            <t>Operational Tenure (OT):  The duration the agent has been
registered and actively operating.</t>
          </li>
          <li>
            <t>Anomaly History (AH):  The inverse of the count and
severity of detected anomalies.</t>
          </li>
        </ol>
      </section>
      <section anchor="dimension-weights">
        <name>Dimension Weights</name>
        <t>Each dimension contributes 20% to the overall score:</t>
        <t>W_CA = W_ES = W_BC = W_OT = W_AH = 0.20</t>
        <t>Implementations MAY adjust weights provided the sum equals
1.0 and no single dimension exceeds 0.40.</t>
      </section>
      <section anchor="score-computation">
        <name>Score Computation</name>
        <t>raw = (CA * W_CA) + (ES * W_ES) + (BC * W_BC) +
         (OT * W_OT) + (AH * W_AH)</t>
        <t>Each dimension value is in the range [0, 100].</t>
        <t>score = clamp(raw + bonus + dormancy, 0, 100)</t>
      </section>
      <section anchor="trust-levels">
        <name>Trust Levels</name>
        <t>+--------+--------+-------------------+------------------+
| Level  | Score  | Label             | Payment Enabled  |
+--------+--------+-------------------+------------------+
|  L0    | 0-19   | No Access         | No               |
|  L1    | 20-39  | Restricted        | Micro only       |
|  L2    | 40-59  | Standard          | Yes              |
|  L3    | 60-79  | Elevated          | Yes (monitored)  |
|  L4    | 80-100 | Full Access       | Yes (audited)    |
+--------+--------+-------------------+------------------+</t>
        <t>No trust level SHALL have unlimited action authority.  L4
represents the maximum tier with mandatory enhanced auditing.</t>
      </section>
      <section anchor="dynamic-adjustment">
        <name>Dynamic Adjustment</name>
        <t>The trust score adjusts dynamically based on observed behaviour:</t>
        <ul spacing="normal">
          <li>
            <t>Successful action: +0.5 trust bonus.</t>
          </li>
          <li>
            <t>Blocked action (over limit): -2 trust bonus.</t>
          </li>
          <li>
            <t>Anomaly detected: -5 per anomaly.</t>
          </li>
          <li>
            <t>Critical anomaly (3+ simultaneous): -20 trust bonus.</t>
          </li>
          <li>
            <t>Failed identity verification: -10 trust bonus.</t>
          </li>
          <li>
            <t>Probing detected: -15 trust bonus.</t>
          </li>
        </ul>
        <t>Self-dealing actions (agent-to-agent within the same principal)
MUST earn zero trust bonus.</t>
      </section>
      <section anchor="dormancy-decay">
        <name>Dormancy Decay</name>
        <t>Agents inactive for extended periods MUST have their trust
score reduced:</t>
        <ul spacing="normal">
          <li>
            <t>30 days inactive: -10 penalty.</t>
          </li>
          <li>
            <t>60 days inactive: -20 penalty.</t>
          </li>
          <li>
            <t>90+ days inactive: -30 penalty.</t>
          </li>
        </ul>
        <t>The dormancy penalty is removed when the agent resumes activity.</t>
      </section>
      <section anchor="promotion-rate-limiting">
        <name>Promotion Rate Limiting</name>
        <t>Trust level promotions MUST be rate-limited to prevent trust
farming attacks:</t>
        <ul spacing="normal">
          <li>
            <t>L0 to L1:  Minimum 24 hours at L0 with at least 5
successful actions.</t>
          </li>
          <li>
            <t>L1 to L2:  Minimum 7 days at L1 with at least 20
successful actions.</t>
          </li>
          <li>
            <t>L2 to L3:  Minimum 30 days at L2 with at least 100
successful actions and zero critical anomalies.</t>
          </li>
          <li>
            <t>L3 to L4:  Minimum 90 days at L3 with at least 500
successful actions, zero anomalies, and manual
principal attestation.</t>
          </li>
        </ul>
        <t>Demotions are instant.  A single critical anomaly at L4
drops the agent to L2 immediately.</t>
      </section>
    </section>
    <section anchor="action-limit-enforcement">
      <name>Action Limit Enforcement</name>
      <section anchor="per-action-limits">
        <name>Per-Action Limits</name>
        <t>Each action MUST be checked against the per-action limit of
the agent's current trust level.  Actions exceeding the limit
MUST be rejected with error code ATTP-ACTION-LIMIT.</t>
        <t>Action limits are protocol-binding-specific.  For financial
transactions:</t>
        <t>+--------+------------------+------------------+
| Level  | Per-TX Limit     | Daily Limit      |
+--------+------------------+------------------+
|  L0    | $0               | $0               |
|  L1    | $10              | $50              |
|  L2    | $100             | $500             |
|  L3    | $1,000           | $5,000           |
|  L4    | $50,000          | $200,000         |
+--------+------------------+------------------+</t>
        <t>For non-financial actions, protocol bindings define equivalent
limits (e.g., API calls per minute, data volume per request).</t>
      </section>
      <section anchor="daily-aggregate-limits">
        <name>Daily Aggregate Limits</name>
        <t>The TA MUST track daily aggregate action magnitude per agent
within a rolling 24-hour window.</t>
      </section>
      <section anchor="principal-aggregate-limits">
        <name>Principal Aggregate Limits</name>
        <t>To prevent Sybil attacks (creating many agents to circumvent
per-agent limits), the TA MUST enforce aggregate limits per
principal across all their agents.</t>
      </section>
      <section anchor="cooling-period">
        <name>Cooling Period</name>
        <t>After a trust level promotion, the agent MUST operate under
the previous level's limits for a cooling period
(RECOMMENDED: 24 hours) before the new limits take effect.</t>
      </section>
    </section>
    <section anchor="kill-switches">
      <name>Kill Switches</name>
      <section anchor="per-agent-kill-switch">
        <name>Per-Agent Kill Switch</name>
        <t>Each agent MUST have an independently controllable kill switch.
When activated:</t>
        <ul spacing="normal">
          <li>
            <t>ALL actions by the agent are denied immediately.</t>
          </li>
          <li>
            <t>The denial takes effect on the next request (no grace
period).</t>
          </li>
          <li>
            <t>The agent's trust score is frozen (not reset).</t>
          </li>
          <li>
            <t>The kill switch state is recorded in the audit trail.</t>
          </li>
        </ul>
        <t>Reactivation requires explicit principal action and MUST NOT
be automated.</t>
      </section>
      <section anchor="per-principal-kill-switch">
        <name>Per-Principal Kill Switch</name>
        <t>Each principal MUST have a kill switch that simultaneously
disables ALL agents under their control.</t>
      </section>
      <section anchor="emergency-freeze">
        <name>Emergency Freeze</name>
        <t>The TA MUST support an emergency freeze that disables all
agents across all principals.  This is intended for
infrastructure-level incidents.  Emergency freeze MUST
require multi-party authorisation (RECOMMENDED: two
independent operators).</t>
      </section>
    </section>
    <section anchor="compliance-gating">
      <name>Compliance Gating</name>
      <section anchor="compliance-gate-interface">
        <name>Compliance Gate Interface</name>
        <t>ATTP defines a compliance-gate interface, not a specific
compliance regime.  Before executing a consequential action,
the TA MUST evaluate the action against the configured set of
compliance gates and MUST block the action if any gate denies
it.  Each gate is a pluggable policy that returns allow, deny,
or review for a given action and its parties.  A deployment
selects the gates appropriate to its jurisdiction and use case.
Gates MAY be chained; a deny from any gate blocks the action
with an error code identifying the gate (for example,
ATTP-GATE-DENY).</t>
      </section>
      <section anchor="sanctions-screening-example-gate">
        <name>Sanctions Screening (Example Gate)</name>
        <t>Sanctions screening is a common compliance gate but is NOT
mandated by this protocol, as applicable lists are
jurisdiction-specific.  A deployment subject to sanctions
regulation SHOULD configure a sanctions gate that screens the
relevant parties against the lists applicable to it (for
example, OFAC SDN, EU Consolidated, UK HMT, or UN Security
Council lists).</t>
        <t>A sanctions gate SHOULD use fuzzy matching with a configurable
threshold (RECOMMENDED: 70% match score), block matches at or
above the threshold, and keep its lists current (RECOMMENDED:
at least daily updates).</t>
      </section>
      <section anchor="jurisdictional-controls">
        <name>Jurisdictional Controls</name>
        <t>Actions MAY be restricted based on the jurisdiction of the
agent, the principal, or the counterparty.  The TA SHOULD
support configurable jurisdiction rules, expressed as
compliance gates.</t>
      </section>
      <section anchor="compliance-record">
        <name>Compliance Record</name>
        <t>Every compliance-gate evaluation MUST produce an audit record
containing: the query, the gates evaluated, the results
(including near-misses), and the decision.  Compliance records
MUST be retained for the period required by applicable
regulation (RECOMMENDED minimum: 5 years).</t>
      </section>
    </section>
    <section anchor="anomaly-detection">
      <name>Anomaly Detection</name>
      <section anchor="magnitude-anomaly">
        <name>Magnitude Anomaly</name>
        <t>An action whose magnitude exceeds 3 standard deviations from
the agent's historical mean MUST be flagged.</t>
      </section>
      <section anchor="velocity-anomaly">
        <name>Velocity Anomaly</name>
        <t>An action rate exceeding 2x the agent's historical maximum
within any 5-minute window MUST be flagged.</t>
      </section>
      <section anchor="temporal-anomaly">
        <name>Temporal Anomaly</name>
        <t>Actions outside the agent's established operating hours
(based on 90-day history) SHOULD be flagged.</t>
      </section>
      <section anchor="counterparty-anomaly">
        <name>Counterparty Anomaly</name>
        <t>Actions directed at counterparties with which the agent has
no prior history, when combined with elevated magnitude,
MUST be flagged.</t>
      </section>
      <section anchor="probing-anomaly">
        <name>Probing Anomaly</name>
        <t>A pattern of incrementally increasing action magnitudes
(e.g., $1, $5, $10, $50, $100) within a short window
indicates probing behaviour and MUST trigger a -15 trust
penalty and flag the agent for review.</t>
      </section>
      <section anchor="self-dealing-detection">
        <name>Self-Dealing Detection</name>
        <t>Actions between agents belonging to the same principal MUST
earn zero trust bonus and SHOULD be flagged if they exceed
10% of the agent's total action volume.</t>
      </section>
    </section>
    <section anchor="public-trust-query-api">
      <name>Public Trust Query API</name>
      <section anchor="request-format">
        <name>Request Format</name>
        <t>Any platform MAY query the TA for an agent's trust status:</t>
        <t>GET /v1/trust/{agentId}</t>
        <t>The TA MUST support this query without requiring a
pre-existing relationship with the querying platform.</t>
      </section>
      <section anchor="response-format">
        <name>Response Format</name>
        <t>{
     "agentId": "agent_abc123",
     "trust": {
       "score": 67,
       "level": 3,
       "label": "L3 -- Elevated"
     },
     "recommendation": "ALLOW",
     "limits": {
       "perAction": 100000,
       "daily": 500000
     },
     "identity": {
       "verified": true,
       "principalId": "dev_xyz",
       "jurisdiction": "GB"
     },
     "meta": {
       "protocolVersion": "1.0",
       "queriedAt": "2026-04-30T22:00:00Z",
       "checkedBy": "CyberSecAI Trust Authority"
     }
   }</t>
      </section>
      <section anchor="batch-queries">
        <name>Batch Queries</name>
        <t>The TA MUST support batch queries for efficiency:</t>
        <t>POST /v1/trust/batch
   { "agentIds": ["agent_1", "agent_2", "agent_3"] }</t>
        <t>Maximum batch size: 100 agents.</t>
      </section>
      <section anchor="rate-limiting">
        <name>Rate Limiting</name>
        <t>The TA MUST rate-limit trust queries:</t>
        <ul spacing="normal">
          <li>
            <t>Anonymous queries: 120 per minute per IP.</t>
          </li>
          <li>
            <t>Authenticated queries: 600 per minute per API key.</t>
          </li>
        </ul>
      </section>
      <section anchor="information-disclosure-controls">
        <name>Information Disclosure Controls</name>
        <t>The public trust API MUST NOT expose:</t>
        <ul spacing="normal">
          <li>
            <t>Raw scoring dimension values.</t>
          </li>
          <li>
            <t>Transaction history or action details.</t>
          </li>
          <li>
            <t>Private key material or key fingerprints.</t>
          </li>
          <li>
            <t>Internal anomaly thresholds.</t>
          </li>
        </ul>
        <t>The API provides trust level, recommendation, and limits only.</t>
      </section>
    </section>
    <section anchor="action-signing-and-receipts">
      <name>Action Signing and Receipts</name>
      <section anchor="action-envelope">
        <name>Action Envelope</name>
        <t>Every action processed through ATTP produces a signed envelope:</t>
        <t>{
     "actionId": "act_unique_id",
     "agentId": "agent_abc123",
     "action": "payment_initiate",
     "magnitude": 5000,
     "counterparty": "recipient_name",
     "trustLevel": 3,
     "complianceResult": "CLEAR",
     "timestamp": "2026-04-30T22:00:00Z",
     "signature": "ECDSA signature over canonical JSON"
   }</t>
        <t>The signature covers the JCS <xref target="RFC8785"/> serialisation of all
fields except the signature field itself.</t>
      </section>
      <section anchor="hash-chain">
        <name>Hash Chain</name>
        <t>Action envelopes are linked in a hash chain:</t>
        <artwork><![CDATA[
hash_n = SHA-256(hash_{n-1} || JCS(envelope_n))
]]></artwork>
        <t>The genesis hash is SHA-256("ATTP-GENESIS").</t>
        <t>Breaking the hash chain indicates tampering.  The TA MUST
verify chain integrity on every append.</t>
      </section>
      <section anchor="cryptographically-attributable-receipts">
        <name>Cryptographically Attributable Receipts</name>
        <t>After successful action execution, the TA issues a receipt
signed by the TA's key.  The receipt includes:</t>
        <ul spacing="normal">
          <li>
            <t>The action envelope.</t>
          </li>
          <li>
            <t>The TA's signature over the envelope.</t>
          </li>
          <li>
            <t>The hash chain position.</t>
          </li>
          <li>
            <t>The compliance check result.</t>
          </li>
        </ul>
        <t>Receipts are cryptographically attributable: they prove that a
specific key signed a specific envelope at a specific position
in the hash chain.  This is an evidentiary property, not a legal
assertion of intent or consent.  A valid signature demonstrates
that the holder of the key produced it; it does not, by itself,
establish that the action was authorised by a human, free of
coercion, or produced on an uncompromised host.  Establishing
intent or consent is out of scope for this document and, where
required, MUST be provided by an additional mechanism (for
example, a human-presence attestation bound to the action).</t>
      </section>
    </section>
    <section anchor="protocol-bindings">
      <name>Protocol Bindings</name>
      <t>ATTP is transport-agnostic.  Protocol bindings map ATTP trust
enforcement to specific transports.</t>
      <section anchor="mcp-binding-mcps">
        <name>MCP Binding (MCPS)</name>
        <t>The MCP binding is specified in draft-sharif-mcps-secure-mcp.
MCPS wraps JSON-RPC messages in signed envelopes carrying
ATTP trust claims.</t>
        <t>Trust level is conveyed in the MCPS envelope header.  Action
limits map to tool call parameters (amount, scope).  Kill
switch state is checked before tool execution.</t>
      </section>
      <section anchor="rest-binding">
        <name>REST Binding</name>
        <t>For REST APIs, ATTP trust is conveyed via HTTP headers:</t>
        <t>X-ATTP-Trust-Level: 2
   X-ATTP-Agent-Id: agent_abc123
   X-ATTP-Signature: base64-encoded ECDSA signature
   X-ATTP-Nonce: 550e8400-e29b-41d4-a716-446655440000
   X-ATTP-Timestamp: unix epoch ms</t>
        <t>The signature covers: method, path, body hash (SHA-256),
nonce, and timestamp.</t>
      </section>
      <section anchor="google-a2a-binding">
        <name>Google A2A Binding</name>
        <t>For the Agent2Agent protocol, ATTP trust is embedded in the
Task metadata.  The agent's AgentCard includes ATTP trust
level and TA endpoint in its capabilities declaration.</t>
      </section>
      <section anchor="grpc-binding">
        <name>gRPC Binding</name>
        <t>For gRPC, ATTP trust is conveyed via metadata headers using
the same header names as the REST binding.</t>
      </section>
      <section anchor="graphql-binding">
        <name>GraphQL Binding</name>
        <t>For GraphQL, ATTP trust is conveyed via HTTP headers (same
as REST) or via an extensions field in the GraphQL request:</t>
        <t>{
     "query": "...",
     "extensions": {
       "attp": {
         "trustLevel": 2,
         "agentId": "agent_abc123",
         "signature": "...",
         "nonce": "...",
         "timestamp": 1234567890
       }
     }
   }</t>
      </section>
      <section anchor="keycloak-integration">
        <name>Keycloak Integration</name>
        <t>For enterprises using Keycloak or other OIDC providers, ATTP
trust claims are embedded in the JWT access token as a nested
"attp" claim:</t>
        <t>{
     "sub": "agent_abc123",
     "attp": {
       "trust_level": 2,
       "trust_label": "L2 -- Standard",
       "payment_enabled": true,
       "tx_limit": 10000,
       "day_limit": 50000,
       "scopes": "payment_initiate,sanctions_screen",
       "protocol_version": "1.0"
     }
   }</t>
        <t>A Keycloak protocol mapper implements the role-to-trust-level
mapping (mcps-l0 through mcps-l4 roles).</t>
      </section>
      <section anchor="spiffespire-binding">
        <name>SPIFFE/SPIRE Binding</name>
        <t>For workloads with a SPIFFE identity, the SPIFFE ID serves as the
ATTP agentId and the X.509-SVID provides the identity credential.
SPIFFE/SPIRE supplies issuance, attestation, and automatic
rotation of the workload identity; ATTP layers per-action
evidence, trust level, action limits, and kill-switch enforcement
on top.</t>
        <t>The agentId is the workload's SPIFFE ID:</t>
        <t>spiffe://example.org/agent/payments</t>
        <t>carried as the single URI SAN of the X.509-SVID.  ATTP action
envelopes are signed with the SVID's associated private key
(ECDSA P-256).  The signature covers the action canonical form
(action, scope, body hash, nonce, timestamp) as in the REST
binding; the SVID leaf certificate is presented with the envelope
so the verifier can authenticate the signer against the SPIFFE
trust bundle.</t>
        <t>The SVID's private key MAY be held in software, or in a hardware
security module, Trusted Platform Module, or secure element; the
binding is agnostic to key custody.  Where the key is
hardware-held, the SVID binds the SPIFFE ID to the hardware
public key and signatures are produced by the hardware, providing
a non-extractable, hardware-rooted identity without changing the
binding.</t>
        <t>Trust level is conveyed alongside the SVID-authenticated identity
in the envelope header (X-ATTP-Trust-Level, as in the REST
binding).  This composes with external authorization: an isolated
policy decision point -- for example one expressed in a policy
language such as Cedar or Open Policy Agent -- MAY consume the
verified SPIFFE identity together with the ATTP trust level as an
input attribute when authorizing an action.</t>
        <t>SPIFFE/SPIRE answers "which workload"; ATTP answers "what the
workload did, with what evidence, and whether it is trusted to
take this action".  The two are complementary layers, not
alternatives.</t>
      </section>
    </section>
    <section anchor="revocation">
      <name>Revocation</name>
      <section anchor="agent-revocation">
        <name>Agent Revocation</name>
        <t>An agent MAY be revoked by the principal or by the TA.
Revocation is immediate (kill switch) and permanent until
explicitly reversed.</t>
        <t>Revocation MUST:</t>
        <ul spacing="normal">
          <li>
            <t>Set the kill switch.</t>
          </li>
          <li>
            <t>Invalidate the current passport.</t>
          </li>
          <li>
            <t>Record the revocation in the audit trail.</t>
          </li>
          <li>
            <t>Optionally notify dependent platforms via webhook.</t>
          </li>
        </ul>
      </section>
      <section anchor="emergency-freeze-1">
        <name>Emergency Freeze</name>
        <t>The TA MUST support emergency freeze of individual agents,
all agents under a principal, or all agents globally.  Global
freeze MUST require multi-party authorisation.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="key-management">
        <name>Key Management</name>
        <t>Private keys MUST be stored in HSM, KMS, or platform-native
secure storage for production deployments.  Private keys
MUST NOT be transmitted over network channels after initial
generation.  The TA MUST NOT store agent private keys.</t>
      </section>
      <section anchor="trust-farming-mitigation">
        <name>Trust Farming Mitigation</name>
        <t>ATTP mitigates trust farming through:</t>
        <ul spacing="normal">
          <li>
            <t>Promotion rate limiting (Section 6.8).</t>
          </li>
          <li>
            <t>Self-dealing detection (Section 9.6).</t>
          </li>
          <li>
            <t>Principal aggregate limits (Section 7.3).</t>
          </li>
          <li>
            <t>Dormancy decay (Section 6.7).</t>
          </li>
        </ul>
        <t>An attacker who creates agents and performs small successful
actions to build trust is limited by the minimum time at each
level (24 hours, 7 days, 30 days, 90 days) and the minimum
action counts.  Reaching L4 requires at minimum 128 days of
sustained operation with zero anomalies.</t>
      </section>
      <section anchor="sybil-attack-prevention">
        <name>Sybil Attack Prevention</name>
        <t>Principal aggregate limits prevent circumvention of per-agent
limits through agent proliferation.  The TA SHOULD implement
additional heuristics: common IP addresses, identical
behavioural patterns, coordinated action timing.</t>
      </section>
      <section anchor="impersonation-detection">
        <name>Impersonation Detection</name>
        <t>Failed challenge-response verifications trigger trust
penalties and audit entries.  Three consecutive failures
SHOULD trigger automatic agent suspension pending principal
review.</t>
      </section>
      <section anchor="race-condition-handling">
        <name>Race Condition Handling</name>
        <t>Concurrent action requests MUST be serialised at the limit
enforcement layer.  Implementations MUST use atomic
compare-and-swap operations for daily aggregate tracking.</t>
      </section>
      <section anchor="replay-protection">
        <name>Replay Protection</name>
        <t>Action envelopes include nonce and timestamp.  The TA MUST
reject any envelope with a previously-seen nonce or a
timestamp outside the acceptable window (RECOMMENDED:
5 minutes).</t>
      </section>
      <section anchor="kill-switch-consistency">
        <name>Kill Switch Consistency</name>
        <t>Kill switch state MUST be checked atomically with action
evaluation.  There MUST be no window between trust check
and action execution during which a kill switch activation
could be missed.</t>
      </section>
      <section anchor="comparison-with-identity-only-protocols">
        <name>Comparison with Identity-Only Protocols</name>
        <t>Identity protocols (OAuth 2.0, OIDC, mTLS, HTTP Message
Signatures, or any future agent identity standard) establish
who an agent is.  They do not:</t>
        <ul spacing="normal">
          <li>
            <t>Score agent trustworthiness based on behavioural history.</t>
          </li>
          <li>
            <t>Enforce graduated action limits tied to trust levels.</t>
          </li>
          <li>
            <t>Screen counterparties against sanctions lists.</t>
          </li>
          <li>
            <t>Provide instant kill switches independent of credential
lifecycle.</t>
          </li>
          <li>
            <t>Produce tamper-evident audit chains for regulatory
compliance.</t>
          </li>
        </ul>
        <t>ATTP is designed to compose with identity protocols, not
replace them.  An identity assertion is a prerequisite for
ATTP trust evaluation.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The public trust query API reveals that an agent exists and
its current trust level.  This is intentional -- platforms
need this information to make access decisions.</t>
      <t>The API MUST NOT reveal:</t>
      <ul spacing="normal">
        <li>
          <t>Action history or patterns.</t>
        </li>
        <li>
          <t>Scoring dimension breakdowns.</t>
        </li>
        <li>
          <t>Counterparty information.</t>
        </li>
        <li>
          <t>Key material.</t>
        </li>
        <li>
          <t>Principal identity (unless the principal opts in).</t>
        </li>
      </ul>
      <t>Implementations SHOULD support pseudonymous agent identifiers
that are unlinkable across platforms unless the principal
explicitly enables cross-platform linking.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document defines the following HTTP headers for the
REST protocol binding:</t>
      <ul spacing="normal">
        <li>
          <t>X-ATTP-Trust-Level</t>
        </li>
        <li>
          <t>X-ATTP-Agent-Id</t>
        </li>
        <li>
          <t>X-ATTP-Signature</t>
        </li>
        <li>
          <t>X-ATTP-Nonce</t>
        </li>
        <li>
          <t>X-ATTP-Timestamp</t>
        </li>
      </ul>
      <t>Registration of these headers in the IANA Message Headers
registry is requested.</t>
      <t>This document defines the following error codes:</t>
      <ul spacing="normal">
        <li>
          <t>ATTP-ACTION-LIMIT</t>
        </li>
        <li>
          <t>ATTP-SANCTIONS-MATCH</t>
        </li>
        <li>
          <t>ATTP-TRUST-INSUFFICIENT</t>
        </li>
        <li>
          <t>ATTP-KILL-SWITCH-ACTIVE</t>
        </li>
        <li>
          <t>ATTP-NONCE-REPLAY</t>
        </li>
        <li>
          <t>ATTP-TIMESTAMP-EXPIRED</t>
        </li>
      </ul>
      <t>This document defines the following well-known URI:</t>
      <ul spacing="normal">
        <li>
          <t>/.well-known/attp-trust</t>
        </li>
      </ul>
      <t>For discovery of Trust Authority endpoints.</t>
    </section>
    <section anchor="references">
      <name>References</name>
      <section anchor="normative-references">
        <name>Normative References</name>
        <ul spacing="normal">
          <li>
            <t><xref target="RFC2119"/> Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.</t>
          </li>
          <li>
            <t><xref target="RFC8174"/> Leiba, B., "Ambiguity of Uppercase vs Lowercase in
RFC 2119 Key Words", BCP 14, RFC 8174, May 2017.</t>
          </li>
          <li>
            <t><xref target="RFC8785"/> Rundgren, A., Jordan, B., and S. Erdtman, "JSON
Canonicalization Scheme (JCS)", RFC 8785, June 2020.</t>
          </li>
          <li>
            <t><xref target="FIPS186-5"/> National Institute of Standards and Technology,
"Digital Signature Standard (DSS)", FIPS PUB 186-5, 2023.</t>
          </li>
        </ul>
      </section>
      <section anchor="informative-references">
        <name>Informative References</name>
        <ul spacing="normal">
          <li>
            <t><xref target="MCPS"/> Sharif, R., "MCPS: Cryptographic Security Layer for
the Model Context Protocol",
draft-sharif-mcps-secure-mcp-00, March 2026.</t>
          </li>
          <li>
            <t><xref target="AEBA"/> Sharif, R., "AEBA: Agent Event Behaviour Analytics",
draft-sharif-aeba-00, April 2026.</t>
          </li>
          <li>
            <t><xref target="OWASP-AISVS"/> OWASP, "AI Security Verification Standard",
2026.</t>
          </li>
          <li>
            <t><xref target="RFC9421"/> Backman, A., Richer, J., and M. Sporny, "HTTP
Message Signatures", RFC 9421, February 2024.</t>
          </li>
          <li>
            <t><xref target="GOOGLE-A2A"/> Google, "Agent2Agent Protocol", 2025.</t>
          </li>
          <li>
            <t><xref target="MCP"/> Anthropic, "Model Context Protocol Specification", 2025.</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8785" target="https://www.rfc-editor.org/info/rfc8785" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml">
          <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"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9421" target="https://www.rfc-editor.org/info/rfc9421" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9421.xml">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="RFC8693" target="https://www.rfc-editor.org/info/rfc8693" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8693.xml">
          <front>
            <title>OAuth 2.0 Token Exchange</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8693"/>
          <seriesInfo name="DOI" value="10.17487/RFC8693"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-arch" target="https://datatracker.ietf.org/doc/html/draft-ietf-wimse-arch-07" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-wimse-arch.xml">
          <front>
            <title>Workload Identity in a Multi System Environment (WIMSE) Architecture</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>The increasing prevalence of cloud computing and micro service architectures has led to the rise of complex software functions being built and deployed as workloads, where a workload is defined as software executing for a specific purpose, potentially comprising one or more running instances. This document discusses an architecture for designing and standardizing protocols and payloads for conveying workload identity and security context information.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-arch-07"/>
        </reference>
        <reference anchor="I-D.klrc-aiagent-auth" target="https://datatracker.ietf.org/doc/html/draft-klrc-aiagent-auth-02" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.klrc-aiagent-auth.xml">
          <front>
            <title>AI Agent Authentication and Authorization</title>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Jeff Lombardo" initials="J." surname="Lombardo">
              <organization>AWS</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Nick Steele" initials="N." surname="Steele">
              <organization>OpenAI</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="1" month="June" year="2026"/>
            <abstract>
              <t>This document proposes best practices for authentication and authorization of AI agent interactions. It leverages existing standards such as the Workload Identity in Multi-System Environments (WIMSE) architecture and OAuth 2.0 family of specifications. Rather than defining new protocols, this document describes how existing and widely deployed standards can be applied or extended to establish agent authentication and authorization. By doing so, it aims to provide a framework within which to use existing standards, identify gaps and guide future standardization efforts for agent authentication and authorization.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-klrc-aiagent-auth-02"/>
        </reference>
        <reference anchor="I-D.nelson-agent-delegation-receipts" target="https://datatracker.ietf.org/doc/html/draft-nelson-agent-delegation-receipts-09" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.nelson-agent-delegation-receipts.xml">
          <front>
            <title>Delegation Receipt Protocol for AI Agent Authorization</title>
            <author fullname="Ryan Nelson" initials="R." surname="Nelson">
              <organization>Authproof</organization>
            </author>
            <date day="22" month="May" year="2026"/>
            <abstract>
              <t>This document defines the Delegation Receipt Protocol (DRP), a cryptographic authorization primitive for AI agent deployments. Before any agent action executes, the authorizing user signs an Authorization Object containing scope boundaries, time window, operator instruction hash, and model state commitment. This signed receipt is published to an append-only log before the agent runtime receives control. The protocol reduces reliance on the operator as a trusted intermediary by making the user's private key the sole signing authority over the delegation record.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-nelson-agent-delegation-receipts-09"/>
        </reference>
        <reference anchor="I-D.niyikiza-oauth-attenuating-agent-tokens" target="https://datatracker.ietf.org/doc/html/draft-niyikiza-oauth-attenuating-agent-tokens-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.niyikiza-oauth-attenuating-agent-tokens.xml">
          <front>
            <title>Attenuating Authorization Tokens for Agentic Delegation Chains</title>
            <author fullname="Niki Aimable" initials="N." surname="Aimable">
              <organization>Tenuo</organization>
            </author>
            <date day="16" month="March" year="2026"/>
            <abstract>
              <t>This document defines Attenuating Authorization Tokens (AATs), a JWT- based credential format for secure delegation in AI agent systems. An AAT encodes which tools an agent may invoke and with what argument constraints. Any holder can derive a more restrictive token offline that narrows or maintains scope but cannot expand it. This invariant is cryptographically enforced and verifiable offline by any party holding the root token's trust anchor key. This specification extends the Rich Authorization Requests format (RFC 9396) with delegation-chain semantics and defines a typed constraint vocabulary for tool-level argument restrictions. The accompanying chain verification algorithm enforces the monotonic attenuation invariant at each delegation step and requires no network contact with the root issuer.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-niyikiza-oauth-attenuating-agent-tokens-00"/>
        </reference>
        <reference anchor="I-D.mw-spice-actor-chain" target="https://datatracker.ietf.org/doc/html/draft-mw-spice-actor-chain-05" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.mw-spice-actor-chain.xml">
          <front>
            <title>Cryptographically Verifiable Actor Chains for OAuth 2.0 Token Exchange</title>
            <author fullname="A Prasad" initials="A." surname="Prasad">
              <organization>Oracle</organization>
            </author>
            <author fullname="Ramki Krishnan" initials="R." surname="Krishnan">
              <organization>JPMorgan Chase &amp; Co</organization>
            </author>
            <author fullname="Diego Lopez" initials="D." surname="Lopez">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Srinivasa Addepalli" initials="S." surname="Addepalli">
              <organization>Aryaka</organization>
            </author>
            <date day="25" month="April" year="2026"/>
            <abstract>
              <t>Multi-hop service-to-service and agentic workflows need a standardized way to preserve and validate delegation-path continuity across successive token exchanges. This document defines six actor- chain profiles for OAuth 2.0 Token Exchange [RFC8693]. [RFC8693] permits nested act claims, but prior actors remain informational only and token exchange does not define how a delegation path is preserved and validated across successive exchanges. This document profiles delegation-chain tokens and defines profile- specific processing for multi-hop workflows. The six profiles are: Declared Full Disclosure; Declared Subset Disclosure; Declared Actor- Only Disclosure; Verified Full Disclosure; Verified Subset Disclosure; and Verified Actor-Only Disclosure. These profiles preserve the existing meanings of sub, act, and may_act. They support same-domain and cross-domain delegation and provide different tradeoffs among visible chain-based authorization, cryptographic accountability, auditability, privacy, and long-running workflow support. Plain RFC 8693 impersonation-shaped outputs remain valid RFC 8693 behavior but are outside this profile family.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mw-spice-actor-chain-05"/>
        </reference>
        <reference anchor="FIPS186-5" target="https://csrc.nist.gov/publications/detail/fips/186/5/final">
          <front>
            <title>Digital Signature Standard (DSS)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MCPS" target="https://datatracker.ietf.org/doc/draft-sharif-mcps-secure-mcp/">
          <front>
            <title>MCPS: Cryptographic Security Layer for the Model Context Protocol</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="AEBA" target="https://datatracker.ietf.org/doc/draft-sharif-aeba/">
          <front>
            <title>AEBA: Agent Event Behaviour Analytics</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OWASP-AISVS" target="https://owasp.org/www-project-ai-security-verification-standard/">
          <front>
            <title>OWASP AI Security Verification Standard</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="GOOGLE-A2A" target="https://github.com/google/A2A">
          <front>
            <title>Agent2Agent Protocol</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MCP" target="https://spec.modelcontextprotocol.io/">
          <front>
            <title>Model Context Protocol Specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 1077?>

<section anchor="appendix-a-regulatory-mapping">
      <name>Appendix A.  Regulatory Mapping</name>
      <section anchor="psd2-sca-mapping">
        <name>PSD2 SCA Mapping</name>
        <t>ATTP trust levels map to PSD2 Strong Customer Authentication
requirements:</t>
        <ul spacing="normal">
          <li>
            <t>L0-L1:  Equivalent to unauthenticated.  No SCA-exempt
transactions permitted.</t>
          </li>
          <li>
            <t>L2:  SCA-exempt for low-value transactions (&lt; EUR 30,
aggregate &lt; EUR 100).</t>
          </li>
          <li>
            <t>L3-L4:  Challenge-response verification satisfies the
"something you have" factor when combined with code
attestation ("something you are" for agents).</t>
          </li>
        </ul>
      </section>
      <section anchor="pci-dss-v401-mapping">
        <name>PCI DSS v4.0.1 Mapping</name>
        <ul spacing="normal">
          <li>
            <t>Req 3.5 (key storage):  ATTP mandates HSM/KMS for
production private keys.</t>
          </li>
          <li>
            <t>Req 6.2 (software security):  Code attestation dimension
maps to verified software inventory.</t>
          </li>
          <li>
            <t>Req 8 (identify and authenticate):  Challenge-response
with ECDSA satisfies strong authentication.</t>
          </li>
          <li>
            <t>Req 10 (logging):  Hash-chained audit trail satisfies
tamper-evident logging.</t>
          </li>
          <li>
            <t>Req 11 (testing):  Anomaly detection satisfies continuous
monitoring requirements.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="appendix-b-trust-level-reference-implementation">
      <name>Appendix B.  Trust Level Reference Implementation</name>
      <t>A reference implementation of the ATTP trust scoring model
is available at:</t>
      <ul spacing="normal">
        <li>
          <t>Go:  github.com/razashariff/agentpass-go (Apache 2.0)</t>
        </li>
        <li>
          <t>JavaScript:  npm install agentsign (BSL 1.1)</t>
        </li>
        <li>
          <t>Keycloak:  github.com/razashariff/keycloak-mcps (BSL 1.1)</t>
        </li>
      </ul>
    </section>
    <section anchor="appendix-c-comparison-with-identity-only-approaches">
      <name>Appendix C.  Comparison with Identity-Only Approaches</name>
      <t>Identity-only protocols provide authentication.  ATTP provides
trust-gated authorisation.  The following table summarises the
differences:</t>
      <t>+--------------------------+----------+------+
| Capability               | Identity | ATTP |
+--------------------------+----------+------+
| Prove agent identity     | Yes      | Yes* |
| Graduated trust levels   | No       | Yes  |
| Action limits            | No       | Yes  |
| Sanctions screening      | No       | Yes  |
| Kill switches            | No       | Yes  |
| Behavioural scoring      | No       | Yes  |
| Tamper-evident audit     | No       | Yes  |
| Fail-closed enforcement  | Varies   | Yes  |
| Dormancy decay           | No       | Yes  |
| Self-dealing detection   | No       | Yes  |
+--------------------------+----------+------+</t>
      <ul spacing="normal">
        <li>
          <t>ATTP consumes identity from external providers; it does not
implement its own identity protocol.</t>
        </li>
      </ul>
    </section>
    <section anchor="authors-address">
      <name>Author's Address</name>
      <t>Raza Sharif
CyberSecAI Ltd
205 Regent Street
London W1B 4HB
United Kingdom
Email: contact@agentsign.dev</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA6V9aXPb2JX2d/yKW0qmQqUJmtq8KO9UhpZkW92SpYhyO3lT
XS6IvKIQkQADgJLVS377nOeccxeAtLszSc20KeDu9+wb0jRNmryZ20OzNbq+
vjw0o5ktGnNdrWr8NyvqZVk15rIqm3JSzreS7Oamsg/afCuZlpMiW1D3aZXd
Nml9l1X5bZo1zTId7iSTrLGzsno6NHUzTfJldWgajLw7HL4a7ib16maR13Ve
Fs3TksY4Pbl+k9zbp8eymh4mxqQmw2r4F/fTX7oq/mt0yv+cH13yv8vsaUFd
av6jzmdFXsz4dz6lx3nzlGSr5q6seHj6f2NuV/O5bOEq+zEzY94BvymrWVbk
P2YNLfDQHD3d2GpsJ6NTc0abQQO7yPL5oZnQ+rNJ8z+8WMw5mNqHpCirBXV9
sJjq6s3R7s7OK/35cufFvvv54uXBYZIXt53Wr/Z3d1yT56/28PM0PR7ktrlN
H/NFbdOsmty5x/fzapJmOS8gxQbdi8LO67JI5cXUzu2Md5NWdmLzZVP7dvlT
fk9bTUv0xv3ZYkVNi5n2bcp7W/jmi8e0XuYTWsSkKat0cpflBd69Ob0c77x8
nh4c8vk4yDrOZ3mTzc2YziZrVpU14yYrplk1Nb3j8Xh7S1pn1cw2h+aOgKc+
fPZsUlcTWljdDGblw7Pl6maeT3j19bOpbejkn93my/oZzffsgH4W2ZyGITgY
tyfnJ+aoelo25azKlnf5xNA1rioCBnOWPdnK0OGb5s6a85KOyBzRddrPMcxv
Wt00azKCxMm9rfhWBgQtzwgbnrUQYTFZ1mmN2Sx+P6OhRievR+0V8hNFvJMH
/Pe1vcse8nJVmRFt66nJJ/V/sorM3mSY+uLjaHyZjk7H33fOiF8QKoWD+d5S
Rz1vf1ub11A+ZvWSJ358fEyXVfkPOyEozGXfNFj6EA2W1joYFvT24uLt2Uk6
2u2eCM5iV07k69dAgHW3uhlMysWzWVnO5vYZDSZw0AGDjXdrxks78WvbPEVN
TQYLdJ9I76V2HuTlsyRJUyJTNzVuoUmS67u8NnQBK1AhU8votmbw+jppNT1Q
1O1+khk3AeFeUdZ0++a2IgpFZPFeYJWHqCdlRQjaN5MYthNH6PqGFoQDn+eL
vDEWJGZisSzqUS6W8zwrJtbMGMupcTFNmmyxtFVqH3gMk62m1BETElEoi3JR
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
e/KhbOs/4hC2TVFtP8sgCKGTI6IfZ9kNnsQBc6Sli2X8pICVZooYuv9oVtJb
ZOBhuvOKf7wvNZw7mpWedaP90HVH3u4O071X+EESLgEmA7Xvep5PqlIcfHHX
XXm7P0wPuKtPjY1m/ZutTet/0nVP3j4fpi+46wlx3Cya03XtaTConW67rvvy
9iU7a+jHmxXhS2u32pXdRtzxPzzhhI4utgiIh5atrKvCuQSV5mVeS8dSE+9K
qtU3IQorUuBED1vgyJj+2OIO8utU3F0+avD4qcgWJNKMGJPZJr3GBwXLid1I
W+ZJ3hdV3sCRxy4BpfEilyjTuV05v8Oh+WY4ONCBGWVYMng9Lyf3YYM9TiDi
XRO5THfX2rdDey0J4ekBix3Ki7jRER0RcxKXedfb+4ZID/xmWWHLVc1jD9cG
fyOii9edYqHrkOWcbo/LqryRSC2/nJ3OJhMOSJjabC7ql5DPnotQU1cPrkvp
DkdOeW17OxGrRFYV5kdblZ3BcYdKd8yxnWRP3lKQF8KcWGKGy7IAaRY1to5M
+RLUIC4SuXDChxWBilzkntoo3HByDiwOqrHo+XqL3XaLV8Nv1prsRU0Y5Bz5
dI9Fu16UAC44uyKOTEDPQUg8mMRHwBRNMlrJUMSSDnvxRNeJsGvpGtXBTUCt
0+B7R1z/gzfTJbcZoi5mkGezyb1K3UQSqeHZDrIf84KRzpkZYCim1+ItxayQ
ow6Yd3RRQkCIaCTG2o3GeiGnhZF2OiMRK/7KULs81F40lLs+jLXbGYso3ObB
mFszsE3amOTMmkRhMdF+NNGraKK97va/NFFfZvGDa+RlVqzEox35WYKAzUGt
7hJhuNHkrAH7AUXAmHQpAJa1n0xJ5I0UNDn44DCda6RN7AcmPhqyYBnMbJXG
DZz0pRTMQRW7TIPQLjYQeHYjtzncxhu0xZZDNvjCRVRy6ikPkARX1z9EVOSD
DxoV223T0RHUqfTs9Pz0Ori5NW6t5WJXe5x3tSNUDY5uH40Sh6IcbpJnfrsU
g4O8/quesnDWYyLAT9GTjZz1t0ssvx92hZINj2I55fc7w7UOB91HsXTye0gJ
ax2GGzrsuQ79Yes9OnQfxZIIDdd+TY92h+1n/4dTYgdWURZpyDP1OLmer6ax
yYjZICkZmKDA07OD2aDPARYQDMQCQPSSFUEOVHoo56sFg74LwdhWtsV3PZrN
EI/g6HXt7TMM2VzCg8ZBy8y3VBQKoRjM/zlwSNloZqpyzvx2dz8FWSa8KKbl
o2MUjqpsmD3Q//HTTT53dN/0xPeIqgM+u5ttr5O8mqwW6BEVOpDj2fa2IeHh
QkminbjQUVslEamTfGj2NjJvjp0CR2XJ+7pkPk64zGbqrCVBeh7Xj0gdr8BF
X8euTguprZauf3AZZxLVRSREZhOpIfmCYd2FgzhvgA4RhZcKWY0CXWwdaCkv
L3r3pZADBES6iCt489Uzy87ouBKD+jx8YIywbAjVjr2pP0oz9CsJlIHgFzMC
NVtpDA02U28IlvVxRT3SbtlTwHyLz2v7q5a1nJM0f6SV9iTbs7aRtSzaD9tG
rIhDCFmT8H3eAIeuIaYGlpYrq1vO2bur8VUI+c8neRPz0olPB3F+igTVQ1YN
8crGGY1xNwFT1u+n49zXsJB43ZqHHMTu+VMyzWvcVy33IUjE0KiwrpcqSzjR
wgNP5k1l7Y+2TRycFwwmRN/wlhv6ggQyF6FSonNFyOU3ULsCGpo9zoIyYiHa
kZSaQIZOU0ZIEy1Q58XCEpdnL5UOJE29naTRRqTmsUwi0FYsLdl1wQ6iVkQW
i7S/6z61qORgq1sAYNJKFcii0EiuOyHBuGjZ1zxtx+2jBFM2dHGMxWtBbg3y
giS8sWhBP2mROg0AEzBVeIskIWf8hPHSshzUTs+wdQDPG6iI8UD5LecRzFyI
GxGTHNIfg+VMcQVustVsxsRhSVRs8uQCD8VKz7Vy+hxJ30/EZJkT7RK6J2F6
EZ4wlaaLhADM0ZQ+3iOp7ZxogianyMqXMK1WHIKnNsk4tI0HXNUoO4FyE2+5
j4ZCceC3nf6Jc0aKKLuCt8UnUUdHkWhSRSzxaYTFkxMUuWdPlMAMRrw+w0f6
dnR9kh6fvP+b8uMQnD/2wfm9E+nCELZNquyGAP5cQWzBdsfWJXJ0M70HgRFT
hAsGyOsoij+rXT0CXBbH+YEqt+ruxBJpfPxEBW7+IcnqxscUJhp1yNZvCb7x
AAdw97uYCYiCTPF+pJZCZWEvQsq43HgLcnV5Yb18w3zAiTtgc/FmdGTGx+/7
5uQDW7y1pMu0bz58Z96dX7OV/MN7H/uTHJUroivzEOU46i5TNwLAuV39+OMT
ySFEZNmZzUAQHAq0qgR52/UdHNVtWvNi+F/SUbgQSSiCXvyMK7bAPyF1I7Bd
P46oZvfWLhmg5RicwtL2CXm9TwS31ZKr2SiYfdsO8jzSPA+nlXhMqIKl0Bub
sKAWJqnfgmm7j7sSos4n7O3rWi0kOFjlNBPHQ+Kza0/holA/LzXFNKvXaNWg
S5CvmFETo+RckC79DZHOQuA0OYTd98zRhc8nUTAV74SrQfUjQtNJEoJZZE5C
bE+cawCNwmZVilqSFsKoC1b0tQLiNB0XEB/plFLDwAdqaXiFq8kCTA54EONc
K7pxIQaCQ3Ngnmg1jqk5Q96xy9HnMzz3Mr2+J7jwhPjxDlU8gtjvfAd7PuOC
dvaQq4NCSn9FwpdUnGGrwMJmQVNHUPXMST3fW0IH2P42zF9JzpPTwnc/my8N
L4ZYr40Q/T5IRStSRWTz5Nd2QdDIZRHc5C4VZdXURNhbE0Z+ruB+EpE86Xmc
eTVMp9mTK7ezHQUjtqY+imvqrE0/pfsWT1QT41PuUrhD5IN3mSUFNKmcQEen
lpB1lyrtLBXOMh9K0iUbj8YZWsPSnAOQA+MKIt/snIJxmv/K6mBuDaPTyYjG
Sno4FG8o8H3WsVmV3zZegSSiVzV6W5DOtLzJUtfhzd1BTiFyReuF+OBtwImz
ZaKRBu/HESMidCj/hZn4WM3EEVa4O7ixzSMcxCrIoo5PMWMmX24wG4skutFq
LFXSumAAqYozqzS4bYcYRcfx2pRN0B5Erxdc1iBgsbP+BVQKFgEtSyDq0RtO
SQU2PYVYIZB6JmpOTZZcoq66ROrPqhZ35duTa/PsYecZv3n2k0bi/LJZMWAx
Q8Z3HutQhy0jjdum1tVFqeLyCT6GjTuzAqxLdrUWNJTB7YpW9pO4HLd0SVuH
+vNTdjPZ2d3b6ut7Xjm9/cm5KLeYEdOT5y/6/hmrGvRsL3oEXx+GPdtDwqzz
aUltTvOLG78dUYL2pGldfPTzi3LeWgDRDgEyekpIMETNO/eOWTg9P+Dnnbmc
o6Q1mgtX2OKaxjYMFYXcYllEqj99fvpxKzSI+S5avH3d3RwyGNpLbweqbmks
ahhT8uSmIxz51u5w93k63E/3hte7u4fDIf3f/4/aqsn2NfazFZU17sStukUl
/B/Aw2sWqP4iKXmbYfGGm2jWnrhkNO94ooFVlxfjGLa5AwOWhync2t8VqnaQ
hSk/d8PPva0fsCQXuSqT1vmPli+2ZUjq+kjiuDPvEInKUNKy1ZBSlMUTZ1G6
x2aH/T3O8Mc/Ty/FXRdK6RGJ8R2eD9c6wITIMZ5Y3Kmr+0yE5jivkSi94qAA
Jyxeh8B+WSK6R/G5KC8iy73KHn19go6vX3wZ18Gi7YvSgQy5wH5UVHbOvhDT
D0NJxclVFf9NuvYMGa45HzBKwRWaJOg8EF6SrtXhhSWHgjJx1k4bh0VuU6Ma
3OQtJ8U4qsZwpaUUJOhf3p8UNCTqV6gw6qJnqnIi8iytq1zN7nyBG5enrLHb
Vvsftqkcj6JkbtJ8kmygT/nU05lfo4OZR3NN5ftEcmIDndk38Vxb6Y97Hkv0
GICOK18ig/8T6pW3Ke1Zh5BuBWH8isVlxvWzk9FV6OfCQ3+NZGz5sEG0lAj2
EEnInuyJC1XnyPUtJRlfDm8/Gn8tfh12LAlbZy69bDrBi/wO6hmJEoJISKRA
+GfuBQl/oeL5IWnjXgyKmaRZaM3y5F//+leCB58K898uEaPHD34q0p1fzM8/
Y7U9N9qnYnub+/DmEOJbE/PlEelf139LLA8n70/Gp2POGHhNktq9M1WEBZgg
cUm+PCIWWtGOicbBdlLlIfJqhcUl7Gkq3a4F1Y0aCZBihS/gjZjT1xyVIcXR
W/R9PLvWL0k6uQ4jSW8YuOBHbuTCHqPgzax9K4MQ1PmHugtNGHitYXRoroKR
fxcpqpLCKSoiG4tlywwE6zGHWXQ8hyIXglSpsSRLWkk1rg5NSLVxi5SkV//Y
rS9R+3VYemSBhTVLaiPkqNax5JIxKKQktkoUWJmHSoci/TeaLcuGSfUEc3Bu
dIJTu5AEVFTS423wEoggh1yYe9knhz8QHrUK9PRxtYJb/VDDz/iRnJIKa1ZI
C4KOLNn0fbYRi6nTVhOGJZ9EJrpahiQ03BmprtwbqecwbLrZwKrXdsvFn1Zc
r09LE7tSqKEQQzHtSzKfM05PQ+x7XPcJwneoxOxr2HTMW7qjVKKPYLmIwl9v
iDq7JA49FFX5u4m79a8Utf5a9RrWrjrpvJvr2cCqcHTp5uSs3rGGouO5L6nl
yyAKOfxaZbuBVJh7rJBhDMKeXl0euTpzHD/YYZ41MYKKNYkkqt8mZbIG7QAV
jjqmbk/BzcOTeZS6sxlBrI8LcJ5YHA0O3ee/o3A0yctgLb1sAZbZF/jY1kIw
Sde95EIWnDsPQ8VFIiA1omCpHqX4kKPC3NHW4l2gJAbX75GVqyb315R5AW89
1Qy53egFuwVTZFnE4kPUwMf3H7KB8Pm+z//ocOKoz3tkAJMwcTC0L/eHw9Tu
vrpJ93em+2n2Yud5ur///PnBwf6+U3XcGp1AcIis58/GLks6tkW9mZEfIs/6
DqlCywwljW7KqeRwG5cksd1PitIX8fTihpxwqG7ePmcAQvz5h2A+bx+7XdzY
afARJtdZfR8yv9vuSB7pCHYzx5di7BJ4xBKJ3REr5Rh/DAtw87XZoM5IIHqU
woA0+fbyJXH+KxDiluigRPMCvWVDHhtIeFxWDS8Y9hSB9fQkM789ty8P/xsB
FNUJFjbR+rzbILVoAsaEMLpazIsiawmGumnVGdyWldmIAAlxMBh40TGM1NJn
URE0ftAVY3f70ZtfEbHXRdRoAfySoXDTi1gEphH3D56/ePlq6Br8sqYAu1q8
rPXMXAo4zt5K4Z8cqT6SW+PboroMZ0ig6Jcvz6t0JIlJJAspHcA233681mQ2
KVQs6S4kd5KmmchBSvf2bdSrmy/rJJ3Tl7P/NF87fPfCm2R2YZLxn4OJbB6q
21gJxl6ziTSfPzH9dpaX2PDy5F8dtF8xFa83qU597zP6JA6teClKMD49tG0l
7cschfvxYUALiNIV8ockA0CQjxRxi/hVKQnKZ5SgJTNZZpjzoVcu5e997uQ8
Qa3Kli2EdVU0a+fakqbRR0KwAH14esy1hDxVEA7rkkmdy4MrVafj76l1q4ir
j/Wl4xKZcz5IWiuDBQexiT4HsB+LO/rZDgmdyCeJzwBVifKxW7r0T0KFuEZq
HUUEJiL0TtYqeKxXLkKMRarMO/5Gh5QnHETJfadTVzbRrYOovj83Tehb5re3
9vDZMxXv+ItF3PuZ/2hYAvEll9pdonJylOWHq1MzHr13ew1n7MoFuq21VE6V
jbyRFR2Q1hNKC0VJh0kvygzf/lpquE/Adxo3TEhJz337RqujeG4MfUJO29G6
banW6TlLopzlT36VcGvetirgsR+bQ/DjHbn9JrVIwWoSZXMAKwfOJOb1dw5g
C05muSKlgTckT3O5jetwWK0aFuIwvVN+5GqbsXaher1UmkhCkXuuNNEXyyat
/NJb5PUFddVCElZwng8hiYRl/wkmEjqxigmNRGc74MQ3DQaTHOnEzZ9iif1w
mhit7qCy6g1+yVFmOVfQDSXkNW5VlCfVul23viI5KErGYY7Eb5EPDCrc983S
qiybOODfuQm4YJpaJZIgYHxJTsdXRGbeP4e9pVnL8Okr9Ct4dYR501uXhvtf
gMZtpyq3iyj7mmSqe7qv8yFqri7nWEWiYTChKCELdPjWSAgO4TLCwdnN8CP9
kjmdyYoLd2tZ5CNL3A6ggs8CmEsZXaRTGhRgqeVC+Rh9GmOHmNOVzyRT0uNP
JKepEAqzQMKVdL1pwoo/0e1XbKBKBZB1EdNw/9kscVQ6Yrj1p85XtR5VmU88
2Z4iwVd9nPQuEGn+uoOmeOaN6LCCTE2ZcOhj9OmtLSVczWMpBpfSZ9NVT8oL
2MCRZHO+RyRJ1KI1X/kCnlEtl/jhyFUb85ETXJLA4URwCdJNeevUIAlDcNyb
LxrWi0L4tqX0kkVmBmbAt3zmiQspRBo+J3qykzYaD5YFTQPS4get8Ey2jrN5
xpFAF0fi6kJwGwmi0MiGsNYNoY/4jMVSbBa0JjpGGAZDPJ1z3tUsxj/am7uy
vP93IgzXwgvZ6OS/hqXfHOFKlK2QxqwTjhI1mM3LG6wWhWr5ZxJFEJpfjSAU
0PCVgzipdqp5rbWvHhIKB3GFR8cxQuqLr0dk3o3P++a78/GmmkJJu6bQV+pV
DVpOEg0l0TpbbJQhIYaLtcKaWdiG6+aD2KIMtcnY+Cqy7DyZ+RpknbIIGI8X
rmAf8UK19widfqOZO+c03szhCtB9IQ/Cl/m0oQqrArkhm6jykdos2rpCA88H
LyVct5XfFb7x5hu+Gjzfdv4jF4HbjQD3jV8M9qSxz+qaIqsrnvYFh4cVGpkO
unlXhu9eaZiroK1Afb3gpF9v1E6iL5WhtO406MQuDUrphMbusIwEW67NJndq
F+i58O++piv1Xa5R3+UCbXvpW8dxFcTZgcNlczAgju1sP0Qso3Sfzruz+1Ky
isrbpKYlSjxSKC7JhLmdQqS6Bcfuj/iE6Nw5oJ8B4Ct34OL+Q0C/yvE+rN/Z
2pxW4+CvRMmfLqxqhIXXmpLIsHpn4epG5e5DFzp5euk/Y4DqLFMRHuatrx+6
lHeUQyXSmBdxIU66I28GOY1LPcTBJJrhuF7mpZXrWPtYljiKJdeg3HbBVOwX
dm02RsNU+OALUNSJnoGPjHFqkis9sqqX6pAFrW4V3Eri2JgrVOAhIicHGFXG
oGeOd7ggLVdm1NM49aJJ9FLjU6di4zFzYNT02FRrDxGXGS1c46MhN9L8pIBl
ywCK4tPvZqpw/kr0iQ4irPItrXZwT2QndnUxWDnp2Afb/q9QHSaIk6ouu6SO
+VNaI2RIBgMDSqICYXFIGZc+0iK3HJ/Wjug8UE+9U92jbIC4oIPWMm3Zldfy
4fgkmVHLap32G1V/vWYNIqrNo4tyIVBqG8KISfgESVSHtFXlqZ2UEHIk8LnT
OazdhgMkfSAcrphkZqUuvhT+BRLUo++gbfh+a89/NkMr2WsV+7h6fdKpXo/7
0wr2+u0pN64LatwOkX4JSH30lSo5KxQUhdSjItcksMZuOWEfFbjhS3zMdTTZ
Mf5EYCtZsMklRzaujy9MkM1N3eBAp9N2qr261GkI0/6Lqe1vqbbyIW4j6wxM
FiC3k6fJ3LqBOHx246cb9DscEmznStFK3VXnGh0EN1T01TinX3W+GucvW8R1
9422Bh+q4Srj4XsQ3kUp2QiVZQ5XE3/l5JL4Q6sB+NVRRiA6WRfr1qJe/uli
7VgQz+ZaqcVDCIe3MdVO8uZL+aWt1BdlUKS/eak54a946LcVQ1wOHdECao7a
YJ1WGUe3RFXQsDqNH1oLtXFsbeDAtx2rc4MQAUJ/bdCKVI0WNNCPwvnQnI7M
5S+mtyrm7islkXK05Jz5TRVXlYs5bWBZ29XUxUDFOAsTj7qWoeShekNxz0RV
s46CIrJpCbFeJfZiujH0S33AJAYUdoJPt47ejzaAyJc+BByKvLV8He4bvexL
6WZ+yo2tGyeip85PFz3yFC56xp63eDDHh6A4hkKkakqsrV+f6nu8WfcBkHfy
LtESploqgPk+k/HfcgghY8bFtXUzpf3D8eg9Px6nXFnKP7++IvhOT9+PP7x5
c3p0evI+dPnu9OwsHX88peY85vcn/tX7i/dHJ6lUrgpDnZ7T+Y/OL1OtcvXb
NvFo5/P0vsD3Dj5cnco+ng3C02f8nWAR4tiy7r7Ry/WFuvVenY/PGx5IqIWx
QxTK94JoD7b1giYMH254TVyDlLa+GQ/6Zus7/3kKwBikKNRef3PEesepxveA
FF+J5M/7lEI5W339KkSfC7xh9D5psxXx751Xr14M/LzymYgzm99k1AWzjhY3
+WylFZQ+wHGBNCvzUJuz8lH/kKLxbmQmGh+x0M60GBzTPpnd4U48KUdnXZGO
T3Je0Tcjmvdb6o8YD6yB46sH5qSaNhz3sYUQAa5l1ilcauLCpVs6KQ1Ow60K
S7PuDnXWUEDbvHfFq/CFl7yBIYx26nxPIqJf28mdfCmE/T9bx/kM38eIauL5
ajq94zHPjRnM5YfXhqfpY/K9TjDmhqtHaMIPZsxRErR+XAAeHbYjroKh4sx9
s5U/L3Cn39tb+zS4uK2+FoKBD3MrRCBET48J39PrLAePDtVqdsL6na9GFr4+
uWE+fGqSJxkRgZ7Hk1x8HI2JUpyOv6et8x+Y5jRsMq432HEKRsPQZeMDqIQ1
pCMwnACOrvBdKcKgbxWOzgdmTFyneKI5QLcxyPp3kBR2MB7dpL2pVrAr0mT7
Otnbi4u3ZyfpaJeORyIMsOYonCCcPLodDPz1/kCnBH13mU9wuZu/5N76qmgY
gr81fkPb43hVjsfLP9M2gfL+swDn4jOULI/x8a4ZH43Cw64p2Ae6SNMG3142
R/A9LBBE3Ppyt4t1YtOUK9ySctWWE1/JAGOtipa5Xj56RMtISaNYLJvuJ1jY
IMqGLK26glLVvjVTO6LPqdQTa3Xs/T9z8uHK7IkzN+iJ8hgJKFpeJeXaKkdf
V9MNbIG1K2LJiB4+Tf1Urjgne4u0cXxab1P2DbifKwTpqxd2xiBJZiv63KIq
gJdHp4YIh3nYHwwHO+G62Gz7T7M3ODA9Dg0Uk+G2qyCtWaA17I3PvjsfO1IQ
mRPb5jwd8Plg1/T8V3ucHwvDcvnFeANecMS4/A0IVzQVuosfA1X4Cq/3YI6X
pudyZ51T18PE9sbbwAx8kBpx5K+jFrjMWuDoJ9oZmh7RZjiYMO47/8UnV55L
7NphPAbAtnaj/cOYO6aHM9Ax176AGy0OaYWkzZP0yicUvocbo8ughbKvByYu
ZBfYQMdigviByr/LW++cl3j9A6b6DT+oSe7jAnSjgrBvS9oNMa+71c2AgPdZ
lf2YCYW+FSc1XAbprDS90TIj0gnlmz8P/S2NRUppvkTF32K5ED3TG+Dxxb3e
6/GZ2RnstD4n/eXp7rUFs6Koc3xQR5pS+WULwgjJ4ZlUwPBvuPhdsCNohEIX
fjofoRX3MKeUdj4CqZaiICeKaadeLRaZhOKAXkzh9xdmHlfy+WoBmW9ClZ2j
8HXO9v9+DuWrf5YV//zvj37J0cYdi4iM7ov+8c8/crmczsf+HK9oVSbUnmje
roDUWvum5pvS3r/SvP2VvV8dPa6O6jDiK82vN5k5vtw8+tJg6/M31Ob7jJOR
Ws07bodfPZnNvo/Nzf9NIEj++NVvTnqPt48ca4VrE23z9IcjFvmzfV0zjpA5
xh3EQ4oBnlRSQnsVI5MoEeysmSa7wwNILxiVpA9rm+SsLKaoxbrz2uy/e518
KNiD8h2dyLRcJCcLuoBD+TDGpPkfT30GU/uQ/C9MsG2tZ5AAAA==

-->

</rfc>
