rfc-9482

Constrained Application Protocol (CoAP) Transfer for the Certificate Management Protocol

M. Sahni (Editor), S. Tripathi (Editor)
date2023-11 streamIETF areasec wgace statusPROPOSED STANDARD pages9 canonicalhttps://www.rfc-editor.org/rfc/rfc9482 doi10.17487/RFC9482 errataview
This document specifies the use of the Constrained Application Protocol (CoAP) as a transfer mechanism for the Certificate Management Protocol (CMP). CMP defines the interaction between various PKI entities for the purpose of certificate creation and management. CoAP is an HTTP-like client-server protocol used by various constrained devices in the Internet of Things space.

Extracted elements (27)

design-rationale §1

CoAP over UDP is specified as the primary transport (not CoAP over TCP/TLS/WebSockets) because this document targets constrained IoT devices, which benefit from UDP's lower overhead; CMP's own PKIProtection provides integrity without requiring a reliable transport.

pkix, security

design-rationale §2.5

Multicast CoAP is prohibited for CMP PKIMessages because CMP transactions require point-to-point exchanges with specific RAs or CAs, and multicast delivery would undermine the targeted, transactional nature of certificate management.

pkix, multicast

interoperability-note §1

This document follows the HTTP transfer for CMP specifications in RFC 6712 and is designed so a CoAP-to-HTTP proxy can bridge CoAP-speaking constrained EEs to existing PKI entities already providing CMP over HTTP without changes to the PKI implementation.

pkix, http

normative-requirement §2.6 SHOULD

An EE SHOULD periodically reregister itself for CMP announcement messages, since a server can remove the EE from its list of observers at any time.

pkix

normative-requirement §2.3 MUST

CMP PKIMessages MUST be DER encoded and sent as the body of a CoAP POST request. Each CoAP request MUST be marked as a Confirmable message.

pkix, security

normative-requirement §2.5 MUST NOT

CMP PKIMessages sent over CoAP MUST NOT use a Multicast destination address.

pkix, multicast

normative-requirement §2.2 MUST

CoAP CMP endpoints supporting service discovery MUST also support resource discovery in the CoRE Link Format (RFC 6690), and the link MUST include the 'ct' attribute with the value 'application/pkixcmp'.

pkix, registry

normative-requirement §2.1 MUST

CoAP endpoints MUST support use of the path prefix '/.well-known/' and the registered name 'cmp' to enable endpoint discovery and interoperability.

pkix, registry

normative-requirement §2.4 MUST

EEs and RAs or CAs MUST use block-wise transfer mode (RFC 7959) to transfer CMP messages larger than the MTU of the outgoing interface, instead of relying on IP fragmentation.

pkix

normative-requirement §2.4 MUST

If a CoAP-to-HTTP proxy is in the path and the server supports it, the proxy MUST use chunked transfer encoding (RFC 9112) over HTTP and MUST try to reduce the number of packets by using an optimal chunk length.

pkix, http

normative-requirement §2.2 MUST

If the port number is not specified in the authority, the default port numbers MUST be assumed: 5683 for 'coap:' and 5684 for 'coaps:'.

pkix

normative-requirement §3 MUST

The CoAP-to-HTTP proxy MUST function as a reverse proxy, only permitting connections to a limited set of preconfigured servers.

pkix, security

normative-requirement §2.3 MUST

When a CoAP CMP request succeeds, the RA or CA MUST return a Success 2.xx response code; otherwise, it MUST return an appropriate Client Error 4.xx or Server Error 5.xx response code.

pkix

normative-requirement §2.3 MUST

When transferring CMP PKIMessages over CoAP, the content-format 'application/pkixcmp' MUST be used.

pkix, registry

protocol-element §2

A CMP transaction over CoAP consists of PKIMessage exchanges between end entities (EEs), registration authorities (RAs), and certification authorities (CAs). Constrained EEs act as CoAP clients preferring CoAP over HTTP; RAs and CAs support both.

pkix, security

protocol-element §3

A CoAP-to-HTTP cross-protocol proxy, based on RFC 7252 Section 10, can bridge constrained EEs using CoAP to existing PKI infrastructure serving CMP over HTTP, since the CMP payload is identical over both transports.

pkix, http

protocol-element §2.6

An EE MAY use the CoAP Observe Option (RFC 7641) to register for CMP announcement messages by sending a GET to the server URI suffixed by '/ann'. Supported announcement types include CA Key Update, Certificate, Revocation, and CRL Announcements.

pkix, security

protocol-element §2.1

The CoAP URI for CMP follows the pattern 'coap://host/.well-known/cmp[/p/<profileLabel>][/<operation>]', supporting optional path segments for CA distinction and PKI management operations as defined in the Lightweight CMP Profile.

pkix

registry §5

IANA registered 'application/pkixcmp' with ID 259 in the 'CoAP Content-Formats' registry to identify CMP transaction payloads over CoAP.

pkix, registry

registry §5

IANA registered the path segment 'ann' in the 'CMP Well-Known URI Path Segments' registry; EEs use a GET to this path with the CoAP Observe Option to register for CMP announcement messages.

pkix, registry

security-consideration §4

A CoAP-to-HTTP proxy can mitigate DoS, replay, and resource-exhaustion attacks by validating ASN.1 syntax and PKIMessage protection before forwarding to PKI entities; however, the proxy itself may be vulnerable to resource-exhaustion and should use short discard timers and per-client rate limiting.

pkix, security

security-consideration §4 SHOULD

CMP does not provide confidentiality of its payloads; CoAP over DTLS (RFC 9147) SHOULD be used when confidentiality is desired, though it cannot conceal that CMP is in use within the DTLS layer.

pkix, security, crypto, tls

security-consideration §4 SHOULD

DTLS associations SHOULD be kept alive and reused where possible to amortize the overhead of DTLS session establishment on constrained devices.

pkix, security, tls

security-consideration §4 SHOULD

Implementations SHOULD use the available datagram size and avoid sending small datagrams containing partial CMP PKIMessage data, in order to reduce memory usage for packet buffering on constrained devices.

pkix, security

security-consideration §4

The CoAP Observe Option is best-effort; an EE might miss announcement messages (e.g., CRL updates) because the server may lose its observer state. EEs should use alternate polling methods for time-critical changes.

pkix, security

security-consideration §4

When PKIProtection is used, the PKIHeader and PKIBody of CMP are cryptographically protected against malicious modification, so UDP can be used without compromising CMP security.

pkix, security, crypto

wire-format §2.3

CMP PKIMessages are DER-encoded ASN.1 structures carried as the body of CoAP POST requests with content-format 'application/pkixcmp' (CoAP Content-Format ID 259). Large messages exceeding the interface MTU MUST be segmented using CoAP block-wise transfer.

pkix, security