<?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-http-message-signatures-directory-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="HTTP Message Signatures Directory">HTTP Message Signatures Directory</title>
    <seriesInfo name="Internet-Draft" value="draft-meunier-http-message-signatures-directory-04"/>
    <author fullname="Thibault Meunier">
      <organization>Cloudflare</organization>
      <address>
        <email>ot-ietf@thibault.uk</email>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <area>Web and Internet Transport</area>
    <workgroup>Web Bot Auth</workgroup>
    <keyword>not-yet</keyword>
    <abstract>
      <?line 51?>

<t>This document describes a method for clients using <xref target="HTTP-MESSAGE-SIGNATURES"/>
to advertise their signing keys.</t>
      <t>It defines a key directory format based on JWKS as defined in <xref section="5" sectionFormat="of" target="JWK"/>,
as well as new HTTP Method Context to allow for in-band key discovery.</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/http-message-signatures-directory/draft-meunier-http-message-signatures-directory.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-meunier-http-message-signatures-directory/"/>.
      </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/http-message-signatures-directory"/>.</t>
    </note>
  </front>
  <middle>
    <?line 60?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="HTTP-MESSAGE-SIGNATURES"/> allow a signer to generate a signature over an HTTP message, and a verifier to validate it.
The specification assumes verifiers have prior knowledge of
signers' key material, requiring out-of-band key distribution mechanisms. This creates deployment
friction and limits the ability to dynamically verify signatures from previously unknown signers.</t>
      <t>This document defines:</t>
      <ol spacing="normal" type="1"><li>
          <t>A standardized key directory format based on JWKS for publishing HTTP Message Signatures keys,</t>
        </li>
        <li>
          <t>A well-known URI location for discovering these key directories,</t>
        </li>
        <li>
          <t>A new HTTP header field enabling in-band key directory location discovery.</t>
        </li>
      </ol>
      <t>Together, these mechanisms enable key distribution and discovery for HTTP Message Signatures cryptographic material.</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?>

</section>
    <section anchor="configuration">
      <name>Configuration</name>
      <t>The key directory is served as a JSON Web Key Set (JWKS) as defined in <xref section="5" sectionFormat="of" target="JWK"/>.
The "alg" parameter are restricted to algorithm registered against HTTP Signature Algorithms Section of <xref target="HTTP-MESSAGE-SIGNATURES-IANA"/></t>
      <t>The directory <bcp14>SHOULD</bcp14> be served over HTTPS.
The directory <bcp14>MUST</bcp14> be served with media type <tt>application/http-message-signatures-directory+json</tt>.</t>
      <t>A client application <bcp14>SHOULD</bcp14> validate the directory format and reject malformed entries.</t>
    </section>
    <section anchor="http-method-context-signature-agent">
      <name>HTTP Method Context <tt>Signature-Agent</tt></name>
      <t>A service sending signed requests as defined in <xref target="HTTP-MESSAGE-SIGNATURES"/> <bcp14>MAY</bcp14> include a
<tt>Signature-Agent</tt> header field to communicate its signing key directory. This header
field contains a URI allowing retrieval of an HTTP Message Signatures Directory as
defined in <xref target="configuration"/>.</t>
      <section anchor="header-field-definition">
        <name>Header Field Definition</name>
        <t>The <tt>Signature-Agent</tt> header field is an Dictionary Structured Header as defined
in <xref section="3.2" sectionFormat="of" target="STRUCTURED-HEADERS"/>.
Its member values <bcp14>MUST</bcp14> be an String Item which contain a <xref target="URI"/>.</t>
        <t>The URI scheme <bcp14>MUST</bcp14> be one of:</t>
        <ul spacing="normal">
          <li>
            <t><strong>https (<bcp14>RECOMMENDED</bcp14>)</strong>: Points to an HTTPS resource serving the key directory</t>
          </li>
          <li>
            <t><strong>http</strong>: Points to an HTTP resource serving the key directory</t>
          </li>
          <li>
            <t><strong>data</strong>: Contains an inline key directory</t>
          </li>
        </ul>
        <t>When using the "data" URI scheme, the media type <bcp14>MUST</bcp14> be
<tt>application/http-message-signatures-directory+json</tt>. The content <bcp14>MAY</bcp14> be base64 encoded
as per <xref target="BASE64"/>.</t>
        <t>If dictonary values are not a valid URI-reference, the entire header field <bcp14>MAY</bcp14> be
