<?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.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-demarco-acme-openid-federation-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="ACME OpenID Federation">Automatic Certificate Management Environment (ACME) with OpenID Federation 1.0</title>
    <seriesInfo name="Internet-Draft" value="draft-demarco-acme-openid-federation-00"/>
    <author initials="G." surname="De Marco" fullname="Giuseppe De Marco">
      <organization>independent</organization>
      <address>
        <email>demarcog83@gmail.com</email>
      </address>
    </author>
    <author initials="B." surname="Pitman" fullname="Brandon Pitman">
      <organization/>
      <address>
        <email>bran@bran.land</email>
      </address>
    </author>
    <date year="2025" month="June" day="12"/>
    <area>Security</area>
    <workgroup>Automated Certificate Management Environment</workgroup>
    <keyword>OpenID Federation</keyword>
    <keyword>ACME</keyword>
    <abstract>
      <?line 95?>

<t>The Automatic Certificate Management Environment (ACME) protocol
allows server operators to obtain TLS certificates for their websites,
based on a demonstration of control over the website's domain via a
fully-automated challenge/response protocol.</t>
      <t>OpenID Federation 1.0 defines how to build a trust infrastructure using a
trusted third-party model. It uses a trust evaluation mechanism to attest the
possession of public keys, protocol specific metadata and various administrative
and technical information related to a specific entity.</t>
      <t>This document defines how X.509 certificates associated with a given OpenID
