rfc-9934

Privacy-Enhanced Mail (PEM) File Format for Encrypted ClientHello (ECH)

S. Farrell
date2026-03 streamIETF wgnon working group statusPROPOSED STANDARD pages5 canonicalhttps://www.rfc-editor.org/rfc/rfc9934 doi10.17487/RFC9934
Encrypted ClientHello (ECH) key pairs need to be configured into TLS servers, which can be built using different TLS libraries. This document specifies a standard file format for this purpose, similar to how RFC 7468 defines other Privacy-Enhanced Mail (PEM) file formats.

Extracted elements (14)

design-rationale §1

A standard PEM file format for ECH key pairs was created because TLS servers can be built with different TLS libraries. Having a common format — analogous to what RFC 7468 provides for other structures — enables interoperability between key managers and TLS server implementations.

tls, privacy

interoperability-note §1

ECH key pairs need to be periodically regenerated by a key manager and then configured into potentially heterogeneous TLS servers. This PEM format provides a common interchange format across different TLS library implementations to support that operational workflow.

tls, privacy

normative-requirement §3 SHOULD

Any content after the PEM encoded ECHConfigList SHOULD be ignored by implementations.

tls

normative-requirement §4 MUST NOT

The private key from an ECH PEM file MUST NOT be published in the DNS; only the ECHConfigList is to be published there.

tls, security, dns

normative-requirement §3 MUST

The private key MUST be encoded as a PKCS #8 PrivateKey as defined in RFC 7468.

tls, security, pkix

normative-requirement §3 MUST

The public and private keys MUST both be PEM encoded per RFC 7468.

tls, security

normative-requirement §3 MUST

The public key(s) MUST be the base64-encoded form (RFC 4648, Section 4) of an ECHConfigList value that can be published in the DNS using an HTTPS RR.

tls, dns

normative-requirement §3 MUST

The string "ECHCONFIG" MUST be used in the PEM file delimiter for the public key portion of the ECH PEM file.

tls

normative-requirement §3 MUST

When a private key is present in the PEM ECH file, the ECHConfigList MUST contain an ECHConfig that matches the private key.

tls, security

protocol-element §3

A PEM ECH file contains zero or one private key and one encoded ECHConfigList. The file is the concatenation of the PEM-encoded private key (if present) followed by the PEM-encoded public key(s) as an ECHConfigList.

tls, privacy, security

protocol-element §3

ECHConfig values within an ECHConfigList appear in decreasing order of preference, consistent with RFC 9849. The ECHConfigList may contain more than one ECHConfig if those values contain different extensions or different public_name values.

tls

protocol-element §3

TLS servers may configure multiple ECH PEM file names; for example, only a subset of ECHConfigList values from those files may be used as the retry_configs value in the ECH fallback scenario. In that case, retry_configs might contain different public keys.

tls

security-consideration §4

Storing cryptographic keys in files leaves them vulnerable should anyone gain read access to the filesystem. The same protection mechanisms used for a server's PEM-encoded HTTPS certificate private key MUST be applied to the PEM ECH configuration.

tls, security

security-consideration §4

The security considerations of RFC 9848 apply when retrieving an ECHConfigList from the DNS, covering risks associated with bootstrapping TLS ECH via DNS Service Bindings.

tls, dns, security