<?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-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="HTTP Message Signatures Directory">HTTP Message Signatures Directory</title>
    <seriesInfo name="Internet-Draft" value="draft-meunier-http-message-signatures-directory-02"/>
    <author fullname="Thibault Meunier">
      <organization>Cloudflare</organization>
      <address>
        <email>ot-ietf@thibault.uk</email>
      </address>
    </author>
    <date year="2025" month="August" day="29"/>
    <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>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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

-->

</rfc>
