<?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-sullivan-tls-signed-ech-updates-01" category="std" consensus="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Authenticated ECH Update">Authenticated ECH Config Distribution and Rotation</title>
    <seriesInfo name="Internet-Draft" value="draft-sullivan-tls-signed-ech-updates-01"/>
    <author fullname="Nick Sullivan">
      <organization>Cryptography Consulting LLC</organization>
      <address>
        <email>nicholas.sullivan+ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Dennis Jackson">
      <organization>Mozilla</organization>
      <address>
        <email>ietf@dennis-jackson.uk</email>
      </address>
    </author>
    <author fullname="Alessandro Ghedini">
      <organization>Cloudflare</organization>
      <address>
        <email>alessandro@cloudflare.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <area>Security</area>
    <workgroup>TLS</workgroup>
    <keyword>TLS 1.3</keyword>
    <keyword>Encrypted ClientHello</keyword>
    <keyword>ECH</keyword>
    <keyword>Key Rotation</keyword>
    <keyword>PKIX</keyword>
    <keyword>RPK</keyword>
    <abstract>
      <?line 45?>

<t>Encrypted ClientHello (ECH) requires clients to have the
server's ECH configuration before connecting.  Currently,
when ECH fails, servers can send updated configurations but
clients cannot authenticate them unless the server has a
valid certificate for the public name, limiting deployment
flexibility.</t>
      <t>This document specifies a new mechanism for authenticating
ECH configurations.  Servers include additional information
in their initial ECH configurations, which enables clients
to authenticate updated configurations without relying on a
valid certificate for the public name.</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-sullivan-tls-signed-ech-updates/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/grittygrease/draft-sullivan-tls-signed-ech-updates"/>.</t>
    </note>
  </front>
  <middle>
    <?line 60?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Deployment of TLS Encrypted ClientHello (ECH) requires that
clients obtain the server's current ECH configuration
(ECHConfig) before initiating a connection.  Current
mechanisms distribute ECHConfig data via DNS HTTPS resource
records <xref target="RFC9460"/> or HTTPS well-known URIs
<xref target="I-D.ietf-tls-wkech"/>, allowing servers to publish their
ECHConfigList prior to connection establishment.</t>
      <t>ECH includes a retry mechanism where servers can send an
updated ECHConfigList during the handshake.  The base ECH
specification instructs clients to authenticate this
information using a certificate valid for the public name
<xref target="I-D.ietf-tls-esni"/>.</t>
      <t>This forces a tradeoff between security and privacy for
server operators.  Using the same public name for as many
websites as possible improves client privacy, but makes
obtaining or compromising a valid certificate for that
cover name a high value target for attackers.  It also
restricts the usable public names in an ECH deployment to
those for which operators can obtain valid certificates.</t>
      <t>This document introduces an alternative authentication
mechanism for ECHConfig data which does not require the
server to hold a valid TLS certificate for the public
name.  This allows server operators to partition the retry
configuration between different domains, as well as
enabling greater flexibility in the public name used.</t>
      <t>The mechanism supports two authentication methods:</t>
      <ol spacing="normal" type="1"><li>
          <t>Raw Public Key (RPK) - Uses SPKI hashes to identify
public keys for retry authentication.</t>
        </li>
        <li>
          <t>PKIX - Uses certificate-based signing with a critical
X.509 extension.</t>
        </li>
      </ol>
      <t>Each ECH Retry Configuration carries at most one signature
using the specified method, replacing the need to
authenticate the ECH Retry configuration through the TLS
handshake and ECH Public Name.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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.
<?line -6?>
      </t>
      <t>This document assumes familiarity with TLS 1.3
<xref target="RFC8446"/> and the ECH specification
<xref target="I-D.ietf-tls-esni"/>, referred to here as simply "ECH".</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <dl>
          <dt>ECHConfig:</dt>
          <dd>
            <t>An individual ECH configuration structure as defined in
<xref target="I-D.ietf-tls-esni"/>, which includes fields such as
<tt>public_name</tt>, <tt>public_key</tt> (HPKE key), and extensions.</t>
          </dd>
          <dt>ECHConfigList:</dt>
          <dd>
            <t>A sequence of one or more ECHConfig structures as
defined in ECH (a byte string that starts with a 16-bit
length and may contain multiple concatenated ECHConfig
values).</t>
          </dd>
          <dt>ECHConfigTBS (To-Be-Signed):</dt>
          <dd>
            <t>The serialized ECHConfig structure including the
<tt>ech_auth</tt> extension, but with the <tt>signature</tt> field
within <tt>ech_auth</tt> set to zero-length.  This includes all
ECHConfig fields and the <tt>ech_auth</tt> extension's <tt>method</tt>,
<tt>not_after</tt>, <tt>authenticator</tt>, and <tt>algorithm</tt> fields.</t>
          </dd>
          <dt>signed ECHConfig:</dt>
          <dd>
            <t>An ECHConfig that contains an <tt>ech_auth</tt> extension with
a valid signature in the <tt>signature</tt> field, allowing
clients to verify its authenticity.</t>
          </dd>
          <dt>public name:</dt>
          <dd>
            <t>The value of the <tt>public_name</tt> field in the ECHConfig,
