draft-ietf-lamps-lightweight-cmp-profile-10.txt   draft-ietf-lamps-lightweight-cmp-profile-11.txt 
LAMPS Working Group H. Brockhaus, Ed. LAMPS Working Group H. Brockhaus, Ed.
Internet-Draft D. von Oheimb Internet-Draft D. von Oheimb
Intended status: Standards Track S. Fries Intended status: Standards Track S. Fries
Expires: 5 August 2022 Siemens Expires: 17 October 2022 Siemens
1 February 2022 15 April 2022
Lightweight Certificate Management Protocol (CMP) Profile Lightweight Certificate Management Protocol (CMP) Profile
draft-ietf-lamps-lightweight-cmp-profile-10 draft-ietf-lamps-lightweight-cmp-profile-11
Abstract Abstract
This document aims at simple, interoperable, and automated PKI This document aims at simple, interoperable, and automated PKI
management operations covering typical use cases of industrial and management operations covering typical use cases of industrial and
IoT scenarios. This is achieved by profiling the Certificate IoT scenarios. This is achieved by profiling the Certificate
Management Protocol (CMP), the related Certificate Request Message Management Protocol (CMP), the related Certificate Request Message
Format (CRMF), and HTTP-based or CoAP-based transfer in a succinct Format (CRMF), and HTTP-based or CoAP-based transfer in a succinct
but sufficiently detailed and self-contained way. To make secure but sufficiently detailed and self-contained way. To make secure
certificate management for simple scenarios and constrained devices certificate management for simple scenarios and constrained devices
skipping to change at page 1, line 41 skipping to change at page 1, line 41
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 5 August 2022. This Internet-Draft will expire on 17 October 2022.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License. provided without warranty as described in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. How to Read This Document . . . . . . . . . . . . . . . . 4 1.1. How to Read This Document . . . . . . . . . . . . . . . . 4
1.2. Motivation for a lightweight profile of CMP . . . . . . . 5 1.2. Motivation for a Lightweight Profile of CMP . . . . . . . 5
1.3. Special requirements of industrial and IoT scenarios . . 6 1.3. Special Requirements of Industrial and IoT Scenarios . . 6
1.4. Existing CMP profiles . . . . . . . . . . . . . . . . . . 7 1.4. Existing CMP Profiles . . . . . . . . . . . . . . . . . . 7
1.5. Use of CMP in SZTP and BRSKI environments . . . . . . . . 7 1.5. Use of CMP in SZTP and BRSKI Environments . . . . . . . . 7
1.6. Compatibility with existing CMP profiles . . . . . . . . 8 1.6. Compatibility with Existing CMP Profiles . . . . . . . . 8
1.7. Scope of this document . . . . . . . . . . . . . . . . . 10 1.7. Scope of this Document . . . . . . . . . . . . . . . . . 10
1.8. Structure of this document . . . . . . . . . . . . . . . 10 1.8. Structure of this Document . . . . . . . . . . . . . . . 10
1.9. Convention and Terminology . . . . . . . . . . . . . . . 11 1.9. Convention and Terminology . . . . . . . . . . . . . . . 11
2. Solution architecture . . . . . . . . . . . . . . . . . . . . 12 2. Solution Architecture . . . . . . . . . . . . . . . . . . . . 12
3. Generic aspects of the PKI message . . . . . . . . . . . . . 14 3. Generic Aspects of PKI Messages and PKI Management
3.1. General description of the CMP message header . . . . . . 15 Operations . . . . . . . . . . . . . . . . . . . . . . . 14
3.2. General description of the CMP message protection . . . . 17 3.1. General Description of the CMP Message Header . . . . . . 15
3.3. General description of CMP message extraCerts . . . . . . 17 3.2. General Description of the CMP Message Protection . . . . 17
3.4. Generic PKI management operation prerequisites . . . . . 18 3.3. General Description of CMP Message ExtraCerts . . . . . . 17
3.5. Generic validation of a PKI message . . . . . . . . . . . 19 3.4. Generic PKI Management Operation Prerequisites . . . . . 18
3.6. Error handling . . . . . . . . . . . . . . . . . . . . . 21 3.5. Generic Validation of a PKI Message . . . . . . . . . . . 19
3.6.1. Reporting error conditions upstream . . . . . . . . . 21 3.6. Error Handling . . . . . . . . . . . . . . . . . . . . . 21
3.6.2. Reporting error conditions downstream . . . . . . . . 22 3.6.1. Reporting Error Conditions Upstream . . . . . . . . . 21
3.6.3. Handling error conditions on nested messages used for 3.6.2. Reporting Error Conditions Downstream . . . . . . . . 22
batching . . . . . . . . . . . . . . . . . . . . . . 22 3.6.3. Handling Error Conditions on Nested Messages Used for
3.6.4. Reporting error conditions . . . . . . . . . . . . . 23 Batching . . . . . . . . . . . . . . . . . . . . . . 22
4. End Entity PKI management operations . . . . . . . . . . . . 24 3.6.4. PKIStatusInfo and Error Messages . . . . . . . . . . 23
4.1. Requesting a new certificate from a PKI . . . . . . . . . 27 4. PKI Management Operations . . . . . . . . . . . . . . . . . . 25
4.1.1. Requesting a certificate from a new PKI with 4.1. Enrolling End Entities . . . . . . . . . . . . . . . . . 27
signature-based protection . . . . . . . . . . . . . 28 4.1.1. Enrolling an End Entity to a New PKI . . . . . . . . 28
4.1.2. Requesting an additional certificate with 4.1.2. Enrolling an End Entity to a Known PKI . . . . . . . 34
signature-based protection . . . . . . . . . . . . . 34 4.1.3. Updating a Valid Certificate . . . . . . . . . . . . 35
4.1.3. Updating an existing certificate with signature 4.1.4. Enrolling an End Entity Using a PKCS#10 Request . . . 36
protection . . . . . . . . . . . . . . . . . . . . . 35 4.1.5. Using MAC-Based Protection for Enrollment . . . . . . 38
4.1.4. Requesting a certificate from a legacy PKI using a 4.1.6. Adding Central Key Pair Generation to Enrollment . . 39
PKCS#10 request . . . . . . . . . . . . . . . . . . . 36 4.1.6.1. Using Key Agreement Key Management Technique . . 45
4.1.5. Requesting a certificate from a PKI with MAC-based 4.1.6.2. Using Key Transport Key Managemen Technique . . . 46
protection . . . . . . . . . . . . . . . . . . . . . 38 4.1.6.3. Using Password-Based Key Management Technique . . 47
4.1.6. Adding central key pair generation to a certificate 4.2. Revoking a Certificate . . . . . . . . . . . . . . . . . 48
request . . . . . . . . . . . . . . . . . . . . . . . 39 4.3. Support Messages . . . . . . . . . . . . . . . . . . . . 50
4.3.1. Get CA Certificates . . . . . . . . . . . . . . . . . 53
4.1.6.1. Using key agreement key management technique . . 45 4.3.2. Get Root CA Certificate Update . . . . . . . . . . . 53
4.1.6.2. Using key transport key management technique . . 46 4.3.3. Get Certificate Request Template . . . . . . . . . . 55
4.1.6.3. Using password-based key management technique . . 47 4.3.4. CRL Update Retrieval . . . . . . . . . . . . . . . . 57
4.2. Revoking a certificate . . . . . . . . . . . . . . . . . 48 4.4. Handling Delayed Delivery . . . . . . . . . . . . . . . . 59
4.3. Support messages . . . . . . . . . . . . . . . . . . . . 50 5. PKI Management Entity Operations . . . . . . . . . . . . . . 64
4.3.1. Get CA certificates . . . . . . . . . . . . . . . . . 53 5.1. Responding to Requests . . . . . . . . . . . . . . . . . 64
4.3.2. Get root CA certificate update . . . . . . . . . . . 53 5.1.1. Responding to a Certificate Request . . . . . . . . . 65
4.3.3. Get certificate request template . . . . . . . . . . 55 5.1.2. Responding to a Confirmation Message . . . . . . . . 65
4.3.4. CRL update retrieval . . . . . . . . . . . . . . . . 57 5.1.3. Responding to a Revocation Request . . . . . . . . . 66
4.4. Handling delayed delivery . . . . . . . . . . . . . . . . 59 5.1.4. Responding to a Support Message . . . . . . . . . . . 66
5. PKI management entity operations . . . . . . . . . . . . . . 64 5.1.5. Initiating Delayed Delivery . . . . . . . . . . . . . 66
5.1. Responding to requests . . . . . . . . . . . . . . . . . 64 5.2. Forwarding Messages . . . . . . . . . . . . . . . . . . . 67
5.1.1. Responding to a certificate request . . . . . . . . . 65 5.2.1. Not Changing Protection . . . . . . . . . . . . . . . 69
5.1.2. Initiating delayed delivery . . . . . . . . . . . . . 65 5.2.2. Adding Protection and Batching of Messages . . . . . 69
5.1.3. Responding to a confirmation message . . . . . . . . 66 5.2.2.1. Adding Protection to a Request Message . . . . . 70
5.1.4. Responding to a revocation request . . . . . . . . . 66 5.2.2.2. Batching Messages . . . . . . . . . . . . . . . . 71
5.1.5. Responding to a support message . . . . . . . . . . . 67 5.2.3. Replacing Protection . . . . . . . . . . . . . . . . 73
5.2. Forwarding messages . . . . . . . . . . . . . . . . . . . 67 5.2.3.1. Not Changing Proof-of-Possession . . . . . . . . 73
5.2.1. Not changing protection . . . . . . . . . . . . . . . 69 5.2.3.2. Using raVerified . . . . . . . . . . . . . . . . 74
5.2.2. Adding protection and batching of messages . . . . . 69 5.3. Acting on Behalf of other PKI Entities . . . . . . . . . 74
5.2.2.1. Adding protection to a request message . . . . . 70 5.3.1. Requesting a Certificate . . . . . . . . . . . . . . 75
5.2.2.2. Batching messages . . . . . . . . . . . . . . . . 71 5.3.2. Revoking a Certificate . . . . . . . . . . . . . . . 75
5.2.3. Replacing protection . . . . . . . . . . . . . . . . 73 6. CMP Message Transfer Mechanisms . . . . . . . . . . . . . . . 76
5.2.3.1. Not changing any included proof-of-possession . . 73 6.1. HTTP Transfer . . . . . . . . . . . . . . . . . . . . . . 77
5.2.3.2. Breaking proof-of-possession . . . . . . . . . . 74 6.2. CoAP Transfer . . . . . . . . . . . . . . . . . . . . . . 79
5.3. Acting on behalf of other PKI entities . . . . . . . . . 74 6.3. Piggybacking on other Reliable Transfer . . . . . . . . . 81
5.3.1. Requesting certificates . . . . . . . . . . . . . . . 75 6.4. Offline Transfer . . . . . . . . . . . . . . . . . . . . 81
5.3.2. Revoking a certificate . . . . . . . . . . . . . . . 75 6.4.1. File-Based Transfer . . . . . . . . . . . . . . . . . 82
6. CMP message transfer mechanisms . . . . . . . . . . . . . . . 76 6.4.2. Other Asynchronous Transfer Protocols . . . . . . . . 82
6.1. HTTP transfer . . . . . . . . . . . . . . . . . . . . . . 77 7. Conformance Requirements . . . . . . . . . . . . . . . . . . 82
6.2. CoAP transfer . . . . . . . . . . . . . . . . . . . . . . 79 7.1. PKI Management Operations . . . . . . . . . . . . . . . . 82
6.3. Piggybacking on other reliable transfer . . . . . . . . . 81 7.2. Message Transfer . . . . . . . . . . . . . . . . . . . . 85
6.4. Offline transfer . . . . . . . . . . . . . . . . . . . . 81
6.4.1. File-based transfer . . . . . . . . . . . . . . . . . 82
6.4.2. Other asynchronous transfer protocols . . . . . . . . 82
7. Conformance requirements . . . . . . . . . . . . . . . . . . 82
7.1. PKI management operations . . . . . . . . . . . . . . . . 82
7.2. Message transfer . . . . . . . . . . . . . . . . . . . . 85
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 86 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 86
9. Security Considerations . . . . . . . . . . . . . . . . . . . 86 9. Security Considerations . . . . . . . . . . . . . . . . . . . 88
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 86 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 88
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 86 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 88
11.1. Normative References . . . . . . . . . . . . . . . . . . 87 11.1. Normative References . . . . . . . . . . . . . . . . . . 88
11.2. Informative References . . . . . . . . . . . . . . . . . 88 11.2. Informative References . . . . . . . . . . . . . . . . . 90
Appendix A. Example CertReqTemplate . . . . . . . . . . . . . . 91 Appendix A. Example CertReqTemplate . . . . . . . . . . . . . . 92
Appendix B. History of changes . . . . . . . . . . . . . . . . . 93 Appendix B. History of Changes . . . . . . . . . . . . . . . . . 94
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 98 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 100
1. Introduction 1. Introduction
[RFC Editor: please delete]: The labels "RFC-CMP-Updates" and "RFC- [RFC Editor: please delete]: The labels "RFC-CMP-Updates" and "RFC-
CMP-Alg" in ASN.1 Syntax need to be replaced with the RFC numbers of CMP-Alg" in ASN.1 Syntax need to be replaced with the RFC numbers of
CMP Updates [I-D.ietf-lamps-cmp-updates] and CMP Algorithms CMP Updates [I-D.ietf-lamps-cmp-updates] and CMP Algorithms
[I-D.ietf-lamps-cmp-algorithms], when available. [I-D.ietf-lamps-cmp-algorithms], when available.
This document specifies PKI management operations supporting machine- This document specifies PKI management operations supporting machine-
to-machine and IoT use cases. Its focus is to maximize automation to-machine and IoT use cases. Its focus is to maximize automation
skipping to change at page 5, line 5 skipping to change at page 5, line 5
the target certificate management solution depending on the PKI the target certificate management solution depending on the PKI
management operations, their variants, and types of message transfer management operations, their variants, and types of message transfer
needed. needed.
Since conformity to this document can be achieved by implementing Since conformity to this document can be achieved by implementing
only the functionality declared mandatory in Section 7, the profile only the functionality declared mandatory in Section 7, the profile
can still be called lightweight because in particular for end can still be called lightweight because in particular for end
entities the mandatory-to-implement set of features is rather entities the mandatory-to-implement set of features is rather
limited. limited.
1.2. Motivation for a lightweight profile of CMP 1.2. Motivation for a Lightweight Profile of CMP
CMP was standardized in 1999 and is implemented in several PKI CMP was standardized in 1999 and is implemented in several PKI
products. In 2005, a completely reworked and enhanced version 2 of products. In 2005, a completely reworked and enhanced version 2 of
CMP [RFC4210] and CRMF [RFC4211] has been published, followed by a CMP [RFC4210] and CRMF [RFC4211] has been published, followed by a
document specifying a transfer mechanism for CMP messages using HTTP document specifying a transfer mechanism for CMP messages using HTTP
[RFC6712] in 2012. [RFC6712] in 2012.
Though CMP is a solid and very capable protocol it is so far not used Though CMP is a solid and very capable protocol it is so far not used
very widely. The most important reason appears to be that the very widely. The most important reason appears to be that the
protocol offers a too large set of features and options. On the one protocol offers a too large set of features and options. On the one
skipping to change at page 6, line 10 skipping to change at page 6, line 10
Defining a profile for a new target environment takes high effort Defining a profile for a new target environment takes high effort
because the range of available options needs to be well understood because the range of available options needs to be well understood
and the selected options need to be consistent with each other and and the selected options need to be consistent with each other and
suitably cover the intended application scenario. Since most suitably cover the intended application scenario. Since most
industrial PKI management use cases typically have much in common it industrial PKI management use cases typically have much in common it
is worth sharing this effort, which is the aim of this document. is worth sharing this effort, which is the aim of this document.
Other standardization bodies can reference this document and do not Other standardization bodies can reference this document and do not
need to come up with individual profiles from scratch. need to come up with individual profiles from scratch.
1.3. Special requirements of industrial and IoT scenarios 1.3. Special Requirements of Industrial and IoT Scenarios
The profiles specified in Appendix D and E of RFC 4210 [RFC4210] have The profiles specified in Appendix D and E of RFC 4210 [RFC4210] have
been developed particularly for managing certificates of human end been developed particularly for managing certificates of human end
entities. With the evolution of distributed systems and client- entities. With the evolution of distributed systems and client-
server architectures, certificates for machines and applications on server architectures, certificates for machines and applications on
them have become widely used. This trend has strengthened even more them have become widely used. This trend has strengthened even more
in emerging industrial and IoT scenarios. CMP is sufficiently in emerging industrial and IoT scenarios. CMP is sufficiently
flexible to support them well. flexible to support them well.
Today's IT security architectures for industrial solutions typically Today's IT security architectures for industrial solutions typically
skipping to change at page 7, line 5 skipping to change at page 7, line 5
Further challenges in many industrial systems are network Further challenges in many industrial systems are network
segmentation and asynchronous communication, while PKI management segmentation and asynchronous communication, while PKI management
entities like Certification Authorities (CA) typically are not entities like Certification Authorities (CA) typically are not
deployed on-site but in a more protected environment of a data center deployed on-site but in a more protected environment of a data center
or trust center. Certificate management must be able to cope with or trust center. Certificate management must be able to cope with
such network architectures. CMP offers the required flexibility and such network architectures. CMP offers the required flexibility and
functionality, namely self-contained messages, efficient polling, and functionality, namely self-contained messages, efficient polling, and
support for asynchronous message transfer while retaining end-to-end support for asynchronous message transfer while retaining end-to-end
security. security.
1.4. Existing CMP profiles 1.4. Existing CMP Profiles
As already stated, RFC 4210 [RFC4210] contains profiles with As already stated, RFC 4210 [RFC4210] contains profiles with
mandatory and optional PKI management operations in Appendix D and E. mandatory and optional PKI management operations in Appendix D and E.
Those profiles focus on management of human user certificates and Those profiles focus on management of human user certificates and
only partly address the specific needs of certificate management only partly address the specific needs of certificate management
automation for unattended devices or machine-to-machine application automation for unattended devices or machine-to-machine application
scenarios. scenarios.
Both Appendixes D and E focus on EE-to-RA/CA PKI management Both Appendixes D and E focus on EE-to-RA/CA PKI management
operations and do not address further profiling of RA-to-CA operations and do not address further profiling of RA-to-CA
skipping to change at page 7, line 35 skipping to change at page 7, line 35
operations between EE and RA/CA is specified in that document. operations between EE and RA/CA is specified in that document.
UNISIG has included a CMP profile for enrollment of TLS certificates UNISIG has included a CMP profile for enrollment of TLS certificates
in the Subset-137 specifying the ETRAM/ETCS on-line key management in the Subset-137 specifying the ETRAM/ETCS on-line key management
for train control systems [UNISIG.Subset-137] in 2015. for train control systems [UNISIG.Subset-137] in 2015.
Both standardization bodies tailor CMP [RFC4210], CRMF [RFC4211], and Both standardization bodies tailor CMP [RFC4210], CRMF [RFC4211], and
HTTP transfer for CMP [RFC6712] for highly automated and reliable PKI HTTP transfer for CMP [RFC6712] for highly automated and reliable PKI
management operations for unattended devices and services. management operations for unattended devices and services.
1.5. Use of CMP in SZTP and BRSKI environments 1.5. Use of CMP in SZTP and BRSKI Environments
In Secure Zero Touch Provisioning (SZTP) [RFC8572] and other In Secure Zero Touch Provisioning (SZTP) [RFC8572] and other
environments using NETCONF/YANG modules, SZTP-CSR environments using NETCONF/YANG modules, SZTP-CSR
[I-D.ietf-netconf-sztp-csr] offers a YANG module that includes [I-D.ietf-netconf-sztp-csr] offers a YANG module that includes
different types of certificate requests to obtain a public-key different types of certificate requests to obtain a public-key
certificate for a locally generated key pair. One option is using a certificate for a locally generated key pair. One option is using a
CMP p10cr message. Such a message is of the form ietf-ztp-types:cmp- CMP p10cr message. Such a message is of the form ietf-ztp-types:cmp-
csr from module ietf-ztp-csr and offers both proof-of-possession and csr from module ietf-ztp-csr and offers both proof-of-possession and
proof-of-identity. To allow PKI management entities to also comply proof-of-identity. To allow PKI management entities to also comply
with this profile, the p10cr message must be formatted by the EE as with this profile, the p10cr message must be formatted by the EE as
described in Section 4.1.4 of this profile, and it may be forwarded described in Section 4.1.4 of this profile, and it may be forwarded
as specified in Section 5.2. as specified in Section 5.2.
In Bootstrapping Remote Secure Key Infrastructure (BRSKI) [RFC8995] In Bootstrapping Remote Secure Key Infrastructure (BRSKI) [RFC8995]
environments, BRSKI Asynchronous Enrollment BRSKI Asynchronous environments, BRSKI Asynchronous Enrollment BRSKI Asynchronous
Enrollment [I-D.ietf-anima-brski-async-enroll] describes a Enrollment [I-D.ietf-anima-brski-ae] describes a generalization
generalization regarding the employed enrollment protocols to allow regarding the employed enrollment protocols to allow alternatives to
alternatives to EST [RFC7030]. For the use of CMP, it requires EST [RFC7030]. For the use of CMP, it requires adherence to this
adherence to this profile. profile.
1.6. Compatibility with existing CMP profiles 1.6. Compatibility with Existing CMP Profiles
The profile specified in this document is compatible with RFC 4210 The profile specified in this document is compatible with RFC 4210
Appendixes D and E (PKI Management Message Profiles) [RFC4210], with Appendixes D and E (PKI Management Message Profiles) [RFC4210], with
the following exceptions: the following exceptions:
* signature-based protection is the default protection; an initial * signature-based protection is the default protection; an initial
PKI management operation may also use MAC-based protection, PKI management operation may also use MAC-based protection,
* certification of a second key pair within the same PKI management * certification of a second key pair within the same PKI management
operation is not supported, operation is not supported,
skipping to change at page 10, line 5 skipping to change at page 10, line 5
Note: In contrast, UNISIG Subset-137 Table 18 [UNISIG.Subset-137] Note: In contrast, UNISIG Subset-137 Table 18 [UNISIG.Subset-137]
requires that the certConf message has one CertStatus element requires that the certConf message has one CertStatus element
where the statusInfo field must be absent. This precludes sending where the statusInfo field must be absent. This precludes sending
a negative certConf message in case the EE rejects the newly a negative certConf message in case the EE rejects the newly
enrolled certificate. This results in violating the general rule enrolled certificate. This results in violating the general rule
that a certificate request transaction must include a certConf that a certificate request transaction must include a certConf
message (since moreover, using implicitConfirm is not allowed message (since moreover, using implicitConfirm is not allowed
there, neither). there, neither).
1.7. Scope of this document 1.7. Scope of this Document
To minimize ambiguity and complexity through needless variety, this To minimize ambiguity and complexity through needless variety, this
document specifies exhaustive requirements on generating PKI document specifies exhaustive requirements on generating PKI
management messages on the sender side. On the other hand, it gives management messages on the sender side. On the other hand, it gives
only minimal requirements on checks by the receiving side and how to only minimal requirements on checks by the receiving side and how to
handle error cases. handle error cases.
Especially on the EE side this profile aims at a lightweight Especially on the EE side this profile aims at a lightweight
implementation. This means that the number of PKI management implementation. This means that the number of PKI management
operations implementations are reduced to a reasonable minimum to operations implementations are reduced to a reasonable minimum to
skipping to change at page 10, line 34 skipping to change at page 10, line 34
others" (often reworded as: "Be conservative in what you send, be others" (often reworded as: "Be conservative in what you send, be
liberal in what you receive"). liberal in what you receive").
When in Section 3, Section 4, and Section 5 a field of the ASN.1 When in Section 3, Section 4, and Section 5 a field of the ASN.1
syntax as defined in CMP [RFC4210] and [I-D.ietf-lamps-cmp-updates], syntax as defined in CMP [RFC4210] and [I-D.ietf-lamps-cmp-updates],
CRMF [RFC4211], and CMS [RFC5652] and [RFC8933] is not explicitly CRMF [RFC4211], and CMS [RFC5652] and [RFC8933] is not explicitly
specified, it SHOULD NOT be used by the sending entity. The specified, it SHOULD NOT be used by the sending entity. The
receiving entity MUST NOT require its absence and if present MUST receiving entity MUST NOT require its absence and if present MUST
gracefully handle its presence. gracefully handle its presence.
1.8. Structure of this document 1.8. Structure of this Document
Section 2 introduces the general PKI architecture and approach to Section 2 introduces the general PKI architecture and approach to
certificate management that is assumed in this document. Then it certificate management that is assumed in this document. Then it
lists the PKI management operations specified in this document, lists the PKI management operations specified in this document,
partitioning them into mandatory, recommended, and optional ones. partitioning them into mandatory, recommended, and optional ones.
Section 3 profiles the generic aspects of the PKI management Section 3 profiles the generic aspects of the PKI management
operations specified in detail in Section 4 and Section 5 to minimize operations specified in detail in Section 4 and Section 5 to minimize
redundancy in the description and to ease implementation. This redundancy in the description and to ease implementation. This
covers the general structure and protection of messages, as well as covers the general structure and protection of messages, as well as
skipping to change at page 12, line 20 skipping to change at page 12, line 20
PKI management operation: All CMP messages belonging to a single PKI management operation: All CMP messages belonging to a single
transaction. The transaction is transaction. The transaction is
identified by the transactionID field of identified by the transactionID field of
the message headers. the message headers.
PKI management entity: A non-EE PKI entity, i.e., RA or CA. PKI management entity: A non-EE PKI entity, i.e., RA or CA.
PKI entity: An EE or PKI management entity. PKI entity: An EE or PKI management entity.
2. Solution architecture 2. Solution Architecture
To facilitate secure automatic certificate enrollment, the device To facilitate secure automatic certificate enrollment, the device
hosting an EE is typically equipped with a manufacturer-issued device hosting an EE is typically equipped with a manufacturer-issued device
certificate. Such a certificate is typically installed during certificate. Such a certificate is typically installed during
production and is meant to identify the device throughout its production and is meant to identify the device throughout its
lifetime. This certificate can be used to protect the initial lifetime. This certificate can be used to protect the initial
enrollment of operational certificates after installation of the EE enrollment of operational certificates after installation of the EE
in its operational environment. In contrast to the manufacturer- in its operational environment. In contrast to the manufacturer-
issued device certificate, operational certificates are issued by the issued device certificate, operational certificates are issued by the
owner or operator of the device to identify the device or one of its owner or operator of the device to identify the device or one of its
skipping to change at page 13, line 21 skipping to change at page 13, line 21
| EE |<---------->| LRA |<-------------->| RA |<---------->| CA | | EE |<---------->| LRA |<-------------->| RA |<---------->| CA |
| | | | | | | | | | | | | | | |
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+
synchronous (a)synchronous (a)synchronous synchronous (a)synchronous (a)synchronous
+----connection----+------connection------+----connection----+ +----connection----+------connection------+----connection----+
operators service partner operators service partner
+---------on site--------+----back-end services-----+-trust center-+ +---------on site--------+----back-end services-----+-trust center-+
Figure 1: Certificate management architecture example Figure 1: Certificate Management Architecture Example
In operational environments the certificate management architecture In operational environments the certificate management architecture
can have multiple LRAs bundling requests from multiple EEs at can have multiple LRAs bundling requests from multiple EEs at
dedicated locations and one (or more than one) central RA aggregating dedicated locations and one (or more than one) central RA aggregating
the requests from the LRAs. Every LRA in this scenario has shared the requests from the LRAs. Every LRA in this scenario has shared
secret information (one per EE) for MAC-based protection or a CMP secret information (one per EE) for MAC-based protection or a CMP
protection key and certificate allowing it to (re-)protect CMP protection key and certificate allowing it to (re-)protect CMP
messages it processes. The figure above shows an architecture messages it processes. The figure above shows an architecture
example with at least one LRA, RA, and CA. It is also possible not example with at least one LRA, RA, and CA. It is also possible not
to have an RA or LRA or that there is no CA with a CMP interface. to have an RA or LRA or that there is no CA with a CMP interface.
skipping to change at page 14, line 5 skipping to change at page 14, line 5
the messages specified in this profile offer all required the messages specified in this profile offer all required
capabilities, but the message flow and state machine as described in capabilities, but the message flow and state machine as described in
Section 4 must be adapted to implement a push model. Section 4 must be adapted to implement a push model.
Third-party CAs may implement other variants of CMP, different Third-party CAs may implement other variants of CMP, different
standardized protocols, or even proprietary interfaces for standardized protocols, or even proprietary interfaces for
certificate management. Therefore, the RA may need to adapt the certificate management. Therefore, the RA may need to adapt the
exchanged CMP messages to the flavor of certificate management exchanged CMP messages to the flavor of certificate management
interaction required by the CA. interaction required by the CA.
3. Generic aspects of the PKI message 3. Generic Aspects of PKI Messages and PKI Management Operations
This section covers the generic aspects of the PKI management This section covers the generic aspects of the PKI management
operations specified in Section 4 and Section 5 as upfront general operations specified in Section 4 and Section 5 as upfront general
requirements to minimize redundancy in the description and to ease requirements to minimize redundancy in the description and to ease
implementation. implementation.
As described in Section 5.1 of RFC 4210 [RFC4210], all CMP messages As described in Section 5.1 of RFC 4210 [RFC4210], all CMP messages
have the following general structure: have the following general structure:
+--------------------------------------------+ +--------------------------------------------+
skipping to change at page 14, line 31 skipping to change at page 14, line 31
| | body | | | | body | |
| +----------------------------------------+ | | +----------------------------------------+ |
| +----------------------------------------+ | | +----------------------------------------+ |
| | protection (OPTIONAL) | | | | protection (OPTIONAL) | |
| +----------------------------------------+ | | +----------------------------------------+ |
| +----------------------------------------+ | | +----------------------------------------+ |
| | extraCerts (OPTIONAL) | | | | extraCerts (OPTIONAL) | |
| +----------------------------------------+ | | +----------------------------------------+ |
+--------------------------------------------+ +--------------------------------------------+
Figure 2: CMP message structure Figure 2: CMP Message Structure
The general contents of the message header, protection, and The general contents of the message header, protection, and
extraCerts fields are specified in the following three subsections. extraCerts fields are specified in the following three subsections.
In case a specific PKI management operation needs different contents In case a specific PKI management operation needs different contents
in the header, protection, or extraCerts fields, the differences are in the header, protection, or extraCerts fields, the differences are
described in the respective subsections. described in the respective subsections.
The CMP message body contains the PKI management operation-specific The CMP message body contains the PKI management operation-specific
information. It is described in Section 4 and Section 5. information. It is described in Section 4 and Section 5.
skipping to change at page 15, line 5 skipping to change at page 15, line 5
The generic prerequisites needed by the PKI entities in order to be The generic prerequisites needed by the PKI entities in order to be
able to perform PKI management operations are described in able to perform PKI management operations are described in
Section 3.4. Section 3.4.
The generic validation steps to be performed by PKI entities on The generic validation steps to be performed by PKI entities on
receiving a CMP message are described in Section 3.5. receiving a CMP message are described in Section 3.5.
The generic aspects of handling and reporting errors are described in The generic aspects of handling and reporting errors are described in
Section 3.6. Section 3.6.
3.1. General description of the CMP message header 3.1. General Description of the CMP Message Header
This section describes the generic header fields of all CMP messages This section describes the generic header fields of all CMP messages
with signature-based protection. with signature-based protection.
In case a message has MAC-based protection the changes are described In case a message has MAC-based protection the changes are described
in Section 4.1.5. The variations will affect the fields sender, in Section 4.1.5. The variations will affect the fields sender,
protectionAlg, and senderKID. protectionAlg, and senderKID.
Any PKI management operation-specific fields or variations are Any PKI management operation-specific fields or variations are
described in Section 4 and 5. described in Section 4 and 5.
skipping to change at page 17, line 5 skipping to change at page 17, line 5
-- ImplicitConfirmValue MUST be NULL -- ImplicitConfirmValue MUST be NULL
certProfile OPTIONAL certProfile OPTIONAL
-- MAY be present in ir/cr/kur/p10cr and in genm messages of type -- MAY be present in ir/cr/kur/p10cr and in genm messages of type
-- id-it-certReqTemplate -- id-it-certReqTemplate
-- MUST be omitted in all other messages -- MUST be omitted in all other messages
-- See [RFC-CMP-Updates] -- See [RFC-CMP-Updates]
CertProfileValue REQUIRED CertProfileValue REQUIRED
-- MUST contain exactly one UTF8String element -- MUST contain exactly one UTF8String element
-- MUST contain the name of a certificate profile -- MUST contain the name of a certificate profile
3.2. General description of the CMP message protection 3.2. General Description of the CMP Message Protection
This section describes the generic protection field contents of all This section describes the generic protection field contents of all
CMP messages with signature-based protection. The private key used CMP messages with signature-based protection, which is the default
to sign a CMP message is called "protection key" and the related protection mechanism for all CMP messages described in this profile.
certificate is called "protection certificate". Any included The private key used to sign a CMP message is called "protection key"
keyUsage extension SHOULD allow digitalSignature. and the related certificate is called "protection certificate". Any
included keyUsage extension SHOULD allow digitalSignature.
protection RECOMMENDED protection
-- RECOMMENDED for error messages
-- REQUIRED for all other messages
-- MUST contain the signature calculated using the private key -- MUST contain the signature calculated using the private key
-- of the entity protecting the message. The signature -- of the entity protecting the message. The signature
-- algorithm used MUST be given in the protectionAlg field. -- algorithm used MUST be given in the protectionAlg field.
Generally, CMP message protection is required for CMP messages, but Generally, CMP messages MUST be protected, but there are cases where
there are cases where protection of error messages specified in protection of error messages specified in Section 3.6.4 is not
Section 3.6 is not possible and therefore MAY be omitted. possible and therefore MAY be omitted.
For MAC-based protection as specified in Section 4.1.5 major For MAC-based protection as specified in Section 4.1.5 and
differences apply as described there. Section 4.1.6.3 major differences apply as described there.
The CMP message protection provides, if available, message origin The CMP message protection provides, if available, message origin
authentication and integrity protection for the header and body. The authentication and integrity protection for the header and body. The
CMP message extraCerts field is not covered by this protection. CMP message extraCerts field is not covered by this protection.
Note: The extended key usages described in CMP Updates Section 2.2 Note: The extended key usages described in CMP Updates Section 2.2
[I-D.ietf-lamps-cmp-updates] can be used for authorization of a [I-D.ietf-lamps-cmp-updates] can be used for authorization of a
sending PKI management entity. sending PKI management entity.
3.3. General description of CMP message extraCerts 3.3. General Description of CMP Message ExtraCerts
This section describes the generic extraCerts field of all CMP This section describes the generic extraCerts field of all CMP
messages with signature-based protection. Any specific requirements messages with signature-based protection. Any specific requirements
on the extraCerts are specified in the respective PKI management on the extraCerts are specified in the respective PKI management
operation. operation.
extraCerts extraCerts
-- SHOULD contain the CMP protection certificate together with -- SHOULD contain the CMP protection certificate together with
-- its chain, if needed -- its chain, if needed
-- If present, the first certificate in this field MUST be -- If present, the first certificate in this field MUST be
skipping to change at page 18, line 9 skipping to change at page 18, line 9
-- where each element SHOULD directly certify the one -- where each element SHOULD directly certify the one
-- immediately preceding it. -- immediately preceding it.
-- Self-signed certificates SHOULD be omitted from extraCerts, -- Self-signed certificates SHOULD be omitted from extraCerts,
-- unless they are the same as the protection certificate and -- unless they are the same as the protection certificate and
-- MUST NOT be trusted based on their inclusion in any case -- MUST NOT be trusted based on their inclusion in any case
Note: For maximum compatibility, all implementations SHOULD be Note: For maximum compatibility, all implementations SHOULD be
prepared to handle potentially additional certificates and arbitrary prepared to handle potentially additional certificates and arbitrary
orderings of the certificates. orderings of the certificates.
3.4. Generic PKI management operation prerequisites 3.4. Generic PKI Management Operation Prerequisites
This subsection describes what is generally needed by the PKI This subsection describes what is generally needed by the PKI
entities to be able to perform PKI management operations. entities to be able to perform PKI management operations.
Identification of PKI entities: Identification of PKI entities:
* Each EE SHOULD know its own identity to fill the sender field. * Each EE SHOULD know its own identity to fill the sender field.
* Each EE SHOULD know the intended recipient of its requests to fill * Each EE SHOULD know the intended recipient of its requests to fill
the recipient field, e.g., the name of the addressed CA. the recipient field, e.g., the name of the addressed CA.
skipping to change at page 19, line 23 skipping to change at page 19, line 23
for authenticating PKI management entities. for authenticating PKI management entities.
* Each PKI management entity MUST have sufficient information to be * Each PKI management entity MUST have sufficient information to be
able to authorize the downstream PKI entity requesting the PKI able to authorize the downstream PKI entity requesting the PKI
management operation. management operation.
Note: For authorizing an RA the same examples apply as above. The Note: For authorizing an RA the same examples apply as above. The
authorization of EEs can be very specific to the application authorization of EEs can be very specific to the application
domain based on local PKI policy. domain based on local PKI policy.
3.5. Generic validation of a PKI message 3.5. Generic Validation of a PKI Message
This section describes generic validation steps of each PKI entity This section describes generic validation steps of each PKI entity
receiving a PKI request or response message before any further receiving a PKI request or response message before any further
processing or forwarding. If a PKI management entity decides to processing or forwarding. If a PKI management entity decides to
terminate a PKI management operation because a check failed, it MUST terminate a PKI management operation because a check failed, it MUST
send a negative response or an error message as described in send a negative response or an error message as described in
Section 3.6. The PKIFailureInfo bits given below in parentheses MAY Section 3.6. The PKIFailureInfo bits given below in parentheses MAY
be used in the failInfo field of the PKIStatusInfo as described in be used in the failInfo field of the PKIStatusInfo as described in
Section 3.6.4, see also RFC 4210 Appendix F [RFC4210]. Section 3.6.4, see also RFC 4210 Appendix F [RFC4210].
skipping to change at page 20, line 26 skipping to change at page 20, line 26
operation, operation,
- the recipNonce MUST be present and MUST equal the senderNonce - the recipNonce MUST be present and MUST equal the senderNonce
of the previous message or equal the senderNonce of the most of the previous message or equal the senderNonce of the most
recent request message for which the response was delayed, in recent request message for which the response was delayed, in
case of delayed delivery as specified in Section 4.4. (failInfo case of delayed delivery as specified in Section 4.4. (failInfo
bit: badRecipientNonce) bit: badRecipientNonce)
* The message protection MUST be validated: * The message protection MUST be validated:
- The protection MUST be signature-based except if MAC-based - The protection MUST be signature-based except if
protection is used as described in Section 4.1.5 and for some
error messages as described in Section 3.6.4. (failInfo bit: o MAC-based protection is used as described in Section 4.1.5
wrongIntegrity) and Section 4.1.6.3 or
o protection is omitted in certain error messages as described
in Section 3.6.4.
(failInfo bit: wrongIntegrity)
- The senderKID SHOULD identify the key material used for - The senderKID SHOULD identify the key material used for
verifying the message protection. (failInfo bit: verifying the message protection. (failInfo bit:
badMessageCheck) badMessageCheck)
- The protection, if present, MUST be validated successfully. If - The protection, if present, MUST be validated successfully. If
signature-based protection is used, the CMP protection signature-based protection is used, the CMP protection
certificate MUST be successfully validated including path certificate MUST be successfully validated including path
validation using a trust anchor and MUST be authorized validation using a trust anchor and MUST be authorized
according to local policies. If the keyUsage extension is according to local policies. If the keyUsage extension is
skipping to change at page 21, line 18 skipping to change at page 21, line 22
Depending on local policies, one or more of the input validation Depending on local policies, one or more of the input validation
checks described below need to be implemented: checks described below need to be implemented:
* If signature-based protection is used, the sender field SHOULD * If signature-based protection is used, the sender field SHOULD
match the subject of the CMP protection certificate. (failInfo match the subject of the CMP protection certificate. (failInfo
bit: badMessageCheck) bit: badMessageCheck)
* If the messageTime is present, it SHOULD be close to the current * If the messageTime is present, it SHOULD be close to the current
time. (failInfo bit: badTime) time. (failInfo bit: badTime)
3.6. Error handling 3.6. Error Handling
This section describes how a PKI entity handles error conditions on This section describes how a PKI entity handles error conditions on
messages it receives. Each error condition SHOULD be logged messages it receives. Each error condition SHOULD be logged
appropriately. appropriately.
3.6.1. Reporting error conditions upstream 3.6.1. Reporting Error Conditions Upstream
An EE SHALL NOT send error messages. PKI management entities SHALL An EE SHALL NOT send error messages. PKI management entities SHALL
NOT send error messages in upstream direction, either. NOT send error messages in upstream direction, either.
In case an EE rejects a newly issued certificate contained in an ip, In case an EE rejects a newly issued certificate contained in an ip,
cp, or kup message and implicit confirmation has not been granted, cp, or kup message and implicit confirmation has not been granted,
the EE MUST report this using a certConf message with "rejection" the EE MUST report this using a certConf message with "rejection"
status and await the pkiConf response as described in Section 4.1.1. status and await the pkiConf response as described in Section 4.1.1.
On all other error conditions regarding response messages, the EE or On all other error conditions regarding response messages, the EE or
skipping to change at page 22, line 12 skipping to change at page 22, line 12
* rejection of a newly issued certificate while implicit * rejection of a newly issued certificate while implicit
confirmation has been granted. confirmation has been granted.
Upstream PKI management entities will not receive any CMP message to Upstream PKI management entities will not receive any CMP message to
learn that the PKI management operation has been terminated. In case learn that the PKI management operation has been terminated. In case
they expect a further message from the EE, a connection interruption they expect a further message from the EE, a connection interruption
or timeout will occur. Then they also MUST regard the current PKI or timeout will occur. Then they also MUST regard the current PKI
management operation as terminated with failure and MUST NOT attempt management operation as terminated with failure and MUST NOT attempt
to send an error message downstream. to send an error message downstream.
3.6.2. Reporting error conditions downstream 3.6.2. Reporting Error Conditions Downstream
In case the PKI management entity detects an error condition, e.g., In case the PKI management entity detects an error condition, e.g.,
rejecting the request due to policy decision, in the body of an ir, rejecting the request due to policy decision, in the body of an ir,
cr, p10cr, kur, or rr message received from downstream, it SHOULD cr, p10cr, kur, or rr message received from downstream, it SHOULD
report the error in the specific response message, i.e., an ip, cp, report the error in the specific response message, i.e., an ip, cp,
kup, or rp with "rejection" status, as described in Section 4.1.1 and kup, or rp with "rejection" status, as described in Section 4.1.1 and
Section 4.2. This can also happen in case of polling. Section 4.2. This can also happen in case of polling.
In case the PKI management entity detects any other error condition In case the PKI management entity detects any other error condition
on requests, including pollReq, certConf, genm, and nested messages, on requests, including pollReq, certConf, genm, and nested messages,
received from downstream and on responses received from upstream, received from downstream and on responses received from upstream,
such as invalid message header, body type, protection, or extraCerts such as invalid message header, body type, protection, or extraCerts
according to the checks described in Section 3.5 it MUST report them according to the checks described in Section 3.5 it MUST report them
downstream in the form of an error message as described in downstream in the form of an error message as described in
Section 3.6.4. Section 3.6.4.
3.6.3. Handling error conditions on nested messages used for batching 3.6.3. Handling Error Conditions on Nested Messages Used for Batching
Batching of messages using nested messages as described in Batching of messages using nested messages as described in
Section 5.2.2.2 requires special error handling. Section 5.2.2.2 requires special error handling.
If the error condition is on an upstream nested message containing If the error condition is on an upstream nested message containing
batched requests, it MUST NOT attempt to respond to the individual batched requests, it MUST NOT attempt to respond to the individual
requests included in it. requests included in it.
In case a PKI management entity receives an error message in response In case a PKI management entity receives an error message in response
to a nested message, it must propagate the error by responding with to a nested message, it must propagate the error by responding with
an error message to each of the request messages contained in the an error message to each of the request messages contained in the
nested message. nested message.
In case a PKI management entity detects an error condition on the In case a PKI management entity detects an error condition on the
downstream nested message received in response to a nested message downstream nested message received in response to a nested message
sent before, it MAY ignore this error condition and handle the sent before, it MAY ignore this error condition and handle the
response as described in Section 5.2.2.2. Otherwise, it MUST response as described in Section 5.2.2.2. Otherwise, it MUST
propagate the error by responding with an error message to each of propagate the error by responding with an error message to each of
the requests contained in the nested message it sent originally. the requests contained in the nested message it sent originally.
3.6.4. Reporting error conditions 3.6.4. PKIStatusInfo and Error Messages
When sending any kind of negative response, including error messages, When sending any kind of negative response, including error messages,
a PKI entity MUST indicate the error condition in the PKIStatusInfo a PKI entity MUST indicate the error condition in the PKIStatusInfo
structure of the respective message as described below. It then MUST structure of the respective message as described below. It then MUST
regard the current PKI management operation as terminated with regard the current PKI management operation as terminated with
failure. failure.
The PKIStatusInfo structure is used to report errors. It may be part The PKIStatusInfo structure is used to report errors. It may be part
of various message types, in particular: certConf, ip, cp, kup, and of various message types, in particular: certConf, ip, cp, kup, and
error. The PKIStatusInfo structure consists of the following fields: error. The PKIStatusInfo structure consists of the following fields:
skipping to change at page 24, line 17 skipping to change at page 24, line 17
- systemUnavail: This is sent by a PKI management entity in case - systemUnavail: This is sent by a PKI management entity in case
a back-end system is not available. a back-end system is not available.
- systemFailure: This is sent by a PKI management entity in case - systemFailure: This is sent by a PKI management entity in case
a back-end system is currently not functioning correctly. a back-end system is currently not functioning correctly.
An EE receiving a systemUnavail or systemFailure failInfo SHOULD An EE receiving a systemUnavail or systemFailure failInfo SHOULD
resend the request in a new transaction after some time. resend the request in a new transaction after some time.
Detailed error message description: Detailed Message Description:
Error Message -- error Error Message -- error
Field Value Field Value
header header
-- As described in Section 3.1 -- As described in Section 3.1
body body
-- The message indicating the error that occurred -- The message indicating the error that occurred
error REQUIRED error REQUIRED
pKIStatusInfo REQUIRED pKIStatusInfo REQUIRED
status REQUIRED status REQUIRED
-- MUST have the value "rejection" -- MUST have the value "rejection"
statusString RECOMMENDED statusString RECOMMENDED
-- SHOULD be any human-readable text for debugging, logging -- SHOULD be any human-readable text for debugging, logging
-- or to display in a GUI -- or to display in a GUI
failInfo OPTIONAL failInfo OPTIONAL
-- MAY be present and contain the relevant PKIFailureInfo bits -- MAY be present and contain the relevant PKIFailureInfo bits
protection REQUIRED protection RECOMMENDED
-- As described in Section 3.2 -- As described in Section 3.2
-- MAY be omitted if protection is technically not feasible
extraCerts OPTIONAL extraCerts RECOMMENDED
-- As described in Section 3.3 -- As described in Section 3.3
4. End Entity PKI management operations Note: Protecting the error message may not be technically feasible if
it is not clear which credential the recipient will be able to use
when validating this protection, e.g., in case the request message
was fundamentally broken.
4. PKI Management Operations
This chapter focuses on the communication of an EE with the PKI This chapter focuses on the communication of an EE with the PKI
management entity it directly talks to. Depending on the network and management entity it directly talks to. Depending on the network and
PKI solution, this can be an RA or directly a CA. Handling of a PKI solution, this can be an RA or directly a CA. Handling of a
message by a PKI management entity is described in Section 5. message by a PKI management entity is described in Section 5.
The PKI management operations specified in this section cover the The PKI management operations specified in this section cover the
following: following:
* Requesting a certificate with variations like initial enrollment, * Requesting a certificate with variations like initial enrollment,
skipping to change at page 26, line 5 skipping to change at page 26, line 5
The following diagram shows the EE state machine covering all PKI The following diagram shows the EE state machine covering all PKI
management operations described in this section, including negative management operations described in this section, including negative
responses, error messages described in Section 3.6.4, as well as responses, error messages described in Section 3.6.4, as well as
ip/cp/kup/error messages with status "waiting", pollReq, and pollRep ip/cp/kup/error messages with status "waiting", pollReq, and pollRep
messages described in Section 4.4. messages described in Section 4.4.
On receiving messages from upstream, the EE MUST perform the general On receiving messages from upstream, the EE MUST perform the general
validation checks described in Section 3.5. The behavior in case an validation checks described in Section 3.5. The behavior in case an
error occurs is described in Section 3.6. error occurs is described in Section 3.6.
State machine: End Entity State Machine:
start start
| |
| send ir/cr/p10cr/kur/rr/genm | send ir/cr/p10cr/kur/rr/genm
v v
waiting for response waiting for response
| |
+--------------------------+--------------------------+ +--------------------------+--------------------------+
| | | | | |
| receives ip/cp/kup with | received ip/cp/kup/error | received | receives ip/cp/kup with | received ip/cp/kup/error | received
| status "accepted" or | with status "waiting" | rp/genp or | status "accepted" or | with status "waiting" | rp/genp or
skipping to change at page 27, line 16 skipping to change at page 27, line 16
MUST have the same transactionID because the message receiver MUST have the same transactionID because the message receiver
identifies the elements of the operation in this way. identifies the elements of the operation in this way.
This section is aligned with CMP [RFC4210], CMP Updates This section is aligned with CMP [RFC4210], CMP Updates
[I-D.ietf-lamps-cmp-updates], and CMP Algorithms [I-D.ietf-lamps-cmp-updates], and CMP Algorithms
[I-D.ietf-lamps-cmp-algorithms]. [I-D.ietf-lamps-cmp-algorithms].
Guidelines as well as an algorithm use profile for this document are Guidelines as well as an algorithm use profile for this document are
available in CMP Algorithms [I-D.ietf-lamps-cmp-algorithms]. available in CMP Algorithms [I-D.ietf-lamps-cmp-algorithms].
4.1. Requesting a new certificate from a PKI 4.1. Enrolling End Entities
There are various approaches for requesting a certificate from a PKI. There are various approaches for requesting a certificate from a PKI.
These approaches differ in the way the EE authenticates itself to the These approaches differ in the way the EE authenticates itself to the
PKI, in the form of the request being used, and how the key pair to PKI, in the form of the request being used, and how the key pair to
be certified is generated. The authentication mechanisms may be as be certified is generated. The authentication mechanisms may be as
follows: follows:
* Using a certificate from an external PKI, e.g., a manufacturer- * Using a certificate from an external PKI, e.g., a manufacturer-
issued device certificate, and the corresponding private key issued device certificate, and the corresponding private key
skipping to change at page 27, line 42 skipping to change at page 27, line 42
key key
* Using shared secret information known to the EE and the PKI * Using shared secret information known to the EE and the PKI
management entity management entity
An EE requests a certificate indirectly or directly from a CA. When An EE requests a certificate indirectly or directly from a CA. When
the PKI management entity handles the request as described in the PKI management entity handles the request as described in
Section 5.1.1 and responds with a message containing the requested Section 5.1.1 and responds with a message containing the requested
certificate, the EE MUST reply with a confirmation message unless certificate, the EE MUST reply with a confirmation message unless
implicitConfirm was granted. The PKI management entity then MUST implicitConfirm was granted. The PKI management entity then MUST
handle it as described in Section 5.1.3 and respond with a handle it as described in Section 5.1.2 and respond with a
confirmation, closing the PKI management operation. confirmation, closing the PKI management operation.
The message sequences described in this section allow the EE to The message sequences described in this section allow the EE to
request certification of a locally or centrally generated public- request certification of a locally or centrally generated public-
private key pair. Typically, the EE provides a signature-based private key pair. Typically, the EE provides a signature-based
proof-of-possession of the private key associated with the public key proof-of-possession of the private key associated with the public key
contained in the certificate request as defined by RFC 4211 contained in the certificate request as defined by RFC 4211
Section 4.1 [RFC4211] case 3. To this end it is assumed that the Section 4.1 [RFC4211] case 3. To this end it is assumed that the
private key can technically be used for signing. This is the case private key can technically be used for signing. This is the case
for the most common algorithms RSA and ECDSA, regardless of for the most common algorithms RSA and ECDSA, regardless of
skipping to change at page 28, line 43 skipping to change at page 28, line 43
installation as a new trust anchor, it MUST properly authenticate the installation as a new trust anchor, it MUST properly authenticate the
message and authorize the sender as trusted source of the new trust message and authorize the sender as trusted source of the new trust
anchor. This authorization is typically indicated using shared anchor. This authorization is typically indicated using shared
secret information for protecting an initialization response (ir) secret information for protecting an initialization response (ir)
message. Authorization can also be signature-based using a message. Authorization can also be signature-based using a
certificate issued by another PKI that is explicitly authorized for certificate issued by another PKI that is explicitly authorized for
this purpose. A certificate received in caPubs MUST NOT be accepted this purpose. A certificate received in caPubs MUST NOT be accepted
as a trust anchor if it is the root CA certificate of the certificate as a trust anchor if it is the root CA certificate of the certificate
used for protecting the message. used for protecting the message.
4.1.1. Requesting a certificate from a new PKI with signature-based 4.1.1. Enrolling an End Entity to a New PKI
protection
This PKI management operation should be used by an EE to request a This PKI management operation should be used by an EE to request a
certificate from a new PKI using an existing certificate from an certificate from a new PKI using an existing certificate from an
external PKI, e.g., a manufacturer-issued IDevID certificate external PKI, e.g., a manufacturer-issued IDevID certificate
[IEEE.802.1AR_2018], to authenticate itself to the new PKI. [IEEE.802.1AR_2018], to authenticate itself to the new PKI.
Note: In Bootstrapping Remote Secure Key Infrastructure (BRSKI) Note: In Bootstrapping Remote Secure Key Infrastructure (BRSKI)
[RFC8995] environments, BRSKI Asynchronous Enrollment (BRSKI-AE) [RFC8995] environments, BRSKI Asynchronous Enrollment (BRSKI-AE)
[I-D.ietf-anima-brski-async-enroll] describes a generalization [I-D.ietf-anima-brski-ae] describes a generalization regarding
regarding enrollment protocols alternative to EST [RFC7030]. As enrollment protocols alternative to EST [RFC7030]. As replacement of
replacement of EST simpleenroll, BRSKI-AE uses this PKI management EST simpleenroll, BRSKI-AE uses this PKI management operation for
operation for bootstrapping LDevID certificates. bootstrapping LDevID certificates.
Specific prerequisites augmenting the prerequisites in Section 3.4: Specific prerequisites augmenting the prerequisites in Section 3.4:
* The certificate of the EE MUST have been enrolled by an external * The certificate of the EE MUST have been enrolled by an external
PKI, e.g., a manufacturer-issued device certificate. PKI, e.g., a manufacturer-issued device certificate.
* The PKI management entity MUST have the trust anchor of the * The PKI management entity MUST have the trust anchor of the
external PKI. external PKI.
* When using the generalInfo field certProfile, the EE MUST know the * When using the generalInfo field certProfile, the EE MUST know the
identifier needed to indicate the requested certificate profile. identifier needed to indicate the requested certificate profile.
Message flow: Message Flow:
Step# EE PKI management entity Step# EE PKI management entity
1 format ir 1 format ir
2 -> ir -> 2 -> ir ->
3 handle or 3 handle or
forward ir forward ir
4 format or receive ip 4 format or receive ip
5 possibly grant 5 possibly grant
implicitConfirm implicitConfirm
6 <- ip <- 6 <- ip <-
skipping to change at page 30, line 39 skipping to change at page 30, line 36
In this case it is advisable not to do the publication until a In this case it is advisable not to do the publication until a
positive certificate confirmation has been received. This way the positive certificate confirmation has been received. This way the
need to revoke the certificate on negative confirmation is avoided. need to revoke the certificate on negative confirmation is avoided.
If the certificate request was rejected by the CA, the PKI management If the certificate request was rejected by the CA, the PKI management
entity must return an ip message containing the status code entity must return an ip message containing the status code
"rejection" as described in Section 3.6 and no certifiedKeyPair "rejection" as described in Section 3.6 and no certifiedKeyPair
field. The EE MUST NOT react to such an ip message with a certConf field. The EE MUST NOT react to such an ip message with a certConf
message and the PKI management operation MUST be terminated. message and the PKI management operation MUST be terminated.
Detailed message description: Detailed Message Description:
Initialization Request -- ir Initialization Request -- ir
Field Value Field Value
header header
-- As described in Section 3.1 -- As described in Section 3.1
body body
-- The request of the EE for a new certificate -- The request of the EE for a new certificate
skipping to change at page 34, line 38 skipping to change at page 34, line 34
-- As described in Section 3.2 -- As described in Section 3.2
-- MUST use the same credentials as in the first response -- MUST use the same credentials as in the first response
-- message of this PKI management operation -- message of this PKI management operation
extraCerts RECOMMENDED extraCerts RECOMMENDED
-- As described in Section 3.3 -- As described in Section 3.3
-- MAY be omitted if the message size is critical and the EE has -- MAY be omitted if the message size is critical and the EE has
-- cached the extraCerts from the first response message of -- cached the extraCerts from the first response message of
-- this PKI management operation -- this PKI management operation
4.1.2. Requesting an additional certificate with signature-based 4.1.2. Enrolling an End Entity to a Known PKI
protection
This PKI management operation should be used by an EE to request an This PKI management operation should be used by an EE to request an
additional certificate of the same PKI it already has certificates additional certificate of the same PKI it already has certificates
from. The EE uses one of these existing certificates to authenticate from. The EE uses one of these existing certificates to authenticate
itself by signing its request messages using the respective private itself by signing its request messages using the respective private
key. key.
Specific prerequisites augmenting the prerequisites in Section 3.4: Specific prerequisites augmenting the prerequisites in Section 3.4:
* The certificate used by the EE MUST have been enrolled by the PKI * The certificate used by the EE MUST have been enrolled by the PKI
skipping to change at page 35, line 21 skipping to change at page 35, line 18
1 The body of the first request and response SHOULD be cr and cp, 1 The body of the first request and response SHOULD be cr and cp,
respectively. respectively.
Note: Since the difference between ir/ip and cr/cp is Note: Since the difference between ir/ip and cr/cp is
syntactically not essential, an ir/ip MAY be used in this PKI syntactically not essential, an ir/ip MAY be used in this PKI
management operation. management operation.
2 The caPubs field in the certificate response message SHOULD be 2 The caPubs field in the certificate response message SHOULD be
absent. absent.
4.1.3. Updating an existing certificate with signature protection 4.1.3. Updating a Valid Certificate
This PKI management operation should be used by an EE to request an This PKI management operation should be used by an EE to request an
update for one of its certificates that is still valid. The EE uses update for one of its certificates that is still valid. The EE uses
the certificate it wishes to update as the protection certificate. the certificate it wishes to update as the protection certificate.
Both for authenticating itself and for proving ownership of the Both for authenticating itself and for proving ownership of the
certificate to be updated, it signs the request messages with the certificate to be updated, it signs the request messages with the
corresponding private key. corresponding private key.
Specific prerequisites augmenting the prerequisites in Section 3.4: Specific prerequisites augmenting the prerequisites in Section 3.4:
skipping to change at page 36, line 25 skipping to change at page 36, line 22
controls controls
type RECOMMENDED type RECOMMENDED
-- MUST be the value id-regCtrl-oldCertID, if present -- MUST be the value id-regCtrl-oldCertID, if present
value value
issuer REQUIRED issuer REQUIRED
serialNumber REQUIRED serialNumber REQUIRED
-- MUST contain the issuer and serialNumber of the certificate -- MUST contain the issuer and serialNumber of the certificate
-- to be updated -- to be updated
4.1.4. Requesting a certificate from a legacy PKI using a PKCS#10 4.1.4. Enrolling an End Entity Using a PKCS#10 Request
request
This PKI management operation can be used by an EE to request a This PKI management operation can be used by an EE to request a
certificate using a legacy PKCS#10 [RFC2986] request instead of CRMF certificate using a legacy PKCS#10 [RFC2986] request instead of CRMF
[RFC4211]. This offers a variation of the PKI management operations [RFC4211]. This offers a variation of the PKI management operations
specified in Section 4.1.2. specified in Section 4.1.2.
In Secure Zero Touch Provisioning (SZTP) [RFC8572] environments, In Secure Zero Touch Provisioning (SZTP) [RFC8572] environments,
SZTP-CSR [I-D.ietf-netconf-sztp-csr] describes the use of a CMP p10cr SZTP-CSR [I-D.ietf-netconf-sztp-csr] describes the use of a CMP p10cr
message as a form of certificate signing request (CSR) to optionally message as a form of certificate signing request (CSR) to optionally
include in device bootstrapping to obtain an identity certificate as include in device bootstrapping to obtain an identity certificate as
skipping to change at page 37, line 9 skipping to change at page 37, line 5
The message sequence for this PKI management operation is identical The message sequence for this PKI management operation is identical
to that given in Section 4.1.2, with the following changes: to that given in Section 4.1.2, with the following changes:
1 The body of the first request and response MUST be p10cr and cp, 1 The body of the first request and response MUST be p10cr and cp,
respectively. respectively.
2 The certReqId in the cp message MUST be -1. 2 The certReqId in the cp message MUST be -1.
3 The caPubs field in the cp message SHOULD be absent. 3 The caPubs field in the cp message SHOULD be absent.
Detailed description of the p10cr message: Detailed Message Description:
Certification Request -- p10cr Certification Request -- p10cr
Field Value Field Value
header header
-- As described in Section 3.1 -- As described in Section 3.1
body body
-- The request of the EE for a new certificate using a PKCS#10 -- The request of the EE for a new certificate using a PKCS#10
skipping to change at page 37, line 48 skipping to change at page 37, line 44
-- key usage, and extended key usage -- key usage, and extended key usage
-- The subjectAltName extension MUST be present if the EE -- The subjectAltName extension MUST be present if the EE
-- subject name includes a subject alternative name. -- subject name includes a subject alternative name.
signatureAlgorithm REQUIRED signatureAlgorithm REQUIRED
-- The signature algorithm MUST be consistent with the -- The signature algorithm MUST be consistent with the
-- subjectPKInfo field. -- subjectPKInfo field.
signature REQUIRED signature REQUIRED
-- MUST contain the self-signature for proof-of-possession -- MUST contain the self-signature for proof-of-possession
protection REQUIRED protection REQUIRED
-- As described for the underlying PKI management operation -- As described in Section 3.2
extraCerts REQUIRED extraCerts REQUIRED
-- As described for the underlying PKI management operation -- As described for the underlying PKI management operation
4.1.5. Requesting a certificate from a PKI with MAC-based protection 4.1.5. Using MAC-Based Protection for Enrollment
This is a variant of the PKI management operations described in This is a variant of the PKI management operations described in
Section 4.1.1 to Section 4.1.4. It should be used by an EE to Section 4.1.1 to Section 4.1.4. It should be used by an EE to
request a certificate of a new PKI in case it does not have a request a certificate of a new PKI in case it does not have a
certificate to prove its identity to the target PKI, but has some certificate to prove its identity to the target PKI, but has some
secret information shared with the PKI management entity. Therefore, secret information shared with the PKI management entity. Therefore,
the request and response messages are MAC-protected using this shared the request and response messages are MAC-protected using this shared
secret information. The distribution of this shared secret is out of secret information. The distribution of this shared secret is out of
scope for this document. The PKI management entity checking the MAC- scope for this document. The PKI management entity checking the MAC-
based protection SHOULD replace this protection according to based protection SHOULD replace this protection according to
skipping to change at page 39, line 12 skipping to change at page 39, line 12
3 The extraCerts of all messages does not contain CMP protection 3 The extraCerts of all messages does not contain CMP protection
certs and associated chains. certs and associated chains.
See Section 6 of CMP Algorithms [I-D.ietf-lamps-cmp-algorithms] for See Section 6 of CMP Algorithms [I-D.ietf-lamps-cmp-algorithms] for
details on message authentication code algorithms (MSG_MAC_ALG) to details on message authentication code algorithms (MSG_MAC_ALG) to
use. Typically, parameters are part of the protectionAlg field, use. Typically, parameters are part of the protectionAlg field,
e.g., used for key derivation, like a salt and an iteration count. e.g., used for key derivation, like a salt and an iteration count.
Such fields SHOULD remain constant for message protection throughout Such fields SHOULD remain constant for message protection throughout
this PKI management operation to reduce the computational overhead. this PKI management operation to reduce the computational overhead.
4.1.6. Adding central key pair generation to a certificate request 4.1.6. Adding Central Key Pair Generation to Enrollment
This is a variant of the PKI management operations described in This is a variant of the PKI management operations described in
Section 4.1.1 to Section 4.1.4 and the variant described in Section 4.1.1 to Section 4.1.4 and the variant described in
Section 4.1.5. It needs to be used in case an EE is not able to Section 4.1.5. It needs to be used in case an EE is not able to
generate its new public-private key pair itself or central generation generate its new public-private key pair itself or central generation
of the EE key material is preferred. It is a matter of the local of the EE key material is preferred. It is a matter of the local
implementation which PKI management entity will act as Key Generation implementation which PKI management entity will act as Key Generation
Authority (KGA) and perform the key generation. This PKI management Authority (KGA) and perform the key generation. This PKI management
entity MUST use a certificate containing the additional extended key entity MUST use a certificate containing the additional extended key
usage extension id-kp-cmKGA in order to be accepted by the EE as a usage extension id-kp-cmKGA in order to be accepted by the EE as a
skipping to change at page 40, line 50 skipping to change at page 40, line 50
| | | AsymmetricKeyPackage | | | | | | AsymmetricKeyPackage | | |
| | | [RFC5958] | | | | | | [RFC5958] | | |
| | | +----------------------+ | | | | | | +----------------------+ | | |
| | | | privateKey | | | | | | | | privateKey | | | |
| | | | OCTET STRING | | | | | | | | OCTET STRING | | | |
| | | +----------------------+ | | | | | | +----------------------+ | | |
| | +--------------------------+ | | | | +--------------------------+ | |
| +------------------------------+ | | +------------------------------+ |
+----------------------------------+ +----------------------------------+
Figure 3: Encrypted private key container Figure 3: Encrypted Private Key Container
The PKI management entity delivers the private key in the privateKey The PKI management entity delivers the private key in the privateKey
field in the certifiedKeyPair structure of the response message also field in the certifiedKeyPair structure of the response message also
containing the newly issued certificate. containing the newly issued certificate.
The private key MUST be provided as an AsymmetricKeyPackage structure The private key MUST be provided as an AsymmetricKeyPackage structure
as defined in RFC 5958 [RFC5958]. as defined in RFC 5958 [RFC5958].
This AsymmetricKeyPackage structure MUST be wrapped in a SignedData This AsymmetricKeyPackage structure MUST be wrapped in a SignedData
structure, as specified in CMS Section 5 [RFC5652] and [RFC8933], structure, as specified in CMS Section 5 [RFC5652] and [RFC8933],
skipping to change at page 42, line 51 skipping to change at page 42, line 51
the SignedData structure containing the private key package. the SignedData structure containing the private key package.
* For encrypting the SignedData structure a fresh content-encryption * For encrypting the SignedData structure a fresh content-encryption
key to be used by the symmetric encryption algorithm MUST be key to be used by the symmetric encryption algorithm MUST be
generated with sufficient entropy. generated with sufficient entropy.
Note: The security strength of the protection of the generated Note: The security strength of the protection of the generated
private key should be similar or higher than the security strength private key should be similar or higher than the security strength
of the generated private key. of the generated private key.
The detailed description of the privateKey field as follows: Detailed Description of privateKey Field:
privateKey OPTIONAL privateKey OPTIONAL
-- MUST be an EnvelopedData structure as specified in CMS -- MUST be an EnvelopedData structure as specified in CMS
-- Section 6 [RFC5652] -- Section 6 [RFC5652]
version REQUIRED version REQUIRED
-- MUST be 2 for recipientInfo type KeyAgreeRecipientInfo and -- MUST be 2 for recipientInfo type KeyAgreeRecipientInfo and
-- KeyTransRecipientInfo -- KeyTransRecipientInfo
-- MUST be 0 for recipientInfo type PasswordRecipientInfo -- MUST be 0 for recipientInfo type PasswordRecipientInfo
recipientInfos REQUIRED recipientInfos REQUIRED
-- MUST contain exactly one RecipientInfo, which MUST be -- MUST contain exactly one RecipientInfo, which MUST be
skipping to change at page 45, line 5 skipping to change at page 45, line 5
-- The signature algorithm type MUST be a MSG_SIG_ALG as -- The signature algorithm type MUST be a MSG_SIG_ALG as
-- specified in RFC-CMP-Alg Section 3 and MUST be consistent -- specified in RFC-CMP-Alg Section 3 and MUST be consistent
-- with the subjectPublicKeyInfo field of the KGA certificate -- with the subjectPublicKeyInfo field of the KGA certificate
signature REQUIRED signature REQUIRED
-- MUST be the digital signature of the encapContentInfo -- MUST be the digital signature of the encapContentInfo
NOTE: As stated in Section 1.5, all fields of the ASN.1 syntax that NOTE: As stated in Section 1.5, all fields of the ASN.1 syntax that
are defined in RFC 5652 [RFC5652] but are not explicitly specified are defined in RFC 5652 [RFC5652] but are not explicitly specified
here SHOULD NOT be used. here SHOULD NOT be used.
4.1.6.1. Using key agreement key management technique 4.1.6.1. Using Key Agreement Key Management Technique
This variant can be applied in combination with the PKI management This variant can be applied in combination with the PKI management
operations specified in Section 4.1.1 to Section 4.1.3 using operations specified in Section 4.1.1 to Section 4.1.3 using
signature-based protection of CMP messages. The EE certificate used signature-based protection of CMP messages. The EE certificate used
for the signature-based protection of the request message MUST allow for the signature-based protection of the request message MUST allow
for the key usage "keyAgreement" and therefore, the related key pair for the key usage "keyAgreement" and therefore, the related key pair
MUST be used for establishment of the content-encryption key. For MUST be used for establishment of the content-encryption key. For
this key management technique the KeyAgreeRecipientInfo structure this key management technique the KeyAgreeRecipientInfo structure
MUST be used in the contentInfo field. MUST be used in the contentInfo field.
The KeyAgreeRecipientInfo structure included into the EnvelopedData The KeyAgreeRecipientInfo structure included into the EnvelopedData
structure is specified in CMS Section 6.2.2 [RFC5652]. structure is specified in CMS Section 6.2.2 [RFC5652].
The detailed description of the KeyAgreeRecipientInfo structure looks Detailed Description of KeyAgreeRecipientInfo Structure:
like this:
kari REQUIRED kari REQUIRED
-- MUST be a KeyAgreeRecipientInfo as specified in CMS Section -- MUST be a KeyAgreeRecipientInfo as specified in CMS Section
-- 6.2.2 [RFC5652] -- 6.2.2 [RFC5652]
version REQUIRED version REQUIRED
-- MUST be 3 -- MUST be 3
originator REQUIRED originator REQUIRED
-- MUST contain the subjectKeyIdentifier of the certificate, -- MUST contain the subjectKeyIdentifier of the certificate,
-- and thereby identifies the sender's public key. -- and thereby identifies the sender's public key.
-- MUST contain the same value as the senderKID in the -- MUST contain the same value as the senderKID in the
skipping to change at page 46, line 43 skipping to change at page 46, line 43
-- MUST contain the rKeyId choice -- MUST contain the rKeyId choice
rKeyId REQUIRED rKeyId REQUIRED
subjectKeyIdentifier subjectKeyIdentifier
REQUIRED REQUIRED
-- MUST contain the same value as the senderKID in the -- MUST contain the same value as the senderKID in the
-- respective request message header -- respective request message header
encryptedKey encryptedKey
REQUIRED REQUIRED
-- MUST be the encrypted content-encryption key -- MUST be the encrypted content-encryption key
4.1.6.2. Using key transport key management technique 4.1.6.2. Using Key Transport Key Managemen Technique
This variant can be applied in combination with the PKI management This variant can be applied in combination with the PKI management
operations specified in Section 4.1.1 to Section 4.1.3 using operations specified in Section 4.1.1 to Section 4.1.3 using
signature-based protection of CMP messages. The EE certificate used signature-based protection of CMP messages. The EE certificate used
for the signature-based protection of the request message MUST allow for the signature-based protection of the request message MUST allow
for the key usage "keyEncipherment" and not for "keyAgreement". for the key usage "keyEncipherment" and not for "keyAgreement".
Therefore, the related key pair MUST be used for encipherment of the Therefore, the related key pair MUST be used for encipherment of the
content-encryption key. For this key management technique, the content-encryption key. For this key management technique, the
KeyTransRecipientInfo structure MUST be used in the contentInfo KeyTransRecipientInfo structure MUST be used in the contentInfo
field. field.
The KeyTransRecipientInfo structure included into the EnvelopedData The KeyTransRecipientInfo structure included into the EnvelopedData
structure is specified in CMS Section 6.2.1 [RFC5652]. structure is specified in CMS Section 6.2.1 [RFC5652].
The detailed description of the KeyTransRecipientInfo structure looks Detailed Description of KeyTransRecipientInfo Structure:
like this:
ktri REQUIRED ktri REQUIRED
-- MUST be a KeyTransRecipientInfo as specified in CMS -- MUST be a KeyTransRecipientInfo as specified in CMS
-- Section 6.2.1 [RFC5652] -- Section 6.2.1 [RFC5652]
version REQUIRED version REQUIRED
-- MUST be 2 -- MUST be 2
rid REQUIRED rid REQUIRED
-- MUST contain the subjectKeyIdentifier choice -- MUST contain the subjectKeyIdentifier choice
subjectKeyIdentifier subjectKeyIdentifier
REQUIRED REQUIRED
skipping to change at page 47, line 32 skipping to change at page 47, line 31
-- respective request message header -- respective request message header
keyEncryptionAlgorithm keyEncryptionAlgorithm
REQUIRED REQUIRED
-- MUST be the algorithm identifier of the key transport -- MUST be the algorithm identifier of the key transport
-- algorithm -- algorithm
-- The algorithm type MUST be a KM_KT_ALG as specified in -- The algorithm type MUST be a KM_KT_ALG as specified in
-- RFC-CMP-Alg Section 4.2 -- RFC-CMP-Alg Section 4.2
encryptedKey REQUIRED encryptedKey REQUIRED
-- MUST be the encrypted content-encryption key -- MUST be the encrypted content-encryption key
4.1.6.3. Using password-based key management technique 4.1.6.3. Using Password-Based Key Management Technique
This variant can be applied in combination with the PKI management This variant can be applied in combination with the PKI management
operation specified in Section 4.1.5 using MAC-based protection of operation specified in Section 4.1.5 using MAC-based protection of
CMP messages. The shared secret information used for the MAC-based CMP messages. The shared secret information used for the MAC-based
protection MUST also be used for the encryption of the content- protection MUST also be used for the encryption of the content-
encryption key but with a different salt value applied in the key encryption key but with a different salt value applied in the key
derivation algorithm. For this key management technique, the derivation algorithm. For this key management technique, the
PasswordRecipientInfo structure MUST be used in the contentInfo PasswordRecipientInfo structure MUST be used in the contentInfo
field. field.
Note: The entropy of the shared secret information is crucial for the Note: The entropy of the shared secret information is crucial for the
level of protection when using a password-based key management level of protection when using a password-based key management
technique. For centrally generated key pairs, the entropy of the technique. For centrally generated key pairs, the entropy of the
shared secret information SHALL NOT be less than the security shared secret information SHALL NOT be less than the security
strength of the centrally generated key pair. Further guidance is strength of the centrally generated key pair. Further guidance is
available in Section 9. available in Section 9.
The PasswordRecipientInfo structure included into the EnvelopedData The PasswordRecipientInfo structure included into the EnvelopedData
structure is specified in CMS Section 6.2.4 [RFC5652]. structure is specified in CMS Section 6.2.4 [RFC5652].
The detailed description of the PasswordRecipientInfo structure looks Detailed Description of PasswordRecipientInfo Structure:
like this:
pwri REQUIRED pwri REQUIRED
-- MUST be a PasswordRecipientInfo as specified in CMS -- MUST be a PasswordRecipientInfo as specified in CMS
-- Section 6.2.4 [RFC5652] -- Section 6.2.4 [RFC5652]
version REQUIRED version REQUIRED
-- MUST be 0 -- MUST be 0
keyDerivationAlgorithm keyDerivationAlgorithm
REQUIRED REQUIRED
-- MUST be the algorithm identifier of the key derivation -- MUST be the algorithm identifier of the key derivation
-- algorithm -- algorithm
-- The algorithm type MUST be a KM_KD_ALG as specified in -- The algorithm type MUST be a KM_KD_ALG as specified in
-- RFC-CMP-Alg Section 4.4 -- RFC-CMP-Alg Section 4.4
keyEncryptionAlgorithm keyEncryptionAlgorithm
REQUIRED REQUIRED
-- MUST be the algorithm identifier of the key wrap algorithm -- MUST be the algorithm identifier of the key wrap algorithm
-- The algorithm type MUST be a KM_KW_ALG as specified in -- The algorithm type MUST be a KM_KW_ALG as specified in
-- RFC-CMP-Alg Section 4.3 -- RFC-CMP-Alg Section 4.3
encryptedKey REQUIRED encryptedKey REQUIRED
-- MUST be the encrypted content-encryption key -- MUST be the encrypted content-encryption key
4.2. Revoking a certificate 4.2. Revoking a Certificate
This PKI management operation should be used by an entity to request This PKI management operation should be used by an entity to request
revocation of a certificate. Here the revocation request is used by revocation of a certificate. Here the revocation request is used by
an EE to revoke one of its own certificates. an EE to revoke one of its own certificates.
The revocation request message MUST be signed using the certificate The revocation request message MUST be signed using the certificate
that is to be revoked to prove the authorization to revoke. The that is to be revoked to prove the authorization to revoke. The
revocation request message is signature-protected using this revocation request message is signature-protected using this
certificate. This requires, that the EE still possesses the private certificate. This requires, that the EE still possesses the private
key. If this is not the case the revocation has to be initiated by key. If this is not the case the revocation has to be initiated by
other means, e.g., revocation by the RA as specified in other means, e.g., revocation by the RA as specified in
Section 5.3.2. Section 5.3.2.
An EE requests the revocation of an own certificate at the CA that An EE requests the revocation of an own certificate at the CA that
issued this certificate. The PKI management entity handles the issued this certificate. The PKI management entity handles the
request as described in Section 5.1.4 and responds with a message request as described in Section 5.1.3 and responds with a message
that contains the status of the revocation from the CA. that contains the status of the revocation from the CA.
Specific prerequisites augmenting the prerequisites in Section 3.4: Specific prerequisites augmenting the prerequisites in Section 3.4:
* The certificate the EE wishes to revoke is not yet expired or * The certificate the EE wishes to revoke is not yet expired or
revoked. revoked.
Message flow: Message Flow:
Step# EE PKI management entity Step# EE PKI management entity
1 format rr 1 format rr
2 -> rr -> 2 -> rr ->
3 handle or forward rr 3 handle or forward rr
4 format or receive rp 4 format or receive rp
5 <- rp <- 5 <- rp <-
6 handle rp 6 handle rp
For this PKI management operation, the EE MUST include exactly one For this PKI management operation, the EE MUST include exactly one
RevDetails structure in the rr message body. In case no generic RevDetails structure in the rr message body. In case no generic
error occurred the response to the rr MUST be an rp message error occurred the response to the rr MUST be an rp message
containing a single status field. containing a single status field.
Detailed message description: Detailed Message Description:
Revocation Request -- rr Revocation Request -- rr
Field Value Field Value
header header
-- As described in Section 3.1 -- As described in Section 3.1
body body
-- The request of the EE to revoke its certificate -- The request of the EE to revoke its certificate
skipping to change at page 50, line 34 skipping to change at page 50, line 34
failInfo OPTIONAL failInfo OPTIONAL
-- MAY be present if status is "rejection" -- MAY be present if status is "rejection"
-- MUST be absent if the status is "accepted" -- MUST be absent if the status is "accepted"
protection REQUIRED protection REQUIRED
-- As described in section 3.2 -- As described in section 3.2
extraCerts REQUIRED extraCerts REQUIRED
-- As described in section 3.3 -- As described in section 3.3
4.3. Support messages 4.3. Support Messages
The following support messages offer on demand in-band delivery of The following support messages offer on demand in-band delivery of
content relevant to the EE provided by a PKI management entity. CMP content relevant to the EE provided by a PKI management entity. CMP
general messages and general response are used for this purpose. general messages and general response are used for this purpose.
Depending on the environment, these requests may be answered by an RA Depending on the environment, these requests may be answered by an RA
or CA (see also Section 5.1.5). or CA (see also Section 5.1.4).
The general messages and general response messages contain The general messages and general response messages contain
InfoTypeAndValue structures. In addition to those infoType values InfoTypeAndValue structures. In addition to those infoType values
defined in RFC 4210 [RFC4210] and CMP Updates defined in RFC 4210 [RFC4210] and CMP Updates
[I-D.ietf-lamps-cmp-updates] further OIDs MAY be used to define new [I-D.ietf-lamps-cmp-updates] further OIDs MAY be used to define new
PKI management operations or new general-purpose support messages as PKI management operations or new general-purpose support messages as
needed in specific environments. needed in specific environments.
The following contents are specified in this document: The following contents are specified in this document:
* Get CA certificates * Get CA certificates
* Get root CA certificate update * Get root CA certificate update
* Get certificate request template * Get certificate request template
* Get new CRLs * Get new CRLs
In the following the aspects common to all general messages (genm) In the following the aspects common to all general messages (genm)
and general response (genp) messages are described. and general response (genp) messages are described.
Message flow: Message Flow:
Step# EE PKI management entity Step# EE PKI management entity
1 format genm 1 format genm
2 -> genm -> 2 -> genm ->
3 handle or forward genm 3 handle or forward genm
4 format or receive genp 4 format or receive genp
5 <- genp <- 5 <- genp <-
6 handle genp 6 handle genp
Detailed message description: Detailed Message Description:
General Message -- genm General Message -- genm
Field Value Field Value
header header
-- As described in Section 3.1 -- As described in Section 3.1
body body
-- A request by the EE for information -- A request by the EE for information
skipping to change at page 53, line 5 skipping to change at page 53, line 5
-- operation described below -- operation described below
infoValue OPTIONAL infoValue OPTIONAL
-- MUST be as specified for the specific PKI management operation -- MUST be as specified for the specific PKI management operation
protection REQUIRED protection REQUIRED
-- As described in Section 3.2 -- As described in Section 3.2
extraCerts REQUIRED extraCerts REQUIRED
-- As described in Section 3.3 -- As described in Section 3.3
4.3.1. Get CA certificates 4.3.1. Get CA Certificates
This PKI management operation can be used by an EE to request CA This PKI management operation can be used by an EE to request CA
certificates from the PKI management entity. certificates from the PKI management entity.
An EE requests CA certificates, e.g., for chain construction, from an An EE requests CA certificates, e.g., for chain construction, from an
PKI management entity by sending a general message with OID id-it- PKI management entity by sending a general message with OID id-it-
caCerts as specified in CMP Updates Section 2.13 caCerts as specified in CMP Updates Section 2.13
[I-D.ietf-lamps-cmp-updates]. The PKI management entity responds [I-D.ietf-lamps-cmp-updates]. The PKI management entity responds
with a general response with the same OID that either contains a with a general response with the same OID that either contains a
SEQUENCE of certificates populated with the available intermediate SEQUENCE of certificates populated with the available intermediate
skipping to change at page 53, line 32 skipping to change at page 53, line 32
The message sequence for this PKI management operation is as given The message sequence for this PKI management operation is as given
above, with the following specific content: above, with the following specific content:
1 the infoType OID to use is id-it-caCerts 1 the infoType OID to use is id-it-caCerts
2 the infoValue of the request MUST be absent 2 the infoValue of the request MUST be absent
3 if present, the infoValue of the response MUST contain a sequence 3 if present, the infoValue of the response MUST contain a sequence
of certificates of certificates
The infoValue field of the general response containing the id-it- Detailed Description of infoValue Field of genp:
caCerts OID looks like this:
infoValue OPTIONAL infoValue OPTIONAL
-- MUST be absent if no CA certificate is available -- MUST be absent if no CA certificate is available
-- MUST be present if CA certificates are available -- MUST be present if CA certificates are available
-- MUST be a sequence of CMPCertificate -- MUST be a sequence of CMPCertificate
4.3.2. Get root CA certificate update 4.3.2. Get Root CA Certificate Update
This PKI management operation can be used by an EE to request an This PKI management operation can be used by an EE to request an
updated root CA Certificate as described in Section 4.4 of RFC 4210 updated root CA Certificate as described in Section 4.4 of RFC 4210
[RFC4210]. [RFC4210].
An EE requests an update of a root CA certificate from the PKI An EE requests an update of a root CA certificate from the PKI
management entity by sending a general message with OID id-it- management entity by sending a general message with OID id-it-
rootCaCert, which SHOULD include the old root CA certificate in the rootCaCert, which SHOULD include the old root CA certificate in the
message body, as specified in CMP Updates Section 2.14 message body, as specified in CMP Updates Section 2.14
[I-D.ietf-lamps-cmp-updates]. The PKI management entity responds [I-D.ietf-lamps-cmp-updates]. The PKI management entity responds
skipping to change at page 54, line 42 skipping to change at page 54, line 42
1 the infoType OID to use is id-it-rootCaCert in the request and id- 1 the infoType OID to use is id-it-rootCaCert in the request and id-
it-rootCaKeyUpdate in the response it-rootCaKeyUpdate in the response
2 the infoValue of the request SHOULD contain the root CA 2 the infoValue of the request SHOULD contain the root CA
certificate the update is requested for certificate the update is requested for
3 if present, the infoValue of the response MUST be a 3 if present, the infoValue of the response MUST be a
RootCaKeyUpdateContent structure RootCaKeyUpdateContent structure
The infoValue field of the general request containing the id-it- Detailed Description of infoValue Field of genm:
rootCaCert OID looks like this:
infoValue RECOMMENDED infoValue RECOMMENDED
-- MUST contain the root CA certificate to be updated, if -- MUST contain the root CA certificate to be updated, if
-- available -- available
The infoValue field of the general response containing the id-it- Detailed Description of infoValue Field of genp:
rootCaKeyUpdate OID looks like this:
infoValue OPTIONAL infoValue OPTIONAL
-- MUST be absent if no update of the root CA certificate is -- MUST be absent if no update of the root CA certificate is
-- available -- available
-- MUST be present if an update of the root CA certificate -- MUST be present if an update of the root CA certificate
-- is available and MUST be of type RootCaKeyUpdateContent -- is available and MUST be of type RootCaKeyUpdateContent
newWithNew REQUIRED newWithNew REQUIRED
-- MUST be present if infoValue is present -- MUST be present if infoValue is present
-- MUST contain the new root CA certificate -- MUST contain the new root CA certificate
newWithOld REQUIRED newWithOld REQUIRED
-- MUST be present if infoValue is present -- MUST be present if infoValue is present
-- MUST contain a certificate containing the new public -- MUST contain a certificate containing the new public
-- root CA key signed with the old private root CA key -- root CA key signed with the old private root CA key
oldWithNew OPTIONAL oldWithNew OPTIONAL
-- MAY be present if infoValue is present -- MAY be present if infoValue is present
-- MUST contain a certificate containing the old public -- MUST contain a certificate containing the old public
-- root CA key signed with the new private root CA key -- root CA key signed with the new private root CA key
4.3.3. Get certificate request template 4.3.3. Get Certificate Request Template
This PKI management operation can be used by an EE to request a This PKI management operation can be used by an EE to request a
template with parameters for future certificate requests. template with parameters for future certificate requests.
An EE requests certificate request parameters from the PKI management An EE requests certificate request parameters from the PKI management
entity by sending a general message with OID id-it-certReqTemplate as entity by sending a general message with OID id-it-certReqTemplate as
specified in CMP Updates Section 2.15 [I-D.ietf-lamps-cmp-updates]. specified in CMP Updates Section 2.15 [I-D.ietf-lamps-cmp-updates].
The EE MAY indicate the certificate profile to use in the id-it- The EE MAY indicate the certificate profile to use in the id-it-
certProfile extension of the generalInfo field in the PKIHeader of certProfile extension of the generalInfo field in the PKIHeader of
the general message as described in Section 3.1. The PKI management the general message as described in Section 3.1. The PKI management
skipping to change at page 57, line 23 skipping to change at page 57, line 23
2 the id-it-certProfile generalInfo field in the header of the 2 the id-it-certProfile generalInfo field in the header of the
request MAY contain the name of the requested certificate request request MAY contain the name of the requested certificate request
template template
3 the infoValue of the request MUST be absent 3 the infoValue of the request MUST be absent
4 if present, the infoValue of the response MUST be a 4 if present, the infoValue of the response MUST be a
CertReqTemplateValue containing a CertTemplate structure and an CertReqTemplateValue containing a CertTemplate structure and an
optional keySpec field optional keySpec field
The infoValue field of the general response containing the id-it- Detailed Description of infoValue Field of genp:
certReqTemplate OID looks like this:
InfoValue OPTIONAL InfoValue OPTIONAL
-- MUST be absent if no requirements are available -- MUST be absent if no requirements are available
-- MUST be present if the PKI management entity has any -- MUST be present if the PKI management entity has any
-- requirements on the contents of the certificate template -- requirements on the contents of the certificate template
certTemplate REQUIRED certTemplate REQUIRED
-- MUST be present if infoValue is present -- MUST be present if infoValue is present
-- MUST contain the required CertTemplate structure elements -- MUST contain the required CertTemplate structure elements
-- The SubjectPublicKeyInfo field MUST be absent -- The SubjectPublicKeyInfo field MUST be absent
keySpec OPTIONAL keySpec OPTIONAL
-- MUST be absent if no requirements on the public key are -- MUST be absent if no requirements on the public key are
-- available -- available
-- MUST be present if the PKI management entity has any -- MUST be present if the PKI management entity has any
-- requirements on the keys generated -- requirements on the keys generated
-- MUST contain one AttributeTypeAndValue per supported -- MUST contain one AttributeTypeAndValue per supported
-- algorithm with attribute id-regCtrl-algId or -- algorithm with attribute id-regCtrl-algId or
-- id-regCtrl-rsaKeyLen -- id-regCtrl-rsaKeyLen
4.3.4. CRL update retrieval 4.3.4. CRL Update Retrieval
This PKI management operation can be used by an EE to request a new This PKI management operation can be used by an EE to request a new
CRL. If a CA offers methods to access a CRL, it may include CRL CRL. If a CA offers methods to access a CRL, it may include CRL
distribution points or authority information access extensions as distribution points or authority information access extensions as
specified in RFC 5280 [RFC5280] into the issued certificates. In specified in RFC 5280 [RFC5280] into the issued certificates. In
addition, CMP offers CRL provisioning functionality as part of the addition, CMP offers CRL provisioning functionality as part of the
PKI management operation. PKI management operation.
An EE requests a CRL update from the PKI management entity by sending An EE requests a CRL update from the PKI management entity by sending
a general message with OID id-it-crlStatusList. The EE MUST include a general message with OID id-it-crlStatusList. The EE MUST include
skipping to change at page 58, line 48 skipping to change at page 58, line 48
above, with the following specific content: above, with the following specific content:
1 the infoType OID to use is id-it-crlStatusList in the request and 1 the infoType OID to use is id-it-crlStatusList in the request and
id-it-crls in the response id-it-crls in the response
2 the infoValue of the request MUST be present and contain a 2 the infoValue of the request MUST be present and contain a
CRLStatus structure CRLStatus structure
3 if present, the infoValue of the response MUST contain a CRL 3 if present, the infoValue of the response MUST contain a CRL
The infoValue field of the general request containing the id-it- Detailed Description of infoValue Field of genm:
crlStatusList OID looks like this:
CRLSource REQUIRED CRLSource REQUIRED
-- MUST contain exactly one CRLSource structure -- MUST contain exactly one CRLSource structure
-- MUST contain the dpn choice of type DistributionPointName if -- MUST contain the dpn choice of type DistributionPointName if
-- the CRL distribution point name is available -- the CRL distribution point name is available
-- Otherwise, MUST contain the issuer choice identifying the CA -- Otherwise, MUST contain the issuer choice identifying the CA
-- that issues the CRL. It MUST contain the issuer DN in the -- that issues the CRL. It MUST contain the issuer DN in the
-- directoryName field of a GeneralName element. -- directoryName field of a GeneralName element.
thisUpdate OPTIONAL thisUpdate OPTIONAL
-- SHOULD contain the thisUpdate field of the latest CRL form -- SHOULD contain the thisUpdate field of the latest CRL form
-- the issuer specified in the given dpn or issuer field, -- the issuer specified in the given dpn or issuer field,
-- in case such a CRL is already known by the EE -- in case such a CRL is already known by the EE
The infoValue field of the general response containing the id-it-crls Detailed Description of infoValue Field of genp:
OID looks like this:
infoValue OPTIONAL infoValue OPTIONAL
-- MUST be absent if no CRL to be returned is available -- MUST be absent if no CRL to be returned is available
-- MUST contain one CRL update from the referenced source, if a -- MUST contain one CRL update from the referenced source, if a
-- thisUpdate value was not given or a more recent CRL is -- thisUpdate value was not given or a more recent CRL is
-- available -- available
4.4. Handling delayed delivery 4.4. Handling Delayed Delivery
This is a variant of all PKI management operations described in this This is a variant of all PKI management operations described in this
document. It is initiated in case a PKI management entity cannot document. It is initiated in case a PKI management entity cannot
respond to a request message in a timely manner, typically due to respond to a request message in a timely manner, typically due to
offline or asynchronous upstream communication, or due to delays in offline or asynchronous upstream communication, or due to delays in
handling the request. The polling mechanism has been specified in handling the request. The polling mechanism has been specified in
RFC 4210 Section 5.3.22 [RFC4210] and updated by RFC 4210 Section 5.3.22 [RFC4210] and updated by
[I-D.ietf-lamps-cmp-updates]. [I-D.ietf-lamps-cmp-updates].
Depending on the PKI architecture, the entity initiating delayed Depending on the PKI architecture, the entity initiating delayed
skipping to change at page 60, line 16 skipping to change at page 60, line 30
PKI management operation, i.e., a timeout occurs. PKI management operation, i.e., a timeout occurs.
When the PKI management entity that initiated delayed delivery can When the PKI management entity that initiated delayed delivery can
provide the final response for the original request message of the provide the final response for the original request message of the
EE, it MUST send this response to the EE. Using this response, the EE, it MUST send this response to the EE. Using this response, the
EE can continue the current PKI management operation as usual. EE can continue the current PKI management operation as usual.
No specific prerequisites apply in addition to those of the No specific prerequisites apply in addition to those of the
respective PKI management operation. respective PKI management operation.
Message flow: Message Flow:
Step# EE PKI management entity Step# EE PKI management entity
1 format request 1 format request
message message
2 -> request -> 2 -> request ->
3 handle or forward 3 handle or forward
request request
4 format ip/cp/kup/error 4 format ip/cp/kup/error
with status "waiting" with status "waiting"
response in case no response in case no
skipping to change at page 61, line 50 skipping to change at page 61, line 50
----------------- end polling, continue as usual ------------------ ----------------- end polling, continue as usual ------------------
14 format or receive 14 format or receive
final response on final response on
original request original request
15 <- response <- 15 <- response <-
16 handle final 16 handle final
response response
Detailed description of the ip/cp/kup/error response, pollReq, and Detailed Message Description:
pollRep:
Response with status "waiting" -- ip/cp/kup/error Response with Status "waiting" -- ip/cp/kup/error
Field Value Field Value
header header
-- As described in Section 3.1 -- As described in Section 3.1
body body
-- as described for the respective PKI management operation, with -- as described for the respective PKI management operation, with
-- the following adaptations: -- the following adaptations:
status REQUIRED -- in case of ip/cp/kup status REQUIRED -- in case of ip/cp/kup
skipping to change at page 63, line 38 skipping to change at page 63, line 38
-- As described in Section 3.2 -- As described in Section 3.2
-- MUST use the same credentials as in the first response -- MUST use the same credentials as in the first response
-- message of the PKI management operation -- message of the PKI management operation
extraCerts RECOMMENDED extraCerts RECOMMENDED
-- As described in Section 3.3 -- As described in Section 3.3
-- MAY be omitted if the message size is critical and the EE has -- MAY be omitted if the message size is critical and the EE has
-- cached the extraCerts from the first response message of -- cached the extraCerts from the first response message of
-- the PKI management operation -- the PKI management operation
Final response - any type of response message Final Response - Any Type of Response Message
Field Value Field Value
header header
-- MUST be the header as described for the response message -- MUST be the header as described for the response message
-- of the respective PKI management operation -- of the respective PKI management operation
body body
-- The response of the PKI management entity to the initial -- The response of the PKI management entity to the initial
skipping to change at page 64, line 14 skipping to change at page 64, line 14
-- operation -- operation
protection REQUIRED protection REQUIRED
-- MUST be as described for the response message of the -- MUST be as described for the response message of the
-- respective PKI management operation -- respective PKI management operation
extraCerts REQUIRED extraCerts REQUIRED
-- MUST be as described for the response message of the -- MUST be as described for the response message of the
-- respective PKI management operation -- respective PKI management operation
5. PKI management entity operations 5. PKI Management Entity Operations
This section focuses on request processing by a PKI management This section focuses on request processing by a PKI management
entity. Depending on the network and PKI solution design, this can entity. Depending on the network and PKI solution design, this can
be an RA or CA, any of which may include protocol conversion or be an RA or CA, any of which may include protocol conversion or
central key generation (i.e., acting as a KGA). central key generation (i.e., acting as a KGA).
A PKI management entity may directly respond to request messages from A PKI management entity may directly respond to request messages from
downstream and report errors. In case the PKI management entity is downstream and report errors. In case the PKI management entity is
an RA it typically forwards the received request messages upstream an RA it typically forwards the received request messages upstream
after checking them and forwards respective response messages after checking them and forwards respective response messages
downstream. Besides responding to messages or forwarding them, a PKI downstream. Besides responding to messages or forwarding them, a PKI
management entity may request or revoke certificates on behalf of management entity may request or revoke certificates on behalf of
EEs. A PKI management entity may also need to manage its own EEs. A PKI management entity may also need to manage its own
certificates and thus act as an EE using the PKI management certificates and thus act as an EE using the PKI management
operations specified in Section 4. operations specified in Section 4.
5.1. Responding to requests 5.1. Responding to Requests
The PKI management entity terminating the PKI management operation at The PKI management entity terminating the PKI management operation at
CMP level MUST respond to all received requests by returning a CMP level MUST respond to all received requests by returning a
related CMP response message or an error. Any intermediate PKI related CMP response message or an error. Any intermediate PKI
management entity MAY respond depending on the PKI configuration and management entity MAY respond depending on the PKI configuration and
policy. policy.
In addition to the checks described in Section 3.5, the responding In addition to the checks described in Section 3.5, the responding
PKI management entity SHOULD check that a request that initiates a PKI management entity SHOULD check that a request that initiates a
new PKI management operation does not use a transactionID that is new PKI management operation does not use a transactionID that is
skipping to change at page 65, line 5 skipping to change at page 65, line 5
as described in Section 3.6.4 is transactionIdInUse. If any of these as described in Section 3.6.4 is transactionIdInUse. If any of these
verification steps or any of the essential checks described in the verification steps or any of the essential checks described in the
following subsections fails, the PKI management entity MUST proceed following subsections fails, the PKI management entity MUST proceed
as described in Section 3.6. as described in Section 3.6.
The responding PKI management entity SHOULD copy the sender field of The responding PKI management entity SHOULD copy the sender field of
the request to the recipient field of the response, MUST copy the the request to the recipient field of the response, MUST copy the
senderNonce of the request to the recipNonce of the response, and senderNonce of the request to the recipNonce of the response, and
MUST use the same transactionID for the response. MUST use the same transactionID for the response.
5.1.1. Responding to a certificate request 5.1.1. Responding to a Certificate Request
An ir/cr/p10cr/kur message is used to request a certificate as An ir/cr/p10cr/kur message is used to request a certificate as
described in Section 4.1. The responding PKI management entity MUST described in Section 4.1. The responding PKI management entity MUST
proceed as follows unless it initiates delayed delivery as described proceed as follows unless it initiates delayed delivery as described
in Section 5.1.2. in Section 5.1.5.
The PKI management entity SHOULD check the message body according to The PKI management entity SHOULD check the message body according to
the applicable requirements from Section 4.1. Possible failInfo bit the applicable requirements from Section 4.1. Possible failInfo bit
values used for error reporting in case a check failed include values used for error reporting in case a check failed include
badCertId and badCertTemplate. It MUST verify the presence and value badCertId and badCertTemplate. It MUST verify the presence and value
of the proof-of-possession (failInfo bit: badPOP), unless central key of the proof-of-possession (failInfo bit: badPOP), unless central key
generation is requested. In case the special POP value "raVerified" generation is requested. In case the special POP value "raVerified"
is given, it SHOULD check that the request message was signed using a is given, it SHOULD check that the request message was signed using a
certificate containing the cmcRA extended key usage (failInfo bit: certificate containing the cmcRA extended key usage (failInfo bit:
notAuthorized). The PKI management entity SHOULD perform also any notAuthorized). The PKI management entity SHOULD perform also any
skipping to change at page 65, line 45 skipping to change at page 65, line 45
means from a CA. means from a CA.
The prerequisites of the respective PKI management operation as The prerequisites of the respective PKI management operation as
specified in Section 4.1 apply. specified in Section 4.1 apply.
Note: If the EE requested omission of the certConf message, the PKI Note: If the EE requested omission of the certConf message, the PKI
management entity SHOULD handle it as described in Section 4.1.1 and management entity SHOULD handle it as described in Section 4.1.1 and
therefore MAY grant this by including the implicitConfirm extension therefore MAY grant this by including the implicitConfirm extension
in the response header. in the response header.
5.1.2. Initiating delayed delivery 5.1.2. Responding to a Confirmation Message
This functional extension can be used by a PKI management entity in
case the response to a request takes longer than usual. In this case
the PKI management entity MUST completely validate the request as
usual and then start preparing the response or forward the request
further upstream as soon as possible. In the meantime, it MUST
respond with an ip/cp/kup/error message including the status
"waiting" and handle subsequent polling as described in Section 4.4.
Note: Typically, as stated in Section 5.2.3, an intermediate PKI
management entity should not change the sender and recipient nonces
even in case it modifies a request or a response message. In the
special case of delayed delivery initiated by an intermediate PKI
management entity, there is an exception. Between the EE and this
PKI management entity, pollReq and pollRep messages are exchanged
handling the nonces as usual. Yet when the final response from
upstream has arrived at the PKI management entity, this response
contains the recipNonce copied (as usual) from the senderNonce in the
original request message. The PKI management entity that initiated
the delayed delivery may replace the recipNonce in the response
message with the senderNonce of the last received pollReq because the
downstream entities, including the EE, might expect it in this way.
Yet the check specified in Section 3.5 allows to alternatively use
the senderNonce of the original request.
No specific prerequisites apply in addition to those of the
respective PKI management operation.
5.1.3. Responding to a confirmation message
A PKI management entity MUST handle a certConf message if it has A PKI management entity MUST handle a certConf message if it has
responded before with a positive ip/cp/kup message not granting responded before with a positive ip/cp/kup message not granting
implicit confirmation. It SHOULD check the message body according to implicit confirmation. It SHOULD check the message body according to
the requirements given in Section 4.1.1 (failInfo bit: badCertId) and the requirements given in Section 4.1.1 (failInfo bit: badCertId) and
react as described there. react as described there.
The prerequisites of the respective PKI management operation as The prerequisites of the respective PKI management operation as
specified in Section 4.1 apply. specified in Section 4.1 apply.
5.1.4. Responding to a revocation request 5.1.3. Responding to a Revocation Request
An rr message is used to request revocation of a certificate. The An rr message is used to request revocation of a certificate. The
responding PKI management entity SHOULD check the message body responding PKI management entity SHOULD check the message body
according to the requirements in Section 4.2. It MUST make sure that according to the requirements in Section 4.2. It MUST make sure that
the referenced certificate exists (failInfo bit: badCertId), has been the referenced certificate exists (failInfo bit: badCertId), has been
issued by the addressed CA, and is not already expired or revoked issued by the addressed CA, and is not already expired or revoked
(failInfo bit: certRevoked). On success it MUST respond with a (failInfo bit: certRevoked). On success it MUST respond with a
positive rp message as described in Section 4.2. positive rp message as described in Section 4.2.
No specific prerequisites apply in addition to those specified in No specific prerequisites apply in addition to those specified in
Section 3.4. Section 3.4.
5.1.5. Responding to a support message 5.1.4. Responding to a Support Message
A genm message is used to retrieve extra content. The responding PKI A genm message is used to retrieve extra content. The responding PKI
management entity SHOULD check the message body according to the management entity SHOULD check the message body according to the
applicable requirements in Section 4.3 and perform any further checks applicable requirements in Section 4.3 and perform any further checks
depending on the PKI policy. On success it MUST respond with a genp depending on the PKI policy. On success it MUST respond with a genp
message as described there. message as described there.
Note: The responding PKI management entity may generate the response Note: The responding PKI management entity may generate the response
from scratch or reuse the contents of previous responses. Therefore, from scratch or reuse the contents of previous responses. Therefore,
it may be worth caching the body of the response message as long as it may be worth caching the body of the response message as long as
the contained information is still valid, such that further requests the contained information is still valid, such that further requests
for the same contents can be answered immediately. for the same contents can be answered immediately.
No specific prerequisites apply in addition to those specified in No specific prerequisites apply in addition to those specified in
Section 3.4. Section 3.4.
5.2. Forwarding messages 5.1.5. Initiating Delayed Delivery
This functional extension can be used by a PKI management entity in
case the response to a request takes longer than usual. In this case
the PKI management entity MUST completely validate the request as
usual and then start preparing the response or forward the request
further upstream as soon as possible. In the meantime, it MUST
respond with an ip/cp/kup/error message including the status
"waiting" and handle subsequent polling as described in Section 4.4.
Note: Typically, as stated in Section 5.2.3, an intermediate PKI
management entity should not change the sender and recipient nonces
even in case it modifies a request or a response message. In the
special case of delayed delivery initiated by an intermediate PKI
management entity, there is an exception. Between the EE and this
PKI management entity, pollReq and pollRep messages are exchanged
handling the nonces as usual. Yet when the final response from
upstream has arrived at the PKI management entity, this response
contains the recipNonce copied (as usual) from the senderNonce in the
original request message. The PKI management entity that initiated
the delayed delivery may replace the recipNonce in the response
message with the senderNonce of the last received pollReq because the
downstream entities, including the EE, might expect it in this way.
Yet the check specified in Section 3.5 allows to alternatively use
the senderNonce of the original request.
No specific prerequisites apply in addition to those of the
respective PKI management operation.
5.2. Forwarding Messages
In case the PKI solution consists of intermediate PKI management In case the PKI solution consists of intermediate PKI management
entities (i.e., LRA or RA), each CMP request message coming from an entities (i.e., LRA or RA), each CMP request message coming from an
EE or any other downstream PKI management entity SHOULD be forwarded EE or any other downstream PKI management entity SHOULD be forwarded
to the next (upstream) PKI management entity as described in this to the next (upstream) PKI management entity as described in this
section and otherwise MUST be answered as described in Section 5.1. section and otherwise MUST be answered as described in Section 5.1.
Any received response message or error message MUST be forwarded to Any received response message or error message MUST be forwarded to
the next (downstream) PKI entity. the next (downstream) PKI entity.
In addition to the checks described in Section 3.5, the forwarding In addition to the checks described in Section 3.5, the forwarding
skipping to change at page 69, line 13 skipping to change at page 69, line 13
certificate request messages. certificate request messages.
Note that the message protection covers only the header and the body Note that the message protection covers only the header and the body
and not the extraCerts. The PKI management entity MAY change the and not the extraCerts. The PKI management entity MAY change the
extraCerts in any of the following message adaptations, e.g., to extraCerts in any of the following message adaptations, e.g., to
sort, add, or delete certificates to support subsequent PKI entities. sort, add, or delete certificates to support subsequent PKI entities.
This may be particularly helpful to augment upstream messages with This may be particularly helpful to augment upstream messages with
additional certificates or to reduce the number of certificates in additional certificates or to reduce the number of certificates in
downstream messages when forwarding to constrained devices. downstream messages when forwarding to constrained devices.
5.2.1. Not changing protection 5.2.1. Not Changing Protection
This variant means that a PKI management entity forwards a CMP This variant means that a PKI management entity forwards a CMP
message without changing the header, body, or protection. In this message without changing the header, body, or protection. In this
case the PKI management entity acts more like a proxy, e.g., on a case the PKI management entity acts more like a proxy, e.g., on a
network boundary, implementing no specific RA-like security network boundary, implementing no specific RA-like security
functionality that requires an authentic indication to the PKI. functionality that requires an authentic indication to the PKI.
Still the PKI management entity might implement checks that result in Still the PKI management entity might implement checks that result in
refusing to forward the request message and instead responding as refusing to forward the request message and instead responding as
specified in Section 3.6. specified in Section 3.6.
This variant of forwarding a message or the one described in This variant of forwarding a message or the one described in
Section 5.2.2.1 SHOULD be used for kur messages and for central key Section 5.2.2.1 SHOULD be used for kur messages and for central key
generation. generation.
No specific prerequisites apply in addition to those specified in No specific prerequisites apply in addition to those specified in
Section 3.4. Section 3.4.
5.2.2. Adding protection and batching of messages 5.2.2. Adding Protection and Batching of Messages
This variant of forwarding a message means that a PKI management This variant of forwarding a message means that a PKI management
entity adds another protection to PKI management messages before entity adds another protection to PKI management messages before
forwarding them. forwarding them.
The nested message is a PKI management message containing a The nested message is a PKI management message containing a
PKIMessages sequence as its body containing one or more CMP messages. PKIMessages sequence as its body containing one or more CMP messages.
As specified in the updated Section 5.1.3.4 of RFC 4210 [RFC4210] As specified in the updated Section 5.1.3.4 of RFC 4210 [RFC4210]
(see also CMP Updates Section 2.6 [I-D.ietf-lamps-cmp-updates]) there (see also CMP Updates Section 2.6 [I-D.ietf-lamps-cmp-updates]) there
are various use cases for adding another protection by a PKI are various use cases for adding another protection by a PKI
management entity. Specific procedures are described in more detail management entity. Specific procedures are described in more detail
in the following sections. in the following sections.
Detailed message description: Detailed Message Description:
Nested Message - nested Nested Message - nested
Field Value Field Value
header header
-- As described in Section 3.1 -- As described in Section 3.1
body body
-- Container to provide additional protection to original -- Container to provide additional protection to original
skipping to change at page 70, line 26 skipping to change at page 70, line 26
PKIMessages REQUIRED PKIMessages REQUIRED
-- MUST be a sequence of one or more CMP messages -- MUST be a sequence of one or more CMP messages
protection REQUIRED protection REQUIRED
-- As described in Section 3.2 using the CMP protection key of -- As described in Section 3.2 using the CMP protection key of
-- the PKI management entity -- the PKI management entity
extraCerts REQUIRED extraCerts REQUIRED
-- As described in Section 3.3 -- As described in Section 3.3
5.2.2.1. Adding protection to a request message 5.2.2.1. Adding Protection to a Request Message
A PKI management entity may authentically indicate successful This variant means that a PKI management entity forwards a CMP
validation and approval of a request message by adding an extra message while authentically indicating successful validation and
signature to the original message. approval of a request message without changing the original message.
By adding a protection using its own CMP protecting key the PKI By adding a protection using its own CMP protecting key the PKI
management entity provides a proof of verifying and approving the management entity provides a proof of verifying and approving the
message as described above. Thus, the PKI management entity acts as message as described above. Thus, the PKI management entity acts as
an actual Registration Authority (RA), which implements important an actual Registration Authority (RA), which implements important
security functionality of the PKI. Applying an additional protection security functionality of the PKI. Applying an additional protection
is specifically relevant when forwarding a message that requests a is specifically relevant when forwarding a message that requests a
certificate update or central key generation. This is because the certificate update or central key generation. This is because the
original protection of the EE must be preserved while adding an original protection of the EE must be preserved while adding an
indication of approval by the PKI management entity. indication of approval by the PKI management entity.
skipping to change at page 71, line 19 skipping to change at page 71, line 19
Note: This form of nesting messages is characterized by the fact that Note: This form of nesting messages is characterized by the fact that
the transactionID in the header of the nested message is the same as the transactionID in the header of the nested message is the same as
the one used in the included message. the one used in the included message.
Specific prerequisites augmenting the prerequisites in Section 3.4: Specific prerequisites augmenting the prerequisites in Section 3.4:
* The PKI management entity MUST be able to validate the respective * The PKI management entity MUST be able to validate the respective
request and have the authorization to perform approval of the request and have the authorization to perform approval of the
request according to the PKI policies. request according to the PKI policies.
Message flow: Message Flow:
Step# PKI management entity PKI management entity Step# PKI management entity PKI management entity
1 format nested 1 format nested
2 -> nested -> 2 -> nested ->
3 handle or forward nested 3 handle or forward nested
4 format or receive response 4 format or receive response
5 <- response <- 5 <- response <-
6 forward response 6 forward response
5.2.2.2. Batching messages 5.2.2.2. Batching Messages
A PKI management entity MAY bundle any number of PKI management A PKI management entity MAY bundle any number of PKI management
messages for batch processing or to transfer a bulk of PKI management messages for batch processing or to transfer a bulk of PKI management
messages using the nested message structure. In this use case, messages using the nested message structure. In this use case,
nested messages are used both on the upstream interface towards the nested messages are used both on the upstream interface towards the
next PKI management entity and on the downstream interface from the next PKI management entity and on the downstream interface from the
PKI management entity towards the EE. PKI management entity towards the EE.
This PKI management operation is typically used on the interface This PKI management operation is typically used on the interface
between an LRA and an RA to bundle several messages for offline between an LRA and an RA to bundle several messages for offline
delivery. In this case the LRA needs to initiate delayed delivery as delivery. In this case the LRA needs to initiate delayed delivery as
described in Section 5.1.2. If the RA needs different routing described in Section 5.1.5. If the RA needs different routing
information per nested PKI management message a suitable mechanism information per nested PKI management message a suitable mechanism
may need to be implemented. Since this mechanism strongly depends on may need to be implemented. Since this mechanism strongly depends on
the requirements of the target architecture, it is out of scope of the requirements of the target architecture, it is out of scope of
this document. this document.
A nested message containing requests is generated locally at the PKI A nested message containing requests is generated locally at the PKI
management entity. For the upstream nested message, the PKI management entity. For the upstream nested message, the PKI
management entity acts as a protocol end point and therefore a fresh management entity acts as a protocol end point and therefore a fresh
transactionID and a fresh senderNonce MUST be used in the header of transactionID and a fresh senderNonce MUST be used in the header of
the nested message. An upstream nested message may contain request the nested message. An upstream nested message may contain request
skipping to change at page 72, line 39 skipping to change at page 72, line 39
the transactionID in the header of the nested message is different to the transactionID in the header of the nested message is different to
those used in the included messages. those used in the included messages.
The protection of the nested messages SHOULD NOT be regarded as an The protection of the nested messages SHOULD NOT be regarded as an
indication of verification or approval of the bundled PKI request indication of verification or approval of the bundled PKI request
messages. messages.
No specific prerequisites apply in addition to those specified in No specific prerequisites apply in addition to those specified in
Section 3.4. Section 3.4.
Message flow: Message Flow:
Step# PKI management entity PKI management entity Step# PKI management entity PKI management entity
1 format nested 1 format nested
2 -> nested -> 2 -> nested ->
3 handle or forward nested 3 handle or forward nested
4 format or receive nested 4 format or receive nested
5 <- nested <- 5 <- nested <-
6 handle nested 6 handle nested
5.2.3. Replacing protection 5.2.3. Replacing Protection
The following two alternatives can be used by any PKI management The following two alternatives can be used by any PKI management
entity forwarding a CMP message with or without changes while entity forwarding a CMP message with or without changes while
providing its own protection and in this way asserting approval of providing its own protection and in this way asserting approval of
the message. the message.
By replacing the existing protection using its own CMP protecting key By replacing the existing protection using its own CMP protecting key
the PKI management entity provides a proof of verifying and approving the PKI management entity provides a proof of verifying and approving
the message as described above. Thus, the PKI management entity acts the message as described above. Thus, the PKI management entity acts
as an actual Registration Authority (RA), which implements important as an actual Registration Authority (RA), which implements important
skipping to change at page 73, line 45 skipping to change at page 73, line 45
In both the kur and central key generation cases, if a PKI management In both the kur and central key generation cases, if a PKI management
entity needs to state its approval of the original request message it entity needs to state its approval of the original request message it
MUST provide this using a nested message as specified in MUST provide this using a nested message as specified in
Section 5.2.2.1. Section 5.2.2.1.
When an intermediate PKI management entity modifies a message, it When an intermediate PKI management entity modifies a message, it
SHOULD NOT change the transactionID nor the sender and recipient SHOULD NOT change the transactionID nor the sender and recipient
nonces. nonces.
5.2.3.1. Not changing any included proof-of-possession 5.2.3.1. Not Changing Proof-of-Possession
This variant of forwarding a message means that a PKI management This variant of forwarding a message means that a PKI management
entity forwards a CMP message with or without modifying the message entity forwards a CMP message with or without modifying the message
header or body while preserving any included proof-of-possession. header or body while preserving any included proof-of-possession.
In case the PKI management entity breaks an existing proof-of- In case the PKI management entity breaks an existing proof-of-
possession, the message adaptation described in Section 5.2.3.2 needs possession, the message adaptation described in Section 5.2.3.2 needs
to be applied instead. to be applied instead.
Specific prerequisites augmenting the prerequisites in Section 3.4: Specific prerequisites augmenting the prerequisites in Section 3.4:
* The PKI management entity MUST be able to validate the respective * The PKI management entity MUST be able to validate the respective
request and have the authorization to perform approval of the request and have the authorization to perform approval of the
request according to the PKI policies. request according to the PKI policies.
5.2.3.2. Breaking proof-of-possession 5.2.3.2. Using raVerified
This variant of forwarding a message needs to be used if a PKI This variant of forwarding a message needs to be used if a PKI
management entity breaks a signature-based proof-of-possession in a management entity breaks a signature-based proof-of-possession in a
certificate request message, for instance because it forwards an ir certificate request message, for instance because it forwards an ir
or cr message with modifications of the certTemplate, i.e., or cr message with modifications of the certTemplate, i.e.,
modification, addition, or removal of fields. modification, addition, or removal of fields.
The PKI management entity MUST verify the proof-of-possession The PKI management entity MUST verify the proof-of-possession
contained in the original message using the included public key. If contained in the original message using the included public key. If
successful, the PKI management entity MUST change the popo field successful, the PKI management entity MUST change the popo field
skipping to change at page 74, line 37 skipping to change at page 74, line 37
Specific prerequisites augmenting the prerequisites in Section 3.4: Specific prerequisites augmenting the prerequisites in Section 3.4:
* The PKI management entity MUST be authorized to replace the proof- * The PKI management entity MUST be authorized to replace the proof-
of-possession (after verifying it) with raVerified. of-possession (after verifying it) with raVerified.
* The PKI management entity MUST be able to validate the respective * The PKI management entity MUST be able to validate the respective
request and have the authorization to perform approval of the request and have the authorization to perform approval of the
request according to the PKI policies. request according to the PKI policies.
The new popo field MUST contain the raVerified choice in the certReq Detailed Description of popo Field of certReq Structure:
structure of the modified message as follows:
popo popo
raVerified REQUIRED raVerified REQUIRED
-- MUST have the value NULL and indicates that the PKI -- MUST have the value NULL and indicates that the PKI
-- management entity verified the popo of the original message -- management entity verified the popo of the original message
5.3. Acting on behalf of other PKI entities 5.3. Acting on Behalf of other PKI Entities
A PKI management entity may need to request a PKI management A PKI management entity may need to request a PKI management
operation on behalf of another PKI entity. In this case the PKI operation on behalf of another PKI entity. In this case the PKI
management entity initiates the respective PKI management operation management entity initiates the respective PKI management operation
as described in Section 4 acting in the role of the EE. as described in Section 4 acting in the role of the EE.
5.3.1. Requesting certificates 5.3.1. Requesting a Certificate
A PKI management entity may use on of the PKI management operations A PKI management entity may use on of the PKI management operations
described in Section 4.1 to request a certificate on behalf of described in Section 4.1 to request a certificate on behalf of
another PKI entity. It either generates the key pair itself and another PKI entity. It either generates the key pair itself and
inserts the new public key in the subjectPublicKey field of the inserts the new public key in the subjectPublicKey field of the
request certTemplate, or it uses a certificate request received from request certTemplate, or it uses a certificate request received from
downstream, e.g., by means of a different protocol. In the latter downstream, e.g., by means of a different protocol. In the latter
case it SHOULD verify the received proof-of-possession. case it SHOULD verify the received proof-of-possession.
No specific prerequisites apply in addition to those specified in No specific prerequisites apply in addition to those specified in
skipping to change at page 75, line 35 skipping to change at page 75, line 35
the following changes: the following changes:
1 The request messages MUST be signed using the CMP protection key 1 The request messages MUST be signed using the CMP protection key
of the PKI management entity taking the role of the EE in this of the PKI management entity taking the role of the EE in this
operation. operation.
2 If inclusion of a proper proof-of-possession is not possible the 2 If inclusion of a proper proof-of-possession is not possible the
PKI management entity MUST verify the POP provided from downstream PKI management entity MUST verify the POP provided from downstream
and use "raVerified" in its upstream request. and use "raVerified" in its upstream request.
5.3.2. Revoking a certificate 5.3.2. Revoking a Certificate
A PKI management entity may use the PKI management operation A PKI management entity may use the PKI management operation
described in Section 4.2 to revoke a certificate of another PKI described in Section 4.2 to revoke a certificate of another PKI
entity. This revocation request message MUST be signed by the PKI entity. This revocation request message MUST be signed by the PKI
management entity using its own CMP protection key to prove to the management entity using its own CMP protection key to prove to the
PKI authorization to revoke the certificate on behalf of that PKI PKI authorization to revoke the certificate on behalf of that PKI
entity. entity.
No specific prerequisites apply in addition to those specified in No specific prerequisites apply in addition to those specified in
Section 4.2. Section 4.2.
Note: An upstream PKI management entity will not be able to Note: An upstream PKI management entity will not be able to
differentiate this PKI management operation from the ones described differentiate this PKI management operation from the ones described
in Section 5.2.3. in Section 5.2.3.
The message sequence for this PKI management operation is identical The message sequence for this PKI management operation is identical
to that given in Section 4.2, with the following changes: to that given in Section 4.2, with the following changes:
1 The rr message MUST be signed using the CMP protection key of the 1 The rr message MUST be signed using the CMP protection key of the
PKI management entity taking the role of the EE in this operation. PKI management entity acting on behalf of the EE in this
operation.
6. CMP message transfer mechanisms 6. CMP Message Transfer Mechanisms
CMP messages are designed to be self-contained, such that in CMP messages are designed to be self-contained, such that in
principle any reliable transfer mechanism can be used. HTTP SHOULD principle any reliable transfer mechanism can be used. HTTP SHOULD
and CoAP MAY be used for online transfer. CMP messages MAY also be and CoAP MAY be used for online transfer. CMP messages MAY also be
piggybacked on any other reliable transfer protocol. File-based piggybacked on any other reliable transfer protocol. File-based
transfer MAY be used in case offline transfer is required. transfer MAY be used in case offline transfer is required.
Independently of the means of transfer, it can happen that messages Independently of the means of transfer, it can happen that messages
are lost or that a communication partner does not respond. To are lost or that a communication partner does not respond. To
prevent waiting indefinitely, each CMP client component SHOULD use a prevent waiting indefinitely, each CMP client component SHOULD use a
skipping to change at page 77, line 12 skipping to change at page 77, line 12
response message pairs. This may improve efficiency, though is not response message pairs. This may improve efficiency, though is not
required from a security point of view. required from a security point of view.
When conveying CMP messages in HTTP, CoAP, or MIME-based transfer When conveying CMP messages in HTTP, CoAP, or MIME-based transfer
protocols, the internet media type "application/pkixcmp" MUST be set protocols, the internet media type "application/pkixcmp" MUST be set
for transfer encoding as specified in Section 5.3 of RFC 2510 for transfer encoding as specified in Section 5.3 of RFC 2510
[RFC2510], Section 2.4 of CMP over CoAP [RFC2510], Section 2.4 of CMP over CoAP
[I-D.ietf-ace-cmpv2-coap-transport], and Section 3.4 of CMP over HTTP [I-D.ietf-ace-cmpv2-coap-transport], and Section 3.4 of CMP over HTTP
[RFC6712]. [RFC6712].
6.1. HTTP transfer 6.1. HTTP Transfer
This transfer mechanism can be used by a PKI entity to transfer CMP This transfer mechanism can be used by a PKI entity to transfer CMP
messages over HTTP. If HTTP transfer is used the specifications as messages over HTTP. If HTTP transfer is used the specifications as
described in [RFC6712] and updated by CMP Updates described in [RFC6712] and updated by CMP Updates
[I-D.ietf-lamps-cmp-updates] MUST be followed. [I-D.ietf-lamps-cmp-updates] MUST be followed.
PKI management operations SHOULD use URI paths consisting of '/.well- PKI management operations SHOULD use URI paths consisting of '/.well-
known/cmp/' followed by an operation label depending on the type of known/cmp/' or '/.well-known/cmp/p/<name>/' as specified in CMP
PKI management operation. Updates Section 3.3 [I-D.ietf-lamps-cmp-updates] followed by an
operation label depending on the type of PKI management operation.
+============================+=====================+=========+ +============================+====================+=========+
| PKI management operation | operation label | Details | | PKI Management Operation | URI Path Segment | Details |
+============================+=====================+=========+ +============================+====================+=========+
| Enroll client to new PKI | /initialization | Section | | Enrolling an End Entity to | initialization | Section |
| | | 4.1.1 | | a New PKI | | 4.1.1 |
+----------------------------+---------------------+---------+ +----------------------------+--------------------+---------+
| Enroll client to existing | /certification | Section | | Enrolling an End Entity to | certification | Section |
| PKI | | 4.1.2 | | a Known PKI | | 4.1.2 |
+----------------------------+---------------------+---------+ +----------------------------+--------------------+---------+
| Update client certificate | /keyupdate | Section | | Updating a Valid | keyupdate | Section |
| | | 4.1.3 | | Certificate | | 4.1.3 |
+----------------------------+---------------------+---------+ +----------------------------+--------------------+---------+
| Enroll client using | /p10 | Section | | Enrolling an End Entity | pkcs10 | Section |
| PKCS#10 | | 4.1.4 | | Using a PKCS#10 Request | | 4.1.4 |
+----------------------------+---------------------+---------+ +----------------------------+--------------------+---------+
| Revoke client certificate | /revocation | Section | | Revoking a Certificate | revocation | Section |
| | | 4.2 | | | | 4.2 |
+----------------------------+---------------------+---------+ +----------------------------+--------------------+---------+
| Get CA certificates | /getcacerts | Section | | Get CA Certificates | getcacerts | Section |
| | | 4.3.1 | | | | 4.3.1 |
+----------------------------+---------------------+---------+ +----------------------------+--------------------+---------+
| Get root CA certificate | /getrootupdate | Section | | Get Root CA Certificate | getrootupdate | Section |
| update | | 4.3.2 | | Update | | 4.3.2 |
+----------------------------+---------------------+---------+ +----------------------------+--------------------+---------+
| Get certificate request | /getcertreqtemplate | Section | | Get CA Certificates | getcertreqtemplate | Section |
| template | | 4.3.1 | | | | 4.3.1 |
+----------------------------+---------------------+---------+ +----------------------------+--------------------+---------+
| Get CRL updates | /getcrls | Section | | CRL Update Retrieval | getcrls | Section |
| | | 4.3.4 | | | | 4.3.4 |
+----------------------------+---------------------+---------+ +----------------------------+--------------------+---------+
| Batching messages | /nested | Section | | Batching Messages | nested | Section |
| | | 5.2.2.2 | | | | 5.2.2.2 |
| Note: This path element is | | | | Note: This path element is | | |
| applicable only between | | | | applicable only between | | |
| PKI management entities. | | | | PKI management entities. | | |
+----------------------------+---------------------+---------+ +----------------------------+--------------------+---------+
Table 1: HTTP endpoints Table 1: HTTP URI Path Segment <operation>
Independently of any variants used (see Section 4.1.5, Section 4.1.6, Independently of any variants used (see Section 4.1.5, Section 4.1.6,
and Section 4.4) the operation label corresponding to the PKI and Section 4.4) the operation label corresponding to the PKI
management operation SHALL be used. management operation SHALL be used.
Any certConf or pollReq messages are sent to the same endpoint as Any certConf or pollReq messages are sent to the same endpoint as
determined by the PKI management operation. determined by the PKI management operation.
When a single request message is nested as described in When a single request message is nested as described in
Section 5.2.2.1, the label to use is the same as for the underlying Section 5.2.2.1, the label to use is the same as for the underlying
skipping to change at page 79, line 47 skipping to change at page 79, line 47
authentication are available, e.g., a PKI management operation with authentication are available, e.g., a PKI management operation with
MAC-based protection is used. MAC-based protection is used.
Note: The entropy of the shared secret information is crucial for the Note: The entropy of the shared secret information is crucial for the
level of protection available using shard secret information-based level of protection available using shard secret information-based
TLS authentication. A pre-shared key (PSK) mechanism is acceptable TLS authentication. A pre-shared key (PSK) mechanism is acceptable
using shared secret information with an entropy of at least 128 bits. using shared secret information with an entropy of at least 128 bits.
Otherwise, a password-authenticated key exchange (PAKE) protocol is Otherwise, a password-authenticated key exchange (PAKE) protocol is
RECOMMENDED. RECOMMENDED.
6.2. CoAP transfer 6.2. CoAP Transfer
This transfer mechanism can be used by a PKI entity to transfer CMP This transfer mechanism can be used by a PKI entity to transfer CMP
messages over CoAP [RFC7252], e.g., in constrained environments. If messages over CoAP [RFC7252], e.g., in constrained environments. If
CoAP transfer is used the specifications as described in CMP over CoAP transfer is used the specifications as described in CMP over
CoAP [I-D.ietf-ace-cmpv2-coap-transport] MUST be followed. CoAP [I-D.ietf-ace-cmpv2-coap-transport] MUST be followed.
PKI management operations SHOULD use URI paths consisting of '/.well- PKI management operations SHOULD use URI paths consisting of '/.well-
known/cmp/' followed by an operation label depending on the type of known/cmp/' or '/.well-known/cmp/p/<name>/' as specified in CMP over
PKI management operation. CoAP Section 2.1 [I-D.ietf-ace-cmpv2-coap-transport] followed by an
operation label depending on the type of PKI management operation.
+=======================================+===========+=========+ +=======================================+=========+=========+
| PKI management operation | operation | Details | | PKI Management Operation | URI | Details |
| | label | | | | Path | |
+=======================================+===========+=========+ | | Segment | |
| Enroll client to new PKI | /ir | Section | +=======================================+=========+=========+
| | | 4.1.1 | | Enrolling an End Entity to a New PKI | ir | Section |
+---------------------------------------+-----------+---------+ | | | 4.1.1 |
| Enroll client to existing PKI | /cr | Section | +---------------------------------------+---------+---------+
| | | 4.1.2 | | Enrolling an End Entity to a Known | cr | Section |
+---------------------------------------+-----------+---------+ | PKI | | 4.1.2 |
| Update client certificate | /kur | Section | +---------------------------------------+---------+---------+
| | | 4.1.3 | | Updating a Valid Certificate | kur | Section |
+---------------------------------------+-----------+---------+ | | | 4.1.3 |
| Enroll client using PKCS#10 | /p10 | Section | +---------------------------------------+---------+---------+
| | | 4.1.4 | | Enrolling an End Entity Using a | p10 | Section |
+---------------------------------------+-----------+---------+ | PKCS#10 Request | | 4.1.4 |
| Revoke client certificate | /rr | Section | +---------------------------------------+---------+---------+
| | | 4.2 | | Revoking a Certificate | rr | Section |
+---------------------------------------+-----------+---------+ | | | 4.2 |
| Get CA certificates | /crts | Section | +---------------------------------------+---------+---------+
| | | 4.3.1 | | Get CA Certificates | crts | Section |
+---------------------------------------+-----------+---------+ | | | 4.3.1 |
| Get root CA certificate update | /rcu | Section | +---------------------------------------+---------+---------+
| | | 4.3.2 | | Get Root CA Certificate Update | rcu | Section |
+---------------------------------------+-----------+---------+ | | | 4.3.2 |
| Get certificate request template | /att | Section | +---------------------------------------+---------+---------+
| | | 4.3.3 | | Get Certificate Request Template | att | Section |
+---------------------------------------+-----------+---------+ | | | 4.3.3 |
| Get CRL updates | /crls | Section | +---------------------------------------+---------+---------+
| | | 4.3.4 | | CRL Update Retrieval | crls | Section |
+---------------------------------------+-----------+---------+ | | | 4.3.4 |
| Batching messages | /nest | Section | +---------------------------------------+---------+---------+
| | | 5.2.2.2 | | Batching Messages | nest | Section |
| Note: This path element is applicable | | | | | | 5.2.2.2 |
| only between PKI management entities. | | | | Note: This path element is applicable | | |
+---------------------------------------+-----------+---------+ | only between PKI management entities. | | |
+---------------------------------------+---------+---------+
Table 2: CoAP endpoints Table 2: CoAP URI Path Segment <operation>
Independently of any variants used (see Section 4.1.5, Section 4.1.6, Independently of any variants used (see Section 4.1.5, Section 4.1.6,
and Section 4.4) the operation label corresponding to the PKI and Section 4.4) the operation label corresponding to the PKI
management operation SHALL be used. management operation SHALL be used.
Any certConf or pollReq messages are sent to the same endpoint as Any certConf or pollReq messages are sent to the same endpoint as
determined by the PKI management operation. determined by the PKI management operation.
When a single request message is nested as described in When a single request message is nested as described in
Section 5.2.2.1, the label to use is the same as for the underlying Section 5.2.2.1, the label to use is the same as for the underlying
skipping to change at page 81, line 26 skipping to change at page 81, line 26
In case a PKI management entity receives an unexpected CoAP status In case a PKI management entity receives an unexpected CoAP status
code from upstream, it MUST respond downstream with an error message code from upstream, it MUST respond downstream with an error message
as described in Section 3.6 using a failInfo bit corresponding to the as described in Section 3.6 using a failInfo bit corresponding to the
status code, e.g., systemFailure. status code, e.g., systemFailure.
Like for HTTP transfer , to offer a second line of defense or to Like for HTTP transfer , to offer a second line of defense or to
provide hop-by-hop privacy protection, DTLS MAY be utilized as provide hop-by-hop privacy protection, DTLS MAY be utilized as
described in CMP over CoAP [I-D.ietf-ace-cmpv2-coap-transport]. described in CMP over CoAP [I-D.ietf-ace-cmpv2-coap-transport].
6.3. Piggybacking on other reliable transfer 6.3. Piggybacking on other Reliable Transfer
CMP messages MAY also be transfer on some other reliable protocol. CMP messages MAY also be transfer on some other reliable protocol,
Connection, delay, and error handling mechanisms similar to those e.g., EAP or MQTT. Connection, delay, and error handling mechanisms
specified for HTTP in Section 6.1 need to be implemented. similar to those specified for HTTP in Section 6.1 need to be
implemented.
A more detailed specification is out of scope of this document and A more detailed specification is out of scope of this document and
would need to be given for instance in the scope of the transfer would need to be given for instance in the scope of the transfer
protocol used. protocol used.
6.4. Offline transfer 6.4. Offline Transfer
For transferring CMP messages between PKI entities, any mechanism can For transferring CMP messages between PKI entities, any mechanism can
be used that is able to store and forward binary objects of be used that is able to store and forward binary objects of
sufficient length and with sufficient reliability while preserving sufficient length and with sufficient reliability while preserving
the order of messages for each transaction. the order of messages for each transaction.
The transfer mechanism SHOULD be able to indicate message loss, The transfer mechanism SHOULD be able to indicate message loss,
excessive delay, and possibly other transmission errors. In such excessive delay, and possibly other transmission errors. In such
cases the PKI entities SHOULD report an error as specified in cases the PKI entities SHOULD report an error as specified in
Section 3.6 as far as possible. Section 3.6 as far as possible.
6.4.1. File-based transfer 6.4.1. File-Based Transfer
CMP messages MAY be transferred between PKI entities using file-based CMP messages MAY be transferred between PKI entities using file-based
mechanisms, for instance when an offline EE or a PKI management mechanisms, for instance when an offline EE or a PKI management
entity performs delayed delivery. Each file MUST contain the ASN.1 entity performs delayed delivery. Each file MUST contain the ASN.1
DER encoding of one CMP message only, where the message may be DER encoding of one CMP message only, where the message may be
nested. There MUST be no extraneous header or trailer information in nested. There MUST be no extraneous header or trailer information in
the file. The file name extension ".pki" MUST be used. the file. The file name extension ".pki" MUST be used.
6.4.2. Other asynchronous transfer protocols 6.4.2. Other Asynchronous Transfer Protocols
Other asynchronous transfer protocols, e.g., email or website Other asynchronous transfer protocols, e.g., email or website
up-/download, MAY transfer CMP messages between PKI entities. A MIME up-/download, MAY transfer CMP messages between PKI entities. A MIME
wrapping is defined for those environments that are MIME-native. The wrapping is defined for those environments that are MIME-native. The
MIME wrapping in this section is specified in RFC 8551 Section 3.1 MIME wrapping in this section is specified in RFC 8551 Section 3.1
[RFC8551]. [RFC8551].
The ASN.1 DER encoding of the CMP messages MUST be transferred using The ASN.1 DER encoding of the CMP messages MUST be transferred using
the "application/pkixcmp" content type and base64-encoded content the "application/pkixcmp" content type and base64-encoded content
transfer encoding as specified in [RFC2510], section 5.3. A filename transfer encoding as specified in RFC 2510 Section 5.3 [RFC2510]. A
MUST be included either in a "content-type" or a "content- filename MUST be included either in a "content-type" or a "content-
disposition" statement. The file name extension ".pki" MUST be used. disposition" statement. The file name extension ".pki" MUST be used.
7. Conformance requirements 7. Conformance Requirements
This section defines which level of support for the various features This section defines which level of support for the various features
specified in this profile is required for which type of PKI entity. specified in this profile is required for which type of PKI entity.
7.1. PKI management operations 7.1. PKI Management Operations
The following table provides an overview of the PKI management The following table provides an overview of the PKI management
operations specified in Section 4 and Section 5 and states whether operations specified in Section 4 and Section 5 and states whether
support by conforming EE, RA, and CA implementations is mandatory, support by conforming EE, RA, and CA implementations is mandatory,
recommended, optional, or not applicable. Variants amend or change recommended, optional, or not applicable. Variants amend or change
behavior of base PKI management operations and are therefore also behavior of base PKI management operations and are therefore also
included. included.
The PKI management operation specifications in Section 4 assume that
either the RA or CA is the PKI management entity that terminates the
CMP protocol. If the RA terminates the CMP protocol it either
responds directly as described in Section 5.1 or forwards the
certificate management operation towards the CA not using CMP.
Section 5.2 describes different options how an RA can forward a CMP
message using CMP. Section 5.3 offers the option that an RA operates
on behalf on an EE and therefore takes the role of the EE in
Section 4.
+==========+=============================+========+========+========+ +==========+=============================+========+========+========+
| ID | PKI management operations | EE | RA | CA | | ID | PKI Management Operations | EE | RA | CA |
| | and variants | | | | | | and Variants | | | |
+==========+=============================+========+========+========+ +==========+=============================+========+========+========+
| Generic | generic aspects of PKI | MUST | MUST | MUST | | Generic | Generic Aspects of PKI | MUST | MAY | MUST |
| | management operations, | | | | | | Messages and PKI | | | |
| | Management Operations, | | | |
| | Section 3 | | | | | | Section 3 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| IR | Requesting a certificate | MUST | MUST | MUST | | IR | Enrolling an End Entity | MUST | MAY | MUST |
| | from a new PKI with | | | | | | to a New PKI, | | | |
| | signature-based | | | | | | Section 4.1.1 | | | |
| | protection, Section 4.1.1 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| CR | Requesting an additional | MAY | MAY | MAY | | CR | Enrolling an End Entity | MAY | MAY | MAY |
| | certificate with | | | | | | to a Known PKI, | | | |
| | signature-based | | | | | | Section 4.1.2 | | | |
| | protection, Section 4.1.2 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| KUR | Updating an existing | MUST | MUST | MUST | | KUR | Updating a Valid | MUST | MAY | MUST |
| | certificate with | | | | | | Certificate, | | | |
| | signature-based | | | | | | Section 4.1.3 | | | |
| | protection, Section 4.1.3 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| P10CR | Requesting a certificate | MAY | MAY | MAY | | P10CR | Enrolling an End Entity | MAY | MAY | MAY |
| | from a legacy PKI using a | | | | | | Using a PKCS#10 Request, | | | |
| | PKCS#10 request, | | | |
| | Section 4.1.4 | | | | | | Section 4.1.4 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| MAC | Requesting a certificate | SHOULD | SHOULD | SHOULD | | MAC | Using MAC-Based | SHOULD | SHOULD | SHOULD |
| | from a PKI with MAC-based | | | | | | Protection for | | 1) | |
| | protection (IR, CR, KUR, | | | | | | Enrollment, with IR, CR, | | | |
| | and P10CR if supported), | | | | | | KUR, and P10CR if | | | |
| | Section 4.1.5 | | | | | | supported, Section 4.1.5 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| CKeyGen | Adding central key | MAY | MAY | MAY | | CKeyGen | Adding Central Key Pair | MAY | MAY | MAY |
| | generation to a | | | | | | Generation to Enrollment, | | | |
| | certificate request (IR, | | | | | | IR, CR, KUR, and P10CR if | | | |
| | CR, KUR, and P10CR if | | | | | | supported, Section 4.1.6 | | | |
| | supported). (If | | | | | | | | | |
| | supported, key agreement | | | | | | If supported, key | | | |
| | key management technique | | | | | | agreement key management | | | |
| | is REQUIRED, and key | | | | | | technique is REQUIRED, | | | |
| | transport and password- | | | | | | and key transport and | | | |
| | based key management | | | | | | password-based key | | | |
| | techniques are | | | | | | management techniques are | | | |
| | OPTIONAL.), Section 4.1.6 | | | | | | OPTIONAL. | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| RR | Revoking a certificate, | SHOULD | SHOULD | SHOULD | | RR | Revoking a Certificate, | SHOULD | SHOULD | SHOULD |
| | Section 4.2 | | | | | | Section 4.2 | | 2) | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| CACerts | Get CA certificates, | MAY | MAY | MAY | | CACerts | Get CA Certificates, | MAY | MAY | MAY |
| | Section 4.3.1 | | | | | | Section 4.3.1 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| RootUpd | Get root CA certificate | MAY | MAY | MAY | | RootUpd | Get Root CA Certificate | MAY | MAY | MAY |
| | update, Section 4.3.2 | | | | | | Update, Section 4.3.2 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| ReqTempl | Get certificate request | MAY | MAY | MAY | | ReqTempl | Get Certificate Request | MAY | MAY | MAY |
| | template, Section 4.3.3 | | | | | | Template, Section 4.3.3 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| CRLUpd | CRL update retrieval, | MAY | MAY | MAY | | CRLUpd | CRL Update Retrieval, | MAY | MAY | MAY |
| | Section 4.3.4 | | | | | | Section 4.3.4 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| Polling | Handling delayed | MAY | MAY | MAY | | Polling | Handling Delayed | MAY | MAY | MAY |
| | delivery, Section 4.4 | | | | | | Delivery, Section 4.4 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| CertResp | Responding to a | N/A | MAY | MUST | | CertResp | Responding to a | N/A | MAY | MUST |
| | certificate request (IR, | | | | | | Certificate Request (IR, | | | |
| | CR, KUR, and P10CR if | | | | | | CR, KUR, and P10CR if | | | |
| | supported), Section 5.1.1 | | | | | | supported), Section 5.1.1 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| InitPoll | Initiating delayed | N/A | MAY | MAY | | CertConf | Responding to a | N/A | MAY | MUST |
| | delivery, Section 5.1.2 | | | | | | Confirmation Message, | | | |
+----------+-----------------------------+--------+--------+--------+ | | Section 5.1.2 | | | |
| CertConf | Responding to a | MUST | MAY | MUST |
| | confirmation message, | | | |
| | Section 5.1.3 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| RevResp | Responding to a | N/A | MAY | SHOULD | | RevResp | Responding to a | N/A | MAY | SHOULD |
| | revocation request, | | | | | | Revocation Request, | | | |
| | Section 5.1.4 | | | | | | Section 5.1.3 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| GenResp | Responding to a support | N/A | MAY | MAY | | GenResp | Responding to a Support | N/A | MAY | MAY |
| | message (CACerts, | | | | | | Message (CACerts, | | | |
| | RootUpd, ReqTempl, CRLUpd | | | | | | RootUpd, ReqTempl, CRLUpd | | | |
| | if supported), | | | | | | if supported), | | | |
| | Section 5.1.5 | | | | | | Section 5.1.4 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| FwdKeep | Forwarding messages - not | N/A | MUST | N/A | | InitPoll | Initiating Delayed | N/A | MAY | MAY |
| | changing protection, | | | | | | Delivery, Section 5.1.5 | | | |
+----------+-----------------------------+--------+--------+--------+
| FwdKeep | Forwarding Messages - Not | N/A | MUST | N/A |
| | Changing Protection, | | | |
| | Section 5.2.1 | | | | | | Section 5.2.1 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| FwdAddS | Adding protection to a | N/A | MUST | MUST | | FwdAddS | Forwarding Messages - | N/A | MUST | MUST |
| | request message, | | | | | | Adding Protection to a | | | |
| | Request Message, | | | |
| | Section 5.2.2.1 | | | | | | Section 5.2.2.1 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| FwdAddB | Batching messages, | N/A | MAY | MAY | | FwdAddB | Forwarding Messages - | N/A | MAY | MAY |
| | Batching Messages, | | | |
| | Section 5.2.2.2 | | | | | | Section 5.2.2.2 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| FwdRepKP | Forwarding messages - | N/A | MAY | N/A | | FwdRepKP | Forwarding Messages - Not | N/A | SHOULD | N/A |
| | replacing protection, not | | | | | | Changing | | 1) | |
| | changing any included | | | | | | Proof-of-Possession, | | | |
| | proof-of-possession, | | | |
| | Section 5.2.3.1 | | | | | | Section 5.2.3.1 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| FwdRepBP | Forwarding messages - | N/A | MAY | MAY | | FwdRepBP | Forwarding Messages - | N/A | MAY | MAY |
| | replacing protection, | | | | | | Using raVerified, | | | |
| | breaking proof-of- | | | |
| | possession, | | | |
| | Section 5.2.3.2 | | | | | | Section 5.2.3.2 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| CertOnB | Acting on behalf of other | N/A | MAY | N/A | | CertOnB | Acting on Behalf of other | N/A | MAY | N/A |
| | PKI entities - requesting | | | | | | PKI Entities - Requesting | | | |
| | certificates, | | | | | | a Certificate, | | | |
| | Section 5.3.1 | | | | | | Section 5.3.1 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
| RevROnB | Acting on behalf of other | N/A | SHOULD | SHOULD | | RevROnB | Acting on Behalf of other | N/A | SHOULD | SHOULD |
| | PKI entities - revoking a | | | | | | PKI Entities - Revoking a | | 2) | |
| | certificate, | | | | | | Certificate, | | | |
| | Section 5.3.2 | | | | | | Section 5.3.2 | | | |
+----------+-----------------------------+--------+--------+--------+ +----------+-----------------------------+--------+--------+--------+
Table 3: Level of support for PKI management operations and variants Table 3: Level of Support for PKI Management Operations and Variants
7.2. Message transfer 1) The RA should be able to change the CMP message protection from
MAC-based to signature-based protection, see Section 5.2.3.1.
2) The RA should be able to request certificate revocation on behalf
of an EE, see Section 5.3.2.
7.2. Message Transfer
CMP does not have specific needs regarding message transfer, except CMP does not have specific needs regarding message transfer, except
that for each request message sent, eventually exactly one response that for each request message sent, eventually exactly one response
message should be received. Therefore, virtually any reliable message should be received. Therefore, virtually any reliable
transfer mechanism can be used, such as HTTP, CoAP, and file-based transfer mechanism can be used, such as HTTP, CoAP, and file-based
offline transfer. Thus, this document does not require any specific offline transfer. Thus, this document does not require any specific
transfer protocol to be supported by conforming implementations. transfer protocol to be supported by conforming implementations.
On different links between PKI entities, e.g., EE-RA and RA-CA, On different links between PKI entities, e.g., EE-RA and RA-CA,
different transfer mechanisms as specified in Section 6 may be used. different transfer mechanisms as specified in Section 6 may be used.
skipping to change at page 86, line 6 skipping to change at page 86, line 9
HTTP transfer is RECOMMENDED to use for all PKI entities for HTTP transfer is RECOMMENDED to use for all PKI entities for
maximizing general interoperability at transfer level, yet full maximizing general interoperability at transfer level, yet full
flexibility is retained to choose whatever transfer mechanism is flexibility is retained to choose whatever transfer mechanism is
suitable, for instance for devices and system architectures with suitable, for instance for devices and system architectures with
specific constraints. specific constraints.
The following table lists the name and level of support specified for The following table lists the name and level of support specified for
each transfer mechanism. each transfer mechanism.
+=========+=======================+========+========+========+ +=========+=======================+========+========+========+
| ID | Message transfer type | EE | RA | CA | | ID | Message Transfer Type | EE | RA | CA |
+=========+=======================+========+========+========+ +=========+=======================+========+========+========+
| HTTP | HTTP transfer, | SHOULD | SHOULD | SHOULD | | HTTP | HTTP Transfer, | SHOULD | SHOULD | SHOULD |
| | Section 6.1 | | | | | | Section 6.1 | | | |
+---------+-----------------------+--------+--------+--------+ +---------+-----------------------+--------+--------+--------+
| CoAP | CoAP transfer, | MAY | MAY | MAY | | CoAP | CoAP Transfer, | MAY | MAY | MAY |
| | Section 6.2 | | | | | | Section 6.2 | | | |
+---------+-----------------------+--------+--------+--------+ +---------+-----------------------+--------+--------+--------+
| Piggyb | Piggybacking on other | MAY | MAY | MAY | | Piggyb | Piggybacking on other | MAY | MAY | MAY |
| | reliable transfer, | | | | | | Reliable Transfer, | | | |
| | Section 6.3 | | | | | | Section 6.3 | | | |
+---------+-----------------------+--------+--------+--------+ +---------+-----------------------+--------+--------+--------+
| Offline | Offline transfer, | MAY | MAY | MAY | | Offline | Offline Transfer, | MAY | MAY | MAY |
| | Section 6.4 | | | | | | Section 6.4 | | | |
+---------+-----------------------+--------+--------+--------+ +---------+-----------------------+--------+--------+--------+
Table 4: Level of support for message transfer types Table 4: Level of Support for Message Transfer Types
8. IANA Considerations 8. IANA Considerations
This document does not request changes to the IANA registry. This document defines new entries with the following content in the
"CMP Well-Known URI Path Segments" registry (see
https://www.iana.org/assignments/cmp/) as defined in RFC 8615
[RFC8615].
+====================+===============================+===========+
| Path Segment | Description | Reference |
+====================+===============================+===========+
| initialization | Enrolling an End Entity to a | [thisRFC] |
| | New PKI over HTTP | |
+--------------------+-------------------------------+-----------+
| certification | Enrolling an End Entity to a | [thisRFC] |
| | Known PKI over HTTP | |
+--------------------+-------------------------------+-----------+
| keyupdate | Updating a Valid Certificate | [thisRFC] |
| | over HTTP | |
+--------------------+-------------------------------+-----------+
| pkcs10 | Enrolling an End Entity Using | [thisRFC] |
| | a PKCS#10 Request over HTTP | |
+--------------------+-------------------------------+-----------+
| revocation | Revoking a Certificate over | [thisRFC] |
| | HTTP | |
+--------------------+-------------------------------+-----------+
| getcacerts | Get CA Certificates over HTTP | [thisRFC] |
+--------------------+-------------------------------+-----------+
| getrootupdate | Get Root CA Certificate | [thisRFC] |
| | Update over HTTP | |
+--------------------+-------------------------------+-----------+
| getcertreqtemplate | Get CA Certificates over HTTP | [thisRFC] |
+--------------------+-------------------------------+-----------+
| getcrls | CRL Update Retrieval over | [thisRFC] |
| | HTTP | |
+--------------------+-------------------------------+-----------+
| nested | Batching Messages over HTTP | [thisRFC] |
+--------------------+-------------------------------+-----------+
| ir | Enrolling an End Entity to a | [thisRFC] |
| | New PKI over CoAP | |
+--------------------+-------------------------------+-----------+
| cr | Enrolling an End Entity to a | [thisRFC] |
| | Known PKI over CoAP | |
+--------------------+-------------------------------+-----------+
| kur | Updating a Valid Certificate | [thisRFC] |
| | over CoAP | |
+--------------------+-------------------------------+-----------+
| p10 | Enrolling an End Entity Using | [thisRFC] |
| | a PKCS#10 Request over CoAP | |
+--------------------+-------------------------------+-----------+
| rr | Revoking a Certificate over | [thisRFC] |
| | CoAP | |
+--------------------+-------------------------------+-----------+
| crts | Get CA Certificates over CoAP | [thisRFC] |
+--------------------+-------------------------------+-----------+
| rcu | Get Root CA Certificate | [thisRFC] |
| | Update over CoAP | |
+--------------------+-------------------------------+-----------+
| att | Get Certificate Request | [thisRFC] |
| | Template over CoAP | |
+--------------------+-------------------------------+-----------+
| crls | CRL Update Retrieval over | [thisRFC] |
| | CoAP | |
+--------------------+-------------------------------+-----------+
| nest | Batching Messages over CoAP | [thisRFC] |
+--------------------+-------------------------------+-----------+
Table 5: New "CMP Well-Known URI Path Segments" Registry Entries
< TBD: New entries must be added to the registry "CMP Well-Known URI
Path Segments". >
9. Security Considerations 9. Security Considerations
The security considerations as laid out in CMP [RFC4210] updated by The security considerations as laid out in CMP [RFC4210] updated by
CMP Updates [I-D.ietf-lamps-cmp-updates] and CMP Algorithms CMP Updates [I-D.ietf-lamps-cmp-updates] and CMP Algorithms
[I-D.ietf-lamps-cmp-algorithms], CRMF [RFC4211] updated by Algorithm [I-D.ietf-lamps-cmp-algorithms], CRMF [RFC4211] updated by Algorithm
Requirements Update [RFC9045], CMP over HTTP [RFC6712], and CMP over Requirements Update [RFC9045], CMP over HTTP [RFC6712], and CMP over
CoAP [I-D.ietf-ace-cmpv2-coap-transport] apply. CoAP [I-D.ietf-ace-cmpv2-coap-transport] apply.
For TLS using shared secret information-based authentication, both For TLS using shared secret information-based authentication, both
skipping to change at page 87, line 17 skipping to change at page 88, line 43
Sahni, M. and S. Tripathi, "CoAP Transfer for the Sahni, M. and S. Tripathi, "CoAP Transfer for the
Certificate Management Protocol", Work in Progress, Certificate Management Protocol", Work in Progress,
Internet-Draft, draft-ietf-ace-cmpv2-coap-transport-04, 8 Internet-Draft, draft-ietf-ace-cmpv2-coap-transport-04, 8
November 2021, <https://datatracker.ietf.org/doc/html/ November 2021, <https://datatracker.ietf.org/doc/html/
draft-ietf-ace-cmpv2-coap-transport-04>. draft-ietf-ace-cmpv2-coap-transport-04>.
[I-D.ietf-lamps-cmp-algorithms] [I-D.ietf-lamps-cmp-algorithms]
Brockhaus, H., Aschauer, H., Ounsworth, M., and J. Gray, Brockhaus, H., Aschauer, H., Ounsworth, M., and J. Gray,
"Certificate Management Protocol (CMP) Algorithms", Work "Certificate Management Protocol (CMP) Algorithms", Work
in Progress, Internet-Draft, draft-ietf-lamps-cmp- in Progress, Internet-Draft, draft-ietf-lamps-cmp-
algorithms-09, 22 December 2021, algorithms-12, 6 April 2022,
<https://datatracker.ietf.org/doc/html/draft-ietf-lamps- <https://datatracker.ietf.org/doc/html/draft-ietf-lamps-
cmp-algorithms-09>. cmp-algorithms-12>.
[I-D.ietf-lamps-cmp-updates] [I-D.ietf-lamps-cmp-updates]
Brockhaus, H., Oheimb, D. V., and J. Gray, "Certificate Brockhaus, H., Oheimb, D. V., and J. Gray, "Certificate
Management Protocol (CMP) Updates", Work in Progress, Management Protocol (CMP) Updates", Work in Progress,
Internet-Draft, draft-ietf-lamps-cmp-updates-17, 12 Internet-Draft, draft-ietf-lamps-cmp-updates-18, 6 April
January 2022, <https://datatracker.ietf.org/doc/html/ 2022, <https://datatracker.ietf.org/doc/html/draft-ietf-
draft-ietf-lamps-cmp-updates-17>. lamps-cmp-updates-18>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification
Request Syntax Specification Version 1.7", RFC 2986, Request Syntax Specification Version 1.7", RFC 2986,
DOI 10.17487/RFC2986, November 2000, DOI 10.17487/RFC2986, November 2000,
<https://www.rfc-editor.org/info/rfc2986>. <https://www.rfc-editor.org/info/rfc2986>.
skipping to change at page 88, line 29 skipping to change at page 89, line 50
[RFC6712] Kause, T. and M. Peylo, "Internet X.509 Public Key [RFC6712] Kause, T. and M. Peylo, "Internet X.509 Public Key
Infrastructure -- HTTP Transfer for the Certificate Infrastructure -- HTTP Transfer for the Certificate
Management Protocol (CMP)", RFC 6712, Management Protocol (CMP)", RFC 6712,
DOI 10.17487/RFC6712, September 2012, DOI 10.17487/RFC6712, September 2012,
<https://www.rfc-editor.org/info/rfc6712>. <https://www.rfc-editor.org/info/rfc6712>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8615] Nottingham, M., "Well-Known Uniform Resource Identifiers
(URIs)", RFC 8615, DOI 10.17487/RFC8615, May 2019,
<https://www.rfc-editor.org/info/rfc8615>.
[RFC8933] Housley, R., "Update to the Cryptographic Message Syntax [RFC8933] Housley, R., "Update to the Cryptographic Message Syntax
(CMS) for Algorithm Identifier Protection", RFC 8933, (CMS) for Algorithm Identifier Protection", RFC 8933,
DOI 10.17487/RFC8933, October 2020, DOI 10.17487/RFC8933, October 2020,
<https://www.rfc-editor.org/info/rfc8933>. <https://www.rfc-editor.org/info/rfc8933>.
[RFC9045] Housley, R., "Algorithm Requirements Update to the [RFC9045] Housley, R., "Algorithm Requirements Update to the
Internet X.509 Public Key Infrastructure Certificate Internet X.509 Public Key Infrastructure Certificate
Request Message Format (CRMF)", RFC 9045, Request Message Format (CRMF)", RFC 9045,
DOI 10.17487/RFC9045, June 2021, DOI 10.17487/RFC9045, June 2021,
<https://www.rfc-editor.org/info/rfc9045>. <https://www.rfc-editor.org/info/rfc9045>.
11.2. Informative References 11.2. Informative References
[ETSI-3GPP.33.310] [ETSI-3GPP.33.310]
3GPP, "Network Domain Security (NDS); Authentication 3GPP, "Network Domain Security (NDS); Authentication
Framework (AF)", 3GPP TS 33.310 16.6.0, 16 December 2020. Framework (AF)", 3GPP TS 33.310 16.6.0, 16 December 2020.
[I-D.ietf-anima-brski-async-enroll] [I-D.ietf-anima-brski-ae]
Fries, S., Brockhaus, H., Oheimb, D. V., and E. Lear, Oheimb, D. V., Fries, S., Brockhaus, H., and E. Lear,
"Support of Asynchronous Enrollment in BRSKI (BRSKI-AE)", "BRSKI-AE: Alternative Enrollment Protocols in BRSKI",
Work in Progress, Internet-Draft, draft-ietf-anima-brski- Work in Progress, Internet-Draft, draft-ietf-anima-brski-
async-enroll-04, 25 October 2021, ae-01, 6 April 2022,
<https://datatracker.ietf.org/doc/html/draft-ietf-anima- <https://datatracker.ietf.org/doc/html/draft-ietf-anima-
brski-async-enroll-04>. brski-ae-01>.
[I-D.ietf-anima-brski-prm] [I-D.ietf-anima-brski-prm]
Fries, S., Werner, T., Lear, E., and M. Richardson, "BRSKI Fries, S., Werner, T., Lear, E., and M. C. Richardson,
with Pledge in Responder Mode (BRSKI-PRM)", Work in "BRSKI with Pledge in Responder Mode (BRSKI-PRM)", Work in
Progress, Internet-Draft, draft-ietf-anima-brski-prm-00, Progress, Internet-Draft, draft-ietf-anima-brski-prm-02, 4
25 October 2021, <https://datatracker.ietf.org/doc/html/ March 2022, <https://datatracker.ietf.org/doc/html/draft-
draft-ietf-anima-brski-prm-00>. ietf-anima-brski-prm-02>.
[I-D.ietf-netconf-sztp-csr] [I-D.ietf-netconf-sztp-csr]
Watsen, K., Housley, R., and S. Turner, "Conveying a Watsen, K., Housley, R., and S. Turner, "Conveying a
Certificate Signing Request (CSR) in a Secure Zero Touch Certificate Signing Request (CSR) in a Secure Zero Touch
Provisioning (SZTP) Bootstrapping Request", Work in Provisioning (SZTP) Bootstrapping Request", Work in
Progress, Internet-Draft, draft-ietf-netconf-sztp-csr-13, Progress, Internet-Draft, draft-ietf-netconf-sztp-csr-14,
31 January 2022, <https://datatracker.ietf.org/doc/html/ 2 March 2022, <https://datatracker.ietf.org/doc/html/
draft-ietf-netconf-sztp-csr-13>. draft-ietf-netconf-sztp-csr-14>.
[IEC.62443-3-3] [IEC.62443-3-3]
IEC, "Industrial communication networks - Network and IEC, "Industrial communication networks - Network and
system security - Part 3-3: System security requirements system security - Part 3-3: System security requirements
and security levels", IEC 62443-3-3, August 2013, and security levels", IEC 62443-3-3, August 2013,
<https://webstore.iec.ch/publication/7033>. <https://webstore.iec.ch/publication/7033>.
[IEEE.802.1AR_2018] [IEEE.802.1AR_2018]
IEEE, "IEEE Standard for Local and metropolitan area IEEE, "IEEE Standard for Local and metropolitan area
networks - Secure Device Identity", IEEE 802.1AR-2018, networks - Secure Device Identity", IEEE 802.1AR-2018,
skipping to change at page 93, line 4 skipping to change at page 94, line 35
SEQUENCE { SEQUENCE {
OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1) OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1)
OBJECT IDENTIFIER secp256r1 (1 2 840 10045 3 1 7) OBJECT IDENTIFIER secp256r1 (1 2 840 10045 3 1 7)
} }
} }
SEQUENCE { SEQUENCE {
OBJECT IDENTIFIER rsaKeyLen (1 3 6 1 5 5 7 5 1 12) OBJECT IDENTIFIER rsaKeyLen (1 3 6 1 5 5 7 5 1 12)
INTEGER 2048 INTEGER 2048
} }
} }
} }
Appendix B. History of changes Appendix B. History of Changes
Note: This appendix will be deleted in the final version of the Note: This appendix will be deleted in the final version of the
document. document.
From version 10 -> 11:
* Updated Section 3.2, 3.5, and 3.6.4 to define more clearly
signature-based protection as the default and the exception for
not protecting error messages as mentioned at IETF 113
* Streamlined headlines in Section 4.1
* Updates Section 6.1 and Section 6.2 regarding new well-known path
segment for profile labels as discussed during IETF 113
* Updated Section 7.1. on the support of PKI management operations
required for EEs, RAs, and CAs as mentioned at IETF 113
* Updates Section 8 adding well-known path segments on PKI
management operations to be used with HTTP and CoAP
* Capitalized all headlines
From version 09 -> 10: From version 09 -> 10:
* Resolved some nits reported by I-D nit checker tool * Resolved some nits reported by I-D nit checker tool
* Resolve some wording issues * Resolve some wording issues
From version 08 -> 09: From version 08 -> 09:
* Updated Section 1.1 and 1.2 and converted Section 2.2 and 2.3 into * Updated Section 1.1 and 1.2 and converted Section 2.2 and 2.3 into
more detailed tables in Section 7 (see thread "WG Last Call for more detailed tables in Section 7 (see thread "WG Last Call for
draft-ietf-lamps-cmp-updates-14 and draft-ietf-lamps-lightweight- draft-ietf-lamps-cmp-updates-14 and draft-ietf-lamps-lightweight-
skipping to change at page 94, line 4 skipping to change at page 95, line 49
keyEncryptionAlgorithm fields (see thread "AD review of draft- keyEncryptionAlgorithm fields (see thread "AD review of draft-
ietf-lamps-cmp-algorithms-07") ietf-lamps-cmp-algorithms-07")
* Rolled back part of the changes on root CA certificate updates in * Rolled back part of the changes on root CA certificate updates in
Section 4.3.2 (see thread "Allocation of OIDs for CRL update Section 4.3.2 (see thread "Allocation of OIDs for CRL update
retrieval (draft-ietf-lamps-cmp-updates-13)") retrieval (draft-ietf-lamps-cmp-updates-13)")
From version 06 -> 07: From version 06 -> 07:
* Added references to [draft-ietf-netconf-sztp-csr] in new * Added references to [draft-ietf-netconf-sztp-csr] in new
Section 1.5 and Section 4.1.4 Section 1.5 and Section 4.1.4
* Added reference to [I-D.ietf-anima-brski-ae] in new Section 1.5
and Section 4.1.1
* Added reference to [I-D.ietf-anima-brski-async-enroll] in new
Section 1.5 and Section 4.1.1
* Changed reference in Section 2 to [I-D.ietf-anima-brski-prm] as * Changed reference in Section 2 to [I-D.ietf-anima-brski-prm] as
the PUSH use case is continued to be discussed in this draft after the PUSH use case is continued to be discussed in this draft after
the split of BRSKI-AE the split of BRSKI-AE
* Improved note regarding UNISIG Subset-137 in Section 1.6 * Improved note regarding UNISIG Subset-137 in Section 1.6
* Removed "rootCaCert" in Section 3.1 and updated the structure of * Removed "rootCaCert" in Section 3.1 and updated the structure of
the genm request for root CA certificate updates in Section 4.3.2. the genm request for root CA certificate updates in Section 4.3.2.
* Simplified handling of sender and recipient nonces in case of * Simplified handling of sender and recipient nonces in case of
delayed delivery in Sections 3.1, 3.5, 4.4, and 5.1.2 delayed delivery in Sections 3.1, 3.5, 4.4, and 5.1.2
* Changed the order of Sections 4.1.4 and 4.1.5 * Changed the order of Sections 4.1.4 and 4.1.5
* Added reference on RFC 8933 regarding CMS signedAttrs to * Added reference on RFC 8933 regarding CMS signedAttrs to
 End of changes. 175 change blocks. 
446 lines changed or deleted 542 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/