<?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.29 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-meunier-web-bot-auth-glossary-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="Web bot auth Glossary">Web bot auth Glossary</title>
    <seriesInfo name="Internet-Draft" value="draft-meunier-web-bot-auth-glossary-00"/>
    <author fullname="Thibault Meunier">
      <organization>Cloudflare</organization>
      <address>
        <email>ot-ietf@thibault.uk</email>
      </address>
    </author>
    <date year="2025" month="April" day="28"/>
    <keyword>bot authentication</keyword>
    <keyword>web security</keyword>
    <keyword>glossary</keyword>
    <keyword>automated agents</keyword>
    <abstract>
      <?line 88?>

<t>Automated traffic authentication presents unique security challenges,
constraints, and opportunities that impact all Internet users. This document
seeks to collect terminology and examples within the space, with a specific
focus on AI related technologies.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://thibmeu.github.io/draft-meunier-glossary/draft-meunier-web-bot-auth-glossary.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-meunier-web-bot-auth-glossary/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/thibmeu/draft-meunier-glossary-somehow"/>.</t>
    </note>
  </front>
  <middle>
    <?line 96?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Agents are increasingly used in business and user workflows, including AI
assistants, search indexing, content aggregation, and automated testing. These
agents need to reliably identify themselves to origins for several reasons:</t>
      <ol spacing="normal" type="1"><li>
          <t>Regulatory compliance requiring transparency of automated systems</t>
        </li>
        <li>
          <t>Origin resource management and access control</t>
        </li>
        <li>
          <t>Protection against impersonation and reputation management</t>
        </li>
        <li>
          <t>Service level differentiation between human and automated traffic</t>
        </li>
      </ol>
      <t>Current identification methods such as IP allow-listing, User-Agent strings, or
shared API keys have significant limitations in security, scalability,
manageability, and fairness. This document presents these examples, as well as
possible paths to address them.</t>
    </section>
    <section anchor="motivation">
      <name>Motivation</name>
      <t>There is an increase in agent traffic on the Internet. Many agents
choose to identify their traffic today via lists of IP Addresses and/or unique
User-Agents. This is often done to demonstrate trust and safety claims, support
allow-listing/deny-listing the traffic in a granular manner, and enable sites to
monitor and rate limit per agent operator. However, these mechanisms have drawbacks:</t>
      <ol spacing="normal" type="1"><li>
          <t>User-Agent, when used alone, can be spoofed meaning anyone may attempt to
act as that agent. It is also overloaded - an agent may be using Chromium and
wish to present itself as such to ensure rendering works, yet it still wants to
differentiate its traffic to the site.</t>
        </li>
        <li>
          <t>IP blocks alone can present a confusing story. IPs on cloud plaforms have
layers of ownership - the platform owns the IP and registers it in their
published IP blocks, only to be re-published by the agent with little to bind
the publication to the actual service provider that may be renting infra. Purchasing
dedicated IP blocks is expensive, time consuming, and requires significant
specialist knowledge to set up. These IP blocks may have prior reputation
history that needs to be carefully inspected and managed before purchase and
use.</t>
        </li>
        <li>
          <t>An agent may go to every website on the Internet and share a secret with
them like a Bearer from <xref target="OAUTH-BEARER-RFC"/>. This is impractical to scale for any
agent beyond select partnerships, and insecure, as key rotation is challenging
and becomes less secure as the consumers scale.</t>
        </li>
      </ol>
      <t>Using well-established cryptography, we can instead define a simple and secure
mechanism that empowers small and large agents to share their identity.</t>
    </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?>

<dl>
        <dt><strong>Agent</strong></dt>
        <dd>
          <t>An autonomous entity that perceives the environment and can take actions on behalf of users.</t>
        </dd>
        <dt><strong>Bot</strong></dt>
        <dd>
          <t>A type of agent that operates automatically, often performing repetitive tasks. Bots may identify themselves or attempt to mimic human behavior.</t>
        </dd>
        <dt><strong>Origin (Server)</strong></dt>
        <dd>
          <t>The primary server hosting the web content or service that an agent intends to access.</t>
        </dd>
        <dt><strong>Application Firewall</strong></dt>
        <dd>
          <t>Controls incoming traffic to an origin based on a set of rules. This may include but is not limited to IP filtering, User-Agent matching, or cryptographic signature verification.</t>
        </dd>
        <dt><strong>Reverse proxy</strong></dt>
        <dd>
          <t>An intermediary server that forwards client requests to the origin server, often performing functions like load balancing, authentication, or caching.</t>
        </dd>
        <dt><strong>Browser</strong></dt>
        <dd>
          <t>A client application used to access web content. Browsers may also be orchestrated.</t>
        </dd>
        <dt><strong>Human</strong></dt>
        <dd>
          <t>A physical person, like you and me.</t>
        </dd>
        <dt><strong>Rate limit</strong></dt>
        <dd>
          <t>A control mechanism that restricts the access of an Agent to a resource provided
