<?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.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-meunier-web-bot-auth-glossary-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="Web bot auth Glossary">Web bot auth Glossary</title>
    <seriesInfo name="Internet-Draft" value="draft-meunier-web-bot-auth-glossary-01"/>
    <author fullname="Thibault Meunier">
      <organization>Cloudflare</organization>
      <address>
        <email>ot-ietf@thibault.uk</email>
      </address>
    </author>
    <date year="2025" month="June" day="19"/>
    <area>Web and Internet Transport</area>
    <workgroup>Web Bot Auth</workgroup>
    <keyword>bot authentication</keyword>
    <keyword>web security</keyword>
    <keyword>glossary</keyword>
    <keyword>automated agents</keyword>
    <abstract>
      <?line 100?>

<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>
        Discussion of this document takes place on the
        Web Bot Auth Working Group mailing list (<eref target="mailto:web-bot-auth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/web-bot-auth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/web-bot-auth/"/>.
      </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 108?>

<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="PRIVACYPASS-KAGI"/>,</t>
          </li>
          <li>
            <t>Selective disclosure of a credential attribute (location, age) such as
<xref target="PRIVATE-PROOF-API"/>.</t>
          </li>
          <li>
            <t>Redeeming previously issued credits as in <xref target="ANONYMOUS-CREDIT-TOKENS"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="ecosystem">
      <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 296,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 256,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">
        <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 anchor="crawler">
        <name>Web crawler example</name>
        <t>Search engines, web archivers, and security analysis tools operate bots as part
of their operations to scan and retrieve content from a variety of sources.
These automated agents are commonly referred to as crawlers.</t>
        <t>While their traffic is automated, it is often seen as desirable by origins.
Legitimate crawlers contribute to improved SEO, enhanced security posture,
and broader content reach through search indexing and archiving.
Reliable authentication allows origins to differentiate these beneficial
crawlers from malicious actors.</t>
        <t>In the framework provided in <xref target="ecosystem"/>, the interaction for a web crawler
can be described as follows:</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="592" viewBox="0 0 592 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,48 L 8,80" fill="none" stroke="black"/>
              <path d="M 120,48 L 120,80" fill="none" stroke="black"/>
              <path d="M 200,48 L 200,80" fill="none" stroke="black"/>
              <path d="M 240,48 L 240,80" fill="none" stroke="black"/>
              <path d="M 304,48 L 304,80" fill="none" stroke="black"/>
              <path d="M 432,48 L 432,80" fill="none" stroke="black"/>
              <path d="M 496,48 L 496,80" fill="none" stroke="black"/>
              <path d="M 584,48 L 584,80" fill="none" stroke="black"/>
              <path d="M 24,32 L 224,32" fill="none" stroke="black"/>
              <path d="M 120,48 L 200,48" fill="none" stroke="black"/>
              <path d="M 304,48 L 432,48" fill="none" stroke="black"/>
              <path d="M 496,48 L 584,48" fill="none" stroke="black"/>
              <path d="M 200,64 L 296,64" fill="none" stroke="black"/>
              <path d="M 432,64 L 488,64" fill="none" stroke="black"/>
              <path d="M 120,80 L 200,80" fill="none" stroke="black"/>
              <path d="M 304,80 L 432,80" fill="none" stroke="black"/>
              <path d="M 496,80 L 584,80" fill="none" stroke="black"/>
              <path d="M 24,96 L 224,96" fill="none" stroke="black"/>
              <path d="M 24,32 C 15.16936,32 8,39.16936 8,48" fill="none" stroke="black"/>
              <path d="M 224,32 C 232.83064,32 240,39.16936 240,48" fill="none" stroke="black"/>
              <path d="M 24,96 C 15.16936,96 8,88.83064 8,80" fill="none" stroke="black"/>
              <path d="M 224,96 C 232.83064,96 240,88.83064 240,80" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="496,64 484,58.4 484,69.6" fill="black" transform="rotate(0,488,64)"/>
              <polygon class="arrowhead" points="304,64 292,58.4 292,69.6" fill="black" transform="rotate(0,296,64)"/>
              <g class="text">
                <text x="72" y="52">Company</text>
                <text x="160" y="68">Crawler</text>
                <text x="344" y="68">Reverse</text>
                <text x="400" y="68">Proxy</text>
                <text x="540" y="68">Origin</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
 .--------------------------.
|    Company  +---------+    |       +---------------+       +----------+
|             | Crawler +----+------>| Reverse Proxy +------>|  Origin  |
|             +---------+    |       +---------------+       +----------+
 '--------------------------'
]]></artwork>
        </artset>
        <t>Similar to the <xref target="ai-agent"/>,
the attester/issuer roles could be filled by the crawling company, a reverse proxy,
the origin, or a third party. For instance, the crawling company itself is often
the most authoritative entity to attest to the legitimacy of its crawlers,
issuing cryptographic credentials that identify them.
Origins require robust mechanisms to identify these organizations and differentiate
their traffic without solely relying on the limitations of IP addresses or User-Agent
heuristics presented in <xref target="motivation"/>. This enables them to apply granular access controls,
rate limits, or preferential treatment based on the verified identity of the crawler.</t>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment considerations</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>
        <t>Such work is being carried out in the CFRG and Privacy Pass working group
