<?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.31 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cui-dns-native-agent-naming-resolution-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="DN-ANR">DNS-Native AI Agent Naming and Resolution</title>
    <seriesInfo name="Internet-Draft" value="draft-cui-dns-native-agent-naming-resolution-01"/>
    <author fullname="Yong Cui">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <region>Beijing</region>
          <code>100084</code>
          <country>China</country>
        </postal>
        <email>cuiyong@tsinghua.edu.cn</email>
        <uri>http://www.cuiyong.net/</uri>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <area>Applications</area>
    <workgroup>Domain Name System</workgroup>
    <keyword>AI agent</keyword>
    <keyword>DNS</keyword>
    <keyword>SVCB</keyword>
    <keyword>service resolution</keyword>
    <keyword>agent protocol</keyword>
    <abstract>
      <?line 67?>

<t>This document specifies DNS-Native Agent Naming and Resolution (DN-ANR) for AI agents. DN-ANR has three goals: (1) use domain names (FQDNs) as stable Agent Identifiers, (2) resolve Agent Identifiers to verifiable endpoints and supported protocol/version information with a cryptographic integrity chain (DNSSEC preferred), and (3) provide only minimal and stable pointer/index capabilities that can be referenced by upper-layer discovery systems. DN-ANR intentionally does not carry heavy semantic metadata in DNS, and does not define semantic discovery, ranking, or routing decisions.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://nobrowning.github.io/dns-native-agent-naming-resolution/draft-cui-dns-native-agent-naming-resolution.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-cui-dns-native-agent-naming-resolution/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Domain Name System Working Group mailing list (<eref target="mailto:namedroppers@nic.ddn.mil"/>),
        which is archived at <eref target="nicfs.nic.ddn.mil:~/namedroppers/*.Z"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/nobrowning/dns-native-agent-naming-resolution"/>.</t>
    </note>
  </front>
  <middle>
    <?line 72?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The emergence of AI agents as autonomous software entities creates concrete requirements for naming, trusted resolution, and endpoint verification. Existing deployments often mix discovery, semantic matching, and resolution into one control plane, which increases coupling and weakens interoperability.</t>
      <t>This document defines DN-ANR as a DNS-native resolution layer built on <xref target="RFC1035"/> and Service Binding (SVCB/HTTPS RRs, <xref target="RFC9460"/>, <xref target="RFC9461"/>). The design objective is strict scope control: discovery systems produce candidate Agent Identifiers, while DN-ANR securely resolves a chosen Agent Identifier into connection material.</t>
      <section anchor="goals">
        <name>Goals</name>
        <t>DN-ANR goals are:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Identity naming</strong>: use domain names/FQDNs as administratively managed Agent Identifiers.</t>
          </li>
          <li>
            <t><strong>Trusted resolution and connection guidance</strong>: resolve an Agent Identifier to endpoint(s), protocol/version declarations, and verifiable integrity material.</t>
          </li>
          <li>
            <t><strong>Foundational support for discovery systems</strong>: expose only minimal stable pointers/indexes that upper-layer discovery systems <bcp14>MAY</bcp14> reference.</t>
          </li>
        </ol>
      </section>
      <section anchor="non-goals">
        <name>Non-Goals</name>
        <t>DN-ANR non-goals are:</t>
        <ul spacing="normal">
          <li>
            <t>DN-ANR does not provide cross-domain agent discovery by semantics or capability.</t>
          </li>
          <li>
            <t>DN-ANR does not provide semantic matching, capability ranking, or task-routing decisions.</t>
          </li>
          <li>
            <t>DN-ANR does not standardize heavy capability metadata schemas inside DNS.</t>
          </li>
          <li>
            <t>DN-ANR only specifies how to securely and deterministically connect after an Agent Identifier has been selected.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following terms are used throughout this document:</t>
      <dl>
        <dt>Agent:</dt>
        <dd>
          <t>An autonomous software entity capable of communicating with other agents or humans using defined protocols.</t>
        </dd>
        <dt>Agent Identifier:</dt>
        <dd>
          <t>A Fully Qualified Domain Name (FQDN) that uniquely identifies an agent.</t>
        </dd>
        <dt>Agent Protocol:</dt>
        <dd>
          <t>The application-layer protocol used for agent-to-agent communication (e.g., <xref target="A2A"/>, <xref target="ANP"/>).</t>
        </dd>
      </dl>
    </section>
    <section anchor="design-principles">
      <name>Design Principles</name>
      <t>This specification follows five core principles:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Principle</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">DNS-First</td>
            <td align="left">DNS is the authoritative source for Agent Identifier resolution; HTTP serves only as a fallback mirror</td>
          </tr>
          <tr>
            <td align="left">Layered Scope</td>
            <td align="left">Discovery and semantic selection are out of scope; DN-ANR resolves selected identifiers</td>
          </tr>
          <tr>
            <td align="left">Path-Independent</td>
            <td align="left">Version and endpoint selection are controlled by DNS, not URL paths</td>
          </tr>
          <tr>
            <td align="left">Protocol Autonomy</td>
            <td align="left">Agent interaction protocols are decoupled from transport</td>
          </tr>
          <tr>
            <td align="left">Default Availability</td>
            <td align="left">A/AAAA records guarantee minimum connectivity; enhanced features are optional. Default version is provided when not specified</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>DN-ANR is a resolution-layer specification inside a three-layer architecture:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Layer</th>
            <th align="left">Examples</th>
            <th align="left">Scope</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Discovery Layer</td>
            <td align="left">Web registry, agent gateway, search engine, semantic router, DNS-SD/mDNS</td>
            <td align="left">OUT OF SCOPE</td>
          </tr>
          <tr>
            <td align="left">Resolution Layer</td>
            <td align="left">Agent Identifier (FQDN) -&gt; endpoint, protocol/version, integrity material</td>
            <td align="left">DN-ANR scope</td>
          </tr>
          <tr>
            <td align="left">Connection Layer</td>
            <td align="left">A2A, MCP, HTTPS, gRPC, other application protocols</td>
            <td align="left">OUT OF SCOPE</td>
          </tr>
        </tbody>
      </table>
      <t>Interface boundary:</t>
      <ul spacing="normal">
        <li>
          <t>Discovery Layer outputs one or more candidate Agent Identifiers (FQDNs).</t>
        </li>
        <li>
          <t>DN-ANR takes one selected Agent Identifier and resolves it into verifiable connection guidance.</t>
        </li>
        <li>
          <t>Connection Layer consumes DN-ANR outputs and executes protocol-specific session logic.</t>
        </li>
      </ul>
    </section>
    <section anchor="naming-and-resource-location">
      <name>Naming and Resource Location</name>
      <section anchor="domain-name-as-identity">
        <name>Domain Name as Identity</name>
        <t>Each agent is uniquely identified by a stable Fully Qualified Domain Name (FQDN). Domain ownership combined with TLS certificates forms the foundation of agent identity.</t>
        <section anchor="naming-rules">
          <name>Naming Rules</name>
          <ul spacing="normal">
            <li>
              <t>Use domain names or subdomains owned by the organization</t>
            </li>
            <li>
              <t>Agent version changes do not introduce new identities</t>
            </li>
            <li>
              <t>No registration with any central authority is required</t>
            </li>
          </ul>
        </section>
        <section anchor="naming-examples">
          <name>Naming Examples</name>
          <artwork><![CDATA[
# Recommended: dedicated subdomains
translator.agents.example.com
assistant.ai.company.com
agent123.agents.example.com
]]></artwork>
        </section>
      </section>
      <section anchor="resource-location-via-dns">
        <name>Resource Location via DNS</name>
        <t>This specification does not use URL paths for version expression. All version and endpoint selection is controlled by DNS records:</t>
        <ol spacing="normal" type="1"><li>
            <t>Obtain (from Discovery Layer or local policy) a candidate Agent Identifier (FQDN)</t>
          </li>
          <li>
            <t>Query DNS SVCB records -&gt; obtain version, endpoint, and protocol information</t>
          </li>
          <li>
            <t>If SVCB is unavailable, use A/AAAA resolution of the Agent Identifier as the default Agent Endpoint</t>
          </li>
          <li>
            <t>Query DNS TXT records (if present) -&gt; obtain optional application-layer security and descriptor metadata</t>
          </li>
          <li>
            <t>Apply local security policy (e.g., DNSSEC validation and/or TXT signature validation)</t>
          </li>
          <li>
            <t>Connect to the selected endpoint and interact according to the selected protocol specification</t>
          </li>
        </ol>
        <t>DN-ANR provides only deterministic resolution and verification for an already-selected identifier; it does not perform semantic discovery or ranking.</t>
      </section>
    </section>
    <section anchor="dns-record-design">
      <name>DNS Record Design</name>
      <t>This specification keeps DNS payloads minimal and operationally stable. DNS data is classified as <bcp14>MUST</bcp14>/<bcp14>SHOULD</bcp14>/<bcp14>MAY</bcp14> to separate core resolution from optional optimization.</t>
      <section anchor="mandatory-dns-data-must">
        <name>Mandatory DNS Data (MUST)</name>
        <ul spacing="normal">
          <li>
            <t><strong>A/AAAA</strong> <xref target="RFC1035"/>: provide baseline reachability and interoperability for resolvers and clients.</t>
          </li>
        </ul>
        <t>Rationale: A/AAAA guarantees minimum connectability and provides a default Agent Endpoint when no SVCB policy is available.</t>
      </section>
      <section anchor="recommended-dns-data-should">
        <name>Recommended DNS Data (SHOULD)</name>
        <ul spacing="normal">
          <li>
            <t><strong>SVCB</strong> <xref target="RFC9460"/> <xref target="RFC9461"/> with endpoint parameters and address hints (<tt>ipv4hint</tt>, <tt>ipv6hint</tt>): provide deterministic endpoint selection, protocol/version signaling, and reduced lookup latency.</t>
          </li>
          <li>
            <t><strong>DNSSEC</strong> <xref target="RFC4033"/>: provide origin authentication and integrity for DNS RRsets.</t>
          </li>
          <li>
            <t><strong>TXT identity anchor</strong> <xref target="RFC1035"/>: publish optional application-layer security metadata and optional descriptor pointers.</t>
          </li>
        </ul>
        <t>Rationale: SVCB and DNSSEC substantially improve determinism, performance, and security. TXT metadata supports alternative or additional security models and descriptor linkage when needed.</t>
      </section>
      <section anchor="optional-dns-data-may">
        <name>Optional DNS Data (MAY)</name>
        <ul spacing="normal">
          <li>
            <t><strong>TXT signature fields</strong> (<tt>alg</tt>, <tt>pk</tt>, <tt>sig</tt>): used when signature-based verification is enabled.</t>
          </li>
          <li>
            <t><strong>TXT SVCB integrity digest</strong> (<tt>svcb-digest</tt>): optional integrity cross-check material, especially for HTTPS fallback workflows.</t>
          </li>
          <li>
            <t><strong>TXT descriptor pointer fields</strong> (<tt>agent-desc</tt>, <tt>agent-desc-sha256</tt>): pointer + digest for heavy external metadata.</t>
          </li>
        </ul>
        <t>Rationale: Heavy metadata evolves quickly and can grow large; keeping it out of DNS preserves DNS efficiency while retaining verifiable linkage.</t>
      </section>
      <section anchor="txt-record-identity-anchor-conditional-metadata">
        <name>TXT Record: Identity Anchor (Conditional Metadata)</name>
        <t>TXT records <xref target="RFC1035"/> provide optional application-layer metadata. Their responsibilities are strictly limited to:</t>
        <ol spacing="normal" type="1"><li>
            <t>Declare identity metadata (e.g., <tt>v</tt>, <tt>kid</tt>)</t>
          </li>
          <li>
            <t>Optionally publish key/signature material (<tt>alg</tt>, <tt>pk</tt>, <tt>sig</tt>) for signature-based security</t>
          </li>
          <li>
            <t>Optionally publish SVCB digest (<tt>svcb-digest</tt>) for integrity cross-check, especially with HTTPS fallback</t>
          </li>
          <li>
            <t>Optionally publish external descriptor pointer metadata (<tt>agent-desc</tt>, <tt>agent-desc-sha256</tt>)</t>
          </li>
        </ol>
        <section anchor="txt-record-format">
          <name>TXT Record Format</name>
          <artwork><![CDATA[
_agent.translator.example.com. IN TXT (
  "v=1;"
  "kid=key-2025-01;"
  "alg=Ed25519;"                                       ; OPTIONAL
  "pk=base64-encoded-public-key;"                      ; OPTIONAL
  "sig=base64-encoded-signature;"                      ; OPTIONAL
  "svcb-digest=base64-encoded-sha256-digest;"          ; OPTIONAL
  "agent-desc=https://translator.example.com/
                   .well-known/agent-descriptor.json;" ; OPTIONAL
  "agent-desc-sha256=x48E9qOokqqrv="                   ; OPTIONAL
)
]]></artwork>
        </section>
        <section anchor="txt-field-descriptions">
          <name>TXT Field Descriptions</name>
          <table>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">v</td>
                <td align="left">Version identifier, fixed as 1</td>
              </tr>
              <tr>
                <td align="left">kid</td>
                <td align="left">Key identifier, used for key rotation</td>
              </tr>
              <tr>
                <td align="left">alg</td>
                <td align="left">Signature algorithm: Ed25519 (<bcp14>RECOMMENDED</bcp14>) or ES256 (<bcp14>OPTIONAL</bcp14>; <bcp14>REQUIRED</bcp14> when <tt>sig</tt> is present)</td>
              </tr>
              <tr>
                <td align="left">pk</td>
                <td align="left">Base64-encoded public key (<bcp14>OPTIONAL</bcp14>; <bcp14>REQUIRED</bcp14> when <tt>sig</tt> is present)</td>
              </tr>
              <tr>
                <td align="left">sig</td>
                <td align="left">Signature over selected TXT content (<bcp14>OPTIONAL</bcp14>; used in signature-based security mode)</td>
              </tr>
              <tr>
                <td align="left">svcb-digest</td>
                <td align="left">Base64-encoded SHA-256 digest of canonicalized SVCB records (<bcp14>OPTIONAL</bcp14>; useful for HTTPS fallback integrity cross-check)</td>
              </tr>
              <tr>
                <td align="left">agent-desc</td>
                <td align="left">Descriptor URI for external heavy metadata (<bcp14>OPTIONAL</bcp14>)</td>
              </tr>
              <tr>
                <td align="left">agent-desc-sha256</td>
                <td align="left">Base64-encoded SHA-256 digest of descriptor content (<bcp14>OPTIONAL</bcp14>; <bcp14>RECOMMENDED</bcp14> when <tt>agent-desc</tt> is present)</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="svcb-record-version-distribution-and-protocol-negotiation">
        <name>SVCB Record: Version Distribution and Protocol Negotiation</name>
        <t>SVCB (Service Binding) records <xref target="RFC9460"/> are the core resolution mechanism, serving the following responsibilities:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Level</th>
              <th align="left">SVCB Role</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Service Location</td>
              <td align="left">TargetName + port specify the service endpoint</td>
            </tr>
            <tr>
              <td align="left">Version Distribution</td>
              <td align="left">Private SvcParam declares agent version</td>
            </tr>
            <tr>
              <td align="left">Protocol Negotiation</td>
              <td align="left">Private parameters declare supported agent protocols</td>
            </tr>
            <tr>
              <td align="left">Performance Optimization</td>
              <td align="left">
                <tt>ipv4hint</tt> / <tt>ipv6hint</tt> reduce additional address lookups</td>
            </tr>
          </tbody>
        </table>
        <section anchor="svcb-record-example">
          <name>SVCB Record Example</name>
          <artwork><![CDATA[
# Complete SVCB record example
_agent.translator.example.com. IN SVCB 1 agent-v3.example.com. (
  alpn=h2
  port=443
  ipv4hint=203.0.113.50
  ipv6hint=2001:db8::50
  key65480="v3"              ; Agent version
  key65481="a2a,anp"         ; Supported agent protocols
)

# v2 version (lower priority)
_agent.translator.example.com. IN SVCB 2 agent-v2.example.com. (
  alpn=h2
  port=443
  ipv4hint=203.0.113.51
  key65480="v2"
  key65481="a2a"
)
]]></artwork>
        </section>
      </section>
      <section anchor="version-and-protocol-resolution">
        <name>Version and Protocol Resolution</name>
        <section anchor="svcb-private-parameters">
          <name>SVCB Private Parameters</name>
          <t>This specification introduces private SVCB parameters (SvcParam) as defined in <xref target="RFC9460"/>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Parameter</th>
                <th align="left">Semantics</th>
                <th align="left">Example</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">key65480</td>
                <td align="left">Agent version</td>
                <td align="left">"v3", "v2.1.0"</td>
              </tr>
              <tr>
                <td align="left">key65481</td>
                <td align="left">Agent protocols</td>
                <td align="left">"a2a", "a2a,anp"</td>
              </tr>
            </tbody>
          </table>
          <section anchor="version-selection-behavior">
            <name>Version Selection Behavior</name>
            <t>Clients can:</t>
            <ul spacing="normal">
              <li>
                <t><strong>Default selection</strong>: When version is not specified, the highest priority version based on SVCB priority is used</t>
              </li>
              <li>
                <t><strong>Specific selection</strong>: Specify key65480 value to select a particular version</t>
              </li>
              <li>
                <t><strong>Protocol filtering</strong>: Select only versions supporting specific protocols (key65481)</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="alpn-usage">
          <name>ALPN Usage</name>
          <t>ALPN is used for TLS-layer protocol negotiation (e.g., h2, h3). Agent interaction protocols (<xref target="A2A"/>, <xref target="ANP"/>) are declared via SVCB private parameters (key65481), not ALPN values. This ensures compatibility with existing TLS ecosystems and reserves space for future IANA registration.</t>
        </section>
        <section anchor="relationship-between-version-and-protocol">
          <name>Relationship Between Version and Protocol</name>
          <t>This specification clearly distinguishes two layers:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Layer</th>
                <th align="left">Declaration Location</th>
                <th align="left">Example</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Agent Version</td>
                <td align="left">key65480</td>
                <td align="left">v3, v2.1.0</td>
              </tr>
              <tr>
                <td align="left">Agent Protocol</td>
                <td align="left">key65481</td>
                <td align="left">a2a, anp</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="external-descriptor-locator-and-digest-in-txt-optional">
          <name>External Descriptor Locator and Digest in TXT (Optional)</name>
          <t>DN-ANR supports optional linkage to heavy external metadata while keeping DNS payloads minimal:</t>
          <ul spacing="normal">
            <li>
              <t><tt>agent-desc</tt> in TXT contains an absolute URI that identifies a descriptor resource.</t>
            </li>
            <li>
              <t><tt>agent-desc-sha256</tt> in TXT contains the SHA-256 digest of the descriptor in Base64 encoding.</t>
            </li>
          </ul>
          <t>DN-ANR standardizes only:</t>
          <ul spacing="normal">
            <li>
              <t>URI syntax and transport locator semantics.</t>
            </li>
            <li>
              <t>Digest algorithm (SHA-256) and digest encoding.</t>
            </li>
            <li>
              <t>Client verification flow (fetch descriptor -&gt; compute digest -&gt; compare -&gt; consume).</t>
            </li>
          </ul>
          <t>DN-ANR does not standardize descriptor content schema (capability model, OpenAPI, model card, I/O schema, etc.).</t>
          <t>Descriptor digest computation rules:</t>
          <ol spacing="normal" type="1"><li>
              <t>Fetch descriptor bytes from the URI in <tt>agent-desc</tt>.</t>
            </li>
            <li>
              <t>If the descriptor media type is JSON, canonicalize using JCS <xref target="RFC8785"/> before hashing.</t>
            </li>
            <li>
              <t>For non-JSON media types, hash the raw octet stream as retrieved.</t>
            </li>
            <li>
              <t>Compute SHA-256 and Base64-encode the result.</t>
            </li>
            <li>
              <t>Compare with <tt>agent-desc-sha256</tt>; mismatch <bcp14>MUST</bcp14> be treated as verification failure.</t>
            </li>
          </ol>
        </section>
        <section anchor="interoperability-gating-for-descriptor-dependent-clients">
          <name>Interoperability Gating for Descriptor-Dependent Clients</name>
          <ul spacing="normal">
            <li>
              <t>A client that depends on descriptor data <bcp14>MUST</bcp14> require <tt>agent-desc</tt>; otherwise it <bcp14>MUST</bcp14> treat descriptor-based logic as unavailable.</t>
            </li>
            <li>
              <t>A client that requires descriptor-integrity verification <bcp14>MUST</bcp14> require both <tt>agent-desc</tt> and <tt>agent-desc-sha256</tt>.</t>
            </li>
            <li>
              <t>A publisher that wants interoperable descriptor verification <bcp14>SHOULD</bcp14> publish both TXT fields together.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="performance-and-determinism">
      <name>Performance and Determinism</name>
      <section anchor="why-address-hints">
        <name>Why Address Hints</name>
        <t>SVCB <tt>ipv4hint</tt> and <tt>ipv6hint</tt> improve resolution behavior by:</t>
        <ul spacing="normal">
          <li>
            <t>reducing extra A/AAAA lookup round-trips;</t>
          </li>
          <li>
            <t>improving first-connection determinism;</t>
          </li>
          <li>
            <t>reducing resolver-path jitter under recursive caching variance.</t>
          </li>
        </ul>
      </section>
      <section anchor="recommended-svcb-publication-strategy">
        <name>Recommended SVCB Publication Strategy</name>
        <ul spacing="normal">
          <li>
            <t>Publishers <bcp14>SHOULD</bcp14> keep each SVCB RRSet compact and avoid excessive per-version record expansion.</t>
          </li>
          <li>
            <t>When many versions exist, publishers <bcp14>SHOULD</bcp14> keep only stable externally supported versions in DNS and move detailed capability/version matrices to external descriptors (<tt>agent-desc</tt> + <tt>agent-desc-sha256</tt> in TXT).</t>
          </li>
          <li>
            <t>Publishers <bcp14>SHOULD</bcp14> keep endpoint migration agility by using shorter TTLs for SVCB than TXT.</t>
          </li>
        </ul>
      </section>
      <section anchor="ttl-guidance">
        <name>TTL Guidance</name>
        <ul spacing="normal">
          <li>
            <t>Identity anchors (TXT) <bcp14>SHOULD</bcp14> use relatively longer TTL values.</t>
          </li>
          <li>
            <t>Endpoint/control-plane records (SVCB) <bcp14>SHOULD</bcp14> use relatively shorter TTL values to support endpoint migration and rapid rollback.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="https-fallback-mechanism">
      <name>HTTPS Fallback Mechanism</name>
      <t>To ensure "works by default" behavior, this specification introduces an optional but strongly recommended fallback mechanism.</t>
      <section anchor="agent-dnsjson">
        <name>agent-dns.json</name>
        <t>For clients that do not support SVCB queries, agents can publish a JSON mirror of DNS records at an HTTPS endpoint:</t>
        <artwork><![CDATA[
https://{agent-id}/.well-known/agent-dns.json
]]></artwork>
        <section anchor="media-type">
          <name>Media Type</name>
          <t>The agent-dns.json file <bcp14>MUST</bcp14> be served with the following HTTP headers:</t>
          <artwork><![CDATA[
Content-Type: application/json; charset=utf-8
Cache-Control: max-age=300
]]></artwork>
          <t>Servers <bcp14>SHOULD</bcp14> set an appropriate Cache-Control header. A value between 300 seconds (5 minutes) and 3600 seconds (1 hour) is <bcp14>RECOMMENDED</bcp14>.</t>
        </section>
        <section anchor="json-signature">
          <name>JSON Signature</name>
          <t>The JSON file <bcp14>MUST</bcp14> include a signature for integrity protection. Unlike the TXT record signature which covers only TXT fields, the JSON signature covers the complete service binding information.</t>
          <t>The signature is computed over the canonical JSON representation of the document (excluding the sig field) as defined in <xref target="RFC8785"/> (JSON Canonicalization Scheme).</t>
        </section>
        <section anchor="json-schema-definition">
          <name>JSON Schema Definition</name>
          <t>The agent-dns.json file <bcp14>MUST</bcp14> conform to the following JSON Schema:</t>
          <sourcecode type="json"><![CDATA[
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://example.com/agent-dns.schema.json",
  "title": "Agent DNS JSON",
  "description": "Mirror of DNS records for agent resolution",
  "type": "object",
  "required": ["agentId", "txt", "sig"],
  "properties": {
    "agentId": {
      "type": "string",
      "description": "The FQDN identifying the agent",
      "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?
                  (\\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*$"
    },
    "txt": {
      "type": "object",
      "description": "Core identity fields from DNS TXT record",
      "required": ["v", "kid"],
      "properties": {
        "v": {
          "type": "string",
          "const": "1"
        },
        "kid": {
          "type": "string",
          "description": "Key identifier"
        },
        "alg": {
          "type": "string",
          "enum": ["ES256", "Ed25519"],
          "description": "Signature algorithm"
        },
        "pk": {
          "type": "string",
          "description": "Base64-encoded TLS certificate public key"
        }
      }
    },
    "svcb": {
      "type": "array",
      "description": "Mirror of DNS SVCB records",
      "items": {
        "type": "object",
        "required": ["priority", "target", "port"],
        "properties": {
          "priority": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535
          },
          "target": {
            "type": "string",
            "description": "Target hostname"
          },
          "port": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535
          },
          "alpn": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "agentVersion": {
            "type": "string",
            "description": "Agent version (mirrors key65480)"
          },
          "agentProtocols": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Supported protocols (mirrors key65481)"
          }
        }
      }
    },
    "sig": {
      "type": "string",
      "description": "Base64-encoded signature over canonical JSON
                                           (excluding sig field)"
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="file-structure-example">
          <name>File Structure Example</name>
          <sourcecode type="json"><![CDATA[
{
  "agentId": "translator.example.com",
  "txt": {
    "v": "1",
    "kid": "key-2025-01",
    "alg": "ES256",
    "pk": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE..."
  },
  "svcb": [
    {
      "priority": 1,
      "target": "agent-v3.example.com",
      "port": 443,
      "alpn": ["h2"],
      "agentVersion": "v3",
      "agentProtocols": ["a2a", "anp"]
    },
    {
      "priority": 2,
      "target": "agent-v2.example.com",
      "port": 443,
      "alpn": ["h2"],
      "agentVersion": "v2",
      "agentProtocols": ["a2a"]
    }
  ],
  "sig": "MEUCIQC7..."
}
]]></sourcecode>
        </section>
        <section anchor="json-sig">
          <name>JSON Signature Computation</name>
          <t>The signature over the JSON file is computed as follows:</t>
          <ol spacing="normal" type="1"><li>
              <t>Construct the JSON object without the sig field.</t>
            </li>
            <li>
              <t>Serialize using JSON Canonicalization Scheme (JCS) as defined in <xref target="RFC8785"/>.</t>
            </li>
            <li>
              <t>Compute the signature using the TLS private key.</t>
            </li>
            <li>
              <t>Encode the signature using Base64.</t>
            </li>
          </ol>
          <artwork><![CDATA[
json_without_sig = { agentId, txt, svcb }
canonical_json = JCS(json_without_sig)
signature = Sign(TLS_private_key, UTF-8(canonical_json))
sig = Base64Encode(signature)
]]></artwork>
        </section>
        <section anchor="json-signature-verification">
          <name>JSON Signature Verification</name>
          <t>Clients <bcp14>MUST</bcp14> verify the JSON signature:</t>
          <ol spacing="normal" type="1"><li>
              <t>Fetch the JSON file over HTTPS.</t>
            </li>
            <li>
              <t>Extract the sig field and remove it from the object.</t>
            </li>
            <li>
              <t>Serialize the remaining object using JCS.</t>
            </li>
            <li>
              <t>Obtain the public key from the txt.pk field in the JSON.</t>
            </li>
            <li>
              <t>Verify the signature.</t>
            </li>
            <li>
              <t>(<bcp14>RECOMMENDED</bcp14> for TLS-based signing) Verify that txt.pk matches the TLS certificate's public key.</t>
            </li>
          </ol>
          <t>If verification fails, the client <bcp14>MUST</bcp14> reject the JSON file.</t>
          <t>Note: When agent providers use separate key pairs (not TLS-based), the verification in step 6 is not applicable. In such cases, the integrity of the JSON file depends on the authenticity of the public key in txt.pk, which has the same trust anchor limitations as described in the Security Model Overview.</t>
        </section>
      </section>
      <section anchor="design-principles-1">
        <name>Design Principles</name>
        <ul spacing="normal">
          <li>
            <t><strong>Mirror, not addition</strong>: JSON only mirrors information already in DNS; it does not introduce content absent from DNS</t>
          </li>
          <li>
            <t><strong>DNS remains authoritative</strong>: HTTPS JSON is only a "readable mirror", not a new authoritative source</t>
          </li>
          <li>
            <t><strong>Signature required</strong>: JSON files <bcp14>MUST</bcp14> be signed for integrity protection</t>
          </li>
          <li>
            <t><strong>Schema validated</strong>: Clients <bcp14>SHOULD</bcp14> validate JSON against the defined schema</t>
          </li>
        </ul>
      </section>
      <section anchor="applicable-scenarios">
        <name>Applicable Scenarios</name>
        <ul spacing="normal">
          <li>
            <t>Clients that do not support SVCB queries</t>
          </li>
          <li>
            <t>Browsers / debugging tools</t>
          </li>
          <li>
            <t>Early ecosystem transition period</t>
          </li>
          <li>
            <t>Environments where DNS resolution is limited</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security">
      <name>Security</name>
      <t>This section defines the security mechanisms for ensuring the integrity and authenticity of agent resolution data.</t>
      <section anchor="security-model">
        <name>Security Model Overview</name>
        <t>This specification provides two complementary mechanisms for ensuring integrity and authenticity of agent resolution data:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>DNSSEC (<bcp14>RECOMMENDED</bcp14> for Internet-facing deployments)</strong>: Protocol-level cryptographic authentication of DNS data</t>
          </li>
          <li>
            <t><strong>Signature-based Security (<bcp14>OPTIONAL</bcp14>)</strong>: TXT key/signature validation (<tt>pk</tt>, <tt>sig</tt>) with optional digest cross-checks (<tt>svcb-digest</tt>); if HTTPS fallback JSON is used, fallback signature validation is <bcp14>REQUIRED</bcp14></t>
          </li>
        </ol>
        <table>
          <thead>
            <tr>
              <th align="left">Mechanism</th>
              <th align="left">Protection Scope</th>
              <th align="left">Trust Anchor</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">DNSSEC</td>
              <td align="left">All DNS records (TXT, SVCB, A/AAAA)</td>
              <td align="left">DNS root zone</td>
            </tr>
            <tr>
              <td align="left">Signature-based Security</td>
              <td align="left">TXT signed fields, optional SVCB digest consistency, JSON fallback signature (when fallback is used)</td>
              <td align="left">Web PKI (when using TLS keys) or self-declared (when using separate keys)</td>
            </tr>
          </tbody>
        </table>
        <section anchor="dnssec-based-security-recommended">
          <name>DNSSEC-based Security (RECOMMENDED)</name>
          <t>DNSSEC <xref target="RFC4033"/> provides cryptographic authentication of DNS data at the protocol level.</t>
        </section>
        <section anchor="dnssec-deployment-recommendations">
          <name>DNSSEC Deployment Recommendations</name>
          <ul spacing="normal">
            <li>
              <t>For publicly reachable agents, the authoritative zone <bcp14>SHOULD</bcp14> deploy DNSSEC.</t>
            </li>
            <li>
              <t>When DNSSEC validation is available and the SVCB RRSet (or TXT RRSet, when used) validates as <strong>bogus</strong>, clients <bcp14>MUST</bcp14> treat resolution as failure (fail-closed) and <bcp14>MUST NOT</bcp14> use that endpoint.</t>
            </li>
            <li>
              <t>Clients <bcp14>SHOULD</bcp14> apply stricter fail-closed behavior at least to SVCB and TXT (when TXT is part of the selected trust path).</t>
            </li>
            <li>
              <t>In enterprise/private networks where DNSSEC is not deployed, operators <bcp14>MAY</bcp14> rely on TXT signatures and TLS certificate binding as a minimum trust baseline.</t>
            </li>
          </ul>
          <t>When DNSSEC is enabled:</t>
          <ul spacing="normal">
            <li>
              <t>All DNS records are signed by the zone's DNSSEC keys.</t>
            </li>
            <li>
              <t>Clients with DNSSEC validation can verify record authenticity.</t>
            </li>
            <li>
              <t>Application-layer signatures remain useful for defense in depth and for JSON fallback integrity.</t>
            </li>
          </ul>
        </section>
        <section anchor="signature-based-security-optional-but-recommended">
          <name>Signature-based Security (OPTIONAL but RECOMMENDED)</name>
          <t>This specification defines an optional but recommended signing mechanism for integrity protection. Agent providers have two options for key management:</t>
          <section anchor="option-1-tls-certificate-keys-recommended">
            <name>Option 1: TLS Certificate Keys (RECOMMENDED)</name>
            <t>Using the domain's TLS certificate keys provides a complete trust chain:</t>
            <ul spacing="normal">
              <li>
                <t>Uses the domain's TLS certificate private key for signing</t>
              </li>
              <li>
                <t>Public key is published in the TXT record (pk field)</t>
              </li>
              <li>
                <t>Enables verification through the established Web PKI trust chain</t>
              </li>
              <li>
                <t>Clients can verify that pk matches the TLS certificate presented during HTTPS connection</t>
              </li>
            </ul>
            <t>When TLS-based signing is used:</t>
            <ol spacing="normal" type="1"><li>
                <t>The TXT record contains the TLS certificate's public key</t>
              </li>
              <li>
                <t>A signature covers the selected TXT fields</t>
              </li>
              <li>
                <t><tt>svcb-digest</tt> <bcp14>MAY</bcp14> be included as optional integrity cross-check material (especially for HTTPS fallback consistency checks)</t>
              </li>
              <li>
                <t>Clients can verify the signature using the public key from the TLS certificate chain</t>
              </li>
            </ol>
          </section>
          <section anchor="option-2-separate-key-pair">
            <name>Option 2: Separate Key Pair</name>
            <t>Agent providers <bcp14>MAY</bcp14> use a separate key pair (not derived from TLS certificates) for signing:</t>
            <ul spacing="normal">
              <li>
                <t>Agent provider generates and manages their own key pair</t>
              </li>
              <li>
                <t>Public key is published in the TXT record (pk field)</t>
              </li>
              <li>
                <t>Signature is computed using the corresponding private key</t>
              </li>
            </ul>
            <t><strong>Trust Anchor Limitation</strong>: When using separate keys, the trust anchor is limited to the TXT record itself. If the TXT record is tampered with (e.g., via DNS spoofing or cache poisoning), an attacker could replace both the public key and signature, rendering the integrity protection ineffective. This is because:</t>
            <ul spacing="normal">
              <li>
                <t>The public key in the TXT record is self-declared without external verification</t>
              </li>
              <li>
                <t>Clients have no independent trust anchor to verify the authenticity of the public key</t>
              </li>
              <li>
                <t>SVCB records and agent-dns.json cannot be reliably verified if the TXT record is compromised</t>
              </li>
            </ul>
            <t>For this reason, when using separate keys:</t>
            <ul spacing="normal">
              <li>
                <t>DNSSEC deployment becomes more important to protect the TXT record itself</t>
              </li>
              <li>
                <t>Clients <bcp14>SHOULD</bcp14> treat records from non-DNSSEC zones with appropriate caution</t>
              </li>
              <li>
                <t>Out-of-band key distribution mechanisms <bcp14>MAY</bcp14> be used to establish trust</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="choosing-a-security-mechanism">
          <name>Choosing a Security Mechanism</name>
          <table>
            <thead>
              <tr>
                <th align="left">Scenario</th>
                <th align="left">Recommended Approach</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">DNSSEC fully deployed</td>
                <td align="left">DNSSEC alone is sufficient</td>
              </tr>
              <tr>
                <td align="left">DNSSEC not available</td>
                <td align="left">Use TLS-based signing (Option 1)</td>
              </tr>
              <tr>
                <td align="left">High security requirements</td>
                <td align="left">Use both DNSSEC and signing (defense-in-depth)</td>
              </tr>
              <tr>
                <td align="left">HTTPS fallback required</td>
                <td align="left">JSON signing and/or <tt>svcb-digest</tt> consistency checks are recommended</td>
              </tr>
              <tr>
                <td align="left">Separate keys without DNSSEC</td>
                <td align="left">Limited trust; consider additional verification mechanisms</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="svcb-integrity">
        <name>SVCB Integrity Digest (Optional)</name>
        <t>When <tt>svcb-digest</tt> is present in TXT, SVCB records can be cross-checked for integrity (for example, during HTTPS fallback reconciliation). This section defines the canonicalization and digest computation procedures.</t>
        <section anchor="svcb-canonicalization">
          <name>SVCB Canonicalization</name>
          <t>To compute the svcb-digest, SVCB records <bcp14>MUST</bcp14> be canonicalized as follows:</t>
          <section anchor="step-1-collect-and-sort">
            <name>Step 1: Collect and Sort</name>
            <ol spacing="normal" type="1"><li>
                <t>Collect all SVCB records for the agent's _agent prefix.</t>
              </li>
              <li>
                <t>Exclude AliasMode records (priority = 0).</t>
              </li>
              <li>
                <t>Sort records by priority in ascending order (lowest first).</t>
              </li>
              <li>
                <t>If priorities are equal, sort by TargetName lexicographically.</t>
              </li>
            </ol>
          </section>
          <section anchor="step-2-normalize-each-record">
            <name>Step 2: Normalize Each Record</name>
            <t>For each SVCB record, construct a canonical string in the following format:</t>
            <artwork><![CDATA[
<priority> <target> <params>
]]></artwork>
            <t>Where:
- priority: Decimal integer with no leading zeros
- target: Fully qualified domain name in lowercase, with trailing dot removed
- params: SvcParams in sorted order by key number, formatted as key=value</t>
          </section>
          <section anchor="step-3-svcparam-normalization">
            <name>Step 3: SvcParam Normalization</name>
            <t>SvcParams <bcp14>MUST</bcp14> be normalized as follows:</t>
            <ol spacing="normal" type="1"><li>
                <t>Sort by SvcParamKey number (ascending).</t>
              </li>
              <li>
                <t>Format each parameter as: <tt>key&lt;number&gt;=&lt;value&gt;</tt></t>
              </li>
              <li>
                <t>String values are enclosed in double quotes.</t>
              </li>
              <li>
                <t>List values (e.g., alpn) use comma separation with no spaces.</t>
              </li>
              <li>
                <t>Separate parameters with a single space.</t>
              </li>
            </ol>
          </section>
          <section anchor="canonical-format-example">
            <name>Canonical Format Example</name>
            <artwork><![CDATA[
# Original SVCB records:
_agent.translator.example.com. IN SVCB 2 agent-v2.example.com. (
  alpn=h2 port=443 key65480="v2" key65481="a2a"
)
_agent.translator.example.com. IN SVCB 1 agent-v3.example.com. (
  alpn=h2 port=443 key65480="v3" key65481="a2a,anp"
)

# Canonical representation (sorted by priority):
1 agent-v3.example.com key1=h2 key3=443 key65480="v3" key65481="a2a,anp"
2 agent-v2.example.com key1=h2 key3=443 key65480="v2" key65481="a2a"
]]></artwork>
            <t>Note: alpn is SvcParamKey 1, port is SvcParamKey 3 as defined in <xref target="RFC9460"/>.</t>
          </section>
        </section>
        <section anchor="digest-computation">
          <name>Digest Computation</name>
          <artwork><![CDATA[
canonical_svcb = <line1> + "\n" + <line2> + "\n" + ...
digest_bytes = SHA-256(UTF-8(canonical_svcb))
svcb-digest = Base64Encode(digest_bytes)
]]></artwork>
          <t>The resulting svcb-digest is approximately 44 characters (32 bytes encoded in Base64).</t>
        </section>
      </section>
      <section anchor="signing-spec">
        <name>Signature Specification</name>
        <t>This section defines the signature mechanism when signature-based security is used.</t>
        <section anchor="public-key-requirements">
          <name>Public Key Requirements</name>
          <t>The pk field contains the public key used for signature verification. There are two options:</t>
          <section anchor="when-using-tls-certificate-keys-recommended">
            <name>When Using TLS Certificate Keys (RECOMMENDED)</name>
            <t>The pk field <bcp14>MUST</bcp14> contain the public key from the domain's TLS certificate:</t>
            <ol spacing="normal" type="1"><li>
                <t>Extract the SubjectPublicKeyInfo from the TLS certificate.</t>
              </li>
              <li>
                <t>Encode using Base64 <xref target="RFC4648"/>.</t>
              </li>
              <li>
                <t>The certificate <bcp14>MUST</bcp14> be valid for the agent's domain name.</t>
              </li>
            </ol>
          </section>
          <section anchor="when-using-separate-key-pair">
            <name>When Using Separate Key Pair</name>
            <t>The pk field contains the agent provider's self-managed public key:</t>
            <ol spacing="normal" type="1"><li>
                <t>Generate a key pair using a supported algorithm.</t>
              </li>
              <li>
                <t>Extract the public key in SubjectPublicKeyInfo format.</t>
              </li>
              <li>
                <t>Encode using Base64 <xref target="RFC4648"/>.</t>
              </li>
            </ol>
            <t>Note: When using separate keys, the public key is self-declared and lacks an independent trust anchor. See Security Model Overview for implications.</t>
          </section>
          <section anchor="supported-key-types">
            <name>Supported Key Types</name>
            <ul spacing="normal">
              <li>
                <t>EC P-256 (for ES256 algorithm) - <bcp14>RECOMMENDED</bcp14></t>
              </li>
              <li>
                <t>Ed25519 (for Ed25519 algorithm)</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="signature-input-construction">
          <name>Signature Input Construction</name>
          <t>When signature-based TXT validation is used, the signature input <bcp14>MUST</bcp14> be constructed from TXT fields as follows:</t>
          <ol spacing="normal" type="1"><li>
              <t>Include required fields in this exact order: <tt>v</tt>, <tt>kid</tt>, <tt>alg</tt>, <tt>pk</tt>.</t>
            </li>
            <li>
              <t>If present, append optional fields in this exact order: <tt>svcb-digest</tt>, <tt>agent-desc</tt>, <tt>agent-desc-sha256</tt>.</t>
            </li>
            <li>
              <t>Use <tt>key=value</tt> pairs separated by semicolons, with no trailing semicolon.</t>
            </li>
          </ol>
          <artwork><![CDATA[
signing_input = "v=" + v + ";kid=" + kid + ";alg=" + alg + ";pk=" + pk
if svcb-digest present: signing_input += ";svcb-digest=" + svcb-digest
if agent-desc present: signing_input += ";agent-desc=" + agent-desc
if agent-desc-sha256 present: signing_input += ";agent-desc-sha256=" 
                            + agent-desc-sha256
]]></artwork>
          <t>Example:
~~~
v=1;kid=key-2025-01;alg=ES256;pk=MFkwEwYHKoZI...;agent-desc=https://translator.example.com/.well-known/agent-descriptor.json
~~~</t>
        </section>
        <section anchor="signature-generation">
          <name>Signature Generation</name>
          <artwork><![CDATA[
signature_bytes = Sign(private_key, UTF-8(signing_input))
sig = Base64Encode(signature_bytes)
]]></artwork>
          <t>Where private_key is either:
- The TLS certificate's private key (Option 1, <bcp14>RECOMMENDED</bcp14>), or
- The agent provider's separately managed private key (Option 2)</t>
          <t>For ES256: signature is 64 bytes (r || s format), resulting in 88 Base64 characters.
For Ed25519: signature is 64 bytes, resulting in 88 Base64 characters.</t>
        </section>
        <section anchor="signature-verification-procedure">
          <name>Signature Verification Procedure</name>
          <t>Clients <bcp14>MUST</bcp14> perform the following steps:</t>
          <ol spacing="normal" type="1"><li>
              <t>Parse TXT record and extract <tt>v</tt>, <tt>kid</tt>, <tt>alg</tt>, <tt>pk</tt>, <tt>sig</tt>, and any optional signed fields present.</t>
            </li>
            <li>
              <t>Reconstruct <tt>signing_input</tt> using the required/optional field ordering defined above.</t>
            </li>
            <li>
              <t>Decode pk from Base64 to obtain the public key.</t>
            </li>
            <li>
              <t>Decode sig from Base64 to obtain the signature bytes.</t>
            </li>
            <li>
              <t>Verify the signature using the specified algorithm.</t>
            </li>
            <li>
              <t>(<bcp14>RECOMMENDED</bcp14> for Option 1) Verify that pk matches the TLS certificate presented during connection.</t>
            </li>
          </ol>
          <t>If verification fails, the client <bcp14>MUST</bcp14> reject the TXT record.</t>
          <t>When using Option 2 (separate key pair), clients should be aware that the signature only proves consistency between the TXT record content and the private key holder. Without DNSSEC or TLS binding, there is no external trust anchor to verify the key's authenticity.</t>
        </section>
        <section anchor="tls-certificate-binding-verification-option-1-only">
          <name>TLS Certificate Binding Verification (Option 1 Only)</name>
          <t>When TLS certificate keys are used (Option 1), clients <bcp14>SHOULD</bcp14> verify that the pk in the TXT record matches the server's TLS certificate:</t>
          <ol spacing="normal" type="1"><li>
              <t>Establish TLS connection to the agent's domain.</t>
            </li>
            <li>
              <t>Extract the public key from the server's certificate.</t>
            </li>
            <li>
              <t>Compare with the pk field in the TXT record.</t>
            </li>
            <li>
              <t>If mismatch, treat as verification failure.</t>
            </li>
          </ol>
          <t>This binding ensures that the entity controlling the TLS private key is the same entity that published the DNS records.</t>
          <t>Note: This verification is not applicable when separate key pairs are used (Option 2), as the pk in the TXT record will not match the TLS certificate.</t>
        </section>
      </section>
    </section>
    <section anchor="implementation-checklist">
      <name>Implementation Checklist</name>
      <section anchor="for-agent-publishers">
        <name>For Agent Publishers</name>
        <ol spacing="normal" type="1"><li>
            <t>Prepare domain name, configure HTTPS and TLS certificate</t>
          </li>
          <li>
            <t>Configure DNS A/AAAA records (basic connectivity)</t>
          </li>
          <li>
            <t>(<bcp14>OPTIONAL</bcp14>) Configure DNS TXT record (_agent.xxx) for signature metadata (<tt>alg</tt>/<tt>pk</tt>/<tt>sig</tt>), <tt>svcb-digest</tt>, and/or descriptor pointer fields</t>
          </li>
          <li>
            <t>Configure DNS SVCB records with endpoint, protocol/version, and (<bcp14>SHOULD</bcp14>) address hints</t>
          </li>
          <li>
            <t>(<bcp14>OPTIONAL</bcp14>) Publish descriptor URI + digest in TXT (<tt>agent-desc</tt>, <tt>agent-desc-sha256</tt>) for heavy metadata externalization</t>
          </li>
          <li>
            <t>(<bcp14>RECOMMENDED</bcp14>) Publish /.well-known/agent-dns.json fallback file</t>
          </li>
          <li>
            <t>(<bcp14>RECOMMENDED</bcp14> for public deployments) Enable DNSSEC</t>
          </li>
        </ol>
      </section>
      <section anchor="for-client-developers">
        <name>For Client Developers</name>
        <ol spacing="normal" type="1"><li>
            <t>Query SVCB records, parse version and endpoint information</t>
          </li>
          <li>
            <t>If SVCB is unavailable, use A/AAAA of the Agent Identifier as the default endpoint</t>
          </li>
          <li>
            <t>Query TXT records (if present), parse optional fields (<tt>pk</tt>, <tt>sig</tt>, <tt>svcb-digest</tt>, <tt>agent-desc</tt>, <tt>agent-desc-sha256</tt>)</t>
          </li>
          <li>
            <t>If descriptor fields are present and required by local policy, fetch descriptor and verify digest before use</t>
          </li>
          <li>
            <t>(Fallback) If SVCB unavailable, fetch agent-dns.json when needed</t>
          </li>
          <li>
            <t>Connect to endpoint per agent protocol (key65481) specification</t>
          </li>
          <li>
            <t>Validate DNSSEC when present, and fail closed for bogus SVCB/TXT results that are part of the selected trust path</t>
          </li>
        </ol>
      </section>
      <section anchor="dns-record-configuration-example">
        <name>DNS Record Configuration Example</name>
        <artwork><![CDATA[
; Basic connectivity
translator.example.com.    IN A     203.0.113.50
translator.example.com.    IN AAAA  2001:db8::50

; Optional TXT identity/security/descriptor metadata
_agent.translator.example.com. IN TXT "v=1;kid=key-2025-01;
                    alg=Ed25519;pk=...;sig=...;
                    svcb-digest=...;
                    agent-desc=https://translator.example.com/
                            .well-known/agent-descriptor.json;
                    agent-desc-sha256=x48E9qOokqqr7kbu9DBPE="

; Version resolution (SVCB)
_agent.translator.example.com. IN SVCB 1 agent-v3.example.com. (
  alpn=h2 port=443
  ipv4hint=203.0.113.50 ipv6hint=2001:db8::50
  key65480="v3" key65481="a2a,anp"
)
_agent.translator.example.com. IN SVCB 2 agent-v2.example.com. (
  alpn=h2 port=443 ipv4hint=203.0.113.51 key65480="v2" key65481="a2a"
)
]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This specification uses DNS as the authoritative source for agent resolution and identity information. Its security objectives are to ensure the authenticity, integrity, and verifiability of resolution results, rather than evaluating agent service quality or behavioral trustworthiness.</t>
      <section anchor="threat-model">
        <name>Threat Model</name>
        <t>This specification primarily considers the following threats:</t>
        <ul spacing="normal">
          <li>
            <t>DNS poisoning or cache pollution leading to incorrect endpoint resolution</t>
          </li>
          <li>
            <t>Tampering with resolution results to redirect clients to unintended endpoints</t>
          </li>
          <li>
            <t>Downgrade attacks inducing clients to use older versions or weaker protocols</t>
          </li>
          <li>
            <t>Trust violations caused by expired or replaced identity declarations</t>
          </li>
        </ul>
      </section>
      <section anchor="mandatory-security-requirements">
        <name>Mandatory Security Requirements</name>
        <t>To address the above threats, this specification mandates:</t>
        <ul spacing="normal">
          <li>
            <t>Clients <bcp14>MUST</bcp14> establish at least one validated integrity path before endpoint use: DNSSEC validation, or TXT signature verification when TXT signing fields are used</t>
          </li>
          <li>
            <t>Clients <bcp14>MUST</bcp14> perform TXT-SVCB consistency checks when <tt>svcb-digest</tt> is present and selected by local policy</t>
          </li>
          <li>
            <t>Clients <bcp14>MUST</bcp14> use TLS <xref target="RFC8446"/> and verify server certificates <xref target="RFC9525"/></t>
          </li>
          <li>
            <t>Clients <bcp14>MUST NOT</bcp14> use endpoints that fail verification</t>
          </li>
          <li>
            <t>Agents that publish <tt>svcb-digest</tt> or TXT signatures over endpoint-related metadata <bcp14>MUST</bcp14> synchronously update TXT and SVCB information when versions or endpoints change</t>
          </li>
        </ul>
      </section>
      <section anchor="deployment-recommendations">
        <name>Deployment Recommendations</name>
        <ul spacing="normal">
          <li>
            <t>For Internet-facing agent domains, authoritative operators <bcp14>SHOULD</bcp14> enable DNSSEC <xref target="RFC4033"/>.</t>
          </li>
          <li>
            <t>If DNSSEC data is present and validates as bogus for SVCB (or TXT, when TXT is part of the selected trust path), clients <bcp14>MUST</bcp14> fail closed for that endpoint.</t>
          </li>
          <li>
            <t>For private/enterprise deployments without DNSSEC, clients <bcp14>SHOULD</bcp14> require TXT signature verification and TLS certificate validation as minimum controls.</t>
          </li>
          <li>
            <t>This specification does not require DNSSEC as the only trust mechanism; deployments <bcp14>MAY</bcp14> combine DNSSEC and signature-based protections.</t>
          </li>
        </ul>
      </section>
      <section anchor="specification-scope">
        <name>Specification Scope</name>
        <t>This specification guarantees the following properties:</t>
        <ul spacing="normal">
          <li>
            <t>Verifiability of agent identity</t>
          </li>
          <li>
            <t>Integrity and consistency of resolution results</t>
          </li>
          <li>
            <t>Encryption and tamper-proofing of connections</t>
          </li>
        </ul>
        <t>This specification does NOT attempt to address:</t>
        <ul spacing="normal">
          <li>
            <t>Agent capability authenticity</t>
          </li>
          <li>
            <t>Service quality (SLA) or behavioral compliance</t>
          </li>
          <li>
            <t>Agent reputation or governance issues</t>
          </li>
        </ul>
        <t>These concerns should be handled by upper-layer protocols, operational frameworks, or governance mechanisms.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests IANA registration of the following SVCB SvcParamKeys:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Number</th>
            <th align="left">Name</th>
            <th align="left">Meaning</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">65480</td>
            <td align="left">agent-version</td>
            <td align="left">Agent version identifier</td>
            <td align="left">This document</td>
          </tr>
          <tr>
            <td align="left">65481</td>
            <td align="left">agent-protocols</td>
            <td align="left">Comma-separated list of supported agent protocols</td>
            <td align="left">This document</td>
          </tr>
        </tbody>
      </table>
      <t>Note: The values 65480-65481 are in the private use range (65280-65534) as defined in <xref target="RFC9460"/>. Upon publication, these should be replaced with IANA-assigned values from the Expert Review range.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC1035">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1035"/>
          <seriesInfo name="DOI" value="10.17487/RFC1035"/>
        </reference>
        <reference anchor="RFC9460">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="RFC9461">
          <front>
            <title>Service Binding Mapping for DNS Servers</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>The SVCB DNS resource record type expresses a bound collection of endpoint metadata, for use when establishing a connection to a named service. DNS itself can be such a service, when the server is identified by a domain name. This document provides the SVCB mapping for named DNS servers, allowing them to indicate support for encrypted transport protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9461"/>
          <seriesInfo name="DOI" value="10.17487/RFC9461"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC4033">
          <front>
            <title>DNS Security Introduction and Requirements</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4033"/>
          <seriesInfo name="DOI" value="10.17487/RFC4033"/>
        </reference>
        <reference anchor="RFC9525">
          <front>
            <title>Service Identity in TLS</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>Many application technologies enable secure communication between two entities by means of Transport Layer Security (TLS) with Internet Public Key Infrastructure using X.509 (PKIX) certificates. This document specifies procedures for representing and verifying the identity of application services in such interactions.</t>
              <t>This document obsoletes RFC 6125.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9525"/>
          <seriesInfo name="DOI" value="10.17487/RFC9525"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <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>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <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">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="A2A" target="https://google.github.io/A2A/">
          <front>
            <title>Agent2Agent Protocol (A2A)</title>
            <author>
              <organization>Google</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="ANP" target="https://agent-network-protocol.com/">
          <front>
            <title>Agent Network Protocol (ANP)</title>
            <author>
              <organization>ANP Community</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 931?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
    </section>
  </back>
  <!-- ##markdown-source:
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
AA==

-->

</rfc>