by an Origin Server. An Origin can decide to rate limit all connections from
an individual Client, from a specific Provider, or to a specific resource.
This may be a fixed number of requests, a budget, a time, a location, or legal requirements.</t>
        </dd>
        <dt><strong>Unlinkability</strong></dt>
        <dd>
          <t>A property ensuring that multiple interactions or credentials from the same
agent cannot be correlated by the verifier.</t>
        </dd>
        <dt><strong>Account</strong></dt>
        <dd>
          <t>Persistent identifier of an entity to an origin. This requires a registration.</t>
        </dd>
        <dt><strong>Registration</strong></dt>
        <dd>
          <t>The creation of an identity. It can involve one time payment, a subscription,
an account with user name/password, an age, a legal jurisdiction, others.</t>
        </dd>
      </dl>
      <!-- should we quote privacy pass arch here, or use VC model with a Holder? -->
<dl>
        <dt><strong>Issuer</strong></dt>
        <dd>
          <t>An entity that generates and provides credentials to agents after the Attester
has verified certain attributes.</t>
        </dd>
        <dt><strong>Attester</strong></dt>
        <dd>
          <t>An entity that evaluates an agent's characteristics or behavior and provides
evidence to an Issuer to support credential issuance.</t>
        </dd>
        <dt><strong>Verifier</strong></dt>
        <dd>
          <t>An entity that validates the authenticity and integrity of a credential
presented by an agent.</t>
        </dd>
      </dl>
    </section>
    <section anchor="web-bot-authentication-categories">
      <name>Web bot authentication categories</name>
      <t>We divide web bot authentication in three categories.</t>
      <section anchor="use-case-company">
        <name>Identifying providers</name>
        <t>Organizations operating bots may need to authenticate their agents to access
certain web resources. Authentication mechanisms can help distinguish legitimate
bots from malicious ones.</t>
        <t>Examples:</t>
        <ul spacing="normal">
          <li>
            <t>Web crawlers wanting to authenticate against origins such as search engines,</t>
          </li>
          <li>
            <t>Security companies that want to perform scans to identify malicious URLs,</t>
          </li>
          <li>
            <t>AI augmented queries that are looking to identify themselves to a set of newspapers.</t>
          </li>
        </ul>
      </section>
      <section anchor="use-case-known-account">
        <name>User Account Identification</name>
        <t>Bots acting on behalf of registered users may require authentication to access
user-specific data or services.</t>
        <t>Examples:</t>
        <ul spacing="normal">
          <li>
            <t>Authenticating and authorizing a known user against particular resources,
such as newspapers they have a subscription for,</t>
          </li>
          <li>
            <t>Most authorization use cases for <xref target="MCP-AUTH"/> and <xref target="A2A-AUTH"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="use-case-selective-disclosure">
        <name>Attribute-Based Access</name>
        <t>In scenarios where full identification is unnecessary or undesirable, agents may
present credentials that attest to specific attributes without revealing their
identity.</t>
        <t>Examples:</t>
        <ul spacing="normal">
          <li>
            <t>Add a signal to limit visual CAPTCHA challenge such as <xref target="PRIVATE-ACCESS-TOKEN"/>,</t>
          </li>
          <li>
            <t>Gating access to a resource for longstanding users such as <xref target="LOX"/>,</t>
          </li>
          <li>
            <t>Using a search engine with a fixed number of requests such as <xref target="PRIVACY-PASS-KAGI"/>,</t>
          </li>
          <li>
            <t>Selective disclosure of a credential attribute (location, age) such as
