<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-meunier-http-message-signatures-directory-05" 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-05"/>
    <author fullname="Thibault Meunier">
      <organization>Cloudflare</organization>
      <address>
        <email>ot-ietf@thibault.uk</email>
      </address>
    </author>
    <author fullname="Sandor Major">
      <organization>Google</organization>
      <address>
        <email>ietf@sandormajor.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <area>Web and Internet Transport</area>
    <workgroup>Web Bot Auth</workgroup>
    <keyword>not-yet</keyword>
    <abstract>
      <?line 55?>

<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 64?>

<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 303?>

<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>
          <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,
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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
xK23tomt7YZxUQnCvdrlUa69vesem/ct3/Yu3NC8b19b427/dnLcbrX6k0U8
8g7HvfW7p5Pdzh/7B/ZlvX+Qmzcsv7ksHxhO46Ba/cPrdILFtrFbKw6DeBxA
F46EtcYt7nAELaXXpfLrg+29YlE1Q5gqm3e393f36Kz+8YP2SKqmMFo4wuLJ
8Z0xhsgMzIk8IPg49HNJuUse1NPmAXzGnQLZ3rPDqUCohrtegsQxBY3QkM6S
h0K4bAQxqC/zqgRtJdHAg5d+NnamePjFIASGF9EMby5hyxQLxFR7NhG2VbVd
wuEag1TlAkQm8g5tfLBwmXXGpQzbnUE07cmaXpwxCVP7/cgOj6MhTBNE4sNP
8aULdUEITL3w1TeOCkQjKJRf/6wigie7MgCaqW3E4pLiajEUg6e7zMGD3e0a
dMWHGXgxYiQPG0gnCFUSkNWY7NpgTDUQrAGz6tVqB7P6JNl9rm6weRUE60TV
zTmR4gxECDRi5nCe1anYs6WCnfzr1GHa3wRJG/L8a7D0tyLSdzBaNYNl4Drp
AR5bzWblalCt6l1u6YtmRbea543aZe9oe2Zd74V3Ytw9K58Odnj1Y3N7VFxU
ravmiXfdvJ8U69B/0ZjUz1uV5pFeOofnxen15Xg8vKwE1/3dybBcXByPjXZr
cr5oT+r3rYFebE26dxfYdk9td0nbROetnrVoWFe1d91uraYf3JsXzWiT3slE
b1Ssln99qdeaXX0a6lHntlC4L781eqfbe/sX1WByOiwtzy+LzdMta3/rvmbe
33Z60V7bbDWCRbUL9HvFQUVvLvSaflax2u+Ou/sVfbRfr+itamVHXxzLPmeV
ylW9cfJu+yO/ajeG991KqTtt7wS8tL0V7vSmXquyj+s2m4vuVavC9UYjXMx2
rcuD3UK5fXC6vXNwVx9W629Lr+fnLd07qlY/HvVbOwc4j1681Vv1q2qzW933
t47m87Y7aW7d35/Va62zVsE6EPvd02mx2Ly+7GyFk9pHPi6dd5tj/e3xaHR6
Kw7seqc0OzenW17v1P+4Nzz/uDytn9q7g+NyuFXh3DqZKwNRWjZqoOXeSsv9
3WLZd6qXd0fl+dx2wiNzJLZH08udWfOf1/Kge/9Ey9g20S9ave6inmgZMtmj
Rmgc3Tmn0/Z8OKhctyqto8pSSkq36onU9EX9WC829Uq96fQ7difcOS2EYjkx
673+3dIT7662DobbZ1uXt5NZa3La6hkXd8P6fa9WX+6UhvbYGLizfvO0Oe2/
W04HXeeg0r3+uL3XnVVnb7vuyaQ7Ab3oUqP1Rb1SWHQbLb2FlrGoWWQRHb17
XKjo3RrIr96qFKlvzepeVCq9oXEirhoFMTqYjPoHWx2jd7QYV03xulTTTyqW
9XF8OznrdHFsu6nXKg3dBlEOzj5OS/dtfX4ddfevh7v6KOw2r73w486l2Ds6
vt/ect8Wd5ZDy6s26/Xr0C11+NZRdTgdXoxL5Zl9/LZyMi4eDMCeRmIAmVUw
XNx33mVI8R824o+/z/dx5gg+WvN86Nf1pi5PDP9/esCspgoLkHF64drqbHmH
gDtJQRpvtwVUe5A3AvT4iIU1U2UmVXpM0i7txUst+bLkJL7c+d0hf3fI3x3y
v5hDfgaWsfiJuJlABCVXgarJSghATJhvr7rQffXPAY68z17VWROzHz9gObr+
HidSKTD4NmTJG364Yju53KwSxrWj+9UZSVJ/oxu6EpXVPY6NG05ZDVZhPOmc
EEicDl1VAd8k4t4JYK8uTaBQ6Q5XXBpcrtOQZPEu9t+cFkaxDzyF5NnndNKD
3giybS+IC52cdeqt+P7OpquRriWMpeQLEBF6DLwXmceLPYF9Tx25uqsA7g9k
gleXkzvcyXScTfF4VN3XXptqyl3Q9JQk/+QyBZ6AYdEWF/RVjnTveyr5b+e6
okzqQ65vg5UcRW2FDRUjwmRSJbOePO+Uu2/9qq7EDHX2SNgogzdFTV0GSF1v
qHz+cos02s5ZH6x25Hn/IIN/8w7P3P6zI8I3pmd9rvq6wReYxvIPjHDfJPJZ
wSi2Z7SHzBiE5KEIF57vmFhN3jTVh4wSHPayPM9kwEbmBfnc4IH5jTwn3ZSS
vtmkLlykxhgQxqYuHKUv0cIbMcOrjT531B068FGOh2f3dM7rx3hEoThevlxD
mtCP5PmdBGHwWwCL+WfShPUraCrslgNvUtJWtyLBw9FZtzPKyX5ZWbAEzxhZ
CO7xfUnQZagCdXFnB3TOA0H2/53OUaqH34Qs/xWFo/3sw3uCj/eZw9/xZ7iE
X+8RO95nsu8ROOhZIQe1AWxQ2zfgBo27o1HfgBo0CoyDxsEK6BkAA55TgPEe
wUI2xWDxHmNcXNH779Htv3B0S/bwvdL071Vpep/58Pjh8e/wZZC6xF850qe0
2sOhPBEX5pvMiDsQqwDNFvcXAOINvgSwh6c7eyrYEeQ4vrB9L6u99QBYx3jz
31s6EPpntbZ9O7YddoJfU9tZTb8NMP5u8TGfcDer1SNAbttjHe4KJHAaGRzv
ivlmRNfH1D0jx7OeZ2he3MGbL+rc+Ok3G+QKb4JRzky+1LiB/njbPHWZlr4H
3LyzqLpR+E4H0vjtn+cHOOk2TqoujWfUPYaMuq5PcU/6a30cUCYu8cajEeKR
vkdkSth6Tte14nvjOTrvJxrf9rkCrfWvfOGg1vnC8WYSzx3K4zZMpehddj1v
lkeLEJIqcurTjZVYFR0ZKtHVQgh6oHMDQsPU56AzjmlhclhPYiqimJr4cQ6E
P/R/D8Dz6nsd+phmI7qKL4KGY1+I+ARV0CcX8ivyLP2RXCM3eSCpMkaIXeOv
pPnaB1ovfpmfkze95ApIeillav8LQCx8wHJDAAA=

-->

</rfc>