ignored.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="key-rotation">
        <name>Key rotation</name>
        <t>Clients <bcp14>SHOULD</bcp14> implement key rotation by including multiple keys in the directory
with a different validity period. When rotating keys, clients <bcp14>SHOULD</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Add the new key to the directory before its intended use date</t>
          </li>
          <li>
            <t>Continue to include the old key until its expiration date</t>
          </li>
          <li>
            <t>Remove expired keys from the directory</t>
          </li>
        </ol>
        <t>Servers <bcp14>SHOULD</bcp14> cache the directory contents and refresh upon expiration.</t>
      </section>
      <section anchor="binding-keys-to-the-directory-authority">
        <name>Binding keys to the directory authority</name>
        <t>To ensure the authenticity and integrity of the key material provided by the
directory, clients <strong><bcp14>SHOULD</bcp14></strong> validate the directory's response.</t>
        <t>When a directory server provides a key directory over HTTP or HTTPS, it is
<bcp14>RECOMMENDED</bcp14> that it constructs and includes one HTTP Message Signatures per keys
with the response, as defined in <xref target="HTTP-MESSAGE-SIGNATURES"/>.
Each key <bcp14>SHOULD</bcp14> be used to provide one signature.</t>
        <t>Directory server <bcp14>SHOULD</bcp14> include:</t>
        <dl>
          <dt><tt>@authority</tt></dt>
          <dd>
            <t>as defined in <xref section="2.2.3" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/>. <tt>req</tt> flag defined in <xref section="2.4" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/> <bcp14>MUST</bcp14> be set.</t>
          </dd>
        </dl>
        <t>Directory server <bcp14>SHOULD</bcp14> include the following <tt>@signature-params</tt> as defined in
<xref section="2.3" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/></t>
        <dl>
          <dt><tt>created</tt></dt>
          <dd>
            <t>as defined in <xref section="2.3" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/></t>
          </dd>
          <dt><tt>expires</tt></dt>
          <dd>
            <t>as defined in <xref section="2.3" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/></t>
          </dd>
          <dt><tt>keyid</tt></dt>
          <dd>
            <t><bcp14>MUST</bcp14> be a base64url JWK SHA-256 Thumbprint as defined in <xref section="3.2" sectionFormat="of" target="JWK-THUMBPRINT"/> for RSA and EC, and in <xref section="A.3" sectionFormat="of" target="JWK-OKP"/> for ed25519.</t>
          </dd>
          <dt><tt>tag</tt></dt>
          <dd>
            <t><bcp14>MUST</bcp14> be <tt>http-message-signatures-directory</tt></t>
          </dd>
        </dl>
        <t>Clients <bcp14>SHOULD</bcp14> validate these signatures using the keys provided by the
directory. Clients <bcp14>SHOULD</bcp14> ignore keys from a directory response that do not have
a corresponding valid signature. This validation ensures the integrity of the
key set and its association with the intended directory.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Key directories enable discovery of signing keys which may reveal information about the
signing entity. Implementers should consider:</t>
      <section anchor="directory-content">
        <name>Directory Content</name>
        <t>Key directories should only contain keys actively used for signing. Including additional
keys or metadata may expose unnecessary information about the signing service.</t>
      </section>
      <section anchor="access-patterns">
        <name>Access Patterns</name>
        <t>Verifiers accessing key directories may reveal information about signature verification
patterns. Directory servers should avoid logging personally identifiable information
from directory requests.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This section contains considerations for IANA.</t>
      <section anchor="wkuri-reg">
        <name>Well-Known 'http-message-signatures-directory' URI</name>
        <t>This document updates the "Well-Known URIs" Registry <xref target="WellKnownURIs"/> with the
following values.</t>
        <table anchor="wellknownuri-values">
          <name>'http-message-signatures-directory' Well-Known URI</name>
          <thead>
            <tr>
              <th align="left">URI Suffix</th>
              <th align="left">Change Controller</th>
              <th align="left">Reference</th>
              <th align="left">Status</th>
              <th align="left">Related information</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">http-message-signatures-directory</td>
              <td align="left">IETF</td>
              <td align="left">[this document]</td>
              <td align="left">permanent</td>
              <td align="left">None</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>The following entries should be added to the IANA "media types"
registry:</t>
        <ul spacing="normal">
          <li>
            <t>"application/http-message-signatures-directory+json"</t>
          </li>
        </ul>
        <t>The templates for these entries are listed below and the