<xref target="PRIVATE-PROOF-API"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="ecosystem-overview">
      <name>Ecosystem overview</name>
      <artset>
        <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="456" viewBox="0 0 456 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
            <path d="M 8,96 L 8,128" fill="none" stroke="black"/>
            <path d="M 96,96 L 96,128" fill="none" stroke="black"/>
            <path d="M 168,32 L 168,64" fill="none" stroke="black"/>
            <path d="M 168,160 L 168,192" fill="none" stroke="black"/>
            <path d="M 256,160 L 256,192" fill="none" stroke="black"/>
            <path d="M 296,32 L 296,64" fill="none" stroke="black"/>
            <path d="M 360,32 L 360,64" fill="none" stroke="black"/>
            <path d="M 360,160 L 360,192" fill="none" stroke="black"/>
            <path d="M 410,72 L 410,96" fill="none" stroke="black"/>
            <path d="M 406,72 L 406,96" fill="none" stroke="black"/>
            <path d="M 410,128 L 410,152" fill="none" stroke="black"/>
            <path d="M 406,128 L 406,152" fill="none" stroke="black"/>
            <path d="M 448,32 L 448,64" fill="none" stroke="black"/>
            <path d="M 448,160 L 448,192" fill="none" stroke="black"/>
            <path d="M 168,32 L 296,32" fill="none" stroke="black"/>
            <path d="M 360,32 L 448,32" fill="none" stroke="black"/>
            <path d="M 128,48 L 160,48" fill="none" stroke="black"/>
            <path d="M 304,48 L 352,48" fill="none" stroke="black"/>
            <path d="M 168,64 L 296,64" fill="none" stroke="black"/>
            <path d="M 360,64 L 448,64" fill="none" stroke="black"/>
            <path d="M 8,96 L 96,96" fill="none" stroke="black"/>
            <path d="M 8,128 L 96,128" fill="none" stroke="black"/>
            <path d="M 168,160 L 256,160" fill="none" stroke="black"/>
            <path d="M 360,160 L 448,160" fill="none" stroke="black"/>
            <path d="M 128,176 L 160,176" fill="none" stroke="black"/>
            <path d="M 264,176 L 352,176" fill="none" stroke="black"/>
            <path d="M 168,192 L 256,192" fill="none" stroke="black"/>
            <path d="M 360,192 L 448,192" fill="none" stroke="black"/>
            <path d="M 96,112 L 128,176" fill="none" stroke="black"/>
            <path d="M 96,112 L 128,48" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="416,152 404,146.4 404,157.6" fill="black" transform="rotate(90,408,152)"/>
            <polygon class="arrowhead" points="416,72 404,66.4 404,77.6" fill="black" transform="rotate(270,408,72)"/>
            <polygon class="arrowhead" points="360,176 348,170.4 348,181.6" fill="black" transform="rotate(0,352,176)"/>
            <polygon class="arrowhead" points="360,48 348,42.4 348,53.6" fill="black" transform="rotate(0,352,48)"/>
            <polygon class="arrowhead" points="168,176 156,170.4 156,181.6" fill="black" transform="rotate(0,160,176)"/>
            <polygon class="arrowhead" points="168,48 156,42.4 156,53.6" fill="black" transform="rotate(0,160,48)"/>
            <g class="text">
              <text x="208" y="52">Reverse</text>
              <text x="264" y="52">Proxy</text>
              <text x="404" y="52">Origin</text>
              <text x="52" y="116">Client</text>
              <text x="408" y="116">Trust</text>
              <text x="212" y="180">Attester</text>
              <text x="404" y="180">Issuer</text>
            </g>
          </svg>
        </artwork>
        <artwork type="ascii-art"><![CDATA[
                    +---------------+       +----------+
               .--->| Reverse Proxy |------>|  Origin  |
              /     +---------------+       +-----+----+
             /                                    ^
+----------+/                                     ║
|  Client  +                                    Trust
+----------+\                                     ║
             \                                    v
              \     +----------+            +-----+----+
               '--->| Attester |----------->|  Issuer  |
                    +----------+            +----------+
]]></artwork>
      </artset>
      <t>The ecosystem involves multiple actors: a credential issuer that requires an
