<?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.35 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-swaminathan-dka-framework-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="DKA Framework">Domain Key Authorities (DKA): DNS-Designated Public Key Distribution for Email-Address Identifiers</title>
    <seriesInfo name="Internet-Draft" value="draft-swaminathan-dka-framework-00"/>
    <author initials="K." surname="Swaminathan" fullname="Kishore Swaminathan">
      <organization>Independent</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>k.s.swaminathan@live.com</email>
      </address>
    </author>
    <date year="2026" month="April" day="20"/>
    <area>Applications and Real-Time</area>
    <workgroup>Individual Submission</workgroup>
    <keyword>dka</keyword>
    <keyword>public key distribution</keyword>
    <keyword>email identifiers</keyword>
    <abstract>
      <?line 55?>

<t>This document specifies the Domain Key Authority (DKA) framework, a 
DNS-anchored public-key distribution mechanism for the email-address 
namespace. The framework enables an Internet domain to designate an 
authoritative key service that verifies, stores, and distributes 
selector-scoped public keys for email-address identifiers under that 
domain. A Fallback DKA (fDKA) provides coverage for identifiers whose 
domains have not deployed a DKA, addressing the bootstrapping problem 
that has hindered comparable proposals. The result is a decentralized, 
deterministic, and application-agnostic framework for verified 
public-key discovery that supports incremental deployment and 
cryptographic agility.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-swaminathan-dka-framework/"/>.
      </t>
    </note>
  </front>
  <middle>
    <?line 69?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Email addresses are widely used as identifiers for individuals and
automated agents on the Internet. Beyond email communication, they serve
as login identifiers for banking, government services, e-commerce,
social media, healthcare portals, and enterprise applications. Despite
this ubiquity, there is no commonly adopted mechanism by which a public
key can be associated with an email address and discovered in a
consistent, interoperable manner.</t>
      <t>Such a mechanism could enable end-to-end encrypted email without
proprietary infrastructure, digitally signed messages with stronger
origin assurance, passwordless authentication in which a relying party
verifies possession of a private key rather than a shared secret, and
secure key distribution for messaging systems and related protocols.</t>
      <t>Infrastructure frameworks that depend on per-domain deployment for
initial utility face a well-known bootstrapping challenge: applications
lack incentive to implement the framework until enough domains have
deployed, and domains lack incentive to deploy until enough applications
create demand. A successful framework must address this bootstrapping
problem to achieve practical deployment.</t>
      <t>Over the past three decades, several systems have addressed parts of
this problem. Each contributed important ideas, but each also revealed
limitations that inform the design requirements for a more deployable
framework.</t>
      <section anchor="prior-approaches-and-lessons-learned">
        <name>Prior Approaches and Lessons Learned</name>
        <section anchor="openpgp-and-the-web-of-trust">
          <name>OpenPGP and the Web of Trust</name>
          <t>OpenPGP <xref target="RFC9580"/> introduced a decentralized model in which users
generate their own key pairs and other users may certify bindings
between identities and keys through a web of trust. Public keys can be
uploaded to key servers for distribution.</t>
          <t>This model demonstrated the value of decentralized key generation and
distribution, but it has seen limited deployment outside technically
sophisticated communities. In particular, user-to-user certification
does not scale well for the general Internet population, key servers do
not by themselves establish verified bindings between an email address
and a submitted key, and key discovery is not deterministic: a relying
party may need to consult multiple servers, and the absence of a key at
one location does not establish that no key exists.</t>
          <t>These observations suggest that a more deployable framework should
provide built-in verification of the binding between an email address
and its public key, should support deterministic lookup, and should not
depend on user-to-user coordination for routine operation.</t>
        </section>
        <section anchor="smime-and-certificate-authorities">
          <name>S/MIME and Certificate Authorities</name>
          <t>S/MIME <xref target="RFC8551"/> addressed the verification problem by using
Certificate Authorities (CAs) to certify bindings between identities and
public keys. In enterprise and managed environments, this approach can
provide a workable solution for encrypted and signed email.</t>
          <t>However, S/MIME deployment has generally depended on access to CA
infrastructure and related operational arrangements, which has limited
participation outside managed environments. This suggests that a broadly
deployable framework should support participation by any email address,
including addresses under domains that have not deployed specialized PKI
infrastructure of their own.</t>
        </section>
        <section anchor="dane-and-dns-based-key-distribution">
          <name>DANE and DNS-Based Key Distribution</name>
          <t>DANE <xref target="RFC7671"/> and OPENPGPKEY <xref target="RFC7929"/> contributed an important
architectural insight: the domain is a natural authority for information
about addresses under its namespace, and DNS is a natural mechanism for
designating that authority.</t>
          <t>However, storing per-user key material directly in DNS can create
operational challenges at large scale. DNS is well suited to publishing
domain-level and service-level information, but per-user key
distribution may require storage, update, and retrieval mechanisms that
scale more naturally through database-backed services and
application-layer APIs.</t>
          <t>The lesson is that DNS is well suited for designating where
authoritative key information can be obtained, while the key material
itself may be better served through infrastructure that scales
independently of DNS.</t>
        </section>
        <section anchor="web-key-directory">
          <name>Web Key Directory</name>
          <t>Web Key Directory (WKD) <xref target="I-D.koch-openpgp-webkey-service"/> partially
addressed this issue by separating publication from DNS storage and
delivering keys over HTTPS. This demonstrated the practical value of
using existing web infrastructure to distribute per-address key
material.</t>
          <t>However, WKD relies on domain-hosted publication without defining
a broader framework for verified key registration and universal
lookup coverage. Further, WKD is limited to a particular application
context and does not define a general mechanism for distributing
multiple keys for the same identifier for different uses.</t>
        </section>
      </section>
      <section anchor="design-principles">
        <name>Design Principles</name>
        <t>The preceding discussion motivates the following design principles for
the DKA framework:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Domain-designated authority.</strong> A domain designates, using DNS, an
authoritative key service for identifiers under its namespace.
Authority over key records for a given identifier derives from that
domain's DNS designation.</t>
          </li>
          <li>
            <t><strong>Scalable key distribution.</strong> Per-identifier key material is stored
and served through infrastructure that scales independently of DNS.</t>
          </li>
          <li>
            <t><strong>Verified binding.</strong> The framework provides mechanisms for
verifying the association between an email-address identifier and
its public key, and communicates which verification methods were
performed so that relying applications can apply local trust policy.</t>
          </li>
          <li>
            <t><strong>Deterministic lookup.</strong> Given an email-address identifier and a
selector, a conforming client obtains a single definitive result by
following a fixed lookup order: a matching key record, an indication
that no record exists, or an error.</t>
          </li>
          <li>
            <t><strong>Application agnosticism.</strong> The framework distributes keys without
prescribing or constraining what applications do with them.</t>
          </li>
          <li>
            <t><strong>Cryptographic agility.</strong> The framework does not prescribe a single
key type or algorithm and supports future cryptographic schemes.</t>
          </li>
          <li>
            <t><strong>Incremental deployment.</strong> The framework operates over existing
DNS, email, and HTTPS infrastructure and does not require
coordinated ecosystem-wide upgrades.</t>
          </li>
          <li>
            <t><strong>Universal coverage.</strong> Via the Fallback DKA (fDKA), the framework
provides immediate coverage for every email-address identifier
regardless of whether that identifier's domain has deployed a DKA,
addressing the bootstrapping problem that has limited adoption of
comparable proposals.</t>
          </li>
        </ul>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document specifies the DKA framework: DNS-based designation of
Domain Key Authorities, the key lookup protocol, the key registration
mechanism, selector-scoped key management, and the Fallback DKA.</t>
        <t>The framework is application-agnostic. Applications that consume
DKA-distributed keys (such as encrypted email, passwordless
authentication, or cryptocurrency wallet addressing) are outside the
scope of this document.</t>
      </section>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP 14
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <ul spacing="normal">
        <li>
          <t><strong>Email-Address Identifier:</strong> An identifier having the syntactic
form of an email address (<tt>local-part@domain</tt>), used as the name to
which one or more public keys can be bound. The syntax of
email-address identifiers follows <xref target="RFC5321"/>.</t>
        </li>
        <li>
          <t><strong>Domain Portion:</strong> The portion of an email-address identifier
following the "@" character.</t>
        </li>
        <li>
          <t><strong>Domain Key Authority (DKA):</strong> A network-accessible service