reference should be this RFC.</t>
        <section anchor="applicationhttp-message-signatures-directoryjson-media-type">
          <name>"application/http-message-signatures-directory+json" media type</name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>http-message-signatures-directory</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>"binary"</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t>see <xref target="security"/></t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>this specification</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>Services that implement the signer role for HTTP Message
Signatures and verifiers that interact with the signer for
the purpose of validating signatures.</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Additional information:</dt>
            <dd>
              <dl spacing="compact">
                <dt>Magic number(s):</dt>
                <dd>N/A</dd>
                <dt>Deprecated alias names for this type:</dt>
                <dd>N/A</dd>
                <dt>File extension(s):</dt>
                <dd>N/A</dd>
                <dt>Macintosh file type code(s):</dt>
                <dd>N/A</dd>
              </dl>
            </dd>
            <dt>Person and email address to contact for further information:</dt>
            <dd>
              <t>see Authors' Addresses section</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Author:</dt>
            <dd>
              <t>see Authors' Addresses section</t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
          </dl>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="HTTP">
          <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>
        <reference anchor="HTTP-MESSAGE-SIGNATURES">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="HTTP-MESSAGE-SIGNATURES-IANA" target="https://www.iana.org/assignments/http-message-signature/http-message-signature.xhtml">
          <front>
            <title>HTTP Message Signatures</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JWK">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
        <reference anchor="JWK-OKP">
          <front>
            <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8037"/>
          <seriesInfo name="DOI" value="10.17487/RFC8037"/>
        </reference>
        <reference anchor="JWK-THUMBPRINT">
          <front>
            <title>JSON Web Key (JWK) Thumbprint</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7638"/>
          <seriesInfo name="DOI" value="10.17487/RFC7638"/>
        </reference>
        <reference anchor="STRUCTURED-HEADERS">
          <front>
            <title>Structured Field Values for HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="P-H. Kamp" surname="P-H. Kamp"/>
            <date month="February" year="2021"/>
            <abstract>
              <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields that wish to use a common syntax that is more restrictive than traditional HTTP field values.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8941"/>
          <seriesInfo name="DOI" value="10.17487/RFC8941"/>
        </reference>
        <reference anchor="URI">
          <front>
            <title>URI Design and Ownership</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Section 1.1.1 of RFC 3986 defines URI syntax as "a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme." In other words, the structure of a URI is defined by its scheme. While it is common for schemes to further delegate their substructure to the URI's owner, publishing independent standards that mandate particular forms of substructure in URIs is often problematic.</t>
              <t>This document provides guidance on the specification of URI substructure in standards.</t>
              <t>This document obsoletes RFC 7320 and updates RFC 3986.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="190"/>
          <seriesInfo name="RFC" value="8820"/>
          <seriesInfo name="DOI" value="10.17487/RFC8820"/>
        </reference>
        <reference anchor="WellKnownURIs" target="https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml">
          <front>
            <title>Well-Known URIs</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </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="BASE64">
          <front>
            <title>The "data" URL scheme</title>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="August" year="1998"/>
            <abstract>
              <t>A new URL scheme, "data", is defined. It allows inclusion of small data items as "immediate" data, as if it had been included externally. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2397"/>
          <seriesInfo name="DOI" value="10.17487/RFC2397"/>
        </reference>
        <reference anchor="CRYPTO-TEST-KEYS">
          <front>
            <title>Standard Public Key Cryptography (PKC) Test Keys</title>
            <author fullname="P. Gutmann" initials="P." surname="Gutmann"/>
            <author fullname="C. Bonnell" initials="C." surname="Bonnell"/>
            <date month="December" year="2023"/>
            <abstract>
              <t>This document provides a set of standard Public Key Cryptography (PKC) test keys that may be used wherever pre-generated keys and associated operations like digital signatures are required. Like the European Institute for Computer Antivirus Research (EICAR) virus test and the Generic Test for Unsolicited Bulk Email (GTUBE) spam test files, these publicly known test keys can be detected and recognised by applications consuming them as being purely for testing purposes without assigning any security properties to them.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9500"/>
          <seriesInfo name="DOI" value="10.17487/RFC9500"/>
        </reference>
        <reference anchor="X509-PKI">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
      </references>
    </references>
    <?line 299?>