certain criteria to be passed via an attester, the client which can be a bot or
human-mediated agent whose IP is unknown, and the web origin placed behind a
reverse proxy that may be fronting its infrastructure. The issuer provides
cryptographic credentials to the client, which are then linked to requests and
optionally verified by proxies before reaching the origin. This chain allows for
authentication without necessarily revealing identifying details to each
intermediate.</t>
      <section anchor="ai-agent-use-example">
        <name>AI agent use example</name>
        <t>Humans and bots often interact with origins indirectly via clients such as
browsers, agents, or CLI tools. These clients handle requests, potentially
traversing reverse proxies that manage TLS termination, DDoS protection, and
caching.</t>
        <t>The rise of advanced browser orchestration blurs the line between human-driven and
automated requests, making identifying traffic as automated or not increasingly
ambiguous.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="336" width="704" viewBox="0 0 704 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,160 L 8,192" fill="none" stroke="black"/>
              <path d="M 72,160 L 72,192" fill="none" stroke="black"/>
              <path d="M 96,128 L 96,240" fill="none" stroke="black"/>
              <path d="M 128,48 L 128,176" fill="none" stroke="black"/>
              <path d="M 152,96 L 152,160" fill="none" stroke="black"/>
              <path d="M 232,96 L 232,160" fill="none" stroke="black"/>
              <path d="M 272,48 L 272,80" fill="none" stroke="black"/>
              <path d="M 272,128 L 272,160" fill="none" stroke="black"/>
              <path d="M 272,224 L 272,256" fill="none" stroke="black"/>
              <path d="M 272,288 L 272,320" fill="none" stroke="black"/>
              <path d="M 352,48 L 352,80" fill="none" stroke="black"/>
              <path d="M 352,128 L 352,160" fill="none" stroke="black"/>
              <path d="M 352,224 L 352,256" fill="none" stroke="black"/>
              <path d="M 352,288 L 352,320" fill="none" stroke="black"/>
              <path d="M 392,48 L 392,176" fill="none" stroke="black"/>
              <path d="M 456,48 L 456,320" fill="none" stroke="black"/>
              <path d="M 584,48 L 584,320" fill="none" stroke="black"/>
              <path d="M 624,160 L 624,192" fill="none" stroke="black"/>
              <path d="M 696,160 L 696,192" fill="none" stroke="black"/>
              <path d="M 144,32 L 376,32" fill="none" stroke="black"/>
              <path d="M 272,48 L 352,48" fill="none" stroke="black"/>
              <path d="M 456,48 L 584,48" fill="none" stroke="black"/>
              <path d="M 352,64 L 448,64" fill="none" stroke="black"/>
              <path d="M 272,80 L 352,80" fill="none" stroke="black"/>
              <path d="M 152,96 L 232,96" fill="none" stroke="black"/>
              <path d="M 232,112 L 448,112" fill="none" stroke="black"/>
              <path d="M 96,128 L 144,128" fill="none" stroke="black"/>
              <path d="M 272,128 L 352,128" fill="none" stroke="black"/>
              <path d="M 232,144 L 264,144" fill="none" stroke="black"/>
              <path d="M 352,144 L 448,144" fill="none" stroke="black"/>
              <path d="M 8,160 L 72,160" fill="none" stroke="black"/>
              <path d="M 152,160 L 232,160" fill="none" stroke="black"/>
              <path d="M 272,160 L 352,160" fill="none" stroke="black"/>
              <path d="M 624,160 L 696,160" fill="none" stroke="black"/>
              <path d="M 72,176 L 96,176" fill="none" stroke="black"/>
              <path d="M 584,176 L 616,176" fill="none" stroke="black"/>
              <path d="M 8,192 L 72,192" fill="none" stroke="black"/>
              <path d="M 144,192 L 376,192" fill="none" stroke="black"/>
              <path d="M 624,192 L 696,192" fill="none" stroke="black"/>
              <path d="M 272,224 L 352,224" fill="none" stroke="black"/>
              <path d="M 96,240 L 264,240" fill="none" stroke="black"/>
              <path d="M 352,240 L 448,240" fill="none" stroke="black"/>
              <path d="M 272,256 L 352,256" fill="none" stroke="black"/>
              <path d="M 272,288 L 352,288" fill="none" stroke="black"/>
              <path d="M 352,304 L 448,304" fill="none" stroke="black"/>
              <path d="M 272,320 L 352,320" fill="none" stroke="black"/>
              <path d="M 456,320 L 584,320" fill="none" stroke="black"/>
              <path d="M 144,32 C 135.16936,32 128,39.16936 128,48" fill="none" stroke="black"/>
              <path d="M 376,32 C 384.83064,32 392,39.16936 392,48" fill="none" stroke="black"/>
              <path d="M 144,192 C 135.16936,192 128,184.83064 128,176" fill="none" stroke="black"/>
              <path d="M 376,192 C 384.83064,192 392,184.83064 392,176" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="624,176 612,170.4 612,181.6" fill="black" transform="rotate(0,616,176)"/>
              <polygon class="arrowhead" points="456,304 444,298.4 444,309.6" fill="black" transform="rotate(0,448,304)"/>
              <polygon class="arrowhead" points="456,240 444,234.4 444,245.6" fill="black" transform="rotate(0,448,240)"/>
              <polygon class="arrowhead" points="456,144 444,138.4 444,149.6" fill="black" transform="rotate(0,448,144)"/>
              <polygon class="arrowhead" points="456,112 444,106.4 444,117.6" fill="black" transform="rotate(0,448,112)"/>
              <polygon class="arrowhead" points="456,64 444,58.4 444,69.6" fill="black" transform="rotate(0,448,64)"/>
              <polygon class="arrowhead" points="272,240 260,234.4 260,245.6" fill="black" transform="rotate(0,264,240)"/>
              <polygon class="arrowhead" points="272,144 260,138.4 260,149.6" fill="black" transform="rotate(0,264,144)"/>
              <polygon class="arrowhead" points="152,128 140,122.4 140,133.6" fill="black" transform="rotate(0,144,128)"/>
              <g class="text">
                <text x="192" y="52">Company</text>
                <text x="296" y="68">Bot</text>
                <text x="184" y="132">Agent</text>
                <text x="312" y="148">Browser</text>
                <text x="40" y="180">Human</text>
                <text x="496" y="180">Reverse</text>
                <text x="552" y="180">Proxy</text>
                <text x="660" y="180">Origin</text>
                <text x="312" y="244">Browser</text>
                <text x="296" y="308">Bot</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                .------------------------------.
               |    Company      +---------+    |       +---------------+
               |                 | Bot     +----+------>|               |
               |                 +---------+    |       |               |
               |  +---------+                   |       |               |
               |  |         +-------------------+------>|               |
           .---+->| Agent   |    +---------+    |       |               |
           |   |  |         +--->| Browser +----+------>|               |