designated by an Internet domain to collect, verify, store, and
distribute public keys associated with email-address identifiers
under that domain.</t>
        </li>
        <li>
          <t><strong>Fallback DKA (fDKA):</strong> A DKA designated by a well-known domain
that accepts key registrations from email-address identifiers
belonging to any domain. The fDKA is operationally identical to a
domain DKA except that it does not restrict registrations to a
single domain.</t>
        </li>
        <li>
          <t><strong>Designating Domain:</strong> An Internet domain that publishes a DKA
Locator Record designating a DKA as authoritative for public keys
associated with email-address identifiers under that domain.</t>
        </li>
        <li>
          <t><strong>DKA Locator Record:</strong> A DNS TXT record at a well-known subdomain
by which a designating domain designates its DKA.</t>
        </li>
        <li>
          <t><strong>Selector:</strong> A string value that distinguishes one public key from
another for the same email-address identifier, enabling different
keys for different application contexts.</t>
        </li>
        <li>
          <t><strong>Default Selector:</strong> The selector value <tt>"default"</tt>, used when no
selector is explicitly specified.</t>
        </li>
        <li>
          <t><strong>Public Key Record:</strong> A data object maintained by a DKA that
associates a public key with an email-address identifier and
selector, together with verification metadata and optional
application metadata.</t>
        </li>
        <li>
          <t><strong>Verification Methods:</strong> Named methods performed by a DKA to verify
the association between an email-address identifier and a submitted
public key.</t>
        </li>
        <li>
          <t><strong>Key Lookup Request:</strong> A request sent by a client to a DKA to
obtain the Public Key Record associated with a specified
email-address identifier and optional selector.</t>
        </li>
        <li>
          <t><strong>Key Lookup Response:</strong> A response returned by a DKA containing the
requested Public Key Record, an indication that no matching record
exists, or an error.</t>
        </li>
        <li>
          <t><strong>Requesting Client:</strong> A software component that performs DKA
discovery and sends Key Lookup Requests.</t>
        </li>
        <li>
          <t><strong>Registrant:</strong> An entity that submits a public key for association
with an email-address identifier.</t>
        </li>
      </ul>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>The DKA framework is a distributed framework in which Internet domains
designate Domain Key Authorities to act as key services for
email-address identifiers under those domains. The framework separates
four functions that have been conflated, underspecified, or
application-bound in earlier approaches:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Designation of authority.</strong> DNS provides the designation function
at domain granularity, identifying which service is authoritative
for key records under a given domain.</t>
        </li>
        <li>
          <t><strong>Storage of key material.</strong> The DKA service stores per-identifier
key records at identifier-level granularity using infrastructure
that scales independently of DNS.</t>
        </li>
        <li>
          <t><strong>Retrieval of key records.</strong> The DKA service is discovered by
applications via DNS and accessed via HTTPS to retrieve structured
key records with metadata.</t>
        </li>
        <li>
          <t><strong>Identifier-to-key binding.</strong> The framework treats an email-address
identifier as an Internet identifier to which one or more public
keys may be bound, without limiting use of those keys to email
transport. This separates the identifier's role as a routable email
address from its broader role as a name for a person, agent,
service, or account in applications that consume DKA-distributed
keys.</t>
        </li>
      </ul>
      <t>This separation preserves domain-level authority while permitting key
storage and lookup to be implemented using databases, caches, or other
application-layer infrastructure.</t>
      <figure anchor="fig-architecture">
        <name>DKA Framework Architecture</name>
        <artwork><![CDATA[
                    DKA Framework Architecture

  +-----------------------------------------------------------------+
  |                         DNS Layer                               |
  |                                                                 |
  |  _dka.alpha.com      _dka.beta.org      _dka.fdka.arpa         |
  |  v=DKA1;dka=...      v=DKA1;dka=...     v=DKA1;dka=...         |
  |       |                   |               |  (IANA governance)  |
  +-------|-------------------|---------------|---------------------+
          |  Designates       |  Designates   |  Designates
          v                   v               v
  +-----------------------------------------------------------------+
  |                   Key Service Layer (HTTPS)                     |
  |                                                                 |
  |  +----------------+  +---------------+  +--------------------+  |
  |  | DKA for        |  | DKA for       |  | Fallback DKA       |  |
  |  | alpha.com      |  | beta.org      |  | (any domain)       |  |
  |  +-------^--------+  +-------^-------+  +---------^----------+  |
  +-----------------------------------------------------------------+
             |                    |                     |
       alice@alpha.com      bob@beta.org       carol@gmail.com
                                              (no domain DKA)
]]></artwork>
      </figure>
      <section anchor="lookup-priority">
        <name>Lookup Priority</name>
        <t>The lookup protocol gives priority to the domain DKA for any
(email-address identifier, selector) pair it holds. For a given pair,
the client queries the domain DKA first. If the domain DKA returns a
matching record, the lookup is complete and the fDKA is not queried.
If the domain DKA does not hold a record for that pair, or if no
domain DKA exists, the client queries the fDKA. The complete procedure
is specified in <xref target="lookup-order"/>.</t>
      </section>
      <section anchor="universal-coverage">
        <name>Universal Coverage</name>
        <t>The Fallback DKA (fDKA), designated by a well-known domain under IANA
governance, accepts registrations from any email-address identifier
regardless of its domain. The fDKA addresses the bootstrapping
problem: any email address can register a key with the fDKA and any
application can query it, creating a usable key-distribution service
from initial deployment without requiring per-domain adoption.</t>
        <t>As individual domains deploy their own DKAs, the lookup order
(<xref target="lookup-order"/>) naturally gives priority to domain-designated
services. The fDKA continues to serve (identifier, selector) pairs
for which the domain DKA has no record, ensuring uninterrupted
coverage during the transition.</t>
      </section>
      <section anchor="selector-scoped-keys">
        <name>Selector-Scoped Keys</name>
        <t>An email-address identifier may be associated with multiple public keys,
each distinguished by a selector. Selectors allow different applications
to use different keys without the DKA interpreting what the selectors
mean or what applications consume them.</t>
        <t>For example, an identifier might have one key under selector <tt>"default"</tt>
for general use, another under <tt>"auth"</tt> for authentication, and another
under <tt>"signing"</tt> for digital signatures. The DKA stores and serves keys
by identifier and selector without assigning semantic meaning to
selector values. Applications define their own selector conventions
independently.</t>
      </section>
      <section anchor="cryptographic-agility">
        <name>Cryptographic Agility</name>
        <t>The DKA framework does not prescribe a key type or algorithm.
Selector-scoped Public Key Records MAY maintain metadata associated
with each public key to indicate its cryptographic properties. This
cryptographic agnosticism enables the DKA framework to support future
cryptographic schemes, including post-quantum schemes.</t>
      </section>
      <section anchor="deterministic-lookup">
        <name>Deterministic Lookup</name>
        <t>For any given (email-address identifier, selector) pair, a conforming
client follows a fixed lookup order. The client first queries the DKA
designated by the identifier's domain. If that DKA returns a matching
Public Key Record, that record is the lookup result and the client does
not query the fDKA for the same pair. If the domain DKA returns no
matching record, or if no domain DKA is designated, the client queries
the fDKA, whose response becomes the final result. Because all
conforming clients follow this same ordered procedure, they obtain the
same result for the same (email-address identifier, selector) pair,
assuming the underlying DKA state is unchanged.</t>
      </section>
      <section anchor="incremental-deployment">
        <name>Incremental Deployment</name>
        <t>The framework operates over existing DNS, email, and HTTPS
infrastructure and is not dependent on universal adoption.
Email-address identifiers under domains that have deployed a DKA use
their respective DKAs for key distribution. Email-address identifiers
under domains that have not deployed a DKA use the fDKA.</t>
      </section>
      <section anchor="discovery-and-retrieval-flow">
        <name>Discovery and Retrieval Flow</name>
        <t>A Requesting Client begins with an email-address identifier for which it
seeks a public key. The flow proceeds as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>The client extracts the domain portion of the identifier.</t>
          </li>
          <li>
            <t>The client queries DNS for a DKA Locator Record at <tt>_dka.&lt;domain&gt;</tt>.</t>
          </li>
          <li>
            <t>If a DKA Locator Record is found, the client obtains the DKA
hostname.</t>
          </li>
          <li>
            <t>The client constructs the lookup URL and sends a Key Lookup Request