i.e., the authoritative DNS name for updates and
validation associated with that configuration.  This
name is not required to be the ClientHelloOuter SNI,
though deployments sometimes choose to align them.</t>
          </dd>
          <dt>retry_configs:</dt>
          <dd>
            <t>The ECHConfigList sent by a server in
EncryptedExtensions when ECH is rejected, as defined in
<xref target="I-D.ietf-tls-esni"/>.</t>
          </dd>
          <dt>outer SNI:</dt>
          <dd>
            <t>The Server Name Indication value sent in the outer
(unencrypted) ClientHello when ECH is used.  This is
typically the ECHConfig's <tt>public_name</tt> or another name
that preserves client privacy.</t>
          </dd>
        </dl>
        <t>The reader should recall that in TLS 1.3, the server's
EncryptedExtensions message is encrypted and
integrity-protected with handshake keys
<xref target="I-D.ietf-tls-esni"/>.  New extensions defined as part
of EncryptedExtensions are not visible to network attackers
and cannot be modified by an attacker without detection.
Additionally, "certificate verification" refers to the
standard X.509 validation process (chain building,
signature and expiration checking, name matching, etc.)
unless otherwise specified.</t>
      </section>
    </section>
    <section anchor="mechanism-overview">
      <name>Mechanism Overview</name>
      <t>This specification defines two methods for authenticating
ECH configuration updates:</t>
      <t>Raw Public Keys (RPK) has little wire overhead and no
external dependencies.  The site offering ECH places one
or more public key hashes in their ECH Configs, then can
use those keys to sign ECH Retry Configs.  However, key
rotation must be managed by the site operator, through
updates to the list of trusted public key hashes.</t>
      <t>PKIX has a larger wire overhead and requires coordination
with an issuing CA who must provide certificates with an
appropriate extension.  However, it does not require any
manual key rotation.  The public name used to authenticate
the certificate is a fixed string, which is never visible
on the wire, and the operator can rotate certificate chains
without needing to change their advertised ECHConfigs.</t>
      <section anchor="raw-public-key-rpk">
        <name>Raw Public Key (RPK)</name>
        <t>The ECHConfigList update is authenticated by a Raw Public
Key (RPK).  The ECHConfig's <tt>ech_authinfo</tt> extension
carries a set of <tt>trusted_keys</tt>, each value being
<tt>SHA-256(SPKI)</tt> of an RPK that is authorized to sign an
update.</t>
        <t>A client receiving a signed ECH retry configuration (e.g.,
in EncryptedExtensions) MUST:</t>
        <ol spacing="normal" type="1"><li>
            <t>Extract the authenticator key's SubjectPublicKeyInfo
(SPKI) and compute <tt>sha256(spki)</tt>.  Verify membership
in <tt>trusted_keys</tt>.</t>
          </li>
          <li>
            <t>Verify that <tt>not_after</tt> is strictly greater than the
client's current time.</t>
          </li>
          <li>
            <t>Verify the signature over the ECH Configuration and the
<tt>not_after</tt> using the authenticator's public key.</t>
          </li>
        </ol>
        <t>The client may then use the signed ECH retry configuration
to make a new connection attempt, in line with the existing
rules for ECH retries laid out in the ECH specification.
Alternatively, the server can indicate that ECH should not
be used by producing a signature over a zero-length
ECHConfigList.  Clients receiving a verified zero-length
list MUST NOT attempt ECH on the subsequent retry and
SHOULD clear any cached ECHConfig for this public name.</t>
      </section>
      <section anchor="pkix-certificate-based">
        <name>PKIX (Certificate-Based)</name>
        <t>The update is signed with the private key corresponding to