+-------+  +   |  +---------+    +---------+    |       |               |    +--------+
| Human +--+   |                                |       | Reverse Proxy +--->| Origin |
+-------+  |    '------------------------------'        |               |    +--------+
           |                                            |               |
           |                     +---------+            |               |
           '-------------------->| Browser +----------->|               |
                                 +---------+            |               |
                                                        |               |
                                 +---------+            |               |
                                 | Bot     +----------->|               |
                                 +---------+            +---------------+
]]></artwork>
        </artset>
        <t>The attester/issuer roles could be filled by the AI company, reverse proxy,
origin, or a third party. Origins need mechanisms to identify organizations,
rate-limit individuals, and authenticate users without relying solely on client
IP or heuristics presented in <xref target="motivation"/>.</t>
      </section>
    </section>
    <section anchor="security-goals-and-threat-model">
      <name>Security goals and threat model</name>
      <t>The security model includes several actors: credential issuers, attesters,
clients (bots or agents), reverse proxies, and origin servers. The primary goals
are to prevent impersonation, allow for credential revocation, support
delegation and rotation, and maintain trust boundaries.</t>
      <section anchor="public-vs-private-presentation">
        <name>Public vs private presentation</name>
        <t>If the Issuer is also the Origin or its reverse proxy, it is possible to use
shared secrets for verification. In cases where the issuer and verifier are
different entities, asymmetric cryptography becomes necessary, allowing the bot
to prove its identity using a public key infrastructure.</t>
      </section>
      <section anchor="single-vs-multi-show">
        <name>Single vs multi show</name>
        <t>Some credentials may be designed for one-time use only (for anti replay or
privacy reasons), while others can support multiple presentations through the
use of cryptographic derivation techniques.
This distinction affects privacy, scalability, and implementation complexity.</t>
      </section>
      <section anchor="transport">
        <name>Transport</name>
        <t>Authentication tokens may be exchanged at different protocol layers and through
