Network Working Group L. Liao Internet-Draft NIO Inc. Intended status: Standards Track 1 November 2026 Expires: 5 May 2027 EST for C509 Certificates draft-liao-ace-est-c509-04 Abstract This document defines Enrollment over Secure Transport (EST) protocol operations over HTTPS and secure CoAP for use with C509 certificates. The operations specified in this document support CA certificate distribution, C509 certificate enrollment, C509 certificate re- enrollment, and server-side key generation using C509 certificates. This document also defines operations for server capability discovery, Certificate Revocation List (CRL) distribution, and a challenge-response proof of possession for KEM-only keys. About This Document This note is to be removed before publishing as an RFC. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-liao-ace-est-c509/. Discussion of this document takes place on the Authentication and Authorization for Constrained Environments Working Group mailing list (mailto:ace@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/ace/. Subscribe at https://www.ietf.org/mailman/listinfo/ace/. Source for this draft and an issue tracker can be found at https://github.com/ace-wg/xxx. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Liao Expires 5 May 2027 [Page 1] Internet-Draft EST-C509 November 2026 Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 5 May 2027. Copyright Notice Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Conventions and Definitions . . . . . . . . . . . . . . . . . 7 3. Protocol Design . . . . . . . . . . . . . . . . . . . . . . . 8 3.1. Client Authentication . . . . . . . . . . . . . . . . . . 8 3.2. TLS Certificate Type Negotiation . . . . . . . . . . . . 8 3.3. Discovery and URIs . . . . . . . . . . . . . . . . . . . 8 3.4. EST URL Structure and Path Components . . . . . . . . . . 9 3.5. Channel Binding . . . . . . . . . . . . . . . . . . . . . 9 3.6. Message Binding . . . . . . . . . . . . . . . . . . . . . 10 3.7. Message Fragmentation . . . . . . . . . . . . . . . . . . 10 3.8. Delayed Responses . . . . . . . . . . . . . . . . . . . . 10 3.9. Response Cache . . . . . . . . . . . . . . . . . . . . . 10 3.10. CBOR Transfer . . . . . . . . . . . . . . . . . . . . . . 10 4. C509 Certification Request (C509 CSR) . . . . . . . . . . . . 12 4.1. empty-publickey Algorithm . . . . . . . . . . . . . . . . 13 4.2. CRAttribute C509ChangeSubjectName . . . . . . . . . . . . 13 4.3. Proof of Possession . . . . . . . . . . . . . . . . . . . 14 4.3.1. Proof of Possession for KEM Private Keys . . . . . . 14 4.3.1.1. Challenge Issuance . . . . . . . . . . . . . . . 14 4.3.1.2. PoP Nonce . . . . . . . . . . . . . . . . . . . . 15 4.3.1.3. MAC Computation by the EST Client . . . . . . . . 16 4.3.1.4. Verification by the EST Server . . . . . . . . . 17 4.3.1.5. MAC Algorithms . . . . . . . . . . . . . . . . . 17 5. EST Operations for Server Capability Discovery . . . . . . . 18 5.1. caps . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Liao Expires 5 May 2027 [Page 2] Internet-Draft EST-C509 November 2026 5.1.1. Request . . . . . . . . . . . . . . . . . . . . . . . 18 5.1.2. Response . . . . . . . . . . . . . . . . . . . . . . 18 5.2. csrattrs / att . . . . . . . . . . . . . . . . . . . . . 20 5.2.1. Request . . . . . . . . . . . . . . . . . . . . . . . 20 5.2.2. Response . . . . . . . . . . . . . . . . . . . . . . 20 6. EST Operations for Distribution of CA Certificates . . . . . 20 6.1. cacerts / crts . . . . . . . . . . . . . . . . . . . . . 20 6.1.1. Request . . . . . . . . . . . . . . . . . . . . . . . 21 6.1.2. Response . . . . . . . . . . . . . . . . . . . . . . 21 7. EST Operations for Distribution of C509 CRLs . . . . . . . . 22 7.1. crli . . . . . . . . . . . . . . . . . . . . . . . . . . 22 7.1.1. Request . . . . . . . . . . . . . . . . . . . . . . . 22 7.1.2. Response . . . . . . . . . . . . . . . . . . . . . . 23 7.2. crl . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 7.2.1. Request . . . . . . . . . . . . . . . . . . . . . . . 24 7.2.2. Response . . . . . . . . . . . . . . . . . . . . . . 24 8. EST Operations for Certificate Enrollment . . . . . . . . . . 24 8.1. kemc . . . . . . . . . . . . . . . . . . . . . . . . . . 25 8.1.1. Request . . . . . . . . . . . . . . . . . . . . . . . 25 8.1.2. Response . . . . . . . . . . . . . . . . . . . . . . 25 8.2. simpleenroll / sen . . . . . . . . . . . . . . . . . . . 25 8.2.1. Request . . . . . . . . . . . . . . . . . . . . . . . 26 8.2.2. Response . . . . . . . . . . . . . . . . . . . . . . 26 8.3. simplereenroll / sren . . . . . . . . . . . . . . . . . . 26 8.3.1. Request . . . . . . . . . . . . . . . . . . . . . . . 26 8.3.2. Response . . . . . . . . . . . . . . . . . . . . . . 27 8.4. serverkeygen / skc . . . . . . . . . . . . . . . . . . . 27 8.4.1. Request . . . . . . . . . . . . . . . . . . . . . . . 27 8.4.2. Response . . . . . . . . . . . . . . . . . . . . . . 28 9. Security Considerations . . . . . . . . . . . . . . . . . . . 28 9.1. Transport Security . . . . . . . . . . . . . . . . . . . 28 9.2. Server Key Generation . . . . . . . . . . . . . . . . . . 29 9.3. C509 Certificate Validation . . . . . . . . . . . . . . . 29 9.4. C509 CRL Validation . . . . . . . . . . . . . . . . . . . 29 9.5. KEM Proof of Possession . . . . . . . . . . . . . . . . . 29 9.6. Capability Discovery . . . . . . . . . . . . . . . . . . 30 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 10.1. C509 Public Key Algorithms Registry . . . . . . . . . . 30 10.2. C509 Signature Algorithms Registry . . . . . . . . . . . 30 10.3. C509 CR Attributes Registry . . . . . . . . . . . . . . 31 10.4. Media Types Registry . . . . . . . . . . . . . . . . . . 32 10.4.1. Media Type application/c509-kemchall+cbor . . . . . 32 10.5. CoAP Content-Formats Registry . . . . . . . . . . . . . 33 10.6. Resource Type (rt=) Link Target Attribute Values Registry . . . . . . . . . . . . . . . . . . . . . . . . 33 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 11.1. Normative References . . . . . . . . . . . . . . . . . . 34 11.2. Informative References . . . . . . . . . . . . . . . . . 36 Liao Expires 5 May 2027 [Page 3] Internet-Draft EST-C509 November 2026 Appendix A. Message Flow Diagrams of EST over HTTPS Operations . . . . . . . . . . . . . . . . . . . . . . . 36 A.1. caps . . . . . . . . . . . . . . . . . . . . . . . . . . 36 A.2. cacerts for single CA certificate . . . . . . . . . . . . 37 A.3. cacerts for CA certificate set . . . . . . . . . . . . . 37 A.4. cacerts for CA certificate chain . . . . . . . . . . . . 37 A.5. crli . . . . . . . . . . . . . . . . . . . . . . . . . . 38 A.6. crl . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 A.7. kemc . . . . . . . . . . . . . . . . . . . . . . . . . . 39 A.8. simpleenroll . . . . . . . . . . . . . . . . . . . . . . 39 A.9. simplereenroll . . . . . . . . . . . . . . . . . . . . . 40 A.10. serverkeygen . . . . . . . . . . . . . . . . . . . . . . 40 Appendix B. Message Flow Diagrams of EST over CoAP/DTLS Operations . . . . . . . . . . . . . . . . . . . . . . . 41 B.1. crts for single CA certificate . . . . . . . . . . . . . 41 B.2. crts for CA certificate set . . . . . . . . . . . . . . . 41 B.3. crts for CA certificate chain . . . . . . . . . . . . . . 42 B.4. crli . . . . . . . . . . . . . . . . . . . . . . . . . . 42 B.5. crl . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 B.6. kemc . . . . . . . . . . . . . . . . . . . . . . . . . . 43 B.7. sen . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 B.8. sren . . . . . . . . . . . . . . . . . . . . . . . . . . 44 B.9. skc . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 45 Change log . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Since draft-liao-ace-est-c509-03 . . . . . . . . . . . . . . . 45 Since draft-liao-ace-est-c509-02 . . . . . . . . . . . . . . . 46 Since draft-liao-ace-est-c509-01 . . . . . . . . . . . . . . . 47 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 47 1. Introduction Enrollment over Secure Transport (EST) [RFC7030] defines HTTPS-based operations for X.509 [RFC5280] certificate enrollment and CA certificate distribution. Payloads are DER-encoded and wrapped in CMS (Cryptographic Message Syntax, [RFC5652]) structures. C509 [I-D.ietf-cose-cbor-encoded-cert] defines a compact, CBOR-encoded alternative to DER X.509 certificates. C509 certificates are substantially smaller. Although C509 was developed with constrained devices in mind, its benefits extend to unconstrained devices operating over low-bandwidth links and to large-scale deployments. Smaller, CBOR-encoded certificates reduce bandwidth and storage requirements, accelerate TLS handshakes, and lower parsing and serialization overhead even on powerful endpoints; because C509 does not use ASN.1/DER, implementations can avoid complex ASN.1 parsing code, which reduces code size and complexity and lowers the attack surface for Liao Expires 5 May 2027 [Page 4] Internet-Draft EST-C509 November 2026 certificate parsing libraries. In complex systems (for example, connected cars) that contain diverse device classes—microcontrollers, sensor chips, and SoCs—using a common certificate format wherever practical simplifies integration and provisioning. Using C509 consistently across device classes simplifies provisioning, interoperability, and over-the-air updates, and can reduce overall operational costs and latency. This document defines EST operations that carry C509 objects in place of DER X.509 objects, following the same secure transport and URI path structure as [RFC7030] and [RFC9148]. A key property of this design is that EST clients need only minimal CBOR processing: * For non-KEM-only key types, the C509 CSR is typically pre- provisioned as an opaque binary blob by the device manufacturer or a provisioning tool; the EST client sends it verbatim as the POST body of simpleenroll / sen or simplereenroll / sren without interpreting its contents. * For KEM-only key types, the EST client needs to communicate with the component that holds the private key (for example, a secure element or a hardware security module) to get the public key (C509SubjectPublicKeyInfo) and, after receiving the KEM challenge object (C509KemChall) from the EST server, the certification request (C509CertificationRequest); in this case, the EST client treats the C509SubjectPublicKeyInfo, C509KemChall, and C509CertificationRequest as opaque binary blobs. * For all key types, the C509 certificate (and private key in the operation serverkeygen / skc) returned in the response is stored directly in persistent memory without modification. The EST client MUST validate received C509 certificates against a trust anchor (see Section 9.3); apart from this validation, no parsing of the response is required. This property makes the EST client implementation lightweight. This document uses C509CertificationRequest as defined in [I-D.ietf-cose-cbor-encoded-cert] as the C509 Certificate Signing Request (C509 CSR) format. An EST client uses a C509 CSR to request issuance of a C509 certificate from an EST server. The operations for EST over HTTPS used in this document (those marked new are new operations defined in this document) are listed in Figure 1, and those for EST over CoAP in Figure 2. Liao Expires 5 May 2027 [Page 5] Internet-Draft EST-C509 November 2026 +==========+===+=============+==============+===================+ | Opera- | M | Description | Request | Response | | tion | / | | Media Type | Media Type | | | O | | | | +==========+===+=============+==============+===================+ | caps | M | Capability | (none) | text/plain; | | (new) | | discovery | | charset=utf-8 | +----------+---+-------------+--------------+-------------------+ | cacerts | M | CA | (none) | - application/ | | | | certificate | | cose-c509+cbor | | | | retrieval | | - application/ | | | | | | cose-c509+cbor, | | | | | | usage=chain | | | | | | - application/ | | | | | | cose-c509-cert | | | | | | +cbor | +----------+---+-------------+--------------+-------------------+ | crli | O | CRL | (none) | application/ | | (new) | | metadata | | c509-crlinfo+cbor | | | | retrieval | | | +----------+---+-------------+--------------+-------------------+ | crl | O | CRL | (none) | application/ | | (new) | | retrieval | | c509-crl+cbor | +----------+---+-------------+--------------+-------------------+ | csr | O | CSR | (none) | application/ | | attrs | | attributes | | cose-c509- | | | | retrieval | | crtemplate+cbor | +----------+---+-------------+--------------+-------------------+ | kemc | O | KEM | application/ | application/ | | (new) | | challenge | cose-c509- | c509-kemchall | | | | issuance | pubkey+cbor | +cbor | +----------+---+-------------+--------------+-------------------+ | simple | M | Certificate | application/ | application/ | | enroll | | enrollment | cose-c509- | cose-c509- | | | | | pkcs10+cbor | cert+cbor | +----------+---+-------------+--------------+-------------------+ | simple | M | Certificate | application/ | application/ | | reenroll | | reenroll- | cose-c509- | cose-c509- | | | | ment | pkcs10+cbor | cert+cbor | +----------+---+-------------+--------------+-------------------+ | server | O | Server-side | application/ | application/ | | keygen | | key | cose-c509- | cose-c509- | | | | generation | pkcs10+cbor | pem+cbor | +----------+---+-------------+--------------+-------------------+ Figure 1: Operations for EST over HTTPS Used in This Document (M/ O: MANDATORY / OPTIONAL) Liao Expires 5 May 2027 [Page 6] Internet-Draft EST-C509 November 2026 +===============+================+=====+==========+==========+ | EST over | Corresponding | M/O | Request | Response | | CoAP/DTLS | EST over HTTPS | | Content- | Content- | | Operation | Operation | | Format | Format | +===============+================+=====+==========+==========+ | (Not Related) | caps | N/A | N/A | N/A | +---------------+----------------+-----+----------+----------+ | crts | cacerts | M | (none) | - TBD | | | | | | - TBD | | | | | | - TBD | +---------------+----------------+-----+----------+----------+ | crli (new) | crli | O | (none) | TBD | +---------------+----------------+-----+----------+----------+ | crl (new) | crl | O | (none) | TBD | +---------------+----------------+-----+----------+----------+ | attr | csrattrs | O | (none) | TBD | +---------------+----------------+-----+----------+----------+ | kemc (new) | kemc | O | TBD | TBD | +---------------+----------------+-----+----------+----------+ | sen | simpleenroll | M | TBD | TBD | +---------------+----------------+-----+----------+----------+ | sren | simplereenroll | M | TBD | TBD | +---------------+----------------+-----+----------+----------+ | skc | serverkeygen | O | TBD | TBD | +---------------+----------------+-----+----------+----------+ Figure 2: Operations for EST over CoAP/DTLS Used in This Document (M/O: MANDATORY / OPTIONAL) 2. Conventions and Definitions 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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. The following terms are used in this document: EST client: The entity that contacts the EST server to obtain certificates or CA information, as defined in [RFC7030], Section 1. EST server: The entity that processes EST requests, typically acting as an RA between the EST client and the CA, as defined in [RFC7030], Section 1. CA: Certification Authority. The entity that issues C509 Liao Expires 5 May 2027 [Page 7] Internet-Draft EST-C509 November 2026 certificates. C509 CSR: C509 Certification Request. A CBOR-encoded certification request used by an EST client to request issuance of a C509 certificate. PoP: Proof of Possession. Verification that the requester holds the private key corresponding to the public key in the C509 CSR. 3. Protocol Design 3.1. Client Authentication While [RFC7030] permits a number of the EST functions to be used without authentication, this document requires that the client MUST be authenticated for all functions, as in [RFC9148]. This document requires EST to support certificate-based client authentication only; neither HTTP Basic nor Digest authentication (as described in Section 3.2.3 of [RFC7030]) is supported, as in [RFC9148]. 3.2. TLS Certificate Type Negotiation When C509 certificates are used for TLS or DTLS authentication, the client and server negotiate the certificate type using the server_certificate_type and client_certificate_type TLS extensions as defined in [RFC7250]. 3.3. Discovery and URIs In EST over HTTPS, the capabilities of the EST server are retrieved by using the operation caps. In EST over CoAP/DTLS, the capabilities are retrieved by sending a GET method to the EST server (as in Section 4.1 of [RFC9148]). As in [RFC9148], the ct attribute lists the Content-Formats of both the request and the response. Linefeeds are included only for readability. Liao Expires 5 May 2027 [Page 8] Internet-Draft EST-C509 November 2026 REQ: GET /.well-known/core?rt=ace.est* RES: 2.05 Content ;rt="ace.est.crts";ct="TBD TBD TBD", ;rt="ace.est.sen";ct="TBD TBD", ;rt="ace.est.sren";ct="TBD TBD", ;rt="ace.est.att";ct=TBD, ;rt="ace.est.skc";ct="TBD TBD", ;rt="ace.est.crli";ct=TBD, ;rt="ace.est.crl";ct=TBD, ;rt="ace.est.kemc";ct="TBD3 TBD7" (TODO: the TBD values will be replaced with the real values once the Content-Formats are assigned in [I-D.ietf-cose-cbor-encoded-cert] and [I-D.liao-cose-c509-revocation].) 3.4. EST URL Structure and Path Components The operations in this document follow the same URI path structure defined in [RFC7030], Section 3.2.2 for HTTPS and the corresponding secure CoAP mapping defined in [RFC9148]. Retrieval operations caps, cacerts / crts, csrattrs / att, crli, and crl use the GET method. Method: GET Request target: /.well-known/est/ Request target: /.well-known/est/