with the following drafts</t>
        <table>
          <thead>
            <tr>
              <th align="left">Presentation</th>
              <th align="left">Cryptography</th>
              <th align="left">Privacy Pass</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Private</td>
              <td align="left">
                <xref target="ARC"/></td>
              <td align="left">
                <xref target="PRIVACYPASS-ARC"/></td>
            </tr>
            <tr>
              <td align="left">Private</td>
              <td align="left">
                <xref target="OPRF"/></td>
              <td align="left">
                <xref target="PRIVACYPASS-PROTOCOL"/></td>
            </tr>
            <tr>
              <td align="left">Public/Private</td>
              <td align="left">
                <xref target="BBS"/></td>
              <td align="left">
                <xref target="PRIVACYPASS-BBS"/></td>
            </tr>
            <tr>
              <td align="left">Public</td>
              <td align="left">
                <xref target="BLINDRSA"/></td>
              <td align="left">
                <xref target="PRIVACYPASS-PROTOCOL"/></td>
            </tr>
            <tr>
              <td align="left">Public</td>
              <td align="left">
                <xref target="PARTIALLY-BLINDRSA"/></td>
              <td align="left">
                <xref target="PRIVACYPASS-PUBLIC-METADATA"/></td>
            </tr>
          </tbody>
        </table>
      </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 deployments for which knowing all agents a-priori is