to the DKA, specifying the email-address identifier and optionally a
selector.</t>
          </li>
          <li>
            <t>If the DKA returns a matching Public Key Record, the lookup is
complete.</t>
          </li>
          <li>
            <t>If no matching record is found at the domain DKA, or if no DKA
Locator Record exists for the domain, the client sends a Key Lookup
Request to the fDKA.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="dns-designation">
      <name>DNS Designation</name>
      <section anchor="dka-locator-record">
        <name>DKA Locator Record</name>
        <t>A domain designates its DKA by publishing a TXT record at the DNS name
formed by prepending <tt>"_dka."</tt> to the domain. The record format follows
the tag-value syntax used by DMARC <xref target="RFC7489"/> and DKIM <xref target="RFC6376"/>:</t>
        <artwork><![CDATA[
_dka.example.com.  IN  TXT  "v=DKA1;dka=dka.example.com"
]]></artwork>
        <t>The record contains the following tags:</t>
        <ul spacing="normal">
          <li>
            <t><strong><tt>v=DKA1</tt></strong> (REQUIRED): Version tag identifying this as a DKA
designation record and indicating protocol version DKA1.</t>
          </li>
          <li>
            <t><strong><tt>dka=</tt></strong> (REQUIRED): Hostname of the DKA service.</t>
          </li>
        </ul>
        <t>The record format is defined by the following ABNF <xref target="RFC5234"/>:</t>
        <figure anchor="fig-abnf-dka">
          <name>ABNF for DKA Locator Record</name>
          <sourcecode type="abnf"><![CDATA[
dka-record   = version-tag ";" dka-tag *(";" future-tag)
version-tag  = %s"v=DKA1"
dka-tag      = %s"dka=" dka-hostname
dka-hostname = sub-domain *("." sub-domain)
                 ; sub-domain as defined in RFC 5321, Section 4.1.2
future-tag   = tag-name "=" tag-value
tag-name     = ALPHA *(ALPHA / DIGIT / "-")
tag-value    = *(%x21-3A / %x3C-7E)
                 ; printable ASCII excluding ";"
]]></sourcecode>
        </figure>
        <t>The underscore-prefixed subdomain follows the conventions established in
<xref target="RFC8552"/> for DNS names used with underscore-scoped
service designations.</t>
        <t>A domain MUST NOT publish more than one valid DKA Locator Record at the
same <tt>_dka</tt> subdomain. If multiple TXT records exist at that name, a
client MUST ignore records that do not contain a syntactically valid
<tt>v=DKA1</tt> tag. If more than one valid DKA Locator Record remains, the
client MUST treat the condition as a configuration error.</t>
        <t>Clients MUST ignore unrecognized tags in the DKA Locator Record. This
permits future versions to introduce additional tags without breaking
existing clients.</t>
      </section>
      <section anchor="dka-service-endpoint">
        <name>DKA Service Endpoint</name>
        <t>The DKA service identified by the DKA Locator Record MUST expose its
lookup interface at the well-known URI path <tt>/.well-known/dka/</tt> as
defined by <xref target="RFC8615"/>.</t>
        <t>The DKA service MUST be served over HTTPS <xref target="RFC9110"/>. Clients MUST NOT
send Key Lookup Requests over unencrypted HTTP.</t>
      </section>
      <section anchor="fdka-designation">
        <name>fDKA Designation</name>
        <t>The fDKA is designated by a well-known domain managed under IANA
governance. The designation uses the same DKA Locator Record format as
domain DKAs. The recommended designation is <tt>fdka.arpa</tt>. The
corresponding DKA Locator Record would be:</t>
        <artwork><![CDATA[
_dka.fdka.arpa.  IN  TXT  "v=DKA1;dka=dka.fdka.arpa"
]]></artwork>
        <t>The fDKA is intended to operate as a shared community infrastructure 
service, analogous to other IANA-managed infrastructure zones such as those 
under the .arpa top-level domain (see RFC 3172). IANA will designate the 
domain, and the IETF community will determine the detailed operational 
arrangements including selection of operator(s), service expectations, 
abuse mitigation policies, and transparency requirements through the 
normal IETF process.</t>
        <t>The fDKA implements the same registration, verification, lookup, and 
response protocols as a domain DKA, with the sole difference that it does 
not enforce domain verification (<xref target="domain-verification"/>). Operators of 
the fDKA zone MUST publish the DKA Locator Record with DNSSEC signing and 
are expected to follow established best practices for high-availability 
infrastructure services, including robust rate limiting, monitoring, and 
minimal logging of personal data.</t>
      </section>
      <section anchor="subdomain-scoping">
        <name>Subdomain Scoping</name>
        <t>Each domain portion in an email-address identifier is treated as a
distinct designating domain. A DKA Locator Record at <tt>_dka.example.com</tt>
designates a DKA for email-address identifiers whose domain portion is
<tt>example.com</tt>. It does not apply to <tt>sub.example.com</tt> or any other
subdomain. A DKA Locator Record at <tt>_dka.sub.example.com</tt> would be
required to designate a DKA for <tt>sub.example.com</tt>.</t>
      </section>
      <section anchor="client-discovery">
        <name>Client Discovery</name>
        <t>Given an email-address identifier <tt>user@example.com</tt>, a Requesting
Client:</t>
        <ol spacing="normal" type="1"><li>
            <t>Extracts the domain portion: <tt>example.com</tt>.</t>
          </li>
          <li>
            <t>Queries DNS for TXT records at <tt>_dka.example.com</tt>.</t>
          </li>
          <li>
            <t>Parses the response for a record containing <tt>v=DKA1</tt>.</t>
          </li>
          <li>
            <t>Extracts the DKA hostname from the <tt>dka=</tt> tag.</t>
          </li>
          <li>
            <t>Constructs the DKA Service Endpoint as
<tt>https://&lt;dka-hostname&gt;/.well-known/dka/</tt>.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="key-registration">
      <name>Key Registration</name>
      <section anchor="registration-protocol">
        <name>Registration Protocol</name>
        <t>A registrant submits a public key to a DKA by email. The registration
follows a two-step protocol.</t>
        <t><strong>Step 1 -- Initiation.</strong><br/>
The registrant sends an email from the email address to be associated
with the key (the submission email address) to the DKA's designated
mailbox. The email need not contain any specific content.</t>
        <t><strong>Step 2 -- Token exchange and key submission.</strong><br/>
The DKA responds to the submission email address with a verification
email containing a unique, time-limited verification token and
instructions for completing registration. The registrant replies with
the verification token and a JSON payload containing the public key and
optional registration parameters:</t>
        <sourcecode type="json"><![CDATA[
{
  "token": "<verification-token>",
  "public_key": "<base64-encoded-key>",
  "selector": "<optional; defaults to 'default'>",
  "metadata": {}
}
]]></sourcecode>
        <t>In version DKA1, the JSON payload MUST be included in the body of the
reply email. The DKA MUST extract the JSON from the first MIME part
with <tt>Content-Type: application/json</tt>, or, if no such part exists,
from the first <tt>text/plain</tt> MIME part whose content parses as valid
JSON. Future versions of this specification may define additional
submission mechanisms. It is expected that key submission and 
verification workflow will be performed through the use of 
automated assistants.</t>
        <t>The reply email MUST originate from the same email address to which the
verification token was sent. The DKA MUST verify that the sender address
on the reply matches the address to which the token was delivered.</t>
      </section>
      <section anchor="domain-verification">
        <name>Domain Verification</name>
        <t>A domain-scoped DKA MUST verify that the domain portion of the
submission email address matches the domain the DKA serves. If the
domain portion does not match, the DKA MUST reject the submission.</t>
        <t>An fDKA does not perform this domain check and accepts public keys
from any email address. This is the sole protocol-level difference
between a domain DKA and the fDKA.</t>
      </section>
      <section anchor="email-address-verification">
        <name>Email-Address Verification</name>
        <t>The registration protocol described above establishes the registrant's
control of the submission email address through two mechanisms:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Mailbox control.</strong><br/>
The verification token is delivered to the submission email address
and must be returned by the registrant. Successful return of the
token confirms that the registrant has access to the mailbox
associated with the submission email address.</t>
          </li>
          <li>
            <t><strong>DKIM validation.</strong><br/>