Federation Entity can be
issued by an X.509 Certification Authority through the ACME protocol to the
organizations which are part of a federation built on top of OpenID
Federation 1.0.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-demarco-acme-openid-federation/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Automated Certificate Management Environment Working Group mailing list (<eref target="mailto:acme@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/acme/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/acme/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/peppelinux/draft-demarco-acme-openid-federation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 113?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document describes extensions to the ACME protocol that integrate with
OpenID Federation 1.0, allowing an ACME server to issue X.509 Certificates
associated with a given OpenID Federation Entity.
X.509 Certificates can be provided to one or more organizations,
without having pre-established any direct relationship or any stipulation of a
contract.</t>
      <t>In a multilateral federation, composed by thousands of entities belonging to
different organizations, all the participants adhere to the same regulation or
trust framework. OpenID Federation 1.0 allows each participant to recognize
other participants using a trust evaluation mechanism, with RESTful services and
cryptographic materials.</t>
      <t>Considering that a requestor is an entity requesting the issuance of an X.509
Certificate to a server and the issuer is the ACME server that validates the
entitlements of the requestor before issuing the X.509 Certificate, this
specification defines how ACME and OpenID Federation 1.0 can be integrated to
allow efficient issuance of X.509 Certificates to a requestor via the
introduction of a new ACME challenge type. The new challenge type extends the
ACME protocol in the following ways:</t>
      <ul spacing="normal">
        <li>
          <t>It associates a cryptographic key with an OpenID Entity, rather than a domain,
since the authentication and authorization of the requestor is asserted with
OpenID Federation 1.0.</t>
        </li>
        <li>
          <t>It defines how to use and validate a basic OpenID Federation component, called
Entity Configuration, that is a signed JWT published in a well-known resource
(<tt>/.well-known/openid-federation</tt>).</t>
        </li>
        <li>
          <t>It defines how the OpenID Federation Subordinate Statements can be used for the
publication of the X.509 Certificates, by a Superior Entity, that
were previously issued with ACME.</t>
        </li>
        <li>
          <t>It extends the ACME newOrder resource, as defined in
<xref section="7.4" sectionFormat="of" target="RFC8555"/>, defining a new payload identifier type called
<tt>openid-federation</tt>.</t>
        </li>
      </ul>
    </section>
    <section anchor="target-audience-and-use-cases">
      <name>Target Audience and Use Cases</name>
      <t>The audience of the document are the multilateral federations that require
automatic issuance of X.509 Certificates using an infrastructure of trust based
on OpenID Federation 1.0.</t>
      <t>This specification can be implemented by:</t>
      <ul spacing="normal">
        <li>
          <t>Federation Entities that join to a federation staging area using HTTP only
transport to attest themselves as trustworthy, and then retrieve X.509
Certificates for their official HTTPS Federation Entity ID.</t>
        </li>
        <li>
          <t>Federation Entities that want to ask for and obtain X.509 Certificate for use
in other protocols.</t>
        </li>
      </ul>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The terms "Federation Entity", "Trust Anchor", "Entity Configuration",
"Subordinate Statement", "Superior Entity", "Immediate Superior Entity",
"Federation Entity Keys", "Trust Mark" and "Trust Chain" used in this
document are defined in <xref section="1.2" sectionFormat="of" target="OPENID-FED" relative="#section-1.2"/>.
The term "CSR" used in this document is defined in <xref target="RFC2986"/>. The
term Certification Authority used in this document is defined in <xref target="RFC5280"/>. The
terms "ACME Client" and "ACME Server" are defined in <xref target="RFC8555"/>.</t>
      <t>The specification also defines the following terms:</t>
      <dl>
        <dt>Requestor:</dt>
        <dd>
          <t>A Federation Entity which wants to request X.509 certificates. It operates
a web server for hosting its Entity Configuration. It also operates an ACME
client, extended according to this document.</t>
        </dd>
        <dt>Certificate Issuer:</dt>
        <dd>
          <t>A Federation Entity which issues X.509 certificates. It operates a web server
for hosting its Entity Configuration. It also operates an ACME server,
extended according to this document.</t>
        </dd>
      </dl>
    </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="certificates-issued-using-openid-federation">
      <name>Certificates issued using OpenID Federation</name>
      <t>The Certificate Issuer establishes the authorization of a Federation Entity to obtain
X.509 Certificates for the identifier configured in the Requestor's Entity
Configuration.</t>
      <t>The Certificate Issuer establishes if a Federation Entity is eligible to obtain X.509
Certificates for the identifier configured in the Requestor's Entity
Configuration.</t>
      <t>The cryptographic keys published within the Requestor's Entity Configuration
are used to satisfy the Certificate Issuer's challenge.</t>
      <t>The protocol assumes the following discovery preconditions are met. The
Issuer has the guarantee that:</t>
      <ol spacing="normal" type="1"><li>
          <t>The Requestor controls the private key related to the public part published
in its Entity Configuration.</t>
        </li>
        <li>
          <t>The Requestor controls its identifier, having published the
Entity Configuration.</t>
        </li>
      </ol>
    </section>
    <section anchor="protocol-flow">
      <name>Protocol Flow</name>
      <t>This section presents the protocol flow. The protocol flow is subdivided in the
following phases:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Discovery</strong>, the Requestor obtains the available CAs within a federation,
inspecting the ACME issuer entity types.</t>
        </li>
        <li>
          <t><strong>Order request</strong>, the Requestor requests a X.509 Certificate to a Certificate Issuer using
the ACME protocol.</t>
        </li>
      </ul>
      <section anchor="preconditions">
        <name>Preconditions</name>
        <t>The protocol requires the following preconditions are met.</t>
        <ol spacing="normal" type="1"><li>
            <t>The Requestor and the Issuer <bcp14>MUST</bcp14> publish their Entity Configuration as
defined in <xref section="9" sectionFormat="of" target="OPENID-FED" relative="#section-9"/>.</t>
          </li>
          <li>
            <t>The Requestor and the Issuer <bcp14>MUST</bcp14> be able to establish a Trust Chain to each
other, as defined in <xref section="4" sectionFormat="of" target="OPENID-FED" relative="#section-4"/>,
from their respective Trust Anchors.</t>
          </li>
          <li>
            <t>The Issuer <bcp14>MUST</bcp14> implement an ACME server, extended according to this document.</t>
          </li>
          <li>
            <t>The Requestor <bcp14>MUST</bcp14> publish the entity type <tt>acme_requestor</tt> in its Entity
Configuration, according to <xref target="requestor-metadata"/>.</t>
          </li>
          <li>
            <t>The Issuer <bcp14>MUST</bcp14> publish the entity type <tt>acme_issuer</tt> in its Entity
Configuration, according to <xref target="issuer-metadata"/>.</t>
          </li>
        </ol>
      </section>
      <section anchor="discovery">
        <name>Discovery</name>
        <t>The Requestor's ACME client may either be configured to use a particular ACME
server, or to automatically discover a Certificate Issuer through the
federation.
Requestors that use discovery <bcp14>MAY</bcp14> select any entity with an entity type of
<tt>acme_issuer</tt>, or they may additionally require that such entities have a
valid Trust Mark with a particular Trust Mark Identifier.</t>
      </section>
      <section anchor="overview">
        <name>Overview</name>
        <ol spacing="normal" type="1"><li>
            <t>The Requestor checks if its superior Federation Entity supports the ACME
protocol for OpenID Federation 1.0. If not, the Requestor starts the
discovery process to find Issuers within the federation.</t>
          </li>
          <li>
            <t>The Requestor requests and obtains a new nonce from the Certificate Issuer,
by sending a HTTP HEAD request to the Issuer's <tt>newNonce</tt> resource,
as described in <xref section="7.2" sectionFormat="of" target="RFC8555"/>.</t>
          </li>
          <li>
            <t>The Requestor creates an ACME Account with the Issuer, as described in
<xref section="7.3" sectionFormat="of" target="RFC8555"/>.</t>
          </li>
          <li>
            <t>The Requestor begins the X.509 Certificate issuance process by sending a HTTP POST
request to the Certificate Issuer's <tt>newOrder</tt> resource,
as described in <xref target="neworder-request"/>, and follows the remainder of the
ACME protocol as specified in <xref target="RFC8555"/>, using the new challenge defined in
<xref target="challenge-type"/>.</t>
          </li>
          <li>
            <t>The Certificate Issuer evaluates the trust to the Requestor by checking if it
is part of its federation. If not the CSR request <bcp14>MUST</bcp14> be rejected, with
error type <tt>urn:ietf:params:acme:error:openIDFederationEntity</tt>,
and an error code of <tt>invalid_trust_chain</tt>
(<xref section="8.9" sectionFormat="of" target="OPENID-FED" relative="#section-8.9"/>).</t>
          </li>
        </ol>
        <t>There are two ways the Certificate Issuer is able to check if a
Requestor is part of the federation, these are listed below:</t>
        <ul spacing="normal">
          <li>
            <t>The Requestor adds the Trust Chain JWT header parameter related to itself,
as described in <xref section="4.3" sectionFormat="of" target="OPENID-FED" relative="#section-4.3"/>.
This option is <bcp14>RECOMMENDED</bcp14> since it reduces the effort of the Certificate
Issuer in evaluating the trust to the Requestor.</t>
          </li>
          <li>
            <t>The Requestor doesn't add the Trust Chain in the request. The Certificate Issuer
<bcp14>MUST</bcp14> start Federation Entity Discovery as described in
<xref section="9" sectionFormat="of" target="OPENID-FED" relative="#section-9"/>
to obtain the Trust Chain related to the Requestor.</t>
          </li>
        </ul>
        <t>The following diagram illustrates a successful interaction between Issuer and
Requestor to retrieve an X.509 Certificate. The diagram assumes the Requestor
has already discovered the Issuer, and the Requestor has already created an
ACME account with the Issuer.</t>
        <artwork type="ascii-art"><![CDATA[
,-----------------.
|Requestor's      |  ,-----------.
|OpenID Federation|  |Requestor's|               ,------------------------.  ,-----------------------.
| Web Server      |  |ACME Client|               |X.509 Certificate Issuer|  |Federation Trust Anchor|
`--------+--------'  `-----+-----'               `-----------+------------'  `-----------+-----------'
        |                  |           POST /acme/new-order  |                           |
        |                  |--------------------------------->                           |
        |                  |                                 |                           |
        |                  |Authorization at                 |                           |
        |                  |/acme/authz/[authz-id]           |                           |
        |                  |Finalize at                      |                           |
        |                  | /acme/order/[order-id]/finalize |                           |
        |                  |<- - - - - - - - - - - - - - - - -                           |
        |                  |                                 |                           |
        |                  | POST /acme/authz/[authz-id]     |                           |
        |                  |--------------------------------->                           |
        |                  |                                 |                           |
        |                  |  openid-federation-01 Challenge |                           |
        |                  |  at /acme/chall/[chall-id]      |                           |
        |                  |<- - - - - - - - - - - - - - - - -                           |
        |                  |                                 |                           |
        |                  ----.                             |                           |
        |                  |   | Sign challenge token        |                           |
        |                  |   | with private key            |                           |
        |                  <---'                             |                           |
        |                  |                                 |                           |
        |                  | POST /acme/chall/[chall-id]     |                           |
        |                  | with signed                     |                           |
        |                  | token and entity ID             |                           |
        |                  | set to Requestor's ID           |                           |
        |                  |--------------------------------->                           |
        |                  |                                 |                           |
        |                  |      Challenge validation       |                           |
        |                  |      beginning                  |                           |
        |                  |<- - - - - - - - - - - - - - - - -                           |
        |                  |                                 |                           |
        |          GET /.well-known/openid-federation        |                           |
        |<----------------------------------------------------                           |
        |                  |                                 |                           |
        |           Requestor's Entity Configuration         |                           |
        | - - -  - - - - - - - - - - - - - - - - - - - - - - >                           |
        |                  |                                 |                           |
        |                  |           ______________________________________________________
        |                  |           ! OPT  /  If requestor didn't provide Trust Chain |  !
        |                  |           !_____/               |                           |  !
        |                  |           !                     |  Determine Trust Chain    |  !
        |                  |           !                     |  from Issuer's            |  !
        |                  |           !                     |  Trust Anchor to Requestor|  !
        |                  |           !                     |  (Federation Discovery)   |  !
        |                  |           !                     | <------------------------>|  !
        |                  |           !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
        |                  |                                 |                           |
        |                  |                                 |----.                      |
        |                  |                                 |    | Evaluate Trust Chain |
        |                  |                                 |<---'                      |
        |                  |                                 |                           |
        |                  |                                 |----.                      |
        |                  |                                 |    | Check                |
        |                  |                                 |    | Entity Configuration |
        |                  |                                 |    | sub matches          |
        |                  |                                 |    | Entity identifier    |
        |                  |                                 |<---' in the order         |
        |                  |                                 |                           |
        |                  |                                 |                           |
        |                  |                                 |----.                      |
        |                  |                                 |    | Check challenge      |
        |                  |                                 |    | sig is signed        |
        |                  |                                 |    | with key in          |
        |                  |                                 |<---' Entity Configuration |
        |                  |                                 |                           |
        |  _________________________________________________________________________     |
        |  ! LOOP  /  Poll until authz status                |                      !    |
        |  !      /  is "valid" or "invalid"                 |                      !    |
        |  !_____/         |                                 |                      !    |
        |  !               |    POST-as-GET                  |                      !    |
        |  !               |    /acme/authz/[authz-id]       |                      !    |
        |  !               |--------------------------------->                      !    |
        |  !               |                                 |                      !    |
        |  !               |           Current authz status  |                      !    |
        |  !               |<---------------------------------                      !    |
        |  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!    |
        |                  |                                 |                           |
        |                  |                                 |                           |
        |  ___________________________________________________________________________   |
        |  ! OPT  /  If the authz status is "valid"          |                        !  |
        |  !_____/         |                                 |                        !  |
        |  !               | POST                            |                        !  |
        |  !               | /acme/orders/[order-id]/finalize|                        !  |
        |  !               | with CSR                        |                        !  |
        |  !               |--------------------------------->                        !  |
        |  !               |                                 |                        !  |
        |  !               |                                 |----.                   !  |
        |  !               |                                 |    | Check CSR         !  |
        |  !               |                                 |    | validity          !  |
        |  !               |                                 |    | according to      !  |
        |  !               |                                 |    | protocol          !  |
        |  !               |                                 |<---' and CA policy     !  |
        |  !               |                                 |                        !  |
        |  !               |                                 |                        !  |
        |  !               |  Order object with certificate  |                        !  |
        |  !               |  at /acme/cert/[cert-id]        |                        !  |
        |  !               |<- - - - - - - - - - - - - - - - -                        !  |
        |  !               |                                 |                        !  |
        |  !               |       POST /acme/cert/[cert-id] |                        !  |
        |  !               |--------------------------------->                        !  |
        |  !               |                                 |                        !  |
        |  !               |  Newly issued X.509 Certificate |                        !  |
        |  !               |<- - - - - - - - - - - - - - - - -                        !  |
        |  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!  |
,--------+--------.  ,-----+-----.               ,-----------+------------.  ,-----------+-----------.
|Requestor's      |  |Requestor's|               |X.509 Certificate Issuer|  |Federation Trust Anchor|
|OpenID Federation|  |ACME Client|               `------------------------'  `-----------------------'
| Web Server      |  `-----------'
`-----------------'
]]></artwork>
      </section>
      <section anchor="entity-configuration-metadata">
        <name>Entity Configuration Metadata</name>
        <t>This section describes the metadata a Requestor and Issuer <bcp14>MUST</bcp14> publish in their
respective Entity Configurations.</t>
        <section anchor="issuer-metadata">
          <name>Issuer Metadata</name>
          <t>The Issuer <bcp14>MUST</bcp14> publish its Entity Configuration including the <tt>acme_issuer</tt>
Entity Type metadata within it. The <tt>acme_issuer</tt> metadata contains one parameter,
<tt>directory_url</tt>, which is the URL of the ACME Directory, as defined in
<xref section="7.1.1" sectionFormat="of" target="RFC8555"/>.</t>
          <t>Requestors <bcp14>MUST</bcp14> use the ACME Directory provided in the Issuer's Entity
Configuration for client configuration of ACME endpoints.</t>
          <t>The following is a non-normative example of an Entity Configuration including
the <tt>acme_issuer</tt> metadata:</t>
          <artwork><![CDATA[
{
  "iss": "https://issuer.example.com",
  "sub": "https://issuer.example.com",
  "iat": 1516239022,
  "exp": 1516298022,
  "jwks": {
    "keys": [
      {
        "kty": "RSA",
        "alg": "RS256",
        "use": "sig",
        "kid": "NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs",
        "n": "pnXBOusEANuug6ewezb9J_...",
        "e": "AQAB"
      }
    ]
  },
  "metadata": {
    "acme_issuer": {
      "directory_url": "https://issuer.example.com/acme/directory"
    }
  }
}
]]></artwork>
        </section>
        <section anchor="requestor-metadata">
          <name>Requestor Metadata</name>
          <t>The Requestor <bcp14>MUST</bcp14> publish in its Entity Configuration an <tt>acme_requestor</tt>
metadata containing a JWK set, according to
<xref section="5.2.1" sectionFormat="of" target="OPENID-FED" relative="#section-5.2.1"/>.
The keys in the set are used to respond to ACME challenges.</t>
          <t>The following is a non-normative example of an Entity Configuration including
the <tt>acme_requestor</tt> metadata and using the <tt>jwks</tt> metadata parameter.</t>
          <artwork><![CDATA[
{
  "iss": "https://requestor.example.com",
  "sub": "https://requestor.example.com",
  "iat": 1516239022,
  "exp": 1516298022,
  "jwks": {
    "keys": [
      {
        "kty": "RSA",
        "alg": "RS256",
        "use": "sig",
        "kid": "NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs",
        "n": "pnXBOusEANuug6ewezb9J_...",
        "e": "AQAB"
      }
    ]
  },
  "metadata": {
    "acme_requestor": {
      "jwks": {
        "keys": [
          {
            "kty": "RSA",
            "kid": "SUdtUndEWVY2cUFDeD...",
            "n": "y_Zc8rByfeRIC9fFZrD...",
            "e": "AQAB"
          },
          {
            "kty": "EC",
            "kid": "MFYycG1raTI4SkZvVDBIMF9CNGw3VEZYUmxQLVN2T21nSWlkd3",
            "crv": "P-256",
            "x": "qAOdPQROkHfZY1daGofOmSNQWpYK8c9G2m2Rbkpbd4c",
            "y": "G_7fF-T8n2vONKM15Mzj4KR_shvHBxKGjMosF6FdoPY"
          }
        ]
      }
    }
  }
}
]]></artwork>
          <t>The Issuer <bcp14>MUST</bcp14> only use the Requestor's <tt>acme_requestor</tt> to validate an ACME
challenge. Therefore, after completing the challenge, the Requestor <bcp14>MAY</bcp14> remove
the <tt>acme_requestor</tt> metadata from its Entity Configuration.</t>
        </section>
      </section>
      <section anchor="identifier-type">
        <name>OpenID Federation Identifier</name>
        <t>This document defines a new ACME identifier type for OpenID Federation entities, <tt>openid-federation</tt>,
whose value is the <tt>sub</tt> parameter of the requestor's Entity Configuration,
as defined in <xref section="1.2" sectionFormat="of" target="OPENID-FED" relative="#section-1.2"/>.</t>
      </section>
      <section anchor="neworder-request">
        <name>newOrder Request</name>
        <t>The Requestor begins certificate issuance by sending a HTTP POST request to the
Issuer's <tt>newOrder</tt> resource, as specified in <xref section="7.4" sectionFormat="of" target="RFC8555"/>.</t>
        <t>A non-normative example of an ACME newOrder request:</t>
        <artwork><![CDATA[
   POST /acme/new-order HTTP/1.1
   Host: issuer.example.com
   Content-Type: application/jose+json

   {
     "protected": base64url({
       "alg": "ES256",
       "kid": "https://issuer.example.com/acme/acct/evOfKhNU60wg",
       "nonce": "5XJ1L3lEkMG7tR6pA00clA",
       "url": "https://issuer.example.com/acme/new-order"
     }),
     "payload": base64url({
       "identifiers": [
         {
           "type": "openid-federation",
           "value": "https://requestor.example.com"
         }
       ],
       "notBefore": "2016-01-01T00:04:00+04:00",
       "notAfter": "2016-01-08T00:04:00+04:00"
     }),
     "signature": "H6ZXtGjTZyUnPeKn...wEA4TklBdh3e454g"
   }
]]></artwork>
      </section>
      <section anchor="challenge-type">
        <name>OpenID Federation Challenge Type</name>
        <t>The OpenID Federation challenge type allows a Requestor to prove control of a
Federation Entity using the trust evaluation mechanism provided by
<xref target="OPENID-FED"/>. The Requestor demonstrates control of a cryptographic public key
published in its OpenID Federation Entity Configuration.</t>
        <t>The openid-federation-01 ACME challenge object has the following format:</t>
        <t>type (required, string):  The string "openid-federation-01"</t>
        <t>token (required, string):  A random value that uniquely identifies the
    challenge. This value <bcp14>MUST</bcp14> have at least 128 bits of entropy. It <bcp14>MUST NOT</bcp14>
    contain any characters outside the base64url alphabet as described in
    <xref section="5" sectionFormat="of" target="RFC4648"/>. Trailing '=' padding characters <bcp14>MUST</bcp14> be stripped.
    See <xref target="RFC4086"/> for additional information on randomness requirements.</t>
        <t>trustAnchors (optional, array of string):  An array of strings containing
    Entity Identifiers of the Issuer's Trust Anchors. When solving the
    challenge, the Requestor can construct a Trust Chain from itself to one of
    these Trust Anchors. It is <bcp14>RECOMMENDED</bcp14> that the Issuer includes this field
    to make it easier for the Requestor to construct a Trust Chain.</t>
        <t>A non-normative example of a challenge with <tt>trustAnchors</tt> specified:</t>
        <artwork><![CDATA[
   {
     "type": "openid-federation-01",
     "url": "https://issuer.example.com/acme/chall/prV_B7yEyA4",
     "status": "pending",
     "token": "LoqXcYV8q5ONbJQxbmR7SCTNo3tiAXDfowyjxAjEuX0",
     "trustAnchors": [
       "https://trust-anchor-1.example.com",
       "https://trust-anchor-2.example.com"
     ]
   }
]]></artwork>
        <t>The <tt>openid-federation-01</tt> challenge <bcp14>MUST NOT</bcp14> be used to issue X.509 Certificates
for any identifiers except <tt>openid-federation</tt> identifiers.</t>
        <t>The <tt>openid-federation</tt> identifier <bcp14>MUST NOT</bcp14> be validated except by the
<tt>openid-federation-01</tt> challenge.</t>
        <t>The Requestor responds to the challenge with an object with the following format:</t>
        <t>sig (required, string):  the compact JSON serialization (as described in
    <xref section="7.1" sectionFormat="of" target="RFC7515"/>) of a JWS, signing the key authorization
    encoded in UTF-8.
    The key authorization is computed from the token in the challenge and the
    Requestor's ACME account key, as defined in <xref section="8.1" sectionFormat="of" target="RFC8555"/>.
    The signature must be made by one of the keys published in the Requestor's
    <tt>acme_requestor</tt> metadata in its Entity Configuration, as specified in
    <xref target="requestor-metadata"/>.
    The JWS <bcp14>MUST</bcp14> include a <tt>kid</tt> header parameter corresponding to the key used
    to sign the key authorization and a <tt>typ</tt> header parameter set to
    "signed-acme-challenge+jwt".</t>
        <t>trustChain (optional, array of string):  an array of strings containing signed
    JWTs, representing a Trust Chain from the Requestor to one of the Issuer's
    Trust Anchors (see <xref section="4" sectionFormat="of" target="OPENID-FED" relative="#section-4"/>).
    The Entity Configuration of the Trust Chain subject <bcp14>MUST</bcp14> contain
    <tt>acme_requestor</tt> metadata that is valid under the Trust Chain's resolved
    metadata policy (<xref section="6.1" sectionFormat="of" target="OPENID-FED" relative="#section-6.1"/>)
    and contains the key used to compute <tt>sig</tt>.
    It is <bcp14>RECOMMENDED</bcp14> that the Requestor includes this field.
    If the Requestor cannot construct a Trust Chain to one of the Trust Anchors
    indicated by the Issuer, or if no Trust Anchors were indicated, it <bcp14>MAY</bcp14> use
    some other Trust Anchor that it believes the Issuer trusts.
    If the Requestor cannot construct a Trust Chain to any Trust Anchor, it <bcp14>MAY</bcp14>
    omit the <tt>trustChain</tt> field from the challenge response.</t>
        <t>A non-normative example for an authorization with <tt>trustChain</tt> specified:</t>
        <artwork><![CDATA[
   POST /acme/chall/prV_B7yEyA4
   Host: issuer.example.com
   Content-Type: application/jose+json

   {
     "protected": base64url({
       "alg": "ES256",
       "kid": "https://issuer.example.com/acme/acct/evOfKhNU60wg",
       "nonce": "UQI1PoRi5OuXzxuX7V7wL0",
       "url": "https://issuer.example.com/acme/chall/prV_B7yEyA4"
     }),
     "payload": base64url({
      "sig": "wQAvHlPV1tVxRW0vZUa4BQ...",
      "trustChain": ["eyJhbGciOiJFU...", "eyJhbGci..."]
     }),
     "signature": "Q1bURgJoEslbD1c5...3pYdSMLio57mQNN4"
   }
]]></artwork>
        <t>On receiving a challenge response, the Certificate Issuer verifies that the
Requestor is trusted. If the Requestor did not provide a <tt>trustChain</tt>, the
Issuer <bcp14>MUST</bcp14> perform Federation Entity Discovery
(<xref section="10" sectionFormat="of" target="OPENID-FED" relative="#section-10"/>) to obtain a Trust Chain
for the Requestor.</t>
        <t>Once it has obtained a Trust Chain, the Issuer verifies:</t>
        <ul spacing="normal">
          <li>
            <t>That the Requestor's <tt>acme_requestor</tt> metadata is valid under the Trust
Chain's resolved metadata policy
(<xref section="6.1" sectionFormat="of" target="OPENID-FED" relative="#section-6.1"/>).</t>
          </li>
          <li>
            <t>That the requested <tt>openid-federation</tt> identifier value matches the <tt>sub</tt>
parameter of the Requestor's Entity Configuration.</t>
          </li>
          <li>
            <t>That the <tt>sig</tt> field of the payload is the compact JSON serialization of a JWS
signing the key authorization, signed with a key from the Requestor's
<tt>acme_requestor</tt> metadata (<xref target="requestor-metadata"/>) whose <tt>kid</tt> matches the
<tt>kid</tt> claim in the challenge response.</t>
          </li>
        </ul>
        <t>If all of the above verifications succeed, then the validation is successful.
Otherwise, it has failed. In either case, the Certificate Issuer responds
according to <xref section="7.5.1" sectionFormat="of" target="RFC8555"/>.</t>
        <t>A non-normative example for the challenge object post-validation:</t>
        <artwork><![CDATA[
   {
     "type": "openid-federation-01",
     "url": "https://issuer.example.com/acme/chall/prV_B7yEyA4",
     "status": "valid",
     "validated": "2024-10-01T12:05:13.72Z",
     "token": "LoqXcYV8q5ONbJQxbmR7SCTNo3tiAXDfowyjxAjEuX0"
   }
]]></artwork>
        <section anchor="openidfed-othername-id">
          <name>CSR and Certificate Fields</name>
          <t>Depending on the Certificate Issuer's X.509 Certificate profile, the CSR and
X.509 Certificate <bcp14>MAY</bcp14> associate the X.509 Certificate to the Federation Entity by
including the Entity ID in the X.509 Certificate.
To do so, the Issuer includes a Subject Alternative Name extension
containing an <tt>otherName</tt> with
a <tt>type-id</tt> of <tt>id-on-OpenIdFederationEntityId</tt>.
The value of the name is an Octet String
containing the UTF-8 encoding of the Entity ID
(i.e., the URI in the corresponding <tt>openid-federation</tt> identifier
from the <tt>newOrder</tt> request).</t>
          <artwork><![CDATA[
   id-on-OpenIdFederationEntityId OBJECT IDENTIFIER ::= { id-on XXX }

   OpenIdFederationEntityId ::= UTF8String
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="publication-of-the-certificates-within-the-federation">
      <name>Publication of the Certificates within the Federation</name>
      <t>The X.509 Certificates issued by federation Immediate Superior Entities
pertaining to one or more Federation Entity Keys in control of their
Subordinates <bcp14>MAY</bcp14> publish this information by including the <tt>x5c</tt> member
in each JWK contained within the matching Subordinate Statement. The contents
of the published <tt>x5c</tt> member, including whether it contains a full or
partial Trust Chain, and if so, to what Trust Anchor, are policy decisions
out of scope for this document.</t>
    </section>
    <section anchor="certificate-lifecycle-and-revocation">
      <name>Certificate Lifecycle and Revocation</name>
      <t>The identity of the Requestor is verified through proof of possession of a
private key corresponding to a public key
attested within a Trust Chain. It is up to the Certificate Issuer to decide
the expiration time of the X.509 Certificate. In some cases, and when required,
it <bcp14>MAY</bcp14> be set to match the expiration of the Trust Chain.</t>
      <t>A Requestor <bcp14>SHOULD</bcp14> request the revocation of its X.509 Certificate when the related
cryptographic material is revoked. The Requestor <bcp14>SHOULD</bcp14> publish the revoked or
expired cryptographic keys in the Federation Historical Key Registry.</t>
      <t>The X.509 Certificate revocation request is defined in <xref section="7.6" sectionFormat="of" target="RFC8555"/>.</t>
    </section>
    <section anchor="error-type">
      <name>Errors</name>
      <t>This document defines one new error type URI to be used in problem documents
<xref target="RFC9457"/>, as described in <xref section="6.7" sectionFormat="of" target="RFC8555"/>.</t>
      <t>The error type <tt>urn:ietf:params:acme:error:openIDFederationEntity</tt> can
be used to encapsulate any OAuth error code returned while resolving OpenID
Federation Entities. The title of this error type is "OpenID Federation Error".
The <tt>detail</tt> member of the problem document <bcp14>MAY</bcp14> include the description of the
particular OAuth error code that caused the error. The problem document for this
error type <bcp14>SHOULD</bcp14> include an extension member named <tt>error_code</tt>. The
<tt>error_code</tt> member <bcp14>SHOULD</bcp14> be set to the OAuth error code, taken from the IANA
"OAuth Extensions Error Registry" <xref target="IANA-OAUTH"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The <tt>openid-federation-01</tt> challenge defined in <xref target="challenge-type"/> defends
against replay attacks by malicious ACME servers because the signature in
challenge responses is over an ACME key authorization, which binds the ACME
account key.</t>
      <t>The cryptographic keys in the <tt>acme_requestor</tt> metadata <bcp14>SHOULD NOT</bcp14> be reused
for other purposes than signing responses to <tt>acme-federation-01</tt> challenges.
For example, the same keys <bcp14>SHOULD NOT</bcp14> be reused in the issued X.509 Certificate.
If the keys are reused for other purposes, cross-protocol attacks <bcp14>MUST</bcp14> be
considered.</t>
      <t>The cryptographic keys in the <tt>acme_requestor</tt> metadata <bcp14>SHOULD</bcp14> be rotated
periodically.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is kindly asked to make the following updates to registries:</t>
      <section anchor="acme-registry-group">
        <name>ACME Registry Group</name>
        <t>The following updates are all assignments in the "Automated Certificate
Management Environment (ACME) Protocol" registry group <xref target="IANA-ACME"/>.</t>
        <section anchor="acme-identifier-types">
          <name>ACME Identifier Types</name>
          <t>IANA is asked to add to the "ACME Identifier Types" registry, defined in
<xref section="9.7.7" sectionFormat="of" target="RFC8555"/>, the entry below, as specified here in
<xref target="identifier-type"/>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Label</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">openid-federation</td>
                <td align="left">this document</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="acme-validation-methods">
          <name>ACME Validation Methods</name>
          <t>IANA is also asked to add to the "ACME Validation Methods" registry, defined
in <xref section="9.7.8" sectionFormat="of" target="RFC8555"/>, the entry below, as specified here
in <xref target="challenge-type"/>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Label</th>
                <th align="left">Identifier Type</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">openid-federation-01</td>
                <td align="left">openid-federation</td>
                <td align="left">this document</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="acme-error-types">
          <name>ACME Error Types</name>
          <t>IANA is also asked to add to the "ACME Error Types" registry, defined
in <xref section="9.7.4" sectionFormat="of" target="RFC8555"/>, the entry below, as specified here in
<xref target="error-type"/>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Type</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">openIDFederationEntity</td>
                <td align="left">An error occurred while resolving an OpenID Federation entity</td>
                <td align="left">this document</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="assign-x509-pkix-other-name">
        <name>Assign X.509 PKIX Other Name</name>
        <t>IANA is asked to add to the "PKIX Other Name Forms" registry
(<eref target="https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.8">1.3.6.1.5.5.7.8</eref>) the entry below, as
specified here in <xref target="openidfed-othername-id"/></t>
        <table>
          <thead>
            <tr>
              <th align="left">Decimal</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBA</td>
              <td align="left">id-on-OpenIdFederationEntityId</td>
              <td align="left">this document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2986">
        <front>
          <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
          <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
          <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
          <date month="November" year="2000"/>
          <abstract>
            <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="2986"/>
        <seriesInfo name="DOI" value="10.17487/RFC2986"/>
      </reference>
      <reference anchor="RFC5280">
        <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>
      <reference anchor="OPENID-FED" target="https://openid.net/specs/openid-federation-1_0-41.html">
        <front>
          <title>OpenID Federation 1.0 - draft 41</title>
          <author initials="R." surname="Hedberg" fullname="Roland Hedberg">
            <organization/>
          </author>
          <author initials="M. B." surname="Jones" fullname="Michael Jones">
            <organization/>
          </author>
          <author initials="A. Å." surname="Solberg" fullname="Andreas Solberg">
            <organization/>
          </author>
          <author initials="J." surname="Bradley" fullname="John Bradley">
            <organization/>
          </author>
          <author initials="G." surname="De Marco" fullname="Giuseppe De Marco">
            <organization/>
          </author>
          <author initials="V." surname="Dzhuvinov" fullname="Vladimir Dzhuvinov">
            <organization/>
          </author>
          <date year="2024" month="December" day="04"/>
        </front>
      </reference>
      <reference anchor="IANA-ACME" target="https://www.iana.org/assignments/acme">
        <front>
          <title>Automated Certificate Management Environment (ACME) Protocol</title>
          <author>
            <organization>IANA</organization>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="IANA-OAUTH" target="https://www.iana.org/assignments/oauth-parameters">
        <front>
          <title>OAuth Parameters</title>
          <author>
            <organization>IANA</organization>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="RFC8555">
        <front>
          <title>Automatic Certificate Management Environment (ACME)</title>
          <author fullname="R. Barnes" initials="R." surname="Barnes"/>
          <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
          <author fullname="D. McCarney" initials="D." surname="McCarney"/>
          <author fullname="J. Kasten" initials="J." surname="Kasten"/>
          <date month="March" year="2019"/>
          <abstract>
            <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8555"/>
        <seriesInfo name="DOI" value="10.17487/RFC8555"/>
      </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>
      <reference anchor="RFC4648">
        <front>
          <title>The Base16, Base32, and Base64 Data Encodings</title>
          <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
          <date month="October" year="2006"/>
          <abstract>
            <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4648"/>
        <seriesInfo name="DOI" value="10.17487/RFC4648"/>
      </reference>
      <reference anchor="RFC4086">
        <front>
          <title>Randomness Requirements for Security</title>
          <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
          <author fullname="J. Schiller" initials="J." surname="Schiller"/>
          <author fullname="S. Crocker" initials="S." surname="Crocker"/>
          <date month="June" year="2005"/>
          <abstract>
            <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
            <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
        <seriesInfo name="RFC" value="4086"/>
        <seriesInfo name="DOI" value="10.17487/RFC4086"/>
      </reference>
      <reference anchor="RFC7515">
        <front>
          <title>JSON Web Signature (JWS)</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
          <date month="May" year="2015"/>
          <abstract>
            <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7515"/>
        <seriesInfo name="DOI" value="10.17487/RFC7515"/>
      </reference>
      <reference anchor="RFC9457">
        <front>
          <title>Problem Details for HTTP APIs</title>
          <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
          <author fullname="E. Wilde" initials="E." surname="Wilde"/>
          <author fullname="S. Dalal" initials="S." surname="Dalal"/>
          <date month="July" year="2023"/>
          <abstract>
            <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
            <t>This document obsoletes RFC 7807.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9457"/>
        <seriesInfo name="DOI" value="10.17487/RFC9457"/>
      </reference>
    </references>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="D." surname="Cook" fullname="David Cook">
        <organization>ISRG</organization>
        <address>
          <email>divergentdave@gmail.com</email>
        </address>
      </contact>
      <contact initials="A." surname="Ghani" fullname="Ameer Ghani">
        <organization>ISRG</organization>
        <address>
          <email>inahga@letsencrypt.org</email>
        </address>
      </contact>
      <contact initials="J.C." surname="Jones" fullname="J.C. Jones">
        <organization>ISRG</organization>
        <address>
          <email>ietf@insufficient.coffee</email>
        </address>
      </contact>
      <contact initials="T." surname="Geoghegan" fullname="Tim Geoghegan">
        <organization>ISRG</organization>
        <address>
          <email>timgeog+ietf@gmail.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
8YtS+p2gF/i5fwWlOKf7D6f1FiXyfwjoWvt3N6CTrIfHdlzcePVjsDa2Yd0B
aMF8Mu0t84J3iPW8d39d0P8kvs7j8DsEDZEhbbEqBIh3A5oiT4zs/dB4dyfM
98Okcd47E/TtXL6anyron9jLo6NjcviOoyBgGcwzoK2jn/HrVpolFczqEf6p
BjT9LNHX4QbFjw3cSNKQ32EbNyVIDeiSH3lrWs/FutgRsyUtJ2lhxHbHoBcm
5W8P+rZJhxtivfDn+wgif7aymI7TFlnx9qCvj41vDPo2Dmmtk1oBXf751zBg
d6aeSEGVltEIR9Wmds0Ohl65HuuffpQOqQFd6Ujp1h8D2vg8ltR9H/sO0GRP
cdPOnWN9W/V0E6yv+/kOglwLep5jdkdYK8fMXJM7A02ShE7O3YMu7LS9W9B6
v9xdYi18PvzOsNVh4yjw3dldYl33878LWhwoiHq4F0+IvXHc7vtA5x9QAeLS
H/hvc9vB7UHfPtf/F1hG8/tbkS7/fkr1kE/zKgHVjUx/CQ65K5+PvL6rfPuZ
3iml94P9ov4s/Jh7xQo7r+z57+bsaFu0Xe12+8jqd8Ut2K5m7hUr/Nyf/+5+
/a64bqFJtfN92vlHZwlqY/gDedyjdGQsL7lExRx0NazSKaG6QykiT+XHlnFW
p25oqhYAaCkYBiL1p13mHayDEd0g89Re2MLRDUt2OMPt1Hoa8kiCL7e4Fo/N
6FZ4OI/OIGB5Jr1vuGl1RcGlKJ59yOKg29SntWn485OXavsuccC2alwu5mHu
9W/b7cpuf+M0C5EBT7NUoeZ1pGR+UH+JqTvhSac95Ikdt/ACRifAPPTGkR+m
SWXrLBVyCaOwpUtQMv7JwRNWsmrR4rWxKmujKb0ptqdaX0DlNOBlwyifKtra
ciSsgdnAfdqNJOvdpJnvpNCsvdZeX3n0ZHllhR7yT2P18MmGevhxeokDfyG1
18BTr/DXH1IJftHKsHGZznDgk9NOo5k/dYKBeLqytm4+h0XD54k/MJ9eQsgG
Tw8/914mF8ONbHvL9VrrB4fTi93VNx8eh9Gbi913nf6zy0/vkpO9rScXidk7
xL7j8OLpUZbsdA6zbLDOp/xz78nzD7Ztmy1p7M6rztOGfCb2Ub+Hf9PJuoZa
gXzixgLph/C4wPKLCS+suu4ghsaBv1pftTK6Zx6qK0j+nMN2Cw7WIu+Vz95Z
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
BEZlHaAz64F5sv4HYjTUqEuNAAA=

-->

</rfc>