<section anchor="examples">
      <name>Examples</name>
      <section anchor="key-directory-on-examplecom">
        <name>Key Directory on example.com</name>
        <artwork><![CDATA[
GET /.well-known/http-message-signatures-directory HTTP/1.1
Host: example.com
Accept: application/http-message-signatures-directory+json

HTTP/1.1 200 OK
Content-Type: application/http-message-signatures-directory+json
Cache-Control: max-age=86400
{
  "keys": [{
    "kty": "OKP",
    "crv": "Ed25519",
    "kid": "NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw",
    "x": "JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs",
    "use": "sig",
    "nbf": 1712793600,
    "exp": 1715385600
  }]
}
]]></artwork>
      </section>
      <section anchor="delegation-and-chaining">
        <name>Delegation and chaining</name>
        <t>There are multiple methods to perform delegation and chaining. There are no specific methods
that have been favored by implementation so far, should they even support them.
It is adviced to consider delegation as experimental for now, and provide input on the associated
<eref target="https://github.com/thibmeu/http-message-signatures-directory/issues/27">GitHub issue</eref>.</t>
        <section anchor="key-directory-on-subexamplecom-with-a-delegation-from-examplecom-via-x5c-full-certificate-chain">
          <name>Key Directory on sub.example.com with a delegation from example.com via x5c full certificate chain</name>
          <t>In this example, example.com key is testECCP256 provided in <xref section="2.3" sectionFormat="of" target="CRYPTO-TEST-KEYS"/>.
Certificate chain is passed via x5c key parameter defined in <xref section="4.7" sectionFormat="of" target="JWK"/>.</t>
          <artwork><![CDATA[
GET /.well-known/http-message-signatures-directory HTTP/1.1
Host: sub.example.com
Accept: application/http-message-signatures-directory

HTTP/1.1 200 OK
Content-Type: application/http-message-signatures-directory
Cache-Control: max-age=86400
{
  "keys": [{
    "kty": "OKP",
    "crv": "Ed25519",
    "kid": "NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw",
    "x": "JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs",
    "use": "sig",
    "nbf": 1712793600,
    "exp": 1715385600,
    "x5c": [
      "MIIBYTCCAQagAwIBAgIUFDXRG3pgZ6txehQO2LT4aCqI3f0wCgYIKoZIzj0EAwIwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNjEzMTA0MjQxWhcNMzUwNjExMTA0MjQxWjAaMRgwFgYDVQQDDA9zdWIuZXhhbXBsZS5jb20wKjAFBgMrZXADIQAmtAuPk//z2JcRL368WCsjLb1yUX0IL+g8+zDdzkPRu6NdMFswCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFKV3qaYNFbzQB1QmN4sa13+t4RmoMB8GA1UdIwQYMBaAFFtwp5gX95/2N9L349xEbCEJ17vUMAoGCCqGSM49BAMCA0kAMEYCIQC8r+GvvNnjI+zzOEDMOM/g9e8QLm00IZXP+tjDqah1UQIhAJHffLke9iEP1pUdm+oRLrq6bUqyLELi5TH2t+BaagKv",
      "MIIBcDCCARagAwIBAgIUS502rlCXxG2vviltGdfe3fmX4pIwCgYIKoZIzj0EAwIwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNjEzMTA0MTQzWhcNMzUwNjExMTA0MTQzWjAWMRQwEgYDVQQDDAtleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEIlSPiPt4L/teyjdERSxyoeVY+9b3O+XkjpMjLMRcWxbEzRDEy41bihcTnpSILImSVymTQl9BQZq36QpCpJQnKjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMB0GA1UdDgQWBBRbcKeYF/ef9jfS9+PcRGwhCde71DAKBggqhkjOPQQDAgNIADBFAiEAwTOqm1zNAvZuQ8Zb5AftQIZotq4Xe6GHz3+nJ04ybgoCIEEZtn1Pa+GCbmbWh12piHJBKh09TCA0feTedisbwzPV"
    ]
  }]
}
]]></artwork>
        </section>
        <section anchor="key-directory-on-subexamplecom-with-a-delegation-from-examplecom-via-a-leaf-certificate-and-aia-field">
          <name>Key Directory on sub.example.com with a delegation from example.com via a leaf certificate and AIA field</name>
          <t>In this example, example.com key is testECCP256 provided in <xref section="2.3" sectionFormat="of" target="CRYPTO-TEST-KEYS"/>.