The DKA validates the DKIM signature <xref target="RFC6376"/> on the registration
reply and verifies that the domain in the From address is the same
as the DKIM signing domain identified by the d= tag. If these
checks succeed, the DKA records the verification method
dkim-validation.</t>
          </li>
        </ul>
        <t>The DKA records which verification methods were successfully performed.
These are reported in the <tt>verification_methods</tt> field of the Key Lookup
Response.</t>
        <t>The framework is designed to accommodate additional verification methods
in future specifications. The initial verification method identifiers
are:</t>
        <ul spacing="normal">
          <li>
            <t><tt>mailbox-control</tt>: The registrant demonstrated control of the mailbox.</t>
          </li>
          <li>
            <t><tt>dkim-validation</tt>: A DKA-defined verification outcome indicating that
the registration reply passed DKIM signature validation and that the
domain in the From address matched the DKIM signing domain. This
identifier documents what checks were performed by the DKA; it does
not by itself imply any broader security or policy meaning beyond
those checks.</t>
          </li>
        </ul>
      </section>
      <section anchor="token-expiration">
        <name>Token Expiration</name>
        <t>Verification tokens MUST have a finite expiration period. The DKA MUST
communicate the expiration period to the registrant in the verification
email. The DKA MUST reject registration replies containing expired
tokens.</t>
      </section>
      <section anchor="key-storage">
        <name>Key Storage</name>
        <t>Upon successful verification, the DKA stores the public key as a Public
Key Record associated with the submission email address and selector. If
a Public Key Record already exists for the same email-address identifier
and selector, the new record replaces it, and the record's version
number is incremented.</t>
        <t>The <tt>public_key</tt> field contains a base64-encoded value. The DKA MUST
verify that the <tt>public_key</tt> field is syntactically valid base64 before
storing the Public Key Record. The DKA stores and serves this value
without interpreting its decoded contents. The framework does not
prescribe the key type, algorithm, or format of the encoded key
material. Interpretation of the decoded key material is the
responsibility of the consuming application.</t>
      </section>
      <section anchor="registration-confirmation">
        <name>Registration Confirmation</name>
        <t>Upon successful registration, update, or deletion of a Public Key
Record, the DKA SHOULD send a confirmation email to the submission
email address indicating the outcome and the selector affected.</t>
      </section>
      <section anchor="key-deletion">
        <name>Key Deletion</name>
        <t>A registrant may request deletion of a Public Key Record by initiating
the registration protocol and replying to the verification token with a
JSON payload that identifies the selector to be deleted:</t>
        <sourcecode type="json"><![CDATA[
{
  "token": "<verification-token>",
  "selector": "<optional; defaults to 'default'>",
  "delete": true
}
]]></sourcecode>
        <t>A deletion payload MUST NOT contain a <tt>public_key</tt> field. If a payload
contains both a <tt>public_key</tt> field and <tt>"delete": true</tt>, the DKA MUST
reject the request.</t>
        <t>A registration payload containing a valid <tt>public_key</tt> field and no
<tt>"delete": true</tt> is a create-or-replace operation for the Public Key
Record associated with the submission email address and selector.</t>
        <t>The DKA performs the same verification as for registration before