different transports.
Each may have different deployment, performance, and security guarantees.</t>
        <t>For TLS, we have seen <xref target="REQ-MTLS"/> and <xref target="PRIVACYPASS-IN-TLS"/> respectively
addressing <xref target="use-case-company"/> and <xref target="use-case-selective-disclosure"/>.</t>
        <t>For HTTP, we see <xref target="HTTP-MESSAGE-SIGNATURE-FOR-BOTS"/> or <xref target="DPOP-AUTH-RFC"/>, and
<xref target="PRIVACYPASS-HTTP-AUTH-RFC"/> respectively addressing <xref target="use-case-company"/> and
<xref target="use-case-selective-disclosure"/>. <xref target="OAUTH-BEARER-RFC"/> fits as well for
<xref target="use-case-known-account"/>.</t>
        <t>Other methods have been seen such as leveraging a dedicated format on top of a
JavaScript API. This is the case for W3C <xref target="PRIVATE-STATE-TOKEN"/> or the more
recent <xref target="PRIVATE-PROOF-API"/>.</t>
        <t>Focusing on AI specifically, it's worth mentioning two proponent protocol
definition efforts:</t>
        <ul spacing="normal">
          <li>
            <t><xref target="A2A-AUTH"/> which follows <xref target="OPENAPI3-AUTH"/>. This means it allows for Basic,
Bearer, API Keys, and <xref target="OAUTH2-RFC"/>. OpenAPI mentions using the <xref target="HTTP-AUTHSCHEME"/>
registry, but there does not seem to be a definition for recent schemes such as
<xref target="PRIVACYPASS-HTTP-AUTH-RFC"/>, <xref target="CONCEALED-AUTH-RFC"/>, or <xref target="DPOP-AUTH-RFC"/>.</t>
          </li>
          <li>
            <t><xref target="MCP-AUTH"/> uses <xref target="OAUTH2-RFC"/> as a resource server.</t>
          </li>
        </ul>
      </section>
      <section anchor="round-trip">
        <name>Round trip</name>
        <t>Protocols should strive to minimise the number of round trips between a client
and the issuer, and between clients and the origin.</t>
      </section>
    </section>
    <section anchor="key-management">
      <name>Key management and discovery</name>
      <section anchor="catalog">
        <name>Catalog</name>
        <t>Just as there are registries to resolve IP address metadata, there are going to be
registries to identify the owner of public key material.
These are mentioned by <xref target="A2A-DISCOVERY"/> and <xref target="MCP-DISCOVERY"/>.</t>
        <t>The primary goal of these catalogs is to associate metadata with a public key, and the
discovery of the associated metadata. They <bcp14>SHOULD</bcp14> have some sort of tamper resistance, to prevent the
provider of a catalog providing incorrect information.</t>
        <t>As an analogy, one can think of <xref target="CERTIFICATE-TRANSPARENCY-RFC"/>, or the more
recent effort in <xref target="KEY-TRANSPARENCY-ARCHITECTURE"/>.</t>
      </section>
      <section anchor="submission-out-of-band">
        <name>Submission / out-of-band</name>
        <t>Submission is also going to happen out-of-band. This is both for a practical
reason, it is simpler than setting up a catalog, and for privacy reasons,
given you don't have to expose information through a catalog.</t>
      </section>
      <section anchor="on-path">
        <name>On-path</name>
        <t>Discovery may happen on-path, that is when a request arrives from a client to
an origin.
This could be considered a form of trust-on-first-use. While the level of trust is low,
it could be viable for certain use cases.</t>
        <t>Such discovery could be via an HTTP header containing a domain name with a
well-known, a URL, a certificate, etc.</t>
      </section>
      <section anchor="format">
        <name>Format</name>
        <t>There are a multitude of Key and directory formats. These include but are not
limited to JWKS, CWKS, Privacy Pass, Agent Card, and HTTP Message Signatures.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This glossary provides terminology for web bot authentication. While this
document does not define or recommend specific protocols, terminology choices
have direct security implications:</t>
      <dl>
        <dt><strong>Impersonation Resistance</strong></dt>
        <dd>
          <t>Clearly defined roles are essential for preventing entities from falsely
claiming identities.</t>
        </dd>
        <dt><strong>Credential Replay and Theft</strong></dt>
        <dd>
          <t>Definitions such as <xref target="single-vs-multi-show"/> help describe key mechanisms that