not viable. This could be due to their multiplicity, a frequent change in involved actors,
or an origin that is willing to review new changes manually for instance.</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="ARC">
          <front>
            <title>Anonymous Rate-Limited Credentials</title>
            <author fullname="Cathie Yun" initials="C." surname="Yun">
              <organization>Apple, Inc.</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Apple, Inc.</organization>
            </author>
            <date day="5" month="February" year="2025"/>
            <abstract>
              <t>   This document specifies the Anonymous Rate-Limited Credential (ARC)
   protocol, a specialization of keyed-verification anonymous
   credentials with support for rate limiting.  ARC credentials can be
   presented from client to server up to some fixed number of times,
   where each presentation is cryptographically bound to client secrets
   and application-specific public information, such that each
   presentation is unlinkable from the others as well as the original
   credential creation.  ARC is useful in applications where a server
   needs to throttle or rate-limit access from anonymous clients.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-yun-cfrg-arc-00"/>
        </reference>
        <reference anchor="BBS">
          <front>
            <title>The BBS Signature Scheme</title>
            <author fullname="Tobias Looker" initials="T." surname="Looker">
              <organization>MATTR</organization>
            </author>
            <author fullname="Vasilis Kalos" initials="V." surname="Kalos">
              <organization>MATTR</organization>
            </author>
            <author fullname="Andrew Whitehead" initials="A." surname="Whitehead">
              <organization>Portage</organization>
            </author>
            <author fullname="Mike Lodder" initials="M." surname="Lodder">
              <organization>CryptID</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This document describes the BBS Signature scheme, a secure, multi-
   message digital signature protocol, supporting proving knowledge of a
   signature while selectively disclosing any subset of the signed
   messages.  Concretely, the scheme allows for signing multiple
   messages whilst producing a single, constant size, digital signature.
   Additionally, the possessor of a BBS signatures is able to create
   zero-knowledge, proofs of knowledge of a signature, while selectively
   disclosing subsets of the signed messages.  Being zero-knowledge, the
   BBS proofs do not reveal any information about the undisclosed
   messages or the signature itself, while at the same time,
   guaranteeing the authenticity and integrity of the disclosed
   messages.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-bbs-signatures-08"/>
        </reference>
        <reference anchor="BLINDRSA">
          <front>
            <title>RSA Blind Signatures</title>
            <author fullname="F. Denis" initials="F." surname="Denis"/>
            <author fullname="F. Jacobs" initials="F." surname="Jacobs"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="October" year="2023"/>
            <abstract>
              <t>This document specifies an RSA-based blind signature protocol. RSA blind signatures were first introduced by Chaum for untraceable payments. A signature that is output from this protocol can be verified as an RSA-PSS signature.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9474"/>
          <seriesInfo name="DOI" value="10.17487/RFC9474"/>
        </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="7" month="May" 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-01"/>
        </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="OPRF">
          <front>
            <title>Oblivious Pseudorandom Functions (OPRFs) Using Prime-Order Groups</title>
            <author fullname="A. Davidson" initials="A." surname="Davidson"/>
            <author fullname="A. Faz-Hernandez" initials="A." surname="Faz-Hernandez"/>
            <author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="December" year="2023"/>
            <abstract>
              <t>An Oblivious Pseudorandom Function (OPRF) is a two-party protocol between a client and a server for computing the output of a Pseudorandom Function (PRF). The server provides the PRF private key, and the client provides the PRF input. At the end of the protocol, the client learns the PRF output without learning anything about the PRF private key, and the server learns neither the PRF input nor output. An OPRF can also satisfy a notion of 'verifiability', called a VOPRF. A VOPRF ensures clients can verify that the server used a specific private key during the execution of the protocol. A VOPRF can also be partially oblivious, called a POPRF. A POPRF allows clients and servers to provide public input to the PRF computation. This document specifies an OPRF, VOPRF, and POPRF instantiated within standard prime-order groups, including elliptic curves. This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9497"/>
          <seriesInfo name="DOI" value="10.17487/RFC9497"/>
        </reference>
        <reference anchor="PARTIALLY-BLINDRSA">
          <front>
            <title>Partially Blind RSA Signatures</title>
            <author fullname="Ghous Ali Amjad" initials="G. A." surname="Amjad">
              <organization>Google</organization>
            </author>
            <author fullname="Scott Hendrickson" initials="S." surname="Hendrickson">
              <organization>Google</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Kevin W. L. Yeo" initials="K. W. L." surname="Yeo">
              <organization>Google</organization>
            </author>
            <date day="1" month="April" year="2025"/>
            <abstract>
              <t>   This document specifies a blind RSA signature protocol that supports
   public metadata.  It is an extension to the RSABSSA protocol recently
   specified by the CFRG.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the Crypto Forum Research
   Group mailing list (cfrg@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/search/?email_list=cfrg.

   Source for this draft and an issue tracker can be found at
   https://github.com/chris-wood/draft-amjad-cfrg-partially-blind-rsa.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-partially-blind-rsa-01"/>
        </reference>
        <reference anchor="PRIVACYPASS-ARC">
          <front>
            <title>Privacy Pass Issuance Protocol for Anonymous Rate-Limited Credentials</title>
            <author fullname="Cathie Yun" initials="C." surname="Yun">
              <organization>Apple, Inc.</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Apple, Inc.</organization>
            </author>
            <date day="5" month="February" year="2025"/>
            <abstract>
              <t>   This document specifies the issuance and redemption protocols for
   tokens based on the Anonymous Rate-Limited Credential (ARC) protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-yun-privacypass-arc-00"/>
        </reference>
        <reference anchor="PRIVACYPASS-BBS">
          <front>
            <title>BBS for PrivacyPass</title>
            <author fullname="Watson Ladd" initials="W." surname="Ladd">
              <organization>Akamai Technologies</organization>
            </author>
            <date day="26" month="February" year="2024"/>
            <abstract>
              <t>   Existing token types in privacy pass conflate attribution with rate
   limiting.  This document describes a token type where the issuer
   attests to a set of properties of the client, which the client can
   then selectively prove to the origin.  Repeated showings of the same
   credential are unlinkable, unlike other token types in privacy pass.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ladd-privacypass-bbs-01"/>
        </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="PRIVACYPASS-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="PRIVACYPASS-PROTOCOL">
          <front>
            <title>Privacy Pass Issuance Protocols</title>
            <author fullname="S. Celi" initials="S." surname="Celi"/>
            <author fullname="A. Davidson" initials="A." surname="Davidson"/>
            <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 specifies two variants of the two-message issuance protocol for Privacy Pass tokens: one that produces tokens that are privately verifiable using the Issuer Private Key and one that produces tokens that are publicly verifiable using the Issuer Public Key. Instances of "issuance protocol" and "issuance protocols" in the text of this document are used interchangeably to refer to the two variants of the Privacy Pass issuance protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9578"/>
          <seriesInfo name="DOI" value="10.17487/RFC9578"/>
        </reference>
        <reference anchor="PRIVACYPASS-PUBLIC-METADATA">
          <front>
            <title>Privacy Pass Issuance Protocols with Public Metadata</title>
            <author fullname="Scott Hendrickson" initials="S." surname="Hendrickson">
              <organization>Google</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <date day="27" month="May" year="2025"/>
            <abstract>
              <t>   This document specifies Privacy Pass issuance protocols that encode
   public information visible to the Client, Attester, Issuer, and
   Origin into each token.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-privacypass-public-metadata-issuance-02"/>
        </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="ANONYMOUS-CREDIT-TOKENS" target="https://samuelschlesinger.github.io/ietf-anonymous-credit-tokens/draft-schlesinger-cfrg-act.html">
          <front>
            <title>Anonymous Credit Tokens</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 510?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
    <section numbered="false" anchor="changelog">
      <name>Changelog</name>
      <t>v01</t>
      <ul spacing="normal">
        <li>
          <t>Improve wording from on-path submission (thanks to Christopher Patton)</t>
        </li>
        <li>
          <t>Add CFRG and Privacy Pass drafts within public/private presentation (thanks to Christopher Patton)</t>
        </li>
        <li>
          <t>Add web crawler example along with AI agent</t>
        </li>
        <li>
          <t>Add anonymous credit tokens draft (thanks to Sam Schlesinger)</t>
        </li>
      </ul>
      <t>v00</t>
      <ul spacing="normal">
        <li>
          <t>Initial draft</t>
        </li>
        <li>
          <t>Overall ecosystem architecture</t>
        </li>
        <li>
          <t>Terminology</t>
        </li>
        <li>
          <t>Rough deployment considerations</t>
        </li>
        <li>
          <t>Reference multiple agent protocols</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