Certificate chain is passed via x5c key parameter defined in <xref section="4.7" sectionFormat="of" target="JWK"/>,
and the root certificate is signaled by the presence of an Authority Information Access extension
as defined in <xref section="5.2.7" sectionFormat="of" target="X509-PKI"/>.</t>
          <artwork><![CDATA[
GET /.well-known/http-message-signatures-directory HTTP/1.1
Host: sub.example.com
Accept: application/http-message-signatures-directory

HTTP/1.1 200 OK
Content-Type: application/http-message-signatures-directory
Cache-Control: max-age=86400
{
  "keys": [{
    "kty": "OKP",
    "crv": "Ed25519",
    "kid": "NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw",
    "x": "JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs",
    "use": "sig",
    "nbf": 1712793600,
    "exp": 1715385600,
    "x5c": [
      "MIIBYTCCAQagAwIBAgIUFDXRG3pgZ6txehQO2LT4aCqI3f0wCgYIKoZIzj0EAwIwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNjEzMTA0MjQxWhcNMzUwNjExMTA0MjQxWjAaMRgwFgYDVQQDDA9zdWIuZXhhbXBsZS5jb20wKjAFBgMrZXADIQAmtAuPk//z2JcRL368WCsjLb1yUX0IL+g8+zDdzkPRu6NdMFswCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFKV3qaYNFbzQB1QmN4sa13+t4RmoMB8GA1UdIwQYMBaAFFtwp5gX95/2N9L349xEbCEJ17vUMAoGCCqGSM49BAMCA0kAMEYCIQC8r+GvvNnjI+zzOEDMOM/g9e8QLm00IZXP+tjDqah1UQIhAJHffLke9iEP1pUdm+oRLrq6bUqyLELi5TH2t+BaagKv"
    ]
  }]
}
]]></artwork>
          <t>The AIA extension is as follow</t>
          <artwork><![CDATA[
X509v3 extensions:
  Authority Information Access:
    CA Issuers - URI:https://example.com/.well-known/http-message-signatures-directory.crt
]]></artwork>
          <!-- Words from @sandormajor. TODO: add acknowledgement -->

<t>The verifier should validate the signature with the public key in the Signature-Agent,
match the public key with the leaf cert, then fetch the root cert from the AIA URI and verify the leaf cert with it.</t>
        </section>
        <section anchor="key-directory-on-subexamplecom-with-a-delegation-from-examplecom-via-x5u-field">
          <name>Key Directory on sub.example.com with a delegation from example.com via x5u field</name>
          <t>Leveraging x5c imposes that a PEM encoded certificate is present in the returned JWKS.