mitigate the misuse of credentials if stolen.</t>
        </dd>
        <dt><strong>Key Management</strong></dt>
        <dd>
          <t><xref target="key-management"/> is key to protocol security, and has to be considered.</t>
        </dd>
      </dl>
      <t>In addition, protocols should consider decentralization <xref target="RFC9518"/> and end-user
impact <xref target="RFC8890"/>.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Authentication mechanisms should minimize the collection and exposure of
personal data. Techniques like selective disclosure and unlinkability help
protect user privacy. Protocols should refer to <xref target="RFC6973"/>.</t>
      <t>Multiple protocols are also likely to be used in coordination: to identify an
orgnization, then to identify the User-Agent, and possibly rate limit. It is
important to consider the privacy of these layers together as well.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>
        <reference anchor="RFC8890">
          <front>
            <title>The Internet is for End Users</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>This document explains why the IAB believes that, when there is a conflict between the interests of end users of the Internet and other parties, IETF decisions should favor end users. It also explores how the IETF can more effectively achieve this.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8890"/>
          <seriesInfo name="DOI" value="10.17487/RFC8890"/>
        </reference>
        <reference anchor="RFC9518">
          <front>
            <title>Centralization, Decentralization, and Internet Standards</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="December" year="2023"/>
            <abstract>
              <t>This document discusses aspects of centralization that relate to Internet standards efforts. It argues that, while standards bodies have a limited ability to prevent many forms of centralization, they can still make contributions that assist in the decentralization of the Internet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9518"/>
          <seriesInfo name="DOI" value="10.17487/RFC9518"/>
        </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-AUTH" target="https://google.github.io/A2A/#/documentation?id=authentication-and-authorization">
          <front>
            <title>A2A protocol Authentication</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="A2A-DISCOVERY" target="https://google.github.io/A2A/#/topics/agent_discovery">
          <front>
            <title>A2A protocol Agent discovery</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CERTIFICATE-TRANSPARENCY-RFC">
          <front>
            <title>Certificate Transparency</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Kasper" initials="E." surname="Kasper"/>
            <date month="June" year="2013"/>
            <abstract>
              <t>This document describes an experimental protocol for publicly logging the existence of Transport Layer Security (TLS) certificates as they are issued or observed, in a manner that allows anyone to audit certificate authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6962"/>
          <seriesInfo name="DOI" value="10.17487/RFC6962"/>
        </reference>
        <reference anchor="CONCEALED-AUTH-RFC">
          <front>
            <title>The Concealed HTTP Authentication Scheme</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="D. Oliver" initials="D." surname="Oliver"/>
            <author fullname="J. Hoyland" initials="J." surname="Hoyland"/>
            <date month="February" year="2025"/>
            <abstract>
              <t>Most HTTP authentication schemes are probeable in the sense that it is possible for an unauthenticated client to probe whether an origin serves resources that require authentication. It is possible for an origin to hide the fact that it requires authentication by not generating Unauthorized status codes; however, that only works with non-cryptographic authentication schemes: cryptographic signatures require a fresh nonce to be signed. Prior to this document, there was no existing way for the origin to share such a nonce without exposing the fact that it serves resources that require authentication. This document defines a new non-probeable cryptographic authentication scheme.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9729"/>
          <seriesInfo name="DOI" value="10.17487/RFC9729"/>
        </reference>
        <reference anchor="DPOP-AUTH-RFC">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="HTTP-AUTHSCHEME" target="https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml">
          <front>
            <title>IANA HTTP Authentication Scheme Registry</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="HTTP-MESSAGE-SIGNATURE-FOR-BOTS">
          <front>
            <title>HTTP Message Signatures for automated traffic Architecture</title>
            <author fullname="Thibault Meunier" initials="T." surname="Meunier">
              <organization>Cloudflare</organization>
            </author>
            <date day="15" month="April" year="2025"/>
            <abstract>
              <t>   This document describes an architecture for identifying automated
   traffic using [HTTP-MESSAGE-SIGNATURES].  The goal is to allow
   automated HTTP clients to cryptographically sign outbound requests,
   allowing HTTP servers to verify their identity with confidence.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-meunier-web-bot-auth-architecture-00"/>
        </reference>
        <reference anchor="KEY-TRANSPARENCY-ARCHITECTURE">
          <front>
            <title>Key Transparency Architecture</title>
            <author fullname="Brendan McMillion" initials="B." surname="McMillion">
         </author>
            <date day="25" month="February" year="2025"/>
            <abstract>
              <t>   This document defines the terminology and interaction patterns
   involved in the deployment of Key Transparency (KT) in a general
   secure group messaging infrastructure, and specifies the security
   properties that the protocol provides.  It also gives more general,
   non-prescriptive guidance on how to securely apply KT to a number of
   common applications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-keytrans-architecture-03"/>
        </reference>
        <reference anchor="LOX" target="https://petsymposium.org/2023/files/papers/issue1/popets-2023-0029.pdf">
          <front>
            <title>Lox: Protecting the Social Graph in Bridge Distribution</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MCP-AUTH" target="https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization">
          <front>
            <title>Model Context Protocol Authorization</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MCP-DISCOVERY" target="https://modelcontextprotocol.io/development/roadmap#registry">
          <front>
            <title>Model Context Protocol Registry</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OAUTH2-RFC">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="OAUTH-BEARER-RFC">
          <front>
            <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6750"/>
          <seriesInfo name="DOI" value="10.17487/RFC6750"/>
        </reference>
        <reference anchor="OPENAPI3-AUTH" target="https://swagger.io/docs/specification/v3_0/authentication/">
          <front>
            <title>OpenAPI 3.0 Authentication</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="PRIVACYPASS-HTTP-AUTH-RFC">
          <front>
            <title>The Privacy Pass HTTP Authentication Scheme</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="S. Valdez" initials="S." surname="Valdez"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document defines an HTTP authentication scheme for Privacy Pass, a privacy-preserving authentication mechanism used for authorization. The authentication scheme specified in this document can be used by Clients to redeem Privacy Pass tokens with an Origin. It can also be used by Origins to challenge Clients to present Privacy Pass tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9577"/>
          <seriesInfo name="DOI" value="10.17487/RFC9577"/>
        </reference>
        <reference anchor="PRIVACYPASS-IN-TLS">
          <front>
            <title>Including Privacy Pass Tokens in TLS Handshakes</title>
            <author fullname="Tommy Pauly" initials="T." surname="Pauly">
              <organization>Apple</organization>
            </author>
            <author fullname="Scott Hendrickson" initials="S." surname="Hendrickson">
              <organization>Google</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This document defines a mechanism for TLS servers to request, and TLS
   clients to provide, Privacy Pass tokens as part of the Encrypted
   Client Hello in the TLS handshake.  This creates a way to add support
   for anonymous attestation and rate-limiting to servers that are
   enforcing denial-of-service protections as part of processing TLS
   handshakes.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-pauly-privacypass-for-tls-00"/>
        </reference>
        <reference anchor="PRIVACY-PASS-KAGI" target="https://blog.kagi.com/kagi-privacy-pass">
          <front>
            <title>Introducing Privacy Pass authentication for Kagi Search</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="PRIVATE-ACCESS-TOKEN" target="https://developer.apple.com/news/?id=huqjyh7k">
          <front>
            <title>Challenge: Private Access Tokens</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="PRIVATE-PROOF-API" target="https://explainers-by-googlers.github.io/private-proof/">
          <front>
            <title>Explainer by Googlers Private Proof API</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="PRIVATE-STATE-TOKEN" target="https://wicg.github.io/trust-token-api/">
          <front>
            <title>W3C Private State Token API</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="REQ-MTLS">
          <front>
            <title>TLS Flag - Request mTLS</title>
            <author fullname="Jonathan Hoyland" initials="J." surname="Hoyland">
              <organization>Cloudflare</organization>
            </author>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>   Normally in TLS there is no way for the client to signal to the
   server that it has been configured with a certificate suitable for
   mTLS.  This document defines a TLS Flag [I-D.ietf-tls-tlsflags] that
   enables clients to provide this hint.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jhoyla-req-mtls-flag-02"/>
        </reference>
        <reference anchor="VERIFIABLE-CREDENTIALS" target="https://www.w3.org/TR/2022/REC-vc-data-model-20220303/">
          <front>
            <title>Verifiable Credentials Data Model v1.1</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 453?>

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

-->

</rfc>
