<?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-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.1 -->
  <front>
    <title abbrev="HTTP Message Signatures Directory">HTTP Message Signatures Directory</title>
    <seriesInfo name="Internet-Draft" value="draft-meunier-http-message-signatures-directory-03"/>
    <author fullname="Thibault Meunier">
      <organization>Cloudflare</organization>
      <address>
        <email>ot-ietf@thibault.uk</email>
      </address>
    </author>
    <date year="2025" month="September" day="05"/>
    <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 Item Structured Header <xref target="STRUCTURED-HEADERS"/>. Its value <bcp14>MUST</bcp14> be a
String containing a <xref target="URI"/>. The ABNF is:</t>
        <artwork><![CDATA[
Signature-Agent = sf-string   ; Section 3.3.3 of {{STRUCTURED-HEADERS}}
]]></artwork>
        <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>Multiple <tt>Signature-Agent</tt> header fields <bcp14>MAY</bcp14> be present in a request. Processors <bcp14>SHOULD</bcp14>
use the first valid URI that provides a valid key directory.</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"/></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 302?>

<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: 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: 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>TODO acknowledge.</t>
    </section>
    <section numbered="false" anchor="changelog">
      <name>Changelog</name>
      <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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
7FfuurwgJXcguJcSpvZ/+3AVMWdCAAA=

-->

</rfc>