deleting the record identified by the submission email address and
selector. If no <tt>selector</tt> field is present, the DKA deletes the Public
Key Record associated with the default selector. If no matching Public
Key Record exists, the DKA SHOULD treat the request as successfully
completed.</t>
        <figure anchor="fig-registration">
          <name>Key Registration Flow</name>
          <artwork><![CDATA[
                     Key Registration Flow

 Registrant                              DKA Mailbox
     |                                       |
     |  Step 1: Email to DKA                 |
     |-------------------------------------->|
     |                                       |
     |  Step 2: Verification token           |
     |<--------------------------------------|
     |                                       |
     |  Step 3: Reply with token +           |
     |          public key (JSON)            |
     |-------------------------------------->|
     |                                       |
     |                              +------------------+
     |                              | Verify:          |
     |                              |  - Mailbox ctrl  |
     |                              |  - DKIM valid    |
     |                              |  - Domain match  |
     |                              |    (domain DKA)  |
     |                              +------------------+
     |                                       |
     |  Step 4: Confirmation (SHOULD)        |
     |<--------------------------------------|
     |                              [Key stored]
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="key-lookup">
      <name>Key Lookup</name>
      <section anchor="lookup-request">
        <name>Lookup Request</name>
        <t>A Requesting Client obtains a Public Key Record by sending an HTTPS GET
request to the DKA's lookup endpoint:</t>
        <artwork><![CDATA[
GET https://<dka-host>/.well-known/dka/lookup
    ?email_address=<percent-encoded-email>&selector=<selector>
]]></artwork>
        <t>The <tt>email_address</tt> parameter is REQUIRED and specifies the
email-address identifier. The value MUST be percent-encoded per
<xref target="RFC3986"/>; in particular, the "@" character MUST be encoded as <tt>%40</tt>.</t>
        <t>The <tt>selector</tt> parameter is OPTIONAL. If omitted, the DKA returns the
Public Key Record associated with the default selector.</t>
      </section>
      <section anchor="lookup-response">
        <name>Lookup Response</name>
        <t>The DKA MUST return all responses with <tt>Content-Type: application/json</tt>.</t>
        <t>A successful lookup returns a JSON object with the following fields:</t>
        <sourcecode type="json"><![CDATA[
{
  "email_address": "bob@example.com",
  "selector": "default",
  "public_key": "LS0tLS1CRUdJTi...",
  "verification_methods": ["mailbox-control", "dkim-validation"],
  "metadata": {
    "algorithm": "RSA",
    "format": "base64-PEM",
    "expires": "2027-01-31T00:00:00Z"
  },
  "version": 1,
  "updated_at": "2026-03-31T22:31:20+00:00"
}
]]></sourcecode>
        <t>Field definitions:</t>
        <ul spacing="normal">
          <li>
            <t><strong><tt>email_address</tt></strong> (REQUIRED): The email-address identifier
associated with the Public Key Record.</t>
          </li>
          <li>
            <t><strong><tt>selector</tt></strong> (REQUIRED): The selector value.</t>
          </li>
          <li>
            <t><strong><tt>public_key</tt></strong> (REQUIRED): The base64-encoded public key.</t>
          </li>
          <li>
            <t><strong><tt>verification_methods</tt></strong> (REQUIRED): An array of verification method
identifiers indicating which methods the DKA successfully performed
when the key was registered. This field provides provenance
information for the key-to-identifier binding. It does not assert a
trust level; relying applications apply their own trust policies
based on the reported methods.</t>
          </li>
          <li>
            <t><strong><tt>metadata</tt></strong> (REQUIRED): A JSON object containing key-value pairs
provided by the registrant during registration. MAY be an empty
object. The DKA stores and returns metadata without interpreting its
contents.</t>
          </li>
          <li>
            <t><strong><tt>version</tt></strong> (REQUIRED): An integer incremented each time the Public
Key Record for this email-address identifier and selector is
updated. Clients MAY use the version to detect key changes.</t>
          </li>
          <li>
            <t><strong><tt>updated_at</tt></strong> (REQUIRED): An ISO 8601 timestamp indicating when the
Public Key Record was last modified.</t>
          </li>
        </ul>
        <t>If no Public Key Record exists for the specified email-address
identifier and selector, the DKA MUST return an HTTP 404 response. The
response MUST NOT distinguish between "no keys exist for this
identifier" and "keys exist for this identifier but not under the
specified selector."</t>
      </section>
      <section anchor="error-responses">
        <name>Error Responses</name>
        <t>When a request cannot be fulfilled, the DKA MUST return an appropriate
HTTP status code with a JSON body containing at minimum the following
fields:</t>
        <sourcecode type="json"><![CDATA[
{
  "error": "<error-code>",
  "message": "<human-readable description>"
}
]]></sourcecode>
        <t>The following error codes are defined:</t>
        <ul spacing="normal">
          <li>
            <t><tt>not_found</tt>: No matching Public Key Record exists (HTTP 404).</t>
          </li>
          <li>
            <t><tt>invalid_request</tt>: The request is malformed or missing required
parameters (HTTP 400).</t>
          </li>
          <li>
            <t><tt>rate_limited</tt>: The client has exceeded the DKA's rate limit
(HTTP 429).</t>
          </li>
          <li>
            <t><tt>server_error</tt>: An internal error prevented the DKA from
fulfilling the request (HTTP 500).</t>
          </li>
        </ul>
        <t>DKAs MAY define additional error codes. Clients MUST treat unrecognized
error codes as equivalent to <tt>server_error</tt>.</t>
      </section>
      <section anchor="caching">
        <name>Caching</name>
        <t>DKAs SHOULD include appropriate <tt>Cache-Control</tt> headers in lookup
responses. The specific caching policy is an operational decision for
each DKA.</t>
      </section>
      <section anchor="lookup-order">
        <name>Lookup Order</name>
        <t>A Requesting Client looking up a public key for a given
(email-address identifier, selector) pair MUST proceed as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>The client queries DNS for a DKA Locator Record for the identifier's
domain.</t>
          </li>
          <li>
            <t>If a DKA Locator Record is found, the client sends a Key Lookup
Request to the designated domain DKA.</t>
          </li>
          <li>
            <t>If the domain DKA returns a matching Public Key Record, the lookup
is complete. The client MUST NOT query the fDKA for the same
(identifier, selector) pair.</t>
          </li>
          <li>
            <t>If the domain DKA returns a 404 response for the requested
(identifier, selector) pair, or if no DKA Locator Record exists for
the domain, the client sends a Key Lookup Request to the fDKA.</t>
          </li>
          <li>
            <t>The result from the fDKA (a matching record or 404) is the final
result.</t>
          </li>
        </ol>
        <t>This order is deterministic: for any given (identifier, selector) pair,
a conforming client always obtains the same result regardless of
implementation. The domain DKA has priority; the fDKA serves as the
fallback for (identifier, selector) pairs that the domain DKA does not
hold.</t>
        <t>A user MAY register keys at both their domain DKA and the fDKA. For a
given email-address identifier and selector, a conforming client first
queries the domain DKA. If the domain DKA returns a key for that
selector, that key is the lookup result. Otherwise, the client queries
the fDKA, and a key returned by the fDKA becomes the lookup result.</t>
        <figure anchor="fig-lookup">
          <name>Key Lookup Flow</name>
          <artwork><![CDATA[
                        Key Lookup Flow

 Requesting                              Domain
 Client             DNS                  DKA            fDKA
     |                |                    |               |
     | _dka.<domain>? |                    |               |
     |--------------->|                    |               |
     | DKA hostname   |                    |               |
     |<---------------|                    |               |
     |                                     |               |
     |  GET /.well-known/dka/lookup        |               |
     |------------------------------------>|               |
     |  Public Key Record or 404           |               |
     |<------------------------------------|               |
     |                                                     |
     |  [Only if domain DKA returned 404 or no DKA exists] |
     |  GET /.well-known/dka/lookup                        |
     |---------------------------------------------------->|
     |  Public Key Record or 404                           |
     |<----------------------------------------------------|
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="selectors">
      <name>Selectors</name>
      <section anchor="the-default-selector">
        <name>The Default Selector</name>
        <t>Every DKA MUST support a selector value of <tt>"default"</tt>. A registration
that does not specify a selector is stored under the default selector. A
lookup that does not specify a selector returns the Public Key Record
associated with the default selector.</t>
        <t>This ensures that the simplest interaction with the framework ---
registering a key without specifying a selector, looking up a key
without specifying a selector --- works without the registrant or
requesting client being aware of the selector mechanism.</t>
      </section>
      <section anchor="selector-naming">
        <name>Selector Naming</name>
        <t>Selector values are case-insensitive ASCII strings consisting of
letters, digits, and hyphens. Selector values MUST NOT begin or end
with a hyphen. Selector values MUST NOT exceed 63 characters in length.</t>
        <t>The syntax of a selector value is defined by the following ABNF
<xref target="RFC5234"/>:</t>
        <figure anchor="fig-abnf-selector">
          <name>ABNF for Selector Values</name>
          <sourcecode type="abnf"><![CDATA[
selector        = selector-char *(selector-char / "-") selector-char / 
                  selector-char
selector-char   = ALPHA / DIGIT
                 ; maximum 63 characters total
                 ; "-" may appear only between selector-char elements
]]></sourcecode>
        </figure>
        <t>The DKA framework defines one reserved selector value, "default",
which every conforming DKA MUST support. Apart from "default", this
specification does not define a registry of selector values or assign
semantic meaning to selectors. Applications that consume
DKA-distributed keys define their own selector conventions
independently of this specification.</t>
      </section>
      <section anchor="multiple-keys">
        <name>Multiple Keys</name>
        <t>An email-address identifier MAY be associated with any number of Public
Key Records under different selectors at the same DKA. Each
(email-address identifier, selector) pair identifies at most one Public
Key Record. Registration, update, and deletion operations act on a
single (identifier, selector) pair.</t>
      </section>
    </section>
    <section anchor="the-fallback-dka">
      <name>The Fallback DKA</name>
      <section anchor="purpose">
        <name>Purpose</name>
        <t>The fDKA is necessary to bootstrap the DKA framework. Without the
fDKA, the framework would provide service only for identifiers under
domains that have already deployed a DKA, creating a deployment
deadlock in which applications have limited incentive to implement the
framework until enough domains participate, and domains have limited
incentive to deploy until enough applications consume it. The fDKA
breaks this deadlock by providing an immediately available location at
which any email-address identifier can register a key and from which
clients can retrieve keys using the same lookup model.</t>
      </section>
      <section anchor="designation">
        <name>Designation</name>
        <t>The fDKA is designated by a well-known domain managed under IANA
governance. The designation uses the same DKA Locator Record format as
domain DKAs.</t>
      </section>
      <section anchor="operational-equivalence">
        <name>Operational Equivalence</name>
        <t>The fDKA implements the same registration protocol, verification
methods, lookup protocol, and response format as a domain DKA. The sole
operational difference is that the fDKA does not perform domain
verification (<xref target="domain-verification"/>): it accepts registrations from
email-address identifiers belonging to any domain.</t>
        <t>A conforming fDKA implementation is identical to a conforming domain DKA
implementation with the domain restriction removed.</t>
      </section>
      <section anchor="registration-independence">
        <name>Registration Independence</name>
        <t>The domain DKA and the fDKA are independent key stores. A user MAY 
register keys at both their domain DKA and the fDKA. The
existence of a domain DKA does not prevent a user from registering at
the fDKA, and a domain DKA does not suppress the fDKA. For a given
(identifier, selector) pair, the domain DKA takes precedence in the
lookup order (<xref target="lookup-order"/>). As a result, the domain DKA has 
priority for selectors it serves, while the fDKA can serve selectors 
not present at the domain DKA.</t>
        <t>Future specifications may define mechanisms by which a user can express
a policy regarding which of their registered keys should be preferred
for a given purpose.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="security-property">
        <name>Security Property</name>
        <t>The DKA framework provides a single security property: verified
provenance of the key-to-identifier binding. After a successful lookup,
a Requesting Client can determine that:</t>
        <ul spacing="normal">
          <li>
            <t>The public key was submitted by a party who demonstrated control of
the mailbox associated with the email-address identifier at the time
of registration (if <tt>mailbox-control</tt> is reported).</t>
          </li>
          <li>
            <t>The submission satisfied the DKA-defined checks corresponding to
<tt>dkim-validation</tt> (if <tt>dkim-validation</tt> is reported).</t>
          </li>
        </ul>
        <t>The framework does not provide end-to-end authentication of the
registrant's identity, does not attest to the registrant's possession
of the corresponding private key (see <xref target="mailbox-compromise"/>), and does
not by itself provide transparency or historical continuity of keys.</t>
        <t>Future specifications may define transparency logs or other mechanisms 
for tracking the public-key history of (email-address identifier, 
selector) pairs.</t>
      </section>
      <section anchor="transport-security">
        <name>Transport Security</name>
        <t>DKA service endpoints MUST be served over HTTPS to protect the integrity
of lookup responses and prevent substitution of key material by on-path
attackers.</t>
      </section>
      <section anchor="dns-security">
        <name>DNS Security</name>
        <t>The DKA framework relies on DNS for discovery of Domain Key Authorities and
therefore inherits the known vulnerabilities of the DNS protocol, including
cache poisoning, unauthorized zone modifications, and man-in-the-middle
attacks on queries that are not protected by DNSSEC. Without DNSSEC
validation, an attacker capable of poisoning the cache for a
<tt>_dka.&lt;domain&gt;</tt> record could redirect clients to a malicious DKA service
that supplies attacker-controlled public keys, thereby undermining the
integrity of key-to-identifier bindings.</t>
        <t>Domains that publish DKA Locator Records SHOULD deploy DNSSEC to provide
origin authentication and data integrity for these records. The DKA
Locator Record designating the Fallback DKA (fDKA) MUST be signed with
DNSSEC, as the fDKA might serve a large number of email address 
identifiers. Operators of the fDKA zone are expected  to follow 
established DNSSEC operational practices, including regular key rollover 
and monitoring.</t>
      </section>
      <section anchor="verification-provides-provenance-not-trust">
        <name>Verification Provides Provenance, Not Trust</name>
        <t>The <tt>verification_methods</tt> field in a Key Lookup Response reports what
the DKA verified when the key was registered. It does not assert a trust
level or recommend a level of reliance.</t>
        <t>A consuming application that accepts keys verified only by
<tt>mailbox-control</tt> knows that someone with mailbox access registered the
key, but has no domain-level endorsement of that binding. An
application that additionally requires <tt>dkim-validation</tt> knows that the
registration satisfied the DKA-defined checks associated with that
verification method. Neither method verifies that the registrant
possesses the corresponding private key.</t>
        <t>Applications SHOULD select verification requirements based on their
threat model and the consequences of accepting a fraudulent key. The
framework does not impose policy; it provides the provenance data from
which applications can make informed decisions.</t>
      </section>
      <section anchor="mailbox-compromise">
        <name>Mailbox Compromise</name>
        <t>The primary threat to the key-to-identifier binding is compromise of the
registrant's email account, which would allow an attacker to register a
fraudulent key. This risk is inherent to any system that uses
email-based verification and is mitigated by strong email account
security practices, including multi-factor authentication.</t>
        <t>The current registration protocol verifies that the registrant controls
the mailbox associated with the email-address identifier but does not
verify that the registrant possesses the private key corresponding to
the submitted public key. A proof-of-possession mechanism, in which the
registrant signs a challenge with the corresponding private key, would
strengthen the key-to-identifier binding by ensuring that only a party
holding the private key can register it. Such a mechanism is expected to
be addressed in a future specification.</t>
      </section>
      <section anchor="non-enumeration">
        <name>Non-Enumeration</name>
        <t>A DKA MUST NOT provide any interface that enumerates email-address
identifiers for which Public Key Records exist.</t>
        <t>A DKA MUST NOT provide any interface that enumerates selector values
associated with a given email-address identifier.</t>
        <t>Lookups are point queries only: given an email-address identifier and a
selector, the DKA returns the matching record or indicates that no
matching record exists. When no matching record exists, the DKA MUST NOT
distinguish between "this identifier has no keys" and "this identifier
has keys but not under the specified selector." Both cases produce the
same response.</t>
      </section>
      <section anchor="rate-limiting">
        <name>Rate Limiting</name>
        <t>DKAs SHOULD implement rate limiting on Key Lookup Requests to mitigate
enumeration attempts through brute-force querying of identifier-selector
combinations.</t>
      </section>
      <section anchor="metadata-authenticity">
        <name>Metadata Authenticity</name>
        <t>The <tt>metadata</tt> field in a Public Key Record is self-asserted by the
registrant and is not verified by the DKA. Consuming applications MUST
NOT treat metadata values (such as algorithm identifiers or expiration
dates) as authoritative without independent verification.</t>
      </section>
      <section anchor="key-lifecycle">
        <name>Key Lifecycle</name>
        <t>Key updates and deletions follow the same verification requirements as
initial registration. Detailed key lifecycle management, including
rotation policies, revocation mechanisms, and multi-device coordination,
is expected to be addressed in future specifications. Key transparency
logs, which would allow clients to detect unexpected key changes, are
a potential future extension.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The DKA framework publishes public-key bindings for email-address
identifiers. As with any public lookup mechanism, this creates privacy
considerations related to the exposure of identifier participation,
metadata, and lookup behavior.</t>
      <t>A successful lookup reveals that a given (email-address identifier,
selector) pair has a registered Public Key Record at a particular DKA.
This may disclose that the identifier participates in the framework and,
in some cases, that the registrant uses multiple selectors for different
application contexts. Although the DKA framework prohibits enumeration
interfaces and recommends rate limiting, a determined attacker may still
attempt to infer participation through repeated point queries.</t>
      <t>The framework mitigates some privacy risks by decentralizing storage and
lookup. Public Key Records are not maintained in a single global
repository. Domains MAY operate their own DKAs, thereby limiting
centralized aggregation of identifier-to-key bindings. The fDKA provides
universal coverage without requiring all domains to deploy their own
DKAs, but it also concentrates lookup traffic for identifiers whose
domains have not deployed a DKA.</t>
      <t>The DKA framework does not require submission, escrow, or storage of
private keys. DKAs store only public-key material and associated
metadata. Compromise of a DKA therefore does not, by itself, reveal
private keys.</t>
      <t>The framework avoids dependence on a separate revocation authority. A
registrant who controls the mailbox associated with an email-address
identifier can replace or delete a Public Key Record using the same
verification process as registration. This allows users to revoke or
rotate keys without relying on an external certificate or revocation
service.</t>
      <t>DKA and fDKA operators will generally be able to observe lookup requests
and registration traffic, including queried identifiers, source
addresses, and timing information. Operators SHOULD minimize retention
of logs containing personal data, SHOULD protect such logs
appropriately, and SHOULD publish clear retention policies where
feasible.</t>
      <t>Applications using DKA-distributed keys should consider whether a lookup
may itself disclose user intent. For example, querying for a recipient's
key may reveal an intention to communicate securely with that recipient.
The lookup selector may reveal the purpose or application context of
such communication. Applications with stronger privacy requirements MAY
use additional measures such as query minimization, proxying, or
privacy-preserving access mechanisms.</t>
      <t>The framework supports self-service key recovery, provided the user
retains control of the associated mailbox.</t>
    </section>
    <section anchor="manageability-considerations">
      <name>Manageability Considerations</name>
      <t>DKA operators are responsible for maintaining reliable, secure, and
scalable key services. This section outlines operational considerations
for deploying and managing DKAs and the fDKA.</t>
      <section anchor="service-availability">
        <name>Service Availability</name>
        <t>DKA services SHOULD be operated with high availability. Operators SHOULD
deploy redundant infrastructure, load balancing, and monitoring to
ensure consistent responsiveness to lookup and registration requests.</t>
      </section>
      <section anchor="logging-and-monitoring">
        <name>Logging and Monitoring</name>
        <t>Operators SHOULD implement logging sufficient to diagnose operational
issues, detect abuse, and support security investigations. Logs SHOULD
avoid storing unnecessary personal data and SHOULD be protected
appropriately. Retention periods SHOULD be minimized.</t>
      </section>
      <section anchor="abuse-mitigation">
        <name>Abuse Mitigation</name>
        <t>DKAs SHOULD implement rate limiting, anomaly detection, and other abuse
controls to prevent enumeration attempts, denial-of-service attacks, and
malicious registration behavior.</t>
      </section>
      <section anchor="key-storage-integrity">
        <name>Key Storage Integrity</name>
        <t>Operators MUST ensure that stored Public Key Records are protected
against unauthorized modification. Storage systems SHOULD support
integrity verification, access control, and regular backups.</t>
      </section>
      <section anchor="dns-operations">
        <name>DNS Operations</name>
        <t>Domains publishing DKA Locator Records SHOULD maintain DNSSEC signing
and monitoring. Operators SHOULD ensure timely updates to DKA hostnames
and SHOULD avoid stale or conflicting records.</t>
      </section>
      <section anchor="operational-transparency">
        <name>Operational Transparency</name>
        <t>Operators SHOULD publish documentation describing service behavior,
retention policies, rate limits, and operational practices. For the
fDKA, such transparency is especially important due to its role as a
shared infrastructure service.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="well-known-uri-registration">
        <name>Well-Known URI Registration</name>
        <t>This document requests registration of the following well-known URI
<xref target="RFC8615"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">URI suffix</td>
              <td align="left">dka</td>
            </tr>
            <tr>
              <td align="left">Change controller</td>
              <td align="left">IETF</td>
            </tr>
            <tr>
              <td align="left">Specification document</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">Status</td>
              <td align="left">permanent</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="fdka-domain">
        <name>fDKA Domain</name>
        <t>This document requests designation of a well-known domain for the
Fallback DKA under IANA governance. The operational model for the fDKA
is that of a community-operated infrastructure service: IANA designates
the domain name, and the IETF community determines the operational
arrangements through the normal IETF process, similar to other
infrastructure services under the <tt>.arpa</tt> top-level domain.</t>
        <t>The recommended designation is <tt>fdka.arpa</tt>. The corresponding DKA
Locator Record would be:</t>
        <artwork><![CDATA[
_dka.fdka.arpa.  IN  TXT  "v=DKA1;dka=dka.fdka.arpa"
]]></artwork>
      </section>
      <section anchor="verification-methods-registry">
        <name>Verification Methods Registry</name>
        <t>This document requests establishment of an IANA registry for DKA
verification method identifiers. The initial contents of the registry
are:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Identifier</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>mailbox-control</tt></td>
              <td align="left">Registrant demonstrated control of the mailbox for the submission email address</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>dkim-validation</tt></td>
              <td align="left">DKA-defined verification outcome for a registration reply that passes DKIM validation and the additional domain-consistency checks defined by this specification</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
        <t>New entries may be added through the Specification Required
<xref target="RFC8126"/> policy.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3986" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC5321" target="https://www.rfc-editor.org/info/rfc5321" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5321.xml">
          <front>
            <title>Simple Mail Transfer Protocol</title>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>This document is a specification of the basic protocol for Internet electronic mail transport. It consolidates, updates, and clarifies several previous documents, making all or parts of most of them obsolete. It covers the SMTP extension mechanisms and best practices for the contemporary Internet, but does not provide details about particular extensions. Although SMTP was designed as a mail transport and delivery protocol, this specification also contains information that is important to its use as a "mail submission" protocol for "split-UA" (User Agent) mail reading systems and mobile environments. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5321"/>
          <seriesInfo name="DOI" value="10.17487/RFC5321"/>
        </reference>
        <reference anchor="RFC6376" target="https://www.rfc-editor.org/info/rfc6376" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6376.xml">
          <front>
            <title>DomainKeys Identified Mail (DKIM) Signatures</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="T. Hansen" initials="T." role="editor" surname="Hansen"/>
            <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy"/>
            <date month="September" year="2011"/>
            <abstract>
              <t>DomainKeys Identified Mail (DKIM) permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message. This can be an author's organization, an operational relay, or one of their agents. DKIM separates the question of the identity of the Signer of the message from the purported author of the message. Assertion of responsibility is validated through a cryptographic signature and by querying the Signer's domain directly to retrieve the appropriate public key. Message transit from author to recipient is through relays that typically make no substantive change to the message content and thus preserve the DKIM signature.</t>
              <t>This memo obsoletes RFC 4871 and RFC 5672. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="76"/>
          <seriesInfo name="RFC" value="6376"/>
          <seriesInfo name="DOI" value="10.17487/RFC6376"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8552" target="https://www.rfc-editor.org/info/rfc8552" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8552.xml">
          <front>
            <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="222"/>
          <seriesInfo name="RFC" value="8552"/>
          <seriesInfo name="DOI" value="10.17487/RFC8552"/>
        </reference>
        <reference anchor="RFC8615" target="https://www.rfc-editor.org/info/rfc8615" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8615.xml">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9110" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9110.xml">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7489" target="https://www.rfc-editor.org/info/rfc7489" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7489.xml">
          <front>
            <title>Domain-based Message Authentication, Reporting, and Conformance (DMARC)</title>
            <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy"/>
            <author fullname="E. Zwicky" initials="E." role="editor" surname="Zwicky"/>
            <date month="March" year="2015"/>
            <abstract>
              <t>Domain-based Message Authentication, Reporting, and Conformance (DMARC) is a scalable mechanism by which a mail-originating organization can express domain-level policies and preferences for message validation, disposition, and reporting, that a mail-receiving organization can use to improve mail handling.</t>
              <t>Originators of Internet Mail need to be able to associate reliable and authenticated domain identifiers with messages, communicate policies about messages that use those identifiers, and report about mail using those identifiers. These abilities have several benefits: Receivers can provide feedback to Domain Owners about the use of their domains; this feedback can provide valuable insight about the management of internal operations and the presence of external domain name abuse.</t>
              <t>DMARC does not produce or encourage elevated delivery privilege of authenticated email. DMARC is a mechanism for policy distribution that enables increasingly strict handling of messages that fail authentication checks, ranging from no action, through altered delivery, up to message rejection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7489"/>
          <seriesInfo name="DOI" value="10.17487/RFC7489"/>
        </reference>
        <reference anchor="RFC7671" target="https://www.rfc-editor.org/info/rfc7671" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7671.xml">
          <front>
            <title>The DNS-Based Authentication of Named Entities (DANE) Protocol: Updates and Operational Guidance</title>
            <author fullname="V. Dukhovni" initials="V." surname="Dukhovni"/>
            <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document clarifies and updates the DNS-Based Authentication of Named Entities (DANE) TLSA specification (RFC 6698), based on subsequent implementation experience. It also contains guidance for implementers, operators, and protocol developers who want to use DANE records.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7671"/>
          <seriesInfo name="DOI" value="10.17487/RFC7671"/>
        </reference>
        <reference anchor="RFC7929" target="https://www.rfc-editor.org/info/rfc7929" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7929.xml">
          <front>
            <title>DNS-Based Authentication of Named Entities (DANE) Bindings for OpenPGP</title>
            <author fullname="P. Wouters" initials="P." surname="Wouters"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>OpenPGP is a message format for email (and file) encryption that lacks a standardized lookup mechanism to securely obtain OpenPGP public keys. DNS-Based Authentication of Named Entities (DANE) is a method for publishing public keys in DNS. This document specifies a DANE method for publishing and locating OpenPGP public keys in DNS for a specific email address using a new OPENPGPKEY DNS resource record. Security is provided via Secure DNS, however the OPENPGPKEY record is not a replacement for verification of authenticity via the "web of trust" or manual verification. The OPENPGPKEY record can be used to encrypt an email that would otherwise have to be sent unencrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7929"/>
          <seriesInfo name="DOI" value="10.17487/RFC7929"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8551" target="https://www.rfc-editor.org/info/rfc8551" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8551.xml">
          <front>
            <title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="B. Ramsdell" initials="B." surname="Ramsdell"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>This document defines Secure/Multipurpose Internet Mail Extensions (S/MIME) version 4.0. S/MIME provides a consistent way to send and receive secure MIME data. Digital signatures provide authentication, message integrity, and non-repudiation with proof of origin. Encryption provides data confidentiality. Compression can be used to reduce data size. This document obsoletes RFC 5751.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8551"/>
          <seriesInfo name="DOI" value="10.17487/RFC8551"/>
        </reference>
        <reference anchor="RFC9580" target="https://www.rfc-editor.org/info/rfc9580" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9580.xml">
          <front>
            <title>OpenPGP</title>
            <author fullname="P. Wouters" initials="P." role="editor" surname="Wouters"/>
            <author fullname="D. Huigens" initials="D." surname="Huigens"/>
            <author fullname="J. Winter" initials="J." surname="Winter"/>
            <author fullname="Y. Niibe" initials="Y." surname="Niibe"/>
            <date month="July" year="2024"/>
            <abstract>
              <t>This document specifies the message formats used in OpenPGP. OpenPGP provides encryption with public key or symmetric cryptographic algorithms, digital signatures, compression, and key management.</t>
              <t>This document is maintained in order to publish all necessary information needed to develop interoperable applications based on the OpenPGP format. It is not a step-by-step cookbook for writing an application. It describes only the format and methods needed to read, check, generate, and write conforming packets crossing any network. It does not deal with storage and implementation questions. It does, however, discuss implementation issues necessary to avoid security flaws.</t>
              <t>This document obsoletes RFCs 4880 ("OpenPGP Message Format"), 5581 ("The Camellia Cipher in OpenPGP"), and 6637 ("Elliptic Curve Cryptography (ECC) in OpenPGP").</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9580"/>
          <seriesInfo name="DOI" value="10.17487/RFC9580"/>
        </reference>
        <reference anchor="I-D.koch-openpgp-webkey-service">
          <front>
            <title>OpenPGP Web Key Directory</title>
            <author initials="W." surname="Koch" fullname="Werner Koch">
              <organization/>
            </author>
            <date year="2024" month="March"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-koch-openpgp-webkey-service-21"/>
        </reference>
      </references>
    </references>
    <?line 1218?>

<section anchor="complete-example">
      <name>Complete Example</name>
      <t>This appendix illustrates the full DKA discovery, registration, and
lookup flow using a working deployment.</t>
      <section anchor="dns-discovery">
        <name>DNS Discovery</name>
        <t>A Requesting Client seeks the public key for <tt>alice@example.com</tt>. It
queries DNS:</t>
        <artwork><![CDATA[
_dka.example.com.  IN  TXT  "v=DKA1;dka=dka.example.com"
]]></artwork>
        <t>The client parses the record and determines that the DKA for
<tt>example.com</tt> is located at <tt>dka.example.com</tt>.</t>
      </section>
      <section anchor="key-registration-1">
        <name>Key Registration</name>
        <t>Alice registers a public key with her domain's DKA:</t>
        <ol spacing="normal" type="1"><li>
            <t>Alice sends an email from <tt>alice@example.com</tt> to
<tt>dka@dka.example.com</tt>.</t>
          </li>
          <li>
            <t>The DKA responds with a verification email:  </t>
            <artwork><![CDATA[
Subject: DKA: Your Verification Token

Your DKA verification token:

  XGsQ2qfjXyJy8y6IVsKAUZQgmlaIL0G6fTbhK8KN

This token expires in 600 seconds.

To register a public key, reply with:
  Subject: register
  Body (JSON): {"token": "<token>", "public_key": "<base64>",
                "selector": "<optional>", "metadata": {}}
]]></artwork>
          </li>
          <li>
            <t>Alice replies from <tt>alice@example.com</tt> with:  </t>
            <artwork><![CDATA[
Subject: register
Body:
{
  "token": "XGsQ2qfjXyJy8y6IVsKAUZQgmlaIL0G6fTbhK8KN",
  "public_key": "LS0tLS1CRUdJTi...",
  "selector": "default",
  "metadata": {
    "algorithm": "RSA",
    "format": "base64-PEM",
    "expires": "2027-01-31T00:00:00Z"
  }
}
]]></artwork>
          </li>
          <li>
            <t>The DKA verifies mailbox control and applies the checks associated
with <tt>dkim-validation</tt>, then stores the key.</t>
          </li>
        </ol>
      </section>
      <section anchor="key-lookup-domain-dka">
        <name>Key Lookup --- Domain DKA</name>
        <t>The Requesting Client sends a lookup request:</t>
        <artwork><![CDATA[
GET https://dka.example.com/.well-known/dka/lookup
    ?email_address=alice%example.com&selector=default
]]></artwork>
        <t>The DKA returns:</t>
        <sourcecode type="json"><![CDATA[
{
  "email_address": "alice@example.com",
  "selector": "default",
  "public_key": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t...",
  "verification_methods": ["mailbox-control", "dkim-validation"],
  "metadata": {
    "algorithm": "RSA",
    "format": "base64-PEM",
    "expires": "2027-01-31T00:00:00Z"
  },
  "version": 1,
  "updated_at": "2026-03-31T22:31:20+00:00"
}
]]></sourcecode>
        <t>Because the domain DKA returned a matching record, a conforming client
does not query the fDKA for <tt>(alice@example.com, "default")</tt>.</t>
      </section>
      <section anchor="key-lookup-fallback-dka">
        <name>Key Lookup --- Fallback DKA</name>
        <t>A Gmail user, <tt>bob21@gmail.com</tt>, has registered a key with the fDKA at
<tt>dka.fdka.arpa</tt>. A Requesting Client seeking <tt>bob21@gmail.com</tt>'s key:</t>
        <ol spacing="normal" type="1"><li>
            <t>Queries <tt>_dka.gmail.com</tt> --- no DKA Locator Record found.</t>
          </li>
          <li>
            <t>Since no domain DKA exists, queries the fDKA:  </t>
            <artwork><![CDATA[
GET https://dka.fdka.arpa/.well-known/dka/lookup
    ?email_address=bob21%40gmail.com&selector=default
]]></artwork>
          </li>
          <li>
            <t>The fDKA returns:</t>
          </li>
        </ol>
        <sourcecode type="json"><![CDATA[
{
  "email_address": "bob21@gmail.com",
  "selector": "default",
  "public_key": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t...",
  "verification_methods": ["mailbox-control", "dkim-validation"],
  "metadata": {},
  "version": 1,
  "updated_at": "2026-03-31T19:17:13+00:00"
}
]]></sourcecode>
        <t>This example demonstrates the fDKA's role as a bootstrap mechanism: a
Gmail user participates in the framework without any action by Google.
If Google later deploys a DKA for <tt>gmail.com</tt>, the domain DKA would take
priority for any <tt>(identifier, selector)</tt> pairs it serves, while the
fDKA would continue to serve pairs not present at Google's DKA.</t>
      </section>
    </section>
    <section anchor="reference-implementation">
      <name>Reference Implementation</name>
      <t>An open-source reference implementation of the DKA framework is
available. The implementation serves as both a domain DKA and an fDKA,
with the operational difference controlled by a configuration parameter
specifying whether the DKA restricts registrations to a specific domain
or accepts registrations from any domain.</t>
    </section>
    <section anchor="working-demonstration">
      <name>Working Demonstration</name>
      <t>A working demonstration of the DKA framework, illustrating key
registration, key lookup, and fDKA behavior, is available at:</t>
      <ul spacing="normal">
        <li>
          <t>https://keymail1.com/demo</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+V9aXcbx7Xg9/oVdejjMWUDMEnJsk0vz7QkO4zWiLSd5eSZ
DaAAdtRAI90NUogk//a5ay3dDZBy8ubMnOFJLBLoruXW3bcaDoemyZvCHdu9
h+Uiy5f2sdvYk3VzWVZ5k7va7j98fHLn2D58djZ86Op8vswaN7Uv1uMin9DD
D/O6qfLxusnLpZ2VlX0E4xTDk+m0cnVtT6du2eSz3FX1nsnG48pd4WSPT+wP
VbZw12X1as9My8kS/ji20yqbNcP6OlvkMNFlthxOX2XDmT45PDgwE1jAvKw2
x7ZupqZejxd5XcPczWYFA5w+Ov/B5Kvq2DbVum6ODg6+PDgyWeUymPVktYJV
Z7jS2mbLqX3psmJ4ni/cnsHh51W5XsFzp8tpfpVP11lhz/z4e+aV28BT02Nj
hxaWhf+sGA7wjZ1GcMCvHILB5mH75sot1w7etrJUP4tZ5TRoU07wn7qsmsrN
avp9s6BfMzoSeipf1sf28cieBSjBmJYB+Div4TnX/rKs5jShW7klrgg/m5Tr
ZYNw/GmZ45meNQDZGr+hpR/bV6N6FB3Fd0V+5UaTcmHMsqwWAMYr2s3LHx4c
HR5+Kb/e/fKL+/LrZ0d37+mvd48O5df7dz/XB744/Fwf+OKzz4701/uHn8mv
Xx4eHhwbky9nrQk/v/eFTvj5/c916M+/PPrSD310PwytD3z52RcH+Ovp8OHo
VTm5HJYAj9V8Nbx2YzjDYe2qq3xCk8ApCWE8h2de/PjC/uLGgvCVmzSAgXv0
mD8Z+pHj+WVkH8P48qEezi+uWroqfDMFgB/bo4Oje8ODu/QJLACIDverA54u
G3yrGT5E0lAK2bH44dGhGQJd439sNgakzCaNMeeXeW2BztYLOH5br9wEsbK2
zaWzPaS/YcK3nvQGNrMGuUC2nCCGTQX3h23ctws3AWzJ6wVxAxyf8GmYCUcw
CIx6lU3cyJ7Dt34K65bZuHBImn7bsGRaW1PaqbIf/F4IIm8IK4gAZf8wY9bY
KwAk7m8AXAJWC/8ivft1wiSmdgWd47CeACSnES3XtPJ01REh2zXQUMXzGF7f
yAI/y4pinE1eWWRu+zMC36oqgcRhtkkJK8rmjkaOx7q+LGunw9T2MoPdLEvY
t1sV5QaWleF4sHxeR76cE0jHZdng0a5W+AlMA4BbWENrusxgnBzXCK8Dva6y
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

-->

</rfc>