If size is a constraint, or deployment imposes a more dynamic certificate management,
directory server may use x5u key parameter defined in <xref section="4.6" sectionFormat="of" target="JWK"/>.</t>
          <artwork><![CDATA[
GET /.well-known/http-message-signatures-directory HTTP/1.1
Host: sub.example.com
Accept: application/http-message-signatures-directory

HTTP/1.1 200 OK
Content-Type: application/http-message-signatures-directory
Cache-Control: max-age=86400

{
  "keys": [{
    "kty": "OKP",
    "crv": "Ed25519",
    "kid": "NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw",
    "x": "JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs",
    "use": "sig",
    "nbf": 1712793600,
    "exp": 1715385600,
    "x5u": "https://example.com/.well-known/http-message-signature-chain/sub.example.com.crt"
}
]]></artwork>
        </section>
      </section>
      <section anchor="request-with-http-signature-agent">
        <name>Request with HTTP Signature-Agent</name>
        <t>This extend the examples from <xref section="B" sectionFormat="of" target="HTTP-MESSAGE-SIGNATURES"/>.</t>
        <artwork><![CDATA[
POST /foo?param=Value&Pet=dog HTTP/1.1
Host: example.com
Signature-Agent: my_test="https://directory.test"
{"hello": "world"}

HTTP/1.1 200 OK
{"message": "good dog"}
]]></artwork>
      </section>
      <section anchor="request-with-data-uri-signature-agent">
        <name>Request with <tt>data</tt> URI Signature-Agent</name>
        <t>A Signature-Agent using <tt>data</tt> URI can be used to communicate an ephemeral keys, as long as there is a chain to a certificate trusted by the origin.</t>
        <t>In this example, the directory is signed by <tt>example.com</tt>. The CA is self-signed, even though it <bcp14>MAY</bcp14> be part of an existing PKI.</t>
        <artwork><![CDATA[
POST /foo?param=Value&Pet=dog HTTP/1.1
Host: example.com
Signature-Agent: my_test="data:application/http-message-signatures-directory;utf8,{\"keys\":[{\"kty\":\"OKP\",\"crv\":\"Ed25519\",\"kid\":\"NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw\",\"x\":\"JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs\",\"use\":\"sig\",\"nbf\":1712793600,\"exp\":1715385600,\"x5c\":[\"MIIBYTCCAQagAwIBAgIUFDXRG3pgZ6txehQO2LT4aCqI3f0wCgYIKoZIzj0EAwIwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNjEzMTA0MjQxWhcNMzUwNjExMTA0MjQxWjAaMRgwFgYDVQQDDA9zdWIuZXhhbXBsZS5jb20wKjAFBgMrZXADIQAmtAuPk//z2JcRL368WCsjLb1yUX0IL+g8+zDdzkPRu6NdMFswCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0OBBYEFKV3qaYNFbzQB1QmN4sa13+t4RmoMB8GA1UdIwQYMBaAFFtwp5gX95/2N9L349xEbCEJ17vUMAoGCCqGSM49BAMCA0kAMEYCIQC8r+GvvNnjI+zzOEDMOM/g9e8QLm00IZXP+tjDqah1UQIhAJHffLke9iEP1pUdm+oRLrq6bUqyLELi5TH2t+BaagKv\",\"MIIBcDCCARagAwIBAgIUS502rlCXxG2vviltGdfe3fmX4pIwCgYIKoZIzj0EAwIwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjUwNjEzMTA0MTQzWhcNMzUwNjExMTA0MTQzWjAWMRQwEgYDVQQDDAtleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEIlSPiPt4L/teyjdERSxyoeVY+9b3O+XkjpMjLMRcWxbEzRDEy41bihcTnpSILImSVymTQl9BQZq36QpCpJQnKjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMB0GA1UdDgQWBBRbcKeYF/ef9jfS9+PcRGwhCde71DAKBggqhkjOPQQDAgNIADBFAiEAwTOqm1zNAvZuQ8Zb5AftQIZotq4Xe6GHz3+nJ04ybgoCIEEZtn1Pa+GCbmbWh12piHJBKh09TCA0feTedisbwzPV\"]}]}"
{"hello": "world"}

HTTP/1.1 200 OK
{"message": "good dog"}
]]></artwork>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Marwan Fayed,
Maxime Guerreiro,
Jonathan Hoyland,
Nikhil Kandoi,
Akshat Mahajan,
Alex Sandor Major,
Eugenio Panero,
Lucas Pardue.</t>
    </section>
    <section numbered="false" anchor="changelog">
      <name>Changelog</name>
      <t>v04</t>
      <ul spacing="normal">
        <li>
          <t>Change <tt>Signature-Agent</tt> to a <tt>sf-dictionary</tt></t>
        </li>
        <li>
          <t>Add <tt>req</tt> flag on directory response</t>
        </li>
        <li>
          <t>Add more contributors</t>
        </li>
      </ul>
      <t>v03</t>
      <ul spacing="normal">
        <li>
          <t>Remove "purpose" field from web-bot-auth</t>
        </li>
      </ul>
      <t>v02</t>
      <ul spacing="normal">
        <li>
          <t>Correct typos</t>
        </li>
      </ul>
      <t>v01</t>
      <ul spacing="normal">
        <li>
          <t>Update content-type from <tt>application/http-message-signatures-directory</tt> to <tt>application/http-message-signatures-directory+json</tt></t>
        </li>
        <li>
          <t>Add delegation and chaining examples: full x5c chain, AIA extension, and x5u</t>
        </li>
        <li>
          <t>Add inline directory example with data URI</t>
        </li>
        <li>
          <t>Fix well-known path in examples</t>
        </li>
      </ul>
      <t>v00</t>
      <ul spacing="normal">
        <li>
          <t>Initial draft</t>
        </li>
        <li>
          <t>Definition of Signature-Agent and its three supported URI https, http, and data.</t>
        </li>
        <li>
          <t>Leverages JWKS as a directory fo HTTP Message Signatures</t>
        </li>
        <li>
          <t>Well-known and content-type</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
09o8lWtDAAA=

-->

</rfc>