an X.509 certificate that chains to a client trusted root
and is valid for the ECHConfig <tt>public_name</tt> (i.e.,
appears in the certificate's SAN).</t>
        <t>The leaf certificate MUST include a new, critical X.509
v3 extension <tt>id-pe-echConfigSigning</tt> (OID: TBD) whose
presence indicates authorization to sign ECH configuration
updates for the DNS names in the certificate's SAN.
Clients MUST perform standard X.509 certificate validation
per <xref section="6" sectionFormat="comma" target="RFC5280"/> and additionally:</t>
        <ul spacing="normal">
          <li>
            <t>MUST confirm the SAN covers the ECHConfig <tt>public_name</tt>;</t>
          </li>
          <li>
            <t>MUST confirm the critical <tt>id-pe-echConfigSigning</tt>
extension is present in the leaf;</t>
          </li>
          <li>
            <t>MUST verify the ECH signature with the leaf key; and</t>
          </li>
          <li>
            <t>MUST verify that the <tt>not_after</tt> field in <tt>ech_auth</tt> is
strictly greater than the client's current time.</t>
          </li>
        </ul>
        <t>When this critical extension is present, clients MUST NOT
accept the certificate for TLS server authentication.  The
use of the critical bit ensures that even clients who are
unaware of the extension will not accept it for TLS server
authentication.</t>
      </section>
    </section>
    <section anchor="benefits-of-signed-ech-configurations">
      <name>Benefits of Signed ECH Configurations</name>
      <t>By treating ECH configurations as signed objects, this
mechanism decouples trust in ECH keys from the TLS
handshake's certificate validation of the origin.  This
enables several important capabilities:</t>
      <section anchor="distinct-public-names-without-ca-certificates">
        <name>Distinct Public Names Without CA Certificates</name>
        <t>A server can use many different public hostnames (even
per-client, per-connection unique ones) for other
operational reasons <xref target="I-D.ietf-tls-esni"/>, without having
to obtain certificates for each.  This was not possible
under the original ECH design, which required a valid
certificate for any public name used
<xref target="I-D.ietf-tls-esni"/>.</t>
      </section>
      <section anchor="isolating-privacy-critical-key-material">
        <name>Isolating Privacy-Critical Key Material</name>
        <t>In a large CDN deployment, the ECH specification requires
many endpoints to have access to key material which can
authenticate a TLS connection for the ECH Cover Name.
This raises privacy and security risks where compromise of
the private key material in turn compromises the privacy
of ECH users and the security of normal TLS connections to
the cover name.  Both mechanisms introduced in this
document avoid this problematic sharing of private key
material, reducing the risk for ECH operators.</t>
      </section>
    </section>
    <section anchor="wire-formats">
      <name>Protocol Elements</name>
      <t>This section specifies the new extensions and data
structures in detail.  All multi-byte values are in network
byte order (big-endian).  The syntax uses the TLS
presentation language from <xref target="RFC8446"/>.</t>
      <section anchor="extensions">
        <name>ECH Authentication Extensions</name>
        <t>The information for authenticating retry configs is carried
as an ECHConfig extension (<tt>ech_authinfo</tt>) inside the
ECHConfig structure and conveys authentication policy.  ECH
Retry Configs include an <tt>ech_auth</tt> extension which
includes a signed authenticator that allows clients to
verify the provided config independently of the TLS
handshake.</t>
        <t>The <tt>ech_auth</tt> extension MUST be the last extension in the
ECHConfig's extension list.  This simplifies ECHConfigTBS
construction: the signature field is at a fixed position
relative to the end of the serialized ECHConfig, so
implementations can set it to zero-length without parsing
earlier extensions.  Implementations MUST place this
extension last when constructing an ECHConfig, and MUST
reject ECHConfigs where <tt>ech_auth</tt> is not the last
extension.</t>
        <t>The <tt>ech_auth</tt> and <tt>ech_authinfo</tt> extensions have the
following structure:</t>
        <artwork><![CDATA[
    enum {
        rpk(0),
        pkix(1),
        (255)
    } ECHAuthMethod;

    opaque SPKIHash<32..32>;

    struct {
      ECHAuthMethod method;
      SPKIHash trusted_keys<0..2^16-1>;
    } ECHAuthInfo;

    struct {
        ECHAuthMethod method;
        uint64 not_after;
        opaque authenticator<1..2^16-1>;
        SignatureScheme algorithm;
        opaque signature<1..2^16-1>;
    } ECHAuth;
]]></artwork>
        <section anchor="signature-computation">
          <name>Signature Computation</name>
          <t>The signature is computed over the concatenation:</t>
          <artwork><![CDATA[
    context_label = "TLS-ECH-AUTH-v1"
    to_be_signed = context_label || ECHConfigTBS
]]></artwork>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t><tt>ECHConfigTBS</tt> (To-Be-Signed) is the serialized
ECHConfig structure including the <tt>ech_auth</tt> extension,
but with the <tt>signature</tt> field within <tt>ech_auth</tt> set to
zero-length.  This includes all ECHConfig fields and
the <tt>ech_auth</tt> extension's <tt>method</tt>, <tt>not_after</tt>,
<tt>authenticator</tt>, and <tt>algorithm</tt> fields.</t>
            </li>
            <li>
              <t>All multi-byte values use network byte order
(big-endian).</t>
            </li>
            <li>
              <t>The serialization follows TLS 1.3 presentation language
rules from <xref target="RFC8446"/>.</t>
            </li>
          </ul>
          <t>Note: <tt>trusted_keys</tt> is intentionally not covered by the
signature.  Including it would require existing authorized
keys to sign transitions when adding or removing keys,
creating operational risk if all keys are lost.  The
security model relies on the authenticity of the initial
ECHConfig distribution for the authorized key set.</t>
          <t>For both methods, <tt>not_after</tt> bounds the replay window
independently of any certificate validity period.  Shorter
windows reduce the replay window but require more frequent
signature generation.  Longer windows allow pre-signing but
increase exposure to replayed configurations.  A window of
24 hours is RECOMMENDED as a balance between operational
simplicity and replay resistance.</t>
          <t>Method-specific <tt>authenticator</tt>:</t>
          <ul spacing="normal">
            <li>
              <t>RPK (method=0): the DER-encoded SubjectPublicKeyInfo
(SPKI) of the signing key.  The client MUST compute the
SHA-256 hash of the SPKI, verify that it matches one of
the hashes in <tt>trusted_keys</tt>, check that the current
time is before the <tt>not_after</tt> timestamp, and then
verify the signature with this key.  The <tt>not_after</tt>
field is REQUIRED and MUST be a timestamp strictly
greater than the client's current time at verification.</t>
            </li>
            <li>
              <t>PKIX (method=1): a CertificateEntry vector (leaf +
optional intermediates) as in TLS 1.3 Certificate; the
leaf MUST include the critical <tt>id-pe-echConfigSigning</tt>
extension and be valid for the ECHConfig <tt>public_name</tt>.
The client validates the chain, confirms the SAN
includes the ECH <tt>public_name</tt>, confirms the critical
<tt>id-pe-echConfigSigning</tt> extension is present in the
leaf, and verifies the signature with the leaf key.  The
<tt>not_after</tt> field MUST be a timestamp strictly greater
than the client's current time at verification.</t>
            </li>
          </ul>
          <t>Notes:</t>
          <ul spacing="normal">
            <li>
              <t><tt>trusted_keys</tt> is only used by RPK; clients MUST ignore
it for PKIX.</t>
            </li>
            <li>
              <t>If <tt>method</tt> is <tt>rpk(0)</tt>, <tt>trusted_keys</tt> MUST contain at
least one SPKI hash; otherwise it MUST be zero-length.</t>
            </li>
            <li>
              <t>A server publishing multiple ECHConfigs MAY use different
methods for each to maximize client compatibility.</t>
            </li>
          </ul>
          <t>Context-specific requirements:</t>
          <ul spacing="normal">
            <li>
              <t>When carried in TLS (EncryptedExtensions), an <tt>ech_auth</tt>
extension in each delivered ECHConfig MUST include a
signed authenticator in <tt>signature</tt>, and the client MUST
verify the authenticator before installing the ECHConfig.</t>
            </li>
            <li>
              <t>When carried in DNS, an <tt>ech_authinfo</tt> extension conveys
only policy (<tt>method</tt>, <tt>trusted_keys</tt>).</t>
            </li>
          </ul>
          <t>The SPKI hash uses SHA-256 (value 4 in the IANA TLS
HashAlgorithm registry).  Allowing multiple hashes enables
seamless key rollovers.</t>
          <t>Note: While TLS 1.3 moved to SignatureScheme and does not
directly use the HashAlgorithm enum, we reference the IANA
registry value for clarity.  Future versions of this
specification could add a hash algorithm field using the
TLS HashAlgorithm registry if algorithm agility becomes
necessary.</t>
          <t>Client behavior: When a client obtains an ECHConfig that
contains an <tt>ech_authinfo</tt> extension, it SHOULD store this
information along with the configuration.</t>
          <t>Server behavior: A server that wishes to allow
authenticated updates MUST include <tt>ech_authinfo</tt> in the
ECHConfig it publishes via DNS or other means.  The server
MUST set the <tt>method</tt> field to the authentication method it
will use for this configuration.  The server MUST ensure
that it actually has the capability to perform the
indicated method:</t>
          <ul spacing="normal">
            <li>
              <t>If <tt>method</tt> is <tt>rpk(0)</tt>, the server needs a signing key
whose SPKI hash is in <tt>trusted_keys</tt>.  It may have
multiple keys for rotation; all keys that might sign an
update before the next ECHConfig change should be listed.</t>
            </li>
            <li>
              <t>If <tt>method</tt> is <tt>pkix(1)</tt>, the server MUST have a valid
certificate (and chain) for the public name with the
critical <tt>id-pe-echConfigSigning</tt> extension (as defined
in <xref target="iana"/>) available at runtime to use for signing.
The certificate's public key algorithm dictates what
signature algorithms are possible.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="tls-extensions-for-ech-config-update">
        <name>TLS Extensions for ECH Config Update</name>
        <section anchor="encryptedextensions-delivery">
          <name>EncryptedExtensions Delivery</name>
          <t>This specification reuses the ECH retry_configs delivery
mechanism: the server sends an ECHConfigList where each
ECHConfig contains the <tt>ech_auth</tt> extension with a signed
authenticator.  The server MAY include multiple ECHConfigs
with different authentication methods (e.g., one with PKIX
and one with RPK).</t>
        </section>
        <section anchor="server-behavior">
          <name>Server Behavior</name>
          <t>When a server receives a ClientHello with the
<tt>encrypted_client_hello</tt> extension, it processes ECH per
<xref target="I-D.ietf-tls-esni"/>.  If the server has an updated
ECHConfigList to distribute:</t>
          <ol spacing="normal" type="1"><li>
              <t>ECH Accepted: If the server successfully decrypts the
ClientHelloInner, it completes the handshake using the
inner ClientHello.</t>
            </li>
            <li>
              <t>ECH Rejected: If the server cannot decrypt the
ClientHelloInner, it SHOULD proceed with the outer
handshake and include signed ECHConfigs in
EncryptedExtensions.  This allows the client to
immediately retry with the correct configuration.</t>
            </li>
          </ol>
          <t>The server may indicate that the client should attempt to
retry without ECH by producing a signature over a
zero-length ECHConfigList.</t>
        </section>
        <section anchor="client-behavior">
          <name>Client Behavior</name>
          <t>When a client retrieves an ECHConfig (e.g., from DNS), it
examines the <tt>ech_authinfo</tt> extension and records:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication <tt>method</tt> (RPK or PKIX)</t>
            </li>
            <li>
              <t>Any <tt>trusted_keys</tt> for RPK validation</t>
            </li>
          </ul>
          <t>During the TLS handshake, upon receiving an ECHConfigList
in EncryptedExtensions:</t>
          <ol spacing="normal" type="1"><li>
              <t>Validation: The client validates the authenticator
according to its method:
              </t>
              <ul spacing="normal">
                <li>
                  <t>RPK: Computes the SHA-256 hash of the provided SPKI,
verifies it matches one in <tt>trusted_keys</tt>, then
verifies the signature.</t>
                </li>
                <li>
                  <t>PKIX: Validates the certificate chain, verifies the
leaf certificate covers the ECHConfig's
<tt>public_name</tt>, checks for the critical
<tt>id-pe-echConfigSigning</tt> extension, then verifies
the signature.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Validity Checking: The client checks temporal validity:
              </t>
              <ul spacing="normal">
                <li>
                  <t>For RPK: Verifies <tt>not_after</tt> is strictly greater
than the current time.</t>
                </li>
                <li>
                  <t>For PKIX: Verifies the certificate validity period
and that <tt>not_after</tt> is strictly greater than the
current time.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Installation and Retry (see <xref target="appendix-a"/> for state
diagram):
              </t>
              <ul spacing="normal">
                <li>
                  <t>If validation succeeds and this was an ECH rejection
(outer handshake):
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>The client treats the retry_configs as authentic
per <xref target="I-D.ietf-tls-esni"/>.</t>
                    </li>
                    <li>
                      <t>The client MUST terminate the connection and retry
with the new ECHConfig or without ECH if indicated
by the server.</t>
                    </li>
                    <li>
                      <t>The retry does not consider the server's TLS
certificate for the public name.</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>If validation succeeds and this was an ECH
acceptance:
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>No changes to the ECH specification.</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>If validation fails:
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>The client MUST treat this as if the server's TLS
certificate could not be validated.</t>
                    </li>
                    <li>
                      <t>The client MUST NOT use the retry_configs.</t>
                    </li>
                    <li>
                      <t>The client terminates the connection without retry.</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
          </ol>
          <t>Note: Regardless of validation outcome in an ECH
rejection, the client will terminate the current
connection.  The difference is whether it retries with the
new configs (validation success) or treats it as a
certificate validation failure (validation failure).</t>
        </section>
        <section anchor="backward-compatibility">
          <name>Backward Compatibility</name>
          <t>Clients that do not implement this specification continue
to process <tt>retry_configs</tt> as defined in
<xref target="I-D.ietf-tls-esni"/>, ignoring the authentication
extensions.  Servers that do not implement this
specification send <tt>retry_configs</tt> as usual.</t>
        </section>
      </section>
    </section>
    <section anchor="example-exchange">
      <name>Example Exchange</name>
      <section anchor="initial-setup">
        <name>Initial Setup</name>
        <t>Consider <tt>api.example.com</tt> as a service protected by ECH
with public name <tt>ech.example.net</tt>.  The operator publishes
an ECHConfig via DNS HTTPS RR with the <tt>ech_authinfo</tt>
extension containing:</t>
        <ul spacing="normal">
          <li>
            <t>Method: RPK (value 0)</t>
          </li>
          <li>
            <t>Trusted keys: SHA-256 hash of an Ed25519 signing key's
SPKI</t>
          </li>
        </ul>
      </section>
      <section anchor="successful-ech">
        <name>Successful ECH</name>
        <t>This flow works identically to existing ECH.</t>
      </section>
      <section anchor="ech-rejection-with-recovery">
        <name>ECH Rejection with Recovery</name>
        <ol spacing="normal" type="1"><li>
            <t>Client connects: Uses outdated ECHConfig</t>
          </li>
          <li>
            <t>Server rejects ECH: Cannot decrypt inner ClientHello</t>
          </li>
          <li>
            <t>Server continues outer handshake:
            </t>
            <ul spacing="normal">
              <li>
                <t>Sends signed ECHConfig in EncryptedExtensions</t>
              </li>
              <li>
                <t>Uses certificate for <tt>foo.example.net</tt> (the client
does not validate this certificate; retry
authentication uses the signed ECHConfig)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Client recovery:
            </t>
            <ul spacing="normal">
              <li>
                <t>Validates new ECHConfig</t>
              </li>
              <li>
                <t>Closes connection</t>
              </li>
              <li>
                <t>Immediately retries with new ECHConfig</t>
              </li>
            </ul>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="passive-attackers">
        <name>Passive Attackers</name>
        <t>This mechanism preserves ECH's protection against passive
observation.  ECHConfig updates are delivered within the
EncryptedExtensions TLS message, preventing passive
observers from learning about configuration changes.  The
mechanism ensures that even during retry scenarios, the
client's intended server name is never exposed in
cleartext.</t>
      </section>
      <section anchor="active-network-attackers">
        <name>Active Network Attackers</name>
        <t>The security of this mechanism fundamentally depends on the
authenticity of the initial ECHConfig.  If an attacker can
inject a malicious initial configuration, the client's
privacy is compromised, but their connections remain
properly authenticated.</t>
        <t>Initial retrieval of ECHConfigList via DNS is unchanged by
this mechanism.  This specification does not attempt to
authenticate the initial DNS fetch.  ECHConfigs obtained
via HTTPS from a well-known URI benefit from Web PKI
authentication.  Pre-configured ECHConfigs in applications
derive their trust from the application's distribution
channel.</t>
        <section anchor="retry-configuration-integrity">
          <name>Retry Configuration Integrity</name>
          <t>ECHConfigs delivered in EncryptedExtensions are usually
protected by TLS 1.3's handshake encryption and integrity
mechanisms.  The Finished message ensures that any
modification by an attacker would be detected.  The
authenticity of the Finished message is assured by
validating the server's certificate chain, which the client
checks is valid for the ECH Public Name.</t>
          <t>However, signed ECHConfigs do not benefit from this
authentication because the client does not validate the
server's certificate chain.  Instead, the client verifies
the ECHConfigs against the authenticator provided in the
initial ECHConfig.  This provides the same level of
authenticity as checking the ECH Public Name would.</t>
          <t>The inclusion of <tt>not_after</tt> timestamps (for RPK) or
certificate validity periods (for PKIX) ensures
configuration freshness.  These temporal bounds prevent
clients from accepting stale configurations that might use
compromised keys or outdated parameters.</t>
        </section>
        <section anchor="key-management">
          <name>Key Management</name>
          <t>Servers MUST protect their ECH update signing keys.  If an
RPK signing key is compromised, the server SHOULD remove
its hash from <tt>trusted_keys</tt>.  Servers SHOULD include
multiple keys in <tt>trusted_keys</tt> to facilitate key rotation
and recovery from compromise.</t>
          <t>For PKIX-based updates, normal certificate lifecycle
management applies.  Servers SHOULD obtain new certificates
before existing ones expire.</t>
        </section>
      </section>
      <section anchor="implementation-vulnerabilities">
        <name>Implementation Vulnerabilities</name>
        <section anchor="failure-handling">
          <name>Failure Handling</name>
          <t>ECH connection attempts with signed updates are handled
identically to existing ECH connection attempts.  The only
difference is in how the server authenticates retry
configurations, not how it responds to the success or
failure of that authentication.</t>
          <t>Algorithm agility is provided through the TLS
SignatureScheme registry for RPK and standard PKIX
certificate algorithms.  Implementations SHOULD support
commonly deployed algorithms and MUST be able to handle
algorithm transitions.</t>
        </section>
        <section anchor="denial-of-service-considerations">
          <name>Denial of Service Considerations</name>
          <t>The ECH specification allows ECH operators to decide which
ECH extensions to attempt to decrypt based on the public
ECHConfig ID advertised in the ClientHello and the public
name.  This extension reduces the value of those signals,
depending on the ECH operator's chosen configurations,
meaning that ECH operators may need to trial decrypt
incoming ECH extensions.</t>
          <t>Attackers cannot force servers to send signed ECHConfigs
without establishing TLS connections.  Standard TLS
denial-of-service mitigations (rate limiting, stateless
cookies) apply equally to this mechanism.</t>
        </section>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This specification introduces no new privacy risks beyond
those already present in TLS and DNS when used with ECH.
ECHConfig updates are delivered within encrypted TLS
messages, preventing passive observers from learning about
configuration changes.  Server-directed ECH disablement
(signing an empty ECHConfigList) could degrade privacy if
signing keys are compromised; clients SHOULD re-fetch
ECHConfigs from DNS on subsequent connections to limit this
exposure.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="echconfig-extension">
        <name>ECHConfig Extension</name>
        <t>IANA is requested to add the following entries to the
"ECH Configuration Extension Type Values" registry:</t>
        <ul spacing="normal">
          <li>
            <t>Extension Name: <tt>ech_authinfo</tt></t>
          </li>
          <li>
            <t>Value: TBD1</t>
          </li>
          <li>
            <t>Purpose: Conveys supported authentication methods and
trusted keys</t>
          </li>
          <li>
            <t>Reference: This document</t>
          </li>
          <li>
            <t>Extension Name: <tt>ech_auth</tt></t>
          </li>
          <li>
            <t>Value: TBD2</t>
          </li>
          <li>
            <t>Purpose: Conveys authenticator and signatures</t>
          </li>
          <li>
            <t>Reference: This document</t>
          </li>
        </ul>
      </section>
      <section anchor="x509-certificate-extension-oid">
        <name>X.509 Certificate Extension OID</name>
        <t>IANA is requested to allocate an object identifier (OID)
under the "SMI Security for PKIX Certificate Extensions
(1.3.6.1.5.5.7.1)" registry with the following values:</t>
        <ul spacing="normal">
          <li>
            <t>OID: id-pe-echConfigSigning (1.3.6.1.5.5.7.1.TBD2)</t>
          </li>
          <li>
            <t>Name: ECH Configuration Signing</t>
          </li>
          <li>
            <t>Description: Indicates that the certificate's subject
public key is authorized to sign ECH configuration
updates for the DNS names in the certificate's Subject
Alternative Name (SAN).</t>
          </li>
          <li>
            <t>Criticality: Certificates containing this extension
MUST mark it critical.</t>
          </li>
          <li>
            <t>Reference: This document.</t>
          </li>
        </ul>
      </section>
      <section anchor="ech-authentication-methods-registry">
        <name>ECH Authentication Methods Registry</name>
        <t>IANA is requested to establish a new registry called
"ECH Authentication Methods" with the following initial
values:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Method</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">RPK</td>
              <td align="left">Raw Public Key</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">PKIX</td>
              <td align="left">X.509 with critical id-pe-echConfigSigning</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">2-255</td>
              <td align="left">Unassigned</td>
              <td align="left">-</td>
              <td align="left">-</td>
            </tr>
          </tbody>
        </table>
        <t>New values are assigned via IETF Review.</t>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <section anchor="method-selection">
        <name>Method Selection</name>
        <t>Operators SHOULD support at least one widely implemented
method.  PKIX (critical extension) provides easier
operational deployment with standard certificate issuance
workflows.  RPK offers small artifacts and simple
verification but the list of hashed keys and those used for
signing must be carefully kept in sync.</t>
      </section>
      <section anchor="size-considerations">
        <name>Size Considerations</name>
        <t>When sending signed ECHConfigs in EncryptedExtensions,
servers SHOULD be mindful of message size to avoid
fragmentation or exceeding anti-amplification limits.  RPK
signatures are typically more compact than PKIX certificate
chains.</t>
      </section>
      <section anchor="key-rotation">
        <name>Key Rotation</name>
        <t>Operators SHOULD publish updates well in advance of key
retirement.  Include appropriate validity periods for each
method.  Consider overlapping validity windows to allow
graceful client migration.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <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="RFC5280" target="https://www.rfc-editor.org/info/rfc5280" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml">
        <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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <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="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="August" year="2018"/>
          <abstract>
            <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
            <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8446"/>
        <seriesInfo name="DOI" value="10.17487/RFC8446"/>
      </reference>
      <reference anchor="RFC9180" target="https://www.rfc-editor.org/info/rfc9180" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9180.xml">
        <front>
          <title>Hybrid Public Key Encryption</title>
          <author fullname="R. Barnes" initials="R." surname="Barnes"/>
          <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
          <author fullname="B. Lipp" initials="B." surname="Lipp"/>
          <author fullname="C. Wood" initials="C." surname="Wood"/>
          <date month="February" year="2022"/>
          <abstract>
            <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
            <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9180"/>
        <seriesInfo name="DOI" value="10.17487/RFC9180"/>
      </reference>
      <reference anchor="RFC9460" target="https://www.rfc-editor.org/info/rfc9460" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9460.xml">
        <front>
          <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
          <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
          <author fullname="M. Bishop" initials="M." surname="Bishop"/>
          <author fullname="E. Nygren" initials="E." surname="Nygren"/>
          <date month="November" year="2023"/>
          <abstract>
            <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9460"/>
        <seriesInfo name="DOI" value="10.17487/RFC9460"/>
      </reference>
      <reference anchor="I-D.ietf-tls-esni" target="https://datatracker.ietf.org/doc/html/draft-ietf-tls-esni-25" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-esni.xml">
        <front>
          <title>TLS Encrypted Client Hello</title>
          <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
            <organization>Independent</organization>
          </author>
          <author fullname="Kazuho Oku" initials="K." surname="Oku">
            <organization>Fastly</organization>
          </author>
          <author fullname="Nick Sullivan" initials="N." surname="Sullivan">
            <organization>Cryptography Consulting LLC</organization>
          </author>
          <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
            <organization>Cloudflare</organization>
          </author>
          <date day="14" month="June" year="2025"/>
          <abstract>
            <t>This document describes a mechanism in Transport Layer Security (TLS) for encrypting a ClientHello message under a server public key. Discussion Venues This note is to be removed before publishing as an RFC. Source for this draft and an issue tracker can be found at https://github.com/tlswg/draft-ietf-tls-esni (https://github.com/tlswg/draft-ietf-tls-esni).</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-tls-esni-25"/>
      </reference>
      <reference anchor="I-D.ietf-tls-svcb-ech" target="https://datatracker.ietf.org/doc/html/draft-ietf-tls-svcb-ech-08" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-svcb-ech.xml">
        <front>
          <title>Bootstrapping TLS Encrypted ClientHello with DNS Service Bindings</title>
          <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
            <organization>Meta Platforms, Inc.</organization>
          </author>
          <author fullname="Mike Bishop" initials="M." surname="Bishop">
            <organization>Akamai Technologies</organization>
          </author>
          <author fullname="Erik Nygren" initials="E." surname="Nygren">
            <organization>Akamai Technologies</organization>
          </author>
          <date day="16" month="June" year="2025"/>
          <abstract>
            <t>To use TLS Encrypted ClientHello (ECH) the client needs to learn the ECH configuration for a server before it attempts a connection to the server. This specification provides a mechanism for conveying the ECH configuration information via DNS, using a SVCB or HTTPS resource record (RR).</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-tls-svcb-ech-08"/>
      </reference>
      <reference anchor="I-D.ietf-tls-wkech" target="https://datatracker.ietf.org/doc/html/draft-ietf-tls-wkech-11" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-wkech.xml">
        <front>
          <title>A well-known URI for publishing service parameters</title>
          <author fullname="Stephen Farrell" initials="S." surname="Farrell">
            <organization>Trinity College Dublin</organization>
          </author>
          <author fullname="Rich Salz" initials="R." surname="Salz">
            <organization>Akamai Technologies</organization>
          </author>
          <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
            <organization>Meta Platforms, Inc.</organization>
          </author>
          <date day="3" month="November" year="2025"/>
          <abstract>
            <t>We define a well-known URI at which an HTTP origin can inform an authoritative DNS server, or other interested parties, about its Service Bindings. Service binding data can include Encrypted ClientHello (ECH) configurations, that may change frequently. This allows the HTTP origin, in collaboration with DNS infrastructure elements, to publish and rotate its own ECH keys. Other service binding data such as information about TLS supported groups is unlikely to change quickly, but the HTTP origin is much more likely to have accurate information when changes do occur. Service data published via this mechanism is typically available via an HTTPS or SVCB resource record.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-tls-wkech-11"/>
      </reference>
    </references>
    <?line 746?>

<section anchor="appendix-a">
      <name>Client Retry State Diagram</name>
      <t>The following diagram shows client behavior upon receiving
retry_configs in EncryptedExtensions.  "ech_auth" refers
to the authentication extension within the delivered
ECHConfig.</t>
      <figure anchor="fig-retry">
        <name>Client Retry State Diagram</name>
        <artwork><![CDATA[
    Receive retry_configs in EE
                |
                v
      +-------------------+
      | ech_auth present? |
      +-------------------+
         |             |
        yes            no
         |             |
         v             v
    +-----------+   Process per base
    | Validate  |   ECH spec (no
    | ech_auth  |   authentication)
    +-----------+
         |
    +----+----+
    |         |
  valid    invalid
    |         |
    v         v
  +-----+  Treat as certificate
  | ECH |  validation failure;
  | out |  terminate connection;
  | come|  do not retry.
  | ?   |
  +-----+
    |    \
 rejected  accepted
    |        \
    v         v
  +--------+ Continue handshake
  |Config  | normally (no change
  |empty?  | to ECH spec).
  +--------+
    |     \
   no     yes (zero-length)
    |       \
    v        v
  Terminate  Terminate connection;
  connection; MUST NOT attempt ECH
  retry with  on retry; SHOULD
  new config. clear cached config.
]]></artwork>
      </figure>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank Martin Thomson for earlier contributions
and discussions on the initial draft.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5V963bbSHbu/3qKivyjyTTJWG67k5ZnpiNL7lgZ344lTydr
ZR0LBIoiIhDgoEDJ7LbzLHmW82Rn3+oGgLbbs9Y0SQCFqn399qVK8/lcdWVX
mRN9dLrr1qbuyjzrTKGfn73QZ029Km/0eWm7tlzuurKpdVYX+l3TZfjlSGXL
ZWvuRh9+vy3g85HCX26adn+ibVeoctue6K7d2e7Rw4c/PXykiiavsw28v2iz
VTe3u6oq77J63lV2bsub2hRzk6/nOxrNzh8eq6w12Ym+NPmuLbu9um/a25u2
2W1P9NXLS3Vr9vBLcaK0nuMP+njxA31+XuftfouzO6tKmOoLU1UNXzl7Qf/9
q9n7pdEPb/968R/04d3bvyqVwRKblgdewTR52q/L/FZfyqzhmtZNe5PV5W80
zIk+w5c2N222Xe+RoLDArqxv9MuXZ3S32WRldaLrMl83VWYXjgDfl6Zb/esN
Xl3kzab31nNT16XV/57lt7YZe+2r5reyqrL4FTRgQQ/O/5sfXOxuewOfVsZa
4HHb6H9bm6Ksy7E1Vc2uWFXAiHj8zD/6r7m/geau6qbdwLN3Bqn37pezR8fH
P8nHJ4/+5aF8/Jfjf37sPj5+/KN8/OnY3/DT4x/p48X8fIGrISExti4HP9q7
fIlyM7hwf0u/qjtT72g2keho3e23QINfQaKQRf+Gl/CWslvvlidwa9l1+xsQ
P2v+6ZvEVc1Bv/D/dLYEHcryTqlROdQTEMKpbs3fd2VrrM7pktVdo9fZndGg
XMqa9s6031nSrpxUc9cSR/TSrJrW4I+1yVG8Flqf7doWxqj2M3UPqklPrYBR
dqZ5JHhLVsNnUGiebpGOajWovHIzgXvrptNZpOc4q43e1ch3/CzjwoytztRd
VpUwomm7csW3wxzptu1uWZW5RoGb6arclKQQhdlWzX4Dg6tVZT6Wy7IC9V4o
dbUGSQczscNr2m5NDgMCjTJdm3u9AXKDaNoNDR9ND8ZUA0pZIMylrL6s82pX
GJ0VRYnXsgp+WrGkgk6VNU62bOFHuAwXh4PN9P0a9FabOltWgWsKuJbQ6QB5
70Guml0HXK/2SAG0rt9GtgUL1aYsisoo9UBf1F3bFLucZq7OPSl1syIj+E1C
162zwO9m2WVMAu0FL2eRGlJC4UjsLaZOGJlsxNrMSyaYHC+ZyrMO2OtcjNF+
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

-->

</rfc>
