draft-ietf-lamps-cmp-updates-06.txt | draft-ietf-lamps-cmp-updates-07.txt | |||
---|---|---|---|---|
LAMPS Working Group H. Brockhaus | LAMPS Working Group H. Brockhaus | |||
Internet-Draft Siemens | Internet-Draft D. von Oheimb | |||
Updates: 4210, 6712 (if approved) November 2, 2020 | Updates: 4210, 5912, 6712 (if approved) Siemens | |||
Intended status: Standards Track | Intended status: Standards Track 22 January 2021 | |||
Expires: May 6, 2021 | Expires: 26 July 2021 | |||
CMP Updates | Certificate Management Protocol (CMP) Updates | |||
draft-ietf-lamps-cmp-updates-06 | draft-ietf-lamps-cmp-updates-07 | |||
Abstract | Abstract | |||
This document contains a set of updates to the base syntax and | This document contains a set of updates to the syntax and transport | |||
transport of Certificate Management Protocol (CMP) version 2. This | of Certificate Management Protocol (CMP) version 2. This document | |||
document updates RFC 4210 and RFC 6712. | updates RFC 4210 and RFC 6712. | |||
Specifically, the CMP services updated in this document comprise the | The aspects of CMP updated in this document are using EnvelopedData | |||
enabling of using EnvelopedData instead of EncryptedValue, adding new | instead of EncryptedValue, adding new general message types, defining | |||
general message types, the definition of extended key usages to | extended key usages to identify certificates of CMP endpoints on | |||
identify certificates of CMP endpoints on certification and | certification and registration authorities, and adding an HTTP URI | |||
registration authorities, and adds an HTTP URI discovery mechanism | discovery mechanism and extending the URI structure. | |||
and extend the URI structure. | ||||
To properly differentiate the support of EnvelopedData instead of | ||||
EncryptedValue, the CMP version 3 is introduced in case a transaction | ||||
is supposed to use EnvelopedData. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 May 6, 2021. | This Internet-Draft will expire on 26 July 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 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 | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
(https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Convention and Terminology . . . . . . . . . . . . . . . 3 | 1.1. Convention and Terminology . . . . . . . . . . . . . . . 3 | |||
2. Updates to RFC 4210 - Certificate Management Protocol (CMP) . 3 | 2. Updates to RFC 4210 - Certificate Management Protocol | |||
(CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | ||||
2.1. New Section 1.1. - Changes since RFC 4210 . . . . . . . . 4 | 2.1. New Section 1.1. - Changes since RFC 4210 . . . . . . . . 4 | |||
2.2. New Section 4.5 - Extended Key Usage . . . . . . . . . . 4 | 2.2. New Section 4.5 - Extended Key Usage . . . . . . . . . . 5 | |||
2.3. Replace Section 5.1.3.4 - Multiple Protection . . . . . . 6 | 2.3. Update Section 5.1.1. - PKI Message Header . . . . . . . 7 | |||
2.4. Replace Section 5.2.2. - Encrypted Values . . . . . . . . 7 | 2.4. Update Section 5.1.3.1. - Shared Secret Information . . . 7 | |||
2.5. Update Section 5.3.4. - Certification Response . . . . . 9 | 2.5. Replace Section 5.1.3.4 - Multiple Protection . . . . . . 8 | |||
2.6. Update Section 5.3.19.2. - Signing Key Pair Types . . . . 9 | 2.6. Replace Section 5.2.2. - Encrypted Values . . . . . . . . 9 | |||
2.7. Update Section 5.3.19.3. - Encryption/Key Agreement Key | 2.7. Update Section 5.3.4. - Certification Response . . . . . 10 | |||
Pair Types . . . . . . . . . . . . . . . . . . . . . . . 10 | 2.8. Update Section 5.3.19.2. - Signing Key Pair Types . . . . 11 | |||
2.8. Replace Section 5.3.19.9. - Revocation Passphrase . . . . 10 | 2.9. Update Section 5.3.19.3. - Encryption/Key Agreement Key | |||
2.9. New Section 5.3.19.14 - CA Certificates . . . . . . . . . 10 | Pair Types . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
2.10. New Section 5.3.19.15 - Root CA Certificates Update . . . 11 | 2.10. Replace Section 5.3.19.9. - Revocation Passphrase . . . . 12 | |||
2.11. New Section 5.3.19.16 - Certificate Request Template . . 11 | 2.11. New Section 5.3.19.14 - CA Certificates . . . . . . . . . 12 | |||
2.12. Update Section 5.3.22 - Polling Request and Response . . 12 | 2.12. New Section 5.3.19.15 - Root CA Certificate Update . . . 12 | |||
2.13. Update Section 9 - IANA Considerations . . . . . . . . . 13 | 2.13. New Section 5.3.19.16 - Certificate Request Template . . 13 | |||
2.14. Update Appendix B - The Use of Revocation Passphrase . . 14 | 2.14. Update Section 5.3.22 - Polling Request and Response . . 14 | |||
2.15. Update Appendix C - Request Message Behavioral | 2.15. Update Section 7 - Version Negotiation . . . . . . . . . 15 | |||
Clarifications . . . . . . . . . . . . . . . . . . . . . 15 | 2.16. Update Section 7.1.1. - Clients Talking to RFC 2510 | |||
2.16. Update Appendix D.2. - Algorithm Use Profile . . . . . . 16 | Servers . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
2.17. Update Appendix D.4. - Initial Registration/Certification | 2.17. Update Section 9 - IANA Considerations . . . . . . . . . 16 | |||
(Basic Authenticated Scheme) . . . . . . . . . . . . . . 16 | 2.18. Update Appendix B - The Use of Revocation Passphrase . . 18 | |||
2.19. Update Appendix C - Request Message Behavioral | ||||
Clarifications . . . . . . . . . . . . . . . . . . . . . 18 | ||||
2.20. Update Appendix D.1. - General Rules for Interpretation of | ||||
These Profiles . . . . . . . . . . . . . . . . . . . . . 19 | ||||
2.21. Update Appendix D.2. - Algorithm Use Profile . . . . . . 19 | ||||
2.22. Update Appendix D.4. - Initial Registration/Certification | ||||
(Basic Authenticated Scheme) . . . . . . . . . . . . . . 20 | ||||
3. Updates to RFC 6712 - HTTP Transfer for the Certificate | 3. Updates to RFC 6712 - HTTP Transfer for the Certificate | |||
Management Protocol (CMP) . . . . . . . . . . . . . . . . . . 16 | Management Protocol (CMP) . . . . . . . . . . . . . . . . 20 | |||
3.1. New Section 1.1. - Changes since RFC 6712 . . . . . . . . 16 | 3.1. New Section 1.1. - Changes since RFC 6712 . . . . . . . . 20 | |||
3.2. Replace Section 3.6. - HTTP Request-URI . . . . . . . . . 17 | 3.2. Replace Section 3.6. - HTTP Request-URI . . . . . . . . . 20 | |||
3.3. Update Section 6. - IANA Considerations . . . . . . . . . 18 | 3.3. Update Section 6. - IANA Considerations . . . . . . . . . 21 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 22 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 22 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 19 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 22 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 21 | 7.2. Informative References . . . . . . . . . . . . . . . . . 24 | |||
Appendix A. ASN.1 Modules . . . . . . . . . . . . . . . . . . . 21 | Appendix A. ASN.1 Modules . . . . . . . . . . . . . . . . . . . 24 | |||
A.1. 1988 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 21 | A.1. 1988 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 25 | |||
A.2. 2002 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 33 | A.2. 2002 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 37 | |||
Appendix B. History of changes . . . . . . . . . . . . . . . . . 46 | Appendix B. History of changes . . . . . . . . . . . . . . . . . 49 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 49 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 52 | |||
1. Introduction | 1. Introduction | |||
[RFC Editor: please delete]: !!! The change history was moved to | [RFC Editor: please delete]: !!! The change history was moved to | |||
Appendix B !!! | Appendix B !!! | |||
While using CMP [RFC4210] in industrial and IoT environments and | While using CMP [RFC4210] in industrial and IoT environments and | |||
developing the Lightweight CMP Profile | developing the Lightweight CMP Profile | |||
[I-D.ietf-lamps-lightweight-cmp-profile] some limitations were | [I-D.ietf-lamps-lightweight-cmp-profile] some limitations were | |||
identified in the original CMP specification. This document updates | identified in the original CMP specification. This document updates | |||
RFC 4210 [RFC4210] and RFC 6712 [RFC6712] to overcome these | RFC 4210 [RFC4210] and RFC 6712 [RFC6712] to overcome these | |||
limitations. | limitations. | |||
In general, this document aims to improve the crypto agility of CMP | Among others, this document improves the crypto agility of CMP, which | |||
to be flexible to react on future advances in cryptography. | means to be flexible to react on future advances in cryptography. | |||
This document also introduces new extended key usages to identify CMP | This document also introduces new extended key usages to identify CMP | |||
endpoints on registration and certification authorities. | endpoints on registration and certification authorities. | |||
1.1. Convention and Terminology | 1.1. Convention and Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in BCP 14 [RFC2119] | document are to be interpreted as described in BCP 14 [RFC2119] | |||
[RFC8174] when, and only when, they appear in all capitals, as shown | [RFC8174] when, and only when, they appear in all capitals, as shown | |||
here. | here. | |||
Technical terminology is used in conformance with RFC 4210 [RFC4210], | Technical terminology is used in conformance with RFC 4210 [RFC4210], | |||
RFC 4211 [RFC4211], and RFC 5280 [RFC5280]. The following key words | RFC 4211 [RFC4211], and RFC 5280 [RFC5280]. The following key words | |||
are used: | are used: | |||
CA: Certification authority, which issues certificates. | CA: Certification authority, which issues certificates. | |||
RA: Registration authority, an optional system component to which a | RA: Registration authority, an optional system component to which a | |||
CA delegates certificate management functions such as | CA delegates certificate management functions such as | |||
authorization checks. | authorization checks. | |||
KGA: Key generation authority, which generates key pairs on behalf of | KGA: Key generation authority, which generates key pairs on behalf | |||
an EE. The KGA could be co-located with an RA or a CA. | of an EE. The KGA could be co-located with an RA or a CA. | |||
EE: End entity, a user, device, or service that holds a PKI | EE: End entity, a user, device, or service that holds a PKI | |||
certificate. An identifier for the EE is given as its subject | certificate. An identifier for the EE is given as its subject | |||
of the certificate. | of the certificate. | |||
2. Updates to RFC 4210 - Certificate Management Protocol (CMP) | 2. Updates to RFC 4210 - Certificate Management Protocol (CMP) | |||
2.1. New Section 1.1. - Changes since RFC 4210 | 2.1. New Section 1.1. - Changes since RFC 4210 | |||
The following subsection describes feature updates to RFC 4210 | The following subsection describes feature updates to RFC 4210 | |||
[RFC4210]. They are always related to the base specification. Hence | [RFC4210]. They are always related to the base specification. Hence | |||
references to the original sections in RFC 4210 [RFC4210] are used | references to the original sections in RFC 4210 [RFC4210] are used | |||
whenever possible. | whenever possible. | |||
Insert this section at the end of the current Section 1. | Insert this section at the end of the current Section 1. | |||
1.1 Changes since RFC 4210 | 1.1. Changes since RFC 4210 | |||
The following updates are made in [thisRFC]: | The following updates are made in [thisRFC]: | |||
o Add new extended key usages for different CMP server types, e.g. | * Add new extended key usages for various CMP server types, e.g., | |||
registration authority and certification authority, to express the | registration authority and certification authority, to express the | |||
authorization of the entity identified in the certificate | authorization of the entity identified in the certificate | |||
containing the respective extended key usage extension to act as | containing the respective extended key usage extension to act as | |||
the indicated PKI management entity. | the indicated PKI management entity. | |||
o Extend the description of multiple protection to cover additional | * Extend the description of multiple protection to cover additional | |||
use cases, e.g., batch processing of messages. | use cases, e.g., batch processing of messages. | |||
o Offering EnvelopedData as the preferred choice next to | * Offering EnvelopedData as the preferred choice next to | |||
EncryptedValue to extend crypto agility in CMP. Note that | EncryptedValue to better support crypto agility in CMP. Note that | |||
according to RFC 4211 [RFC4211] section 2.1.9 the use of the | according to RFC 4211 [RFC4211] section 2.1. point 9 the use of | |||
EncryptedValue structure has been deprecated in favor of the | the EncryptedValue structure has been deprecated in favor of the | |||
EnvelopedData structure. RFC 4211 [RFC4211] offers the | EnvelopedData structure. RFC 4211 [RFC4211] offers the | |||
EncryptedKey structure, a choice of EncryptedValue and | EncryptedKey structure, a choice of EncryptedValue and | |||
EnvelopedData for migration to EnvelopedData. For reasons of | EnvelopedData for migration to EnvelopedData. For reasons of | |||
completeness and consistency the exchange of EncryptedValue is | completeness and consistency the type EncryptedValue has been | |||
performed for all usages in RFC 4210 [RFC4210]. This includes the | exchanged in all occurrences in RFC 4210 [RFC4210]. This includes | |||
protection of centrally generated private keys, encryption of | the protection of centrally generated private keys, encryption of | |||
certificates, and revocation passphrases. | certificates, and protection of revocation passphrases. To | |||
properly differentiate the support of EnvelopedData instead of | ||||
EncryptedValue, the CMP version 3 is introduced in case a | ||||
transaction is supposed to use EnvelopedData. | ||||
o Adding new general message types to request CA certificates, a | * Adding new general message types to request CA certificates, a | |||
root CA update, or a certificate request template. | root CA update, or a certificate request template. | |||
o Extend the usage of polling also to p10cr messages. | * Extend the usage of polling to p10cr messages. | |||
* Delete the mandatory algorithm profile in RFC 4210 Appendix D.2 | ||||
[RFC4210] and refer to CMP Algorithms | ||||
[I-D.ietf-lamps-cmp-algorithms]. | ||||
< TBD: The specification of algorithm profiles seed to be moved to a | < TBD: The specification of algorithm profiles seed to be moved to a | |||
separate document. > | separate document. > | |||
2.2. New Section 4.5 - Extended Key Usage | 2.2. New Section 4.5 - Extended Key Usage | |||
The following subsection describes new extended key usages for | The following subsection describes new extended key usages for | |||
different CMP server types specified in RFC 4210 [RFC4210]. | various CMP server types specified in RFC 4210 [RFC4210]. | |||
Insert this section at the end of the current Section 4. | Insert this section at the end of the current Section 4. | |||
4.5 Extended Key Usage | 4.5. Extended Key Usage | |||
The Extended Key Usage (EKU) extension indicates the purposes for | The Extended Key Usage (EKU) extension indicates the purposes for | |||
which the certified public key may be used. It therefore restricts | which the certified key pair may be used. It therefore restricts the | |||
the use of a certificate to specific applications. | use of a certificate to specific applications. | |||
A CA may want to delegate parts of their duties to other PKI | ||||
management entities. The mechanism to prove this delegation | ||||
explained in this section offers zero-touch means to check the | ||||
authorization of such delegation. Such delegation could also be | ||||
expressed by other means, e.g., explicit configuration. | ||||
To offer automatic validation means for the delegation of a role by a | A CA may want to delegate parts of its duties to other PKI management | |||
CA, the certificates used by PKI management entities for CMP message | entities. The mechanism to prove this delegation explained in this | |||
protection or signed data for central key generation MUST be issued | section offers automatic way of checking the authorization of such | |||
by the delegating CA and MUST contain the respective EKUs. This | delegation. Such delegation could also be expressed by other means, | |||
proves the authorization of this entity by the delegating CA to act | e.g., explicit configuration. | |||
as the PKI management entity as described below. | ||||
The ASN.1 to define these EKUs is: | To offer automatic validation for the delegation of a role by a CA, | |||
the certificates used for CMP message protection or signed data for | ||||
central key generation MUST be issued by the delegating CA and MUST | ||||
contain the respective EKUs. This proves the authorization of this | ||||
entity by the delegating CA to act in the given role as described | ||||
below. | ||||
id-kp OBJECT IDENTIFIER ::= | The OIDs to be used for these EKUs are: | |||
{ iso(1) identified-organization(3) dod(6) internet(1) | ||||
security(5) mechanisms(5) pkix(7) kp(3) } | ||||
id-kp-cmcCA OBJECT IDENTIFIER ::= { id-kp 27 } | id-kp-cmcCA OBJECT IDENTIFIER ::= { | |||
id-kp-cmcRA OBJECT IDENTIFIER ::= { id-kp 28 } | iso(1) identified-organization(3) dod(6) internet(1) | |||
id-kp-cmKGA OBJECT IDENTIFIER ::= { id-kp 32 } | security(5) mechanisms(5) pkix(7) kp(3) 27 } | |||
id-kp-cmcRA OBJECT IDENTIFIER ::= { | ||||
iso(1) identified-organization(3) dod(6) internet(1) | ||||
security(5) mechanisms(5) pkix(7) kp(3) 28 } | ||||
id-kp-cmKGA OBJECT IDENTIFIER ::= { | ||||
iso(1) identified-organization(3) dod(6) internet(1) | ||||
security(5) mechanisms(5) pkix(7) kp(3) 32 } | ||||
Note: RFC 6402 section 2.10 [RFC6402] specifies OIDs for a CMC CA and | Note: RFC 6402 section 2.10 [RFC6402] specifies OIDs for a CMC CA and | |||
a CMC RA. As the functionality of a CA and RA is not specific to | a CMC RA. As the functionality of a CA and RA is not specific to | |||
whether use CMC or CMP as certificate management protocol, the same | using CMC or CMP as certificate management protocol, these OIDs SHALL | |||
OIDs SHALL be used for a CMP CA and a CMP RA. | be re-used also for CMP CAs and for CMP RAs. | |||
< TBD: The Description of the OIDs for id-kp-cmcCA and id-kp-cmcRA | ||||
needs to be extended to avoid confusion as they currently only refer | ||||
to CMC. > | ||||
The description of the PKI management entity for each of the EKUs is | The description of the PKI management entity for each of the EKUs is | |||
as follows: | as follows: | |||
CMP CA: CMP Certification Authorities are CMP endpoints on CA | CMP CA: CMP Certification Authorities are CMP endpoints on CA | |||
equipment as described in section 3.1.1.2. The key used in | equipment as described in section 3.1.1.2. The private key | |||
the context of CMP management operations, especially CMP | used in the context of CMP management operations, | |||
message protection, need not be the same key that signs the | especially CMP message protection, does not need to be the | |||
certificates. It is necessary, however, to ensure that the | same as for signing certificates. It is necessary, | |||
entity acting as CMP CA is authorized to do so. Therefore, | however, to ensure that the entity acting as CMP CA is | |||
the CMP CA MUST do one of the following, | authorized to do so. Therefore, the CMP CA MUST do one of | |||
* use the CA private key on the CMP endpoint, or | the following, | |||
* explicitly designate this authority to another entity. | * use the CA private key also for the CMP endpoint, or | |||
For automatic validation of such delegation it MUST be | * explicitly designate this role to another entity. | |||
indicated by the id-kp-cmcCA extended key usage. This | ||||
extended key usage MUST be placed into the certificate used | ||||
on the CA equipment and the CA that delegates this role MUST | ||||
issue the CMP CA certificate. | ||||
Note: Using a separate key pair for protecting CMP | For automatic validation of such a delegation this MUST be | |||
management operations at the CA decreases the number of | indicated by the id-kp-cmcCA extended key usage. This | |||
operations of the private key used to sign certificates. | extended key usage MUST be placed into the certificate used | |||
on the CA equipment and the CA that delegates this role | ||||
MUST issue the CMP CA certificate. | ||||
CMP RA: CMP Registration Authorities are CMP endpoints on RA | Note: Using a separate key pair for protecting CMP | |||
equipment as described in Section 3.1.1.3. A CMP RA is | management operations at the CA decreases the number of | |||
identified by the id-kp-cmcRA extended key usage. This | operations of the private key used to sign certificates. | |||
extended key usage is placed into RA certificates. The CA | ||||
that delegated this role is identified by the CA that issued | ||||
the CMP RA certificate. | ||||
CMP KGA: CMP Key Generation Authorities are identified by the id-kp- | CMP RA: CMP Registration Authorities are CMP endpoints on RA | |||
cmKGA extended key usage. Though the CMP KGA knows the | equipment as described in Section 3.1.1.3. A CMP RA is | |||
private key it generated on behalf of the end entity. This | identified by the id-kp-cmcRA extended key usage. This | |||
is a very sensitive service and needs specific | extended key usage MUST be placed in RA certificates. The | |||
authorization. This authorization is either with the CA | CA that delegated this role is identified by the CA that | |||
certificate itself, or indicated by placing the id-kp-cmKGA | issued the CMP RA certificate. | |||
extended key usage into the CMP RA or CMP CA certificate | ||||
used to authenticate the origin of the private key, and to | ||||
express the authorization to offer this service. | ||||
Note: In device PKIs, especially those issuing IDevID certificates, | CMP KGA: CMP Key Generation Authorities are identified by the id-kp- | |||
CA may have very long validity (including the GeneralizedTime value | cmKGA extended key usage. The CMP KGA knows the private | |||
key it generated on behalf of the end entity. This is a | ||||
very sensitive service and therefore needs specific | ||||
authorization. This authorization is either with the CA | ||||
certificate itself, or it MUST be indicated by placing the | ||||
id-kp-cmKGA extended key usage in the certificate used to | ||||
authenticate the origin of the generated private key, and | ||||
to express the authorization to offer this service. | ||||
Note: In device PKIs, especially those issuing IDevID certificates | ||||
IEEE 802.1AR Section 8.5 [IEEE.802.1AR_2018], CA certificates may | ||||
have very long validity (including the GeneralizedTime value | ||||
99991231235959Z to indicate a not well-defined expiration date as | 99991231235959Z to indicate a not well-defined expiration date as | |||
specified in IEEE 802.1AR Section 8.5 [IEEE802.1AR] and RFC 5280 | specified in IEEE 802.1AR Section 8.5 [IEEE.802.1AR_2018] and | |||
Section 4.1.2.5 [RFC5280]). Such validity periods SHOULD NOT be used | RFC 5280 Section 4.1.2.5 [RFC5280]). Such validity periods SHOULD | |||
for protection of CMP messages. Certificates for delegated CMP | NOT be used for protection of CMP messages. Certificates for | |||
message protection (CMP CA, CMP RA, CMP KGA) MUST NOT use indefinite | delegated CMP message protection (CMP CA, CMP RA, CMP KGA) MUST NOT | |||
expiration date. | use indefinite expiration date. | |||
2.3. Replace Section 5.1.3.4 - Multiple Protection | 2.3. Update Section 5.1.1. - PKI Message Header | |||
Section 5.1.1 of RFC 4210 [RFC4210] describes the PKI message header. | ||||
This document introduces the new version 3 indicating support of | ||||
EnvelopedData as specified in Section 2.6. | ||||
Replace the ASN.1 Syntax of PKIHeader and the subsequent description | ||||
of pvno with the following text: | ||||
PKIHeader ::= SEQUENCE { | ||||
pvno INTEGER { cmp1999(1), cmp2000(2), | ||||
cmp2021(3) }, | ||||
sender GeneralName, | ||||
recipient GeneralName, | ||||
messageTime [0] GeneralizedTime OPTIONAL, | ||||
protectionAlg [1] AlgorithmIdentifier OPTIONAL, | ||||
senderKID [2] KeyIdentifier OPTIONAL, | ||||
recipKID [3] KeyIdentifier OPTIONAL, | ||||
transactionID [4] OCTET STRING OPTIONAL, | ||||
senderNonce [5] OCTET STRING OPTIONAL, | ||||
recipNonce [6] OCTET STRING OPTIONAL, | ||||
freeText [7] PKIFreeText OPTIONAL, | ||||
generalInfo [8] SEQUENCE SIZE (1..MAX) OF | ||||
InfoTypeAndValue OPTIONAL | ||||
} | ||||
PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String | ||||
The usage of different pvno values is described in Section 7. | ||||
2.4. Update Section 5.1.3.1. - Shared Secret Information | ||||
Section 5.1.3.1 of RFC 4210 [RFC4210] describes the MAC based | ||||
protection of a PKIMessage using the algorithm id-PasswordBasedMac. | ||||
Replace the first paragraph with the following text: | ||||
In this case, the sender and recipient share secret information with | ||||
sufficient entropy (established via out-of-band means or from a | ||||
previous PKI management operation). PKIProtection will contain a MAC | ||||
value and the protectionAlg will be the following (see also [RFC4211] | ||||
and [I-D.ietf-lamps-crmf-update-algs]): | ||||
2.5. Replace Section 5.1.3.4 - Multiple Protection | ||||
Section 5.1.3.4 of RFC 4210 [RFC4210] describes the nested message. | Section 5.1.3.4 of RFC 4210 [RFC4210] describes the nested message. | |||
This document opens the usage of nested messages also for batch | This document enables using opens the usage of nested messages also | |||
transport of PKI messages between different PKI management entities. | for batch transport of PKI messages between PKI management entities | |||
and also with mixed body types. | ||||
Replace the text of the section with the following text. | Replace the text of the section with the following text. | |||
In cases where an end entity sends a protected PKI message to an RA, | 5.1.3.4. Multiple Protection | |||
the RA MAY forward that message to a CA, adding its own protection | ||||
(which MAY be a MAC or a signature, depending on the information and | ||||
certificates shared between the RA and the CA). There are different | ||||
use cases for such multi protected messages. | ||||
o The RA confirms the validation and authorization of a message and | When receiving a protected PKI message, a PKI management entity such | |||
as an RA MAY forward that message adding its own protection (which | ||||
MAY be a MAC or a signature, depending on the information and | ||||
certificates shared between the RA and the CA). Moreover, multiple | ||||
PKI messages MAY be aggregated. There are several use cases for such | ||||
messages. | ||||
* The RA confirms having validated and authorized a message and | ||||
forwards the original message unchanged. | forwards the original message unchanged. | |||
o The RA collects several messages and forwards them in a batch. | * The RA collects several messages that are to be forwarded in the | |||
This can for instance be used to bridge an off-line connection | same direction and forwards them in a batch. In communication to | |||
between two PKI management entities. In communication to the CA | the CA request messages and in communication from the CA response | |||
request messages and in communication from the CA response or | or announcement messages will be collected. This can for instance | |||
announcement messages will be collected in such batch. | be used when bridging an off-line connection between two PKI | |||
management entities. | ||||
o The RA modifies the message(s) in some way (e.g., add or modify | * The RA modifies the message(s) in some way (e.g., add or modify | |||
particular field values or add new extensions) before forwarding | particular field values or add new extensions) before forwarding | |||
them, then it MAY create its own desired PKIBody. In case the | them, then it MAY create its own desired PKIBody. In case the | |||
changes made by the RA to PKIMessage breaks the POP, the RA MUST | changes made by the RA to PKIMessage breaks the POP of a | |||
either set the POP RAVerified or include the original PKIMessage | certificate request, the RA MUST set the POP RAVerified. It MAY | |||
from the EE in the generalInfo field of PKIHeader of the nested | include the original PKIMessage from the EE in the generalInfo | |||
message (to force the CA to check POP on the original message). | field of PKIHeader of the nested message (to accommodate, for | |||
The infoType to be used in this situation is {id-it 15} (see | example, cases in which the CA wishes to check POP or other | |||
Section 5.3.19 for the value of id-it) and the infoValue is | information on the original EE message). The infoType to be used | |||
PKIMessages (contents MUST be in the same order as the requests in | in this situation is {id-it 15} (see Section 5.3.19 for the value | |||
PKIBody). For simplicity reasons, if batching is used in | of id-it) and the infoValue is PKIMessages (contents MUST be in | |||
combination with inclusion of the original PKIMessage in the | the same order as the message in PKIBody). | |||
generalInfo field, all messages in the batch MUST be of the same | ||||
type (e.g., ir). | ||||
These use cases are accomplished by nesting the messages sent by the | These use cases are accomplished by nesting the messages sent by the | |||
PKI entity within a new PKI message. The structure used is as | PKI entity within a new PKI message. The structure used is as | |||
follows. | follows. | |||
NestedMessageContent ::= PKIMessages | NestedMessageContent ::= PKIMessages | |||
(The use of PKIMessages, a SEQUENCE OF PKIMessage, lets the RA batch | ||||
the requests of several EEs in a single new message.) | ||||
2.4. Replace Section 5.2.2. - Encrypted Values | 2.6. Replace Section 5.2.2. - Encrypted Values | |||
Section 5.2.2 of RFC 4210 [RFC4210] describes the usage of | Section 5.2.2 of RFC 4210 [RFC4210] describes the use of | |||
EncryptedValue to transport encrypted data. This document extends | EncryptedValue to transport encrypted data. This document extends | |||
the encryption of data to preferably use EnvelopedData. | the encryption of data to preferably use EnvelopedData. | |||
Replace the text of the section with the following text. | Replace the text of the section with the following text. | |||
Where encrypted data (restricted, in this specification, to be either | 5.2.2. Encrypted Values | |||
private keys, certificates, or passwords) are sent in PKI messages, | ||||
the EncryptedKey data structure is used. | ||||
EncryptedKey ::= CHOICE { | Where encrypted data (in this specification, private keys, | |||
encryptedValue EncryptedValue, -- deprecated | certificates, or revocation passphrase) are sent in PKI messages, the | |||
envelopedData [0] EnvelopedData } | EncryptedKey data structure is used. | |||
See CRMF [RFC4211] for EncryptedKey and EncryptedValue syntax and for | EncryptedKey ::= CHOICE { | |||
EnvelopedData syntax see CMS [RFC5652]. Using the EncryptedKey data | encryptedValue EncryptedValue, -- deprecated | |||
structure, the choice to either use EncryptedValue (for backward | envelopedData [0] EnvelopedData } | |||
compatibility only) or EnvelopedData is offered. The use of the | ||||
See CRMF [RFC4211] for EncryptedKey and EncryptedValue syntax and CMS | ||||
[RFC5652] for EnvelopedData syntax. Using the EncryptedKey data | ||||
structure, offers the choice to either use EncryptedValue (for | ||||
backward compatibility only) or EnvelopedData. The use of the | ||||
EncryptedValue structure has been deprecated in favor of the | EncryptedValue structure has been deprecated in favor of the | |||
EnvelopedData structure. Therefore, it is recommended to use | EnvelopedData structure. Therefore, it is recommended to use | |||
EnvelopedData. | EnvelopedData. | |||
Note: As we reuse the EncryptedKey structure defined in CRMF | Note: The EncryptedKey structure defined in CRMF [RFC4211] is reused | |||
[RFC4211], the update is backward compatible. Using the new syntax | here, which makes the update is backward compatible. Using the new | |||
with the untagged default choice EncryptedValue is bitwise compatible | syntax with the untagged default choice EncryptedValue is bits-on- | |||
with the old syntax. | the-wire compatible with the old syntax. | |||
The EncryptedKey data structure is used in CMP to either transport a | To indicate support for EnvelopedData the pvno cmp2021 is introduced | |||
private key, certificate or revocation passphrase in encrypted form. | by this document. Details on the usage of different pvno values is | |||
described in Section 7. | ||||
EnvelopedData is used as follows: | The EncryptedKey data structure is used in CMP to transport a private | |||
key, certificate, or revocation passphrase in encrypted form. | ||||
o Contains only one recepientInfo structure because the content is | EnvelopedData is used as follows: | |||
encrypted only for one recipient. | ||||
o Contains a private key in the AsymmetricKeyPackage structure as | * It contains only one RecipientInfo structure because the content | |||
defined in RFC 5958 [RFC5958] wrapped in a SignedData structure as | is encrypted only for one recipient. | |||
specified in CMS section 5 [RFC5652] signed by the Key Generation | ||||
Authority. | ||||
o Contains a certificate or revocation passphrase directly in the | * It may contain a private key in the AsymmetricKeyPackage structure | |||
encryptedContent field. | as defined in RFC 5958 [RFC5958] wrapped in a SignedData structure | |||
as specified in CMS section 5 [RFC5652] signed by the Key | ||||
Generation Authority. | ||||
Note: To ensure explicit control of the encoding of the private key | * It may contain a certificate or revocation passphrase directly in | |||
according to the specific algorithm the new key pair in an asymmetric | the encryptedContent field. | |||
key package structure as specified in [RFC5958]. | ||||
The content of the EnvelopedData structure, as specified in CMS | The content of the EnvelopedData structure, as specified in CMS | |||
section 6 [RFC5652], MUST be encrypted using a newly generated | section 6 [RFC5652], MUST be encrypted using a newly generated | |||
symmetric content-encryption key. This content-encryption key MUST | symmetric content-encryption key. This content-encryption key MUST | |||
be securely provided to the recipient using one of three key | be securely provided to the recipient using one of three key | |||
management techniques. | management techniques. | |||
The choice of the key management technique to be used by the sender | The choice of the key management technique to be used by the sender | |||
depends on the credential available for the recipient: | depends on the credential available at the recipient: | |||
o Recipient's certificate that contains a key usage extension | * Recipient's certificate that contains a key usage extension | |||
asserting keyAgreement: The content-encryption key will be | asserting keyAgreement: The content-encryption key will be | |||
protected using the key agreement key management technique, as | protected using the key agreement key management technique, as | |||
specified in CMS section 6.2.2 [RFC5652]. | specified in CMS section 6.2.2 [RFC5652]. This is the preferred | |||
technique. | ||||
o Recipient's certificate that contains a key usage extension | * Recipient's certificate that contains a key usage extension | |||
asserting keyEncipherment: The content-encryption key will be | asserting keyEncipherment: The content-encryption key will be | |||
protected using the key transport key management technique, as | protected using the key transport key management technique, as | |||
specified in CMS section 6.2.1 [RFC5652]. | specified in CMS section 6.2.1 [RFC5652]. | |||
o Jointly shared secret: The content-encryption key will be | * A password or shared secret: The content-encryption key will be | |||
protected using the password-based key management technique, as | protected using the password-based key management technique, as | |||
specified in CMS section 6.2.4 [RFC5652]. | specified in CMS section 6.2.4 [RFC5652]. | |||
2.5. Update Section 5.3.4. - Certification Response | 2.7. Update Section 5.3.4. - Certification Response | |||
Section 5.3.4 of RFC 4210 [RFC4210] describes the Certification | Section 5.3.4 of RFC 4210 [RFC4210] describes the Certification | |||
Response. This document updates the syntax by using the parent | Response. This document updates the syntax by using the parent | |||
structure EncryptedKey instead of EncryptedValue as described in | structure EncryptedKey instead of EncryptedValue as described in | |||
Section 2.1 above. | Section 2.6 above. | |||
Replace the ASN.1 syntax of CertifiedKeyPair and CertOrEncCert with | Replace the ASN.1 syntax of CertifiedKeyPair and CertOrEncCert with | |||
the following text. | the following text. | |||
CertifiedKeyPair ::= SEQUENCE { | CertifiedKeyPair ::= SEQUENCE { | |||
certOrEncCert CertOrEncCert, | certOrEncCert CertOrEncCert, | |||
privateKey [0] EncryptedKey OPTIONAL, | privateKey [0] EncryptedKey OPTIONAL, | |||
-- see [CRMF] for comment on encoding | -- see [CRMF] for comment on encoding | |||
publicationInfo [1] PKIPublicationInfo OPTIONAL | publicationInfo [1] PKIPublicationInfo OPTIONAL | |||
} | } | |||
CertOrEncCert ::= CHOICE { | CertOrEncCert ::= CHOICE { | |||
certificate [0] Certificate, | certificate [0] Certificate, | |||
encryptedCert [1] EncryptedKey | encryptedCert [1] EncryptedKey | |||
} | } | |||
Add the following paragraphs to the end of the section. | Add the following as a new paragraph right after the ASN.1 syntax. | |||
The use of EncryptedKey is described in section 5.2.2. | A p10cr message contains exactly one CertificationRequestInfo data | |||
structure as specified in PKCS#10 [RFC2986] but no certReqId. | ||||
Therefore, the certReqId in the corresponding certification response | ||||
(cp) message MUST be set to 0. | ||||
2.6. Update Section 5.3.19.2. - Signing Key Pair Types | Add the following as new paragraphs to the end of the section. | |||
The use of EncryptedKey is described in Section 5.2.2. | ||||
Note: To indicate support for EnvelopedData the pvno cmp2021 is | ||||
introduced by this document. Details on the usage of different pvno | ||||
values is described in Section 7. | ||||
2.8. Update Section 5.3.19.2. - Signing Key Pair Types | ||||
The following section clarifies the usage of the Signing Key Pair | The following section clarifies the usage of the Signing Key Pair | |||
Types PKI general message on referencing EC curves. | Types PKI general message on referencing EC curves. | |||
Insert this note at the end of Section 5.3.19.2. | Insert this note at the end of Section 5.3.19.2. | |||
Note: In case you wish to offer several EC curves, you need to put | Note: In case several EC curves are supported, several id-ecPublicKey | |||
several id-ecPublicKey elements, one each per named curve. | elements need to be given, one each per named curve. | |||
2.7. Update Section 5.3.19.3. - Encryption/Key Agreement Key Pair Types | 2.9. Update Section 5.3.19.3. - Encryption/Key Agreement Key Pair Types | |||
The following section clarifies the usage of the Encryption/Key | The following section clarifies the use of the Encryption/Key | |||
Agreement Key Pair Types PKI general message on referencing EC | Agreement Key Pair Types PKI general message on referencing EC | |||
curves. | curves. | |||
Insert this note at the end of Section 5.3.19.3. | Insert this note at the end of Section 5.3.19.3. | |||
Note: In case you wish to offer several EC curves, you need to put | Note: In case several EC curves are supported, several id-ecPublicKey | |||
several id-ecPublicKey elements, one each per named curve. | elements need to be given, one each per named curve. | |||
2.8. Replace Section 5.3.19.9. - Revocation Passphrase | 2.10. Replace Section 5.3.19.9. - Revocation Passphrase | |||
Section 5.3.19.9 of RFC 4210 [RFC4210] describes the provisioning of | Section 5.3.19.9 of RFC 4210 [RFC4210] describes the provisioning of | |||
a revocation passphrase for authenticating a later revocation | a revocation passphrase for authenticating a later revocation | |||
request. This document updates the handling by using the parent | request. This document updates the handling by using the parent | |||
structure EncryptedKey instead of EncryptedValue to transport this | structure EncryptedKey instead of EncryptedValue to transport this | |||
information as described in Section 2.1 above. | information as described in Section 2.6 above. | |||
Replace the text of the section with the following text. | Replace the text of the section with the following text. | |||
5.3.19.9. Revocation Passphrase | ||||
This MAY be used by the EE to send a passphrase to a CA/RA for the | This MAY be used by the EE to send a passphrase to a CA/RA for the | |||
purpose of authenticating a later revocation request (in the case | purpose of authenticating a later revocation request (in the case | |||
that the appropriate signing private key is no longer available to | that the appropriate signing private key is no longer available to | |||
authenticate the request). See Appendix B for further details on the | authenticate the request). See Appendix B for further details on the | |||
use of this mechanism. | use of this mechanism. | |||
GenMsg: {id-it 12}, EncryptedKey | GenMsg: {id-it 12}, EncryptedKey | |||
GenRep: {id-it 12}, < absent > | GenRep: {id-it 12}, < absent > | |||
The use of EncryptedKey is described in section 5.2.2. | The use of EncryptedKey is described in section 5.2.2. | |||
2.9. New Section 5.3.19.14 - CA Certificates | 2.11. New Section 5.3.19.14 - CA Certificates | |||
The following subsection describes the PKI general messages using id- | The following subsection describes the PKI general message using id- | |||
it-caCerts. The use is specified in in Lightweight CMP Profile [I- | it-caCerts. The use is specified in Lightweight CMP Profile [I- | |||
D.ietf-lamps-lightweight-cmp-profile] Section 4.4. | D.ietf-lamps-lightweight-cmp-profile] Section 4.4. | |||
Insert this section after Section 5.3.19.13. | Insert this section after Section 5.3.19.13. | |||
2.3.19.14 CA Certificates | 2.3.19.14 CA Certificates | |||
This MAY be used by the client to get the latest CA intermediate and | ||||
This MAY be used by the client to get the current CA intermediate and | ||||
issuing CA certificates. | issuing CA certificates. | |||
GenMsg: {id-it 17}, < absent > | GenMsg: {id-it 17}, < absent > | |||
GenRep: {id-it 17}, SEQUENCE OF CMPCertificate | < absent > | GenRep: {id-it 17}, SEQUENCE OF CMPCertificate | < absent > | |||
2.10. New Section 5.3.19.15 - Root CA Certificates Update | 2.12. New Section 5.3.19.15 - Root CA Certificate Update | |||
The following subsection describes the PKI general messages using id- | The following subsection describes the PKI general message using id- | |||
it-rootCaKeyUpdate. The use is specified in in Lightweight CMP | it-rootCaKeyUpdate. The use is specified in Lightweight CMP Profile | |||
Profile [I-D.ietf-lamps-lightweight-cmp-profile] Section 4.4. | [I-D.ietf-lamps-lightweight-cmp-profile] Section 4.4. | |||
Insert this section after new Section 5.3.19.14. | Insert this section after new Section 5.3.19.14. | |||
5.3.19.15. Root CA Certificates Update | 5.3.19.15. Root CA Certificate Update | |||
This MAY be used by the client to get an update of an existing root | This MAY be used by the client to get an update of an existing root | |||
CA Certificate. | CA Certificate. In contrast to the ckuann message it follows the | |||
request/response model. | ||||
GenMsg: {id-it 18}, < absent > | GenMsg: {id-it 18}, < absent > | |||
GenRep: {id-it 18}, RootCaKeyUpdateContent | < absent > | GenRep: {id-it 18}, RootCaKeyUpdateContent | < absent > | |||
RootCaKeyUpdateContent ::= SEQUENCE { | RootCaKeyUpdateContent ::= SEQUENCE { | |||
newWithNew CMPCertificate | newWithNew CMPCertificate | |||
newWithOld [0] CMPCertificate OPTIONAL, | newWithOld [0] CMPCertificate OPTIONAL, | |||
oldWithNew [1] CMPCertificate OPTIONAL | oldWithNew [1] CMPCertificate OPTIONAL | |||
} | } | |||
Note: In contrast to CAKeyUpdAnnContent, this type offers omitting | Note: In contrast to CAKeyUpdAnnContent, this type offers omitting | |||
newWithOld and oldWithNew in the GenRep message, depending on the | newWithOld and oldWithNew in the GenRep message, depending on the | |||
needs of the EE. | needs of the EE. | |||
2.11. New Section 5.3.19.16 - Certificate Request Template | 2.13. New Section 5.3.19.16 - Certificate Request Template | |||
The following subsection describes the PKI general messages using id- | The following subsection describes the PKI general message using id- | |||
it-certReqTemplate. The use is specified in in Lightweight CMP | it-certReqTemplate. The use is specified in Lightweight CMP Profile | |||
Profile [I-D.ietf-lamps-lightweight-cmp-profile] Section 4.4. | [I-D.ietf-lamps-lightweight-cmp-profile] Section 4.4. | |||
Insert this section after new Section 5.3.19.15. | Insert this section after new Section 5.3.19.15. | |||
5.3.19.16. Certificate Request Template | 5.3.19.16. Certificate Request Template | |||
This MAY be used by the client to get a template with parameters for | This MAY be used by the client to get a template containing | |||
a future certificate request operation. | requirements for certificate request attributes and extensions and | |||
optionally a specification for the key pair to generate for a future | ||||
certificate request operation. | ||||
GenMsg: {id-it 19}, < absent > | GenMsg: {id-it 19}, < absent > | |||
GenRep: {id-it 19}, CertReqTemplateContent | < absent > | GenRep: {id-it 19}, CertReqTemplateContent | < absent > | |||
CertReqTemplateContent ::= SEQUENCE { | CertReqTemplateContent ::= SEQUENCE { | |||
certTemplate CertTemplate, | certTemplate CertTemplate, | |||
controls Controls OPTIONAL | keySpec Controls OPTIONAL | |||
} | } | |||
Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue | Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue | |||
id-regCtrl-algId OBJECT IDENTIFIER ::= { id-regCtrl TBD3 } | id-regCtrl-algId OBJECT IDENTIFIER ::= { iso(1) | |||
AlgIdCtrl ::= AlgorithmIdentifier | identified-organization(3) dod(6) internet(1) security(5) | |||
mechanisms(5) pkix(7) pkip(5) regCtrl(1) TBD3 } | ||||
AlgIdCtrl ::= AlgorithmIdentifier | ||||
id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl TBD4 } | id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { iso(1) | |||
RsaKeyLenCtrl ::= Integer | identified-organization(3) dod(6) internet(1) security(5) | |||
mechanisms(5) pkix(7) pkip(5) regCtrl(1) TBD4 } | ||||
RsaKeyLenCtrl ::= Integer | ||||
< TBD: The OIDs TBD3 and TBD4 have to be registered at IANA. > | < TBD: The OIDs TBD3 and TBD4 have to be registered at IANA. > | |||
CertReqTemplateValue contains a prefilled certTemplate to be used for | CertReqTemplateValue contains a prefilled certTemplate to be used for | |||
the future certificate request. The SubjectPublicKeyInfo field in | the future certificate request. The SubjectPublicKeyInfo field in | |||
the certTemplate MUST NOT be used. In case the PKI management entity | the certTemplate MUST NOT be used. In case the PKI management entity | |||
wishes to specify supported algorithms, the controls field MUST be | wishes to specify supported algorithms, the keySpec field MUST be | |||
used. One AttributeTypeAndValue per supported algorithm MUST be | used. One AttributeTypeAndValue per supported algorithm or RSA key | |||
used. | length MUST be used. | |||
Note: The Controls ASN.1 type is defined in CRMF Section 6 [RFC4211] | Note: The Controls ASN.1 type is defined in CRMF Section 6 [RFC4211] | |||
2.12. Update Section 5.3.22 - Polling Request and Response | 2.14. Update Section 5.3.22 - Polling Request and Response | |||
Section 5.3.22 of RFC 4210 [RFC4210] describes when and how polling | Section 5.3.22 of RFC 4210 [RFC4210] describes when and how polling | |||
messages are used. This document adds the polling mechanism also to | messages are used. This document adds the polling mechanism also for | |||
outstanding p10cr transactions. | outstanding responses to a p10cr. | |||
Replace all paragraphs in front of the state machine diagram with the | Replace in the first paragraph the word 'cr' by 'cr, p10cr' and add | |||
following text. | just before the state machine diagram the following text. | |||
This pair of messages is intended to handle scenarios in which the | A p10cr message contains exactly one CertificationRequestInfo data | |||
client needs to poll the server in order to determine the status of | structure as specified in PKCS#10 [RFC2986] but no certificate | |||
an outstanding ir, cr, p10cr, or kur transaction (i.e., when the | request identifier. Therefore, the certReqId MUST be set to 0 in all | |||
"waiting" PKIStatus has been received). | subsequent messages of this transaction. | |||
PollReqContent ::= SEQUENCE OF SEQUENCE { | 2.15. Update Section 7 - Version Negotiation | |||
certReqId INTEGER } | ||||
PollRepContent ::= SEQUENCE OF SEQUENCE { | Section 7 of RFC 4210 [RFC4210] describes the use of different CMP | |||
certReqId INTEGER, | protocol versions. This document describes the handling of the | |||
checkAfter INTEGER, -- time in seconds | additional CMP version cmp2021 introduced to indicate support of | |||
reason PKIFreeText OPTIONAL } | EnvelopedData. | |||
The following clauses describe when polling messages are used, and | Replace the text of the first two paragraphs with the following text. | |||
how they are used. It is assumed that multiple certConf messages can | ||||
be sent during transactions. There will be one sent in response to | ||||
each ip, cp, or kup that contains a CertStatus for an issued | ||||
certificate. | ||||
1 In response to an ip, cp, or kup message, an EE will send a | This section defines the version negotiation between client and | |||
certConf for all issued certificates and, following the ack, a | servers used to choose among cmp1999 (specified in RFC 2510 | |||
pollReq for all pending certificates. | [RFC2510]), of cmp2000 (specified in RFC 4210 [RFC4210]), and cmp2021 | |||
(specified in this document). The only difference between protocol | ||||
versions cmp2021 and cmp2000 is that EnvelopedData replaces | ||||
EncryptedValue. | ||||
2 In response to a pollReq, a CA/RA will return an ip, cp, or kup if | If a client does not support cmp2021 it chooses the versions for a | |||
one or more of the pending certificates is ready; otherwise, it | request as follows: | |||
will return a pollRep. | ||||
3 If the EE receives a pollRep, it will wait for at least as long as | * If the client knows the protocol version(s) supported by the | |||
the checkAfter value before sending another pollReq. | server (e.g., from a previous PKIMessage exchange or via some out- | |||
of-band means), then it MUST send a PKIMessage with the highest | ||||
version supported by both it and the server. | ||||
4 If an ip, cp, or kup is received in response to a pollReq, then it | * If the client does not know what version(s) the server supports, | |||
will be treated in the same way as the initial response. | then it MUST send a PKIMessage using the highest version it | |||
supports. | ||||
Note: A p10cr message contains exactly one CertificationRequestInfo | If a client supports cmp2021 and encrypted values are supposed to be | |||
data structure as specified in PKCS#10 [RFC2986] but no certificate | transferred in the PKI management operation the client MUST choose | |||
request number. Therefore, the certReqId MUST be set to 0 in all | the version for a request as follows: | |||
following messages of this transaction. | ||||
2.13. Update Section 9 - IANA Considerations | * If the client supports EnvelopedData, but not EncryptedValue, then | |||
it MUST send a PKIMessage using cmp2021. | ||||
* If the client does not support EnvelopedData, but EncryptedValue, | ||||
then it MUST send a PKIMessage using cmp2000. | ||||
* If the client supports both EnvelopedData and EncryptedValues: | ||||
- If the client knows the protocol version(s) supported by the | ||||
server (e.g., from a previous PKIMessage exchange or via some | ||||
out-of-band means), then it MUST send a PKIMessage with the | ||||
highest version supported the server. | ||||
- If the client does not know what version(s) the server | ||||
supports, then it MUST send a PKIMessage using cmp2021. | ||||
2.16. Update Section 7.1.1. - Clients Talking to RFC 2510 Servers | ||||
Section 7.1.1 of RFC 4210 [RFC4210] describes the behaviour of a | ||||
client talking to a cmp1999 server. This document extends the | ||||
section to all clients with a higher version than cmp1999. | ||||
Replace the first sentence of section 7.1.1 with the following text. | ||||
If, after sending a message with a higher protocol version number | ||||
than cmp1999, a client receives an ErrorMsgContent with a version of | ||||
cmp1999, then it MUST abort the current transaction. | ||||
2.17. Update Section 9 - IANA Considerations | ||||
Section 9 of RFC 4210 [RFC4210] contains the IANA Considerations of | Section 9 of RFC 4210 [RFC4210] contains the IANA Considerations of | |||
that document. As this document defines a new and updates two | that document. As this document defines one new and updates two | |||
existing Extended Key Usages, the IANA Considerations need to be | existing Extended Key Usages, the IANA Considerations need to be | |||
updated accordingly. | updated accordingly. | |||
Add the following paragraphs between the first and second paragraph | Add the following paragraphs after the third paragraph of the | |||
of the section. | section. | |||
Within the SMI-numbers registry "SMI Security for PKIX Extended Key | In the SMI-numbers registry "SMI Security for PKIX Extended Key | |||
Purpose Identifiers (1.3.6.1.5.5.7.3)" (see | Purpose Identifiers (1.3.6.1.5.5.7.3)" (see | |||
https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi- | https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi- | |||
numbers-1.3.6.1.5.5.7.3) as defined in RFC 7299 [RFC7299] three | numbers-1.3.6.1.5.5.7.3) as defined in RFC 7299 [RFC7299] three | |||
changes have been performed. | changes have been performed. | |||
Two existing entries have been updated to also point to this | Two existing entries have been updated to also point to this | |||
document: | document: | |||
Decimal Description References | +=========+=============+====================+ | |||
------- ----------- ------------------ | | Decimal | Description | References | | |||
27 id-kp-cmcCA [RFC6402][thisRFC] | +=========+=============+====================+ | |||
28 id-kp-cmcRA [RFC6402][thisRFC] | | 27 | id-kp-cmcCA | [RFC6402][thisRFC] | | |||
+---------+-------------+--------------------+ | ||||
| 28 | id-kp-cmcRA | [RFC6402][thisRFC] | | ||||
+---------+-------------+--------------------+ | ||||
Table 1: Changes to the PKIX Extended Key | ||||
Purpose Identifiers registry | ||||
One new entry has been added: | One new entry has been added: | |||
Decimal Description References | +=========+=============+============+ | |||
------- ----------- ---------- | | Decimal | Description | References | | |||
32 id-kp-cmKGA [thisRFC] | +=========+=============+============+ | |||
| 32 | id-kp-cmKGA | [thisRFC] | | ||||
+---------+-------------+------------+ | ||||
Within the SMI-numbers registry "SMI Security for PKIX CMP | Table 2: Adition to the PKIX | |||
Information Types (1.3.6.1.5.5.7.4)" (see | Extended Key Purpose Identifiers | |||
https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi- | registry | |||
numbers-1.3.6.1.5.5.7.4) as defined in RFC 7299 [RFC7299] three | ||||
changes have been performed. | ||||
Three new entry have been added: | In the SMI-numbers registry "SMI Security for PKIX CMP Information | |||
Types (1.3.6.1.5.5.7.4)" (see https://www.iana.org/assignments/smi- | ||||
numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.4) as defined in | ||||
RFC 7299 [RFC7299] three additions have been performed. | ||||
Decimal Description References | Three new entries have been added: | |||
------- --------------------- ---------- | ||||
17 id-it-caCerts [thisRFC] | ||||
18 id-it-rootCaKeyUpdate [thisRFC] | ||||
19 id-it-certReqTemplate [thisRFC] | ||||
WWithin the SMI-numbers registry " SMI Security for PKIX CRMF | +=========+=======================+============+ | |||
Registration Controls (1.3.6.1.5.5.7.5.1)" (see | | Decimal | Description | References | | |||
https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi- | +=========+=======================+============+ | |||
numbers-1.3.6.1.5.5.7.5.1) as defined in RFC 7299 [RFC7299] two | | 17 | id-it-caCerts | [thisRFC] | | |||
changes have been performed. | +---------+-----------------------+------------+ | |||
| 18 | id-it-rootCaKeyUpdate | [thisRFC] | | ||||
+---------+-----------------------+------------+ | ||||
| 19 | id-it-certReqTemplate | [thisRFC] | | ||||
+---------+-----------------------+------------+ | ||||
Two new entry have been added: | Table 3: Addition to the PKIX CMP | |||
Information Types registry | ||||
Decimal Description References | In the SMI-numbers registry " SMI Security for PKIX CRMF Registration | |||
------- -------------------- ---------- | Controls (1.3.6.1.5.5.7.5.1)" (see https://www.iana.org/assignments/ | |||
TBD3 id-regCtrl-algId [thisRFC] | smi-numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.5.1) as | |||
TBD4 id-regCtrl-rsaKeyLen [thisRFC] | defined in RFC 7299 [RFC7299] two additions have been performed. | |||
2.14. Update Appendix B - The Use of Revocation Passphrase | Two new entries have been added: | |||
Appendix B of RFC 4210 [RFC4210] describes the usage of the | +=========+======================+============+ | |||
revocation passphrase. As this document updates RFC 4210 [RFC4210] | | Decimal | Description | References | | |||
to utilize the parent structure EncryptedKey instead of | +=========+======================+============+ | |||
EncryptedValue as described in Section 2.1 above, the description is | | TBD3 | id-regCtrl-algId | [thisRFC] | | |||
updated accordingly. | +---------+----------------------+------------+ | |||
| TBD4 | id-regCtrl-rsaKeyLen | [thisRFC] | | ||||
+---------+----------------------+------------+ | ||||
Table 4: Addition to the PKIX CRMF | ||||
Registration Controls registry | ||||
2.18. Update Appendix B - The Use of Revocation Passphrase | ||||
Appendix B of RFC 4210 [RFC4210] describes the use of the revocation | ||||
passphrase. As this document updates RFC 4210 [RFC4210] to utilize | ||||
the parent structure EncryptedKey instead of EncryptedValue as | ||||
described in Section 2.6 above, the description is updated | ||||
accordingly. | ||||
Replace the first bullet point of this section with the following | Replace the first bullet point of this section with the following | |||
text. | text. | |||
o The OID and value specified in Section 5.3.19.9 of RFC 4210 | * The OID and value specified in Section 5.3.19.9 MAY be sent in a | |||
[RFC4210] MAY be sent in a GenMsg message at any time, or MAY be | GenMsg message at any time, or MAY be sent in the generalInfo | |||
sent in the generalInfo field of the PKIHeader of any PKIMessage | field of the PKIHeader of any PKIMessage at any time. (In | |||
at any time. (In particular, the EncryptedKey as described in | particular, the EncryptedKey structure as described in section | |||
section 5.2.2 may be sent in the header of the certConf message | 5.2.2 may be sent in the header of the certConf message that | |||
that confirms acceptance of certificates requested in an | confirms acceptance of certificates requested in an initialization | |||
initialization request or certificate request message.) This | request or certificate request message.) This conveys a | |||
conveys a revocation passphrase chosen by the entity (i.e., for | revocation passphrase chosen by the entity to the relevant CA/RA. | |||
use of EnvelopedData this is in the decrypted bytes of | For use of EnvelopedData this is in the decrypted bytes of | |||
encryptedContent field and for use of EncryptedValue this is in | encryptedContent field and for use of EncryptedValue this is in | |||
the decrypted bytes of the encValue field) to the relevant CA/RA; | the decrypted bytes of the encValue field. Furthermore, the | |||
furthermore, the transfer is accomplished with appropriate | transfer is accomplished with appropriate confidentiality | |||
confidentiality characteristics. | characteristics. | |||
Replace the third bullet point of this section with the following | Replace the third bullet point of this section with the following | |||
text. | text. | |||
o When using EnvelopedData the localKeyId attribute as specified in | * When using EnvelopedData the localKeyId attribute as specified in | |||
RFC 2985 [RFC2985] and when using EncryptedValue the valueHint | RFC 2985 [RFC2985] and when using EncryptedValue the valueHint | |||
field MAY contain a key identifier (chosen by the entity, along | field MAY contain a key identifier (chosen by the entity, along | |||
with the passphrase itself) to assist in later retrieval of the | with the passphrase itself) to assist in later retrieval of the | |||
correct passphrase (e.g., when the revocation request is | correct passphrase (e.g., when the revocation request is | |||
constructed by the entity and received by the CA/RA). | constructed by the entity and received by the CA/RA). | |||
2.15. Update Appendix C - Request Message Behavioral Clarifications | 2.19. Update Appendix C - Request Message Behavioral Clarifications | |||
Appendix C of RFC 4210 [RFC4210] provides clarifications to the | Appendix C of RFC 4210 [RFC4210] provides clarifications to the | |||
request message behavior. As this document updates RFC 4210 | request message behavior. As this document updates RFC 4210 | |||
[RFC4210] to utilize the parent structure EncryptedKey instead of | [RFC4210] to utilize the parent structure EncryptedKey instead of | |||
EncryptedValue as described in Section 2.1 above, the description is | EncryptedValue as described in Section 2.6 above, the description is | |||
updated accordingly. | updated accordingly. | |||
Replace the note coming after the ASN.1 syntax of POPOPrivKey of this | Replace the comment within the ASN.1 syntax coming after the | |||
section with the following text. | definition of POPOPrivKey with the following text. | |||
-- ********** | -- ********** | |||
-- * the type of "thisMessage" is given as BIT STRING in RFC 4211 | -- * the type of "thisMessage" is given as BIT STRING in RFC 4211 | |||
-- * [RFC4211]; it should be "EncryptedKey" (in accordance with | -- * [RFC4211]; it should be "EncryptedKey" (in accordance with | |||
-- * Section 5.2.2 of this specification). Therefore, this document | -- * Section 5.2.2 of this specification). Therefore, this | |||
-- * makes the behavioral clarification of specifying that the | -- * document makes the behavioral clarification of specifying | |||
-- * contents of "thisMessage" MUST be encoded either as | -- * that the contents of "thisMessage" MUST be encoded either as | |||
-- * "EnvelopedData" or "EncryptedValue" (only for backward | -- * "EnvelopedData" or "EncryptedValue" (only for backward | |||
-- * compatibility) and then wrapped in a BIT STRING. This allows | -- * compatibility) and then wrapped in a BIT STRING. This | |||
-- * the necessary conveyance and protection of the private key | -- * allows the necessary conveyance and protection of the | |||
-- * while maintaining bits-on-the-wire compatibility with RFC 4211 | -- * private key while maintaining bits-on-the-wire compatibility | |||
-- * [RFC4211]. | -- * with RFC 4211 [RFC4211]. | |||
-- ********** | -- ********** | |||
2.16. Update Appendix D.2. - Algorithm Use Profile | 2.20. Update Appendix D.1. - General Rules for Interpretation of These | |||
Profiles | ||||
Appendix D.2 of RFC 4210 [RFC4210] provides a list of Algorithms | Appendix D.1 of RFC 4210 [RFC4210] provides general rules for | |||
interpretation of the PKI management messages profiles specified in | ||||
Appendix D and Appendix E of RFC 4210 [RFC4210]. This document | ||||
updates a sentence regarding the new protocol version cmp2021. | ||||
Replace the last sentence of the first paragraph of the section with | ||||
the following text. | ||||
Mandatory fields are not mentioned if they have an obvious value | ||||
(e.g., in this version of these profiles, pvno is always cmp2000). | ||||
2.21. Update Appendix D.2. - Algorithm Use Profile | ||||
Appendix D.2 of RFC 4210 [RFC4210] provides a list of algorithms that | ||||
implementations must support when claiming conformance with PKI | implementations must support when claiming conformance with PKI | |||
Management Message Profiles as specified in CMP Appendix D.2 | Management Message Profiles as specified in CMP Appendix D.2 | |||
[RFC4210]. | [RFC4210]. This document redirects to the new algorithm profile as | |||
specified in Appendix A.1 of CMP Algorithms | ||||
[I-D.ietf-lamps-cmp-algorithms]. | ||||
Replace the text of the section with the following text. | Replace the text of the section with the following text. | |||
For specifications of algorithms identifiers and respective | D.2. Algorithm Use Profile | |||
For specifications of algorithm identifiers and respective | ||||
conventions for conforming implementations, please refer to CMP | conventions for conforming implementations, please refer to CMP | |||
Algorithms Appendix A.1 [I-D.ietf-lamps-cmp-algorithms]. | Algorithms Appendix A.1 [I-D.ietf-lamps-cmp-algorithms]. | |||
2.17. Update Appendix D.4. - Initial Registration/Certification (Basic | 2.22. Update Appendix D.4. - Initial Registration/Certification (Basic | |||
Authenticated Scheme) | Authenticated Scheme) | |||
Appendix D.4 of RFC 4210 [RFC4210] provides the initial registration/ | Appendix D.4 of RFC 4210 [RFC4210] provides the initial registration/ | |||
certification scheme. This scheme shall continue to use | certification scheme. This scheme shall continue using | |||
EncryptedValue for backward compatibility reasons. | EncryptedValue for backward compatibility reasons. | |||
Replace the comment after the privateKey field of | Replace the comment after the privateKey field of | |||
crc[1].certifiedKeyPair in the syntax of the Initialization Response | crc[1].certifiedKeyPair in the syntax of the Initialization Response | |||
message with the following text. | message with the following text. | |||
-- see Appendix C, Request Message Behavioral Clarifications | -- see Appendix C, Request Message Behavioral Clarifications | |||
-- for backward compatibility reasons, use EncryptedValue | -- for backward compatibility reasons, use EncryptedValue | |||
3. Updates to RFC 6712 - HTTP Transfer for the Certificate Management | 3. Updates to RFC 6712 - HTTP Transfer for the Certificate Management | |||
Protocol (CMP) | Protocol (CMP) | |||
3.1. New Section 1.1. - Changes since RFC 6712 | 3.1. New Section 1.1. - Changes since RFC 6712 | |||
The following subsection describes feature updates to RFC 6712 | The following subsection describes feature updates to RFC 6712 | |||
[RFC6712]. They are always related to the base specification. Hence | [RFC6712]. They are related to the base specification. Hence | |||
references to the original sections in RFC 6712 [RFC6712] are used | references to the original sections in RFC 6712 [RFC6712] are used | |||
whenever possible. | whenever possible. | |||
Insert this section at the end of the current Section 1. | Insert this section at the end of the current Section 1. | |||
1.1 Changes since RFC 6712 | 1.1 Changes since RFC 6712 | |||
The following updates are made in draft-ietf-lamps-cmp-updates: | The following updates are made in [thisRFC]: | |||
o Add an HTTP URI discovery mechanism and extend the URI structure. | * Introduce the HTTP path '/.well-known/cmp'. | |||
* Extend the URI structure. | ||||
3.2. Replace Section 3.6. - HTTP Request-URI | 3.2. Replace Section 3.6. - HTTP Request-URI | |||
Section 3.6 of RFC 6712 [RFC6712] specifies the used HTTP URIs. This | Section 3.6 of RFC 6712 [RFC6712] specifies the used HTTP URIs. This | |||
document adds a discovery mechanism and extends the URIs. | document introduces the HTTP path '/.well-known/cmp' and extends the | |||
URIs. | ||||
Replace the text of the section with the following text. | Replace the text of the section with the following text. | |||
3.6. HTTP Request-URI | ||||
Each CMP server on a PKI management entity supporting HTTP or HTTPS | Each CMP server on a PKI management entity supporting HTTP or HTTPS | |||
transport MUST support the use of the path-prefix of '/.well-known/' | transport MUST support the use of the path prefix '/.well-known/' as | |||
as defined in RFC 8515 [RFC8515] and the registered name of 'cmp' to | defined in RFC 8615 [RFC8615] and the registered name 'cmp' to ease | |||
ease interworking in a multi-vendor environment. | interworking in a multi-vendor environment. | |||
The CMP client needs to be configured with sufficient information to | The CMP client needs to be configured with sufficient information to | |||
form the CMP server URI. This is at least the authority portion of | form the CMP server URI. This is at least the authority portion of | |||
the URI, e.g., 'www.example.com:80', or the full operational path of | the URI, e.g., 'www.example.com:80', or the full operation path | |||
the PKI management entity. Additional arbitrary label, e.g., | segment of the PKI management entity. Additionally, OPTIONAL path | |||
'profileLabel' and 'operationLabel', may be configured as a separate | segments MAY be added after the registered application name as part | |||
component or as part of the full operational path to provide further | of the full operation path to provide further distinction. A path | |||
information. The 'profileLabel' may support addressing multiple CAs | segment could for example support the differentiation of specific | |||
or certificate profiles and the 'operationLabel' may support | CAs, certificate profiles, or PKI management operations. A valid | |||
addressing PKI management operation specific endpoints. A valid full | full operation path segment can look like this: | |||
operational path can look like this: | ||||
1 http://www.example.com/.well-known/cmp | ||||
2 http://www.example.com/.well-known/cmp/operationLabel | ||||
3 http://www.example.com/.well-known/cmp/profileLabel | ||||
4 http://www.example.com/.well-known/cmp/profileLabel/operationLabel | ||||
The discovery of supported endpoints as defined above will provide | ||||
the information to the CMP client how to contact the PKI management | ||||
entity and, if available, how to request enrolment for a specific | ||||
certificate profile or revoke a certificate at a specific CA. | ||||
Querying the PKI management entity, the CMP client will get a list of | ||||
potential endpoints supported by the PKI management entity. | ||||
Performing a GET on "/.well-known/cmp" to the default port MUST | ||||
return a set of links to endpoints available from the CMP server. In | ||||
addition to the link also the expected format of the data object is | ||||
provided as content type (ct). | ||||
< TBD: It needs to be discussed if the discovery should be performed | ||||
using GET on "/.well-known/cmp" or GET on "/.well-known" only. > | ||||
The following provides an illustrative example for a PKI management | ||||
entity supporting various PKI management operations for various | ||||
certificate profiles and CAs. | ||||
Detailed message description: | ||||
REQ: GET /.well-known/cmp | ||||
RES: Content | http://www.example.com/.well-known/cmp | |||
</cmp/certprofile1/operation1>;ct=pkixcmp | http://www.example.com/.well-known/cmp/operationLabel | |||
</cmp/certprofile2/operation1>;ct=pkixcmp | http://www.example.com/.well-known/cmp/profileLabel | |||
</cmp/certprofile3/operation1>;ct=pkixcmp | http://www.example.com/.well-known/cmp/profileLabel/operationLabel | |||
</cmp/certprofile1/operation2>;ct=pkixcmp | ||||
</cmp/certprofile2/operation2>;ct=pkixcmp | ||||
</cmp/certprofile3/operation2>;ct=pkixcmp | ||||
</cmp/ca1/operation3>;ct=pkixcmp | ||||
</cmp/ca2/operation3>;ct=pkixcmp | ||||
3.3. Update Section 6. - IANA Considerations | 3.3. Update Section 6. - IANA Considerations | |||
Section 6 of RFC 6712 [RFC6712] contains the IANA Considerations of | Section 6 of RFC 6712 [RFC6712] contains the IANA Considerations of | |||
that document. As this document defines a new well-known URI, the | that document. As this document defines a new well-known URI, the | |||
IANA Considerations need to be updated accordingly. | IANA Considerations need to be updated accordingly. | |||
Add the following text between the first and second paragraph of the | Add the following text between the first and second paragraph of the | |||
section. | section. | |||
Within the well-known URI registry (see | In the well-known URI registry (see https://www.iana.org/assignments/ | |||
https://www.iana.org/assignments/well-known-uris/well-known- | well-known-uris/well-known-uris.xhtml#well-known-uris-1) as defined | |||
uris.xhtml#well-known-uris-1) as defined in RFC 8515 [RFC8515] the | in RFC 8615 [RFC8615] the following change has been performed. | |||
following change has been performed. | ||||
One new name entry has been added: | One new name entry has been added: | |||
URI suffix Change controller | +============+===================+ | |||
----------- ----------------- | | URI suffix | Change controller | | |||
cmp IETF | +============+===================+ | |||
| cmp | IETF | | ||||
+------------+-------------------+ | ||||
Table 5 | ||||
4. IANA Considerations | 4. IANA Considerations | |||
This document contains an update to the IANA Consideration sections | This document contains an update to the IANA Consideration sections | |||
to be added to [RFC4210] and [RFC6712]. | to be added to [RFC4210] and [RFC6712]. | |||
< TBD: This document updates the ASN.1 modules of RFC 4210 Appendix F | < TBD: This document updates the ASN.1 modules of RFC 4210 Appendix F | |||
[RFC4210] and RFC 5912 Section 9 [RFC5912]. New OIDs TBD1 and TBD2 | [RFC4210] and RFC 5912 Section 9 [RFC5912]. New OIDs TBD1 and TBD2 | |||
need to be registered to identify the updates ASN.1 modules. > | need to be registered to identify the updates ASN.1 modules. > | |||
< TBD: New OIDs TBD3 (id-regCtrl-algId) and TBD4 (id-regCtrl- | < TBD: New OIDs TBD3 (id-regCtrl-algId) and TBD4 (id-regCtrl- | |||
rsaKeyLen) need to be registered. > | rsaKeyLen) need to be registered. > | |||
< TBD: The existing description and information of id-kp-cmcRA and | < TBD: The existing description and information of id-kp-cmcRA and | |||
id-kp-cmcCA need to be updated to reflect their extended usage. > | id-kp-cmcCA need to be updated to reflect their extended usage. > | |||
5. Security Considerations | 5. Security Considerations | |||
No changes are made to the existing security considerations of | No changes are made to the existing security considerations of | |||
RFC 4210 [RFC4210] and RFC 6712 [RFC6712]. | RFC 4210 [RFC4210] and RFC 6712 [RFC6712]. | |||
skipping to change at page 19, line 18 ¶ | skipping to change at page 22, line 23 ¶ | |||
id-kp-cmcCA need to be updated to reflect their extended usage. > | id-kp-cmcCA need to be updated to reflect their extended usage. > | |||
5. Security Considerations | 5. Security Considerations | |||
No changes are made to the existing security considerations of | No changes are made to the existing security considerations of | |||
RFC 4210 [RFC4210] and RFC 6712 [RFC6712]. | RFC 4210 [RFC4210] and RFC 6712 [RFC6712]. | |||
6. Acknowledgements | 6. Acknowledgements | |||
Special thank goes to Jim Schaad for his guidance and the inspiration | Special thank goes to Jim Schaad for his guidance and the inspiration | |||
on structuring and writing this document I got from [RFC6402] that | on structuring and writing this document we got from [RFC6402] which | |||
updates CMC. Special thank also goes also to Russ Housley and Tomas | updates CMC. Special thank also goes also to Russ Housley and Tomas | |||
Gustavsson for reviewing and providing valuable suggestions on the | Gustavsson for reviewing and providing valuable suggestions on | |||
approvement of this document. | improving this document. | |||
I also like to thank all reviewers of this document for their | We also thank all reviewers of this document for their valuable | |||
valuable feedback. | feedback. | |||
7. References | 7. References | |||
7.1. Normative References | 7.1. Normative References | |||
[I-D.ietf-lamps-cmp-algorithms] | [I-D.ietf-lamps-cmp-algorithms] | |||
Brockhaus, H., "CMP Algorithms", draft-ietf-lamps-cmp- | Brockhaus, H., Aschauer, H., Ounsworth, M., and S. Mister, | |||
algorithms-00 (work in progress), October 2020. | "CMP Algorithms", Work in Progress, Internet-Draft, draft- | |||
ietf-lamps-cmp-algorithms-02, 20 January 2021, | ||||
<https://tools.ietf.org/html/draft-ietf-lamps-cmp- | ||||
algorithms-02>. | ||||
[I-D.ietf-lamps-crmf-update-algs] | ||||
Housley, R., "Algorithm Requirements Update to the | ||||
Internet X.509 Public Key Infrastructure Certificate | ||||
Request Message Format (CRMF)", Work in Progress, | ||||
Internet-Draft, draft-ietf-lamps-crmf-update-algs-02, 21 | ||||
December 2020, <https://tools.ietf.org/html/draft-ietf- | ||||
lamps-crmf-update-algs-02>. | ||||
[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>. | |||
[RFC2510] Adams, C. and S. Farrell, "Internet X.509 Public Key | ||||
Infrastructure Certificate Management Protocols", | ||||
RFC 2510, DOI 10.17487/RFC2510, March 1999, | ||||
<https://www.rfc-editor.org/info/rfc2510>. | ||||
[RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object | [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object | |||
Classes and Attribute Types Version 2.0", RFC 2985, | Classes and Attribute Types Version 2.0", RFC 2985, | |||
DOI 10.17487/RFC2985, November 2000, | DOI 10.17487/RFC2985, November 2000, | |||
<https://www.rfc-editor.org/info/rfc2985>. | <https://www.rfc-editor.org/info/rfc2985>. | |||
[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 21, line 5 ¶ | skipping to change at page 24, line 27 ¶ | |||
<https://www.rfc-editor.org/info/rfc6712>. | <https://www.rfc-editor.org/info/rfc6712>. | |||
[RFC7299] Housley, R., "Object Identifier Registry for the PKIX | [RFC7299] Housley, R., "Object Identifier Registry for the PKIX | |||
Working Group", RFC 7299, DOI 10.17487/RFC7299, July 2014, | Working Group", RFC 7299, DOI 10.17487/RFC7299, July 2014, | |||
<https://www.rfc-editor.org/info/rfc7299>. | <https://www.rfc-editor.org/info/rfc7299>. | |||
[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>. | |||
[RFC8515] Jethanandani, M. and M. Reina Ortega, "URN Namespace for | [RFC8615] Nottingham, M., "Well-Known Uniform Resource Identifiers | |||
ETSI Documents", RFC 8515, DOI 10.17487/RFC8515, February | (URIs)", RFC 8615, DOI 10.17487/RFC8615, May 2019, | |||
2019, <https://www.rfc-editor.org/info/rfc8515>. | <https://www.rfc-editor.org/info/rfc8615>. | |||
7.2. Informative References | 7.2. Informative References | |||
[I-D.ietf-lamps-lightweight-cmp-profile] | [I-D.ietf-lamps-lightweight-cmp-profile] | |||
Brockhaus, H., Fries, S., and D. Oheimb, "Lightweight CMP | Brockhaus, H., Fries, S., and D. V. Oheimb, "Lightweight | |||
Profile", draft-ietf-lamps-lightweight-cmp-profile-03 | CMP Profile", Work in Progress, Internet-Draft, draft- | |||
(work in progress), October 2020. | ietf-lamps-lightweight-cmp-profile-04, 2 November 2020, | |||
<https://tools.ietf.org/html/draft-ietf-lamps-lightweight- | ||||
cmp-profile-04>. | ||||
[IEEE802.1AR] | [IEEE.802.1AR_2018] | |||
IEEE, "802.1AR Secure Device Identifier", June 2018, | IEEE, "IEEE Standard for Local and metropolitan area | |||
<http://standards.ieee.org/findstds/standard/802.1AR- | networks - Secure Device Identity", IEEE 802.1AR-2018, | |||
2009.html>. | DOI 10.1109/IEEESTD.2018.8423794, 2 August 2018, | |||
<https://ieeexplore.ieee.org/document/8423794>. | ||||
Appendix A. ASN.1 Modules | Appendix A. ASN.1 Modules | |||
A.1. 1988 ASN.1 Module | A.1. 1988 ASN.1 Module | |||
This section contains the updated ASN.1 module for [RFC4210]. This | This section contains the updated ASN.1 module for [RFC4210]. This | |||
module replaces the module in Appendix F of that document. Although | module replaces the module in Appendix F of that document. Although | |||
a 2002 ASN.1 module is provided, this remains the normative module as | a 2002 ASN.1 module is provided, this 1988 ASN.1 module remains the | |||
per the policy of the PKIX working group. | normative module as per the policy of the PKIX working group. | |||
PKIXCMP {iso(1) identified-organization(3) | PKIXCMP {iso(1) identified-organization(3) | |||
dod(6) internet(1) security(5) mechanisms(5) pkix(7) | dod(6) internet(1) security(5) mechanisms(5) pkix(7) | |||
id-mod(0) id-mod-cmp2020-88(TBD1)} | id-mod(0) id-mod-cmp2021-88(TBD1)} | |||
DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= | |||
BEGIN | BEGIN | |||
-- EXPORTS ALL -- | -- EXPORTS ALL -- | |||
IMPORTS | IMPORTS | |||
Certificate, CertificateList, Extensions, AlgorithmIdentifier, | Certificate, CertificateList, Extensions, AlgorithmIdentifier, | |||
skipping to change at page 23, line 21 ¶ | skipping to change at page 27, line 4 ¶ | |||
PKIMessage ::= SEQUENCE { | PKIMessage ::= SEQUENCE { | |||
header PKIHeader, | header PKIHeader, | |||
body PKIBody, | body PKIBody, | |||
protection [0] PKIProtection OPTIONAL, | protection [0] PKIProtection OPTIONAL, | |||
extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate | extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate | |||
OPTIONAL | OPTIONAL | |||
} | } | |||
PKIMessages ::= SEQUENCE SIZE (1..MAX) OF PKIMessage | PKIMessages ::= SEQUENCE SIZE (1..MAX) OF PKIMessage | |||
PKIHeader ::= SEQUENCE { | PKIHeader ::= SEQUENCE { | |||
pvno INTEGER { cmp1999(1), cmp2000(2) }, | pvno INTEGER { cmp1999(1), cmp2000(2), | |||
cmp2021(3) }, | ||||
sender GeneralName, | sender GeneralName, | |||
-- identifies the sender | -- identifies the sender | |||
recipient GeneralName, | recipient GeneralName, | |||
-- identifies the intended recipient | -- identifies the intended recipient | |||
messageTime [0] GeneralizedTime OPTIONAL, | messageTime [0] GeneralizedTime OPTIONAL, | |||
-- time of production of this message (used when sender | -- time of production of this message (used when sender | |||
-- believes that the transport will be "suitable"; i.e., | -- believes that the transport will be "suitable"; i.e., | |||
-- that the time will still be meaningful upon receipt) | -- that the time will still be meaningful upon receipt) | |||
protectionAlg [1] AlgorithmIdentifier OPTIONAL, | protectionAlg [1] AlgorithmIdentifier OPTIONAL, | |||
-- algorithm used for calculation of protection bits | -- algorithm used for calculation of protection bits | |||
skipping to change at page 28, line 38 ¶ | skipping to change at page 32, line 22 ¶ | |||
CertRepMessage ::= SEQUENCE { | CertRepMessage ::= SEQUENCE { | |||
caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate | caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate | |||
OPTIONAL, | OPTIONAL, | |||
response SEQUENCE OF CertResponse | response SEQUENCE OF CertResponse | |||
} | } | |||
CertResponse ::= SEQUENCE { | CertResponse ::= SEQUENCE { | |||
certReqId INTEGER, | certReqId INTEGER, | |||
-- to match this response with corresponding request (a value | -- to match this response with corresponding request (a value | |||
-- of -1 is to be used if certReqId is not specified in the | -- of 0 is to be used if certReqId is not specified in the | |||
-- corresponding request) | -- corresponding request, which can only be a p10cr) | |||
status PKIStatusInfo, | status PKIStatusInfo, | |||
certifiedKeyPair CertifiedKeyPair OPTIONAL, | certifiedKeyPair CertifiedKeyPair OPTIONAL, | |||
rspInfo OCTET STRING OPTIONAL | rspInfo OCTET STRING OPTIONAL | |||
-- analogous to the id-regInfo-utf8Pairs string defined | -- analogous to the id-regInfo-utf8Pairs string defined | |||
-- for regInfo in CertReqMsg [CRMF] | -- for regInfo in CertReqMsg [CRMF] | |||
} | } | |||
CertifiedKeyPair ::= SEQUENCE { | CertifiedKeyPair ::= SEQUENCE { | |||
certOrEncCert CertOrEncCert, | certOrEncCert CertOrEncCert, | |||
privateKey [0] EncryptedKey OPTIONAL, | privateKey [0] EncryptedKey OPTIONAL, | |||
skipping to change at page 31, line 8 ¶ | skipping to change at page 34, line 39 ¶ | |||
-- signed with the new private root CA key | -- signed with the new private root CA key | |||
} | } | |||
-- Added in CMP Updates [thisRFC] | -- Added in CMP Updates [thisRFC] | |||
CertReqTemplateContent ::= SEQUENCE { | CertReqTemplateContent ::= SEQUENCE { | |||
certTemplate CertTemplate, | certTemplate CertTemplate, | |||
-- prefilled certTemplate structure elements | -- prefilled certTemplate structure elements | |||
-- The SubjectPublicKeyInfo field in the certTemplate MUST NOT | -- The SubjectPublicKeyInfo field in the certTemplate MUST NOT | |||
-- be used. | -- be used. | |||
controls Controls OPTIONAL | keySpec Controls OPTIONAL | |||
-- MAY be used to specify supported algorithms. | -- MAY be used to specify supported algorithms. | |||
-- Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue | -- Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue | |||
-- as specified in CRMF (RFC4211) | -- as specified in CRMF (RFC4211) | |||
} | } | |||
id-regCtrl-algId OBJECT IDENTIFIER ::= { id-regCtrl TBD3 } | id-regCtrl-algId OBJECT IDENTIFIER ::= { id-regCtrl TBD3 } | |||
AlgIdCtrl ::= AlgorithmIdentifier | AlgIdCtrl ::= AlgorithmIdentifier | |||
-- SHALL be used to specify suported algorithms other than RSA | -- SHALL be used to specify suported algorithms other than RSA | |||
id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl TBD4 } | id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl TBD4 } | |||
skipping to change at page 33, line 41 ¶ | skipping to change at page 37, line 22 ¶ | |||
-- id-kp-cmcCA OBJECT IDENTIFIER ::= { id-kp 27 } | -- id-kp-cmcCA OBJECT IDENTIFIER ::= { id-kp 27 } | |||
-- id-kp-cmcRA OBJECT IDENTIFIER ::= { id-kp 28 } | -- id-kp-cmcRA OBJECT IDENTIFIER ::= { id-kp 28 } | |||
id-kp-cmKGA OBJECT IDENTIFIER ::= { id-kp 32 } | id-kp-cmKGA OBJECT IDENTIFIER ::= { id-kp 32 } | |||
END -- of CMP module | END -- of CMP module | |||
A.2. 2002 ASN.1 Module | A.2. 2002 ASN.1 Module | |||
This section contains the updated 2002 ASN.1 module for [RFC5912]. | This section contains the updated 2002 ASN.1 module for [RFC5912]. | |||
This module replaces the module in Section 9 of that document. The | This module replaces the module in Section 9 of that document. The | |||
module contains those changes that were done to update to 2002 ASN.1 | module contains those changes to the normative ASN.1 module from | |||
standard done in [RFC5912] as well as changes made for this document. | RFC4210 Appendix F [RFC4210] that were to update to 2002 ASN.1 | |||
standard done in [RFC5912] as well as changes made in this document. | ||||
< TBD: Dose this document then also updates [RFC5912]? > | ||||
PKIXCMP-2009 | PKIXCMP-2009 | |||
{ iso(1) identified-organization(3) dod(6) internet(1) | { iso(1) identified-organization(3) dod(6) internet(1) | |||
security(5) mechanisms(5) pkix(7) id-mod(0) | security(5) mechanisms(5) pkix(7) id-mod(0) | |||
id-mod-cmp2020-02(TBD2) } | id-mod-cmp2021-02(TBD2) } | |||
DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= | |||
BEGIN | BEGIN | |||
IMPORTS | IMPORTS | |||
AttributeSet{}, Extensions{}, EXTENSION, ATTRIBUTE | AttributeSet{}, Extensions{}, EXTENSION, ATTRIBUTE | |||
FROM PKIX-CommonTypes-2009 | FROM PKIX-CommonTypes-2009 | |||
{iso(1) identified-organization(3) dod(6) internet(1) security(5) | {iso(1) identified-organization(3) dod(6) internet(1) security(5) | |||
mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57)} | mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57)} | |||
AlgorithmIdentifier{}, SIGNATURE-ALGORITHM, ALGORITHM, | AlgorithmIdentifier{}, SIGNATURE-ALGORITHM, ALGORITHM, | |||
DIGEST-ALGORITHM, MAC-ALGORITHM | DIGEST-ALGORITHM, MAC-ALGORITHM | |||
FROM AlgorithmInformation-2009 | FROM AlgorithmInformation-2009 | |||
{iso(1) identified-organization(3) dod(6) internet(1) security(5) | {iso(1) identified-organization(3) dod(6) internet(1) security(5) | |||
mechanisms(5) pkix(7) id-mod(0) | mechanisms(5) pkix(7) id-mod(0) | |||
skipping to change at page 35, line 43 ¶ | skipping to change at page 39, line 25 ¶ | |||
PKIMessage ::= SEQUENCE { | PKIMessage ::= SEQUENCE { | |||
header PKIHeader, | header PKIHeader, | |||
body PKIBody, | body PKIBody, | |||
protection [0] PKIProtection OPTIONAL, | protection [0] PKIProtection OPTIONAL, | |||
extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate | extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate | |||
OPTIONAL } | OPTIONAL } | |||
PKIMessages ::= SEQUENCE SIZE (1..MAX) OF PKIMessage | PKIMessages ::= SEQUENCE SIZE (1..MAX) OF PKIMessage | |||
PKIHeader ::= SEQUENCE { | PKIHeader ::= SEQUENCE { | |||
pvno INTEGER { cmp1999(1), cmp2000(2) }, | pvno INTEGER { cmp1999(1), cmp2000(2), | |||
cmp2012(3) }, | ||||
sender GeneralName, | sender GeneralName, | |||
-- identifies the sender | -- identifies the sender | |||
recipient GeneralName, | recipient GeneralName, | |||
-- identifies the intended recipient | -- identifies the intended recipient | |||
messageTime [0] GeneralizedTime OPTIONAL, | messageTime [0] GeneralizedTime OPTIONAL, | |||
-- time of production of this message (used when sender | -- time of production of this message (used when sender | |||
-- believes that the transport will be "suitable"; i.e., | -- believes that the transport will be "suitable"; i.e., | |||
-- that the time will still be meaningful upon receipt) | -- that the time will still be meaningful upon receipt) | |||
protectionAlg [1] AlgorithmIdentifier{ALGORITHM, {...}} | protectionAlg [1] AlgorithmIdentifier{ALGORITHM, {...}} | |||
OPTIONAL, | OPTIONAL, | |||
skipping to change at page 41, line 10 ¶ | skipping to change at page 44, line 43 ¶ | |||
-- corresponding Challenge. | -- corresponding Challenge. | |||
CertRepMessage ::= SEQUENCE { | CertRepMessage ::= SEQUENCE { | |||
caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate | caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate | |||
OPTIONAL, | OPTIONAL, | |||
response SEQUENCE OF CertResponse } | response SEQUENCE OF CertResponse } | |||
CertResponse ::= SEQUENCE { | CertResponse ::= SEQUENCE { | |||
certReqId INTEGER, | certReqId INTEGER, | |||
-- to match this response with the corresponding request (a value | -- to match this response with the corresponding request (a value | |||
-- of -1 is to be used if certReqId is not specified in the | -- of 0 is to be used if certReqId is not specified in the | |||
-- corresponding request) | -- corresponding request, which can only be a p10cr) | |||
status PKIStatusInfo, | status PKIStatusInfo, | |||
certifiedKeyPair CertifiedKeyPair OPTIONAL, | certifiedKeyPair CertifiedKeyPair OPTIONAL, | |||
rspInfo OCTET STRING OPTIONAL | rspInfo OCTET STRING OPTIONAL | |||
-- analogous to the id-regInfo-utf8Pairs string defined | -- analogous to the id-regInfo-utf8Pairs string defined | |||
-- for regInfo in CertReqMsg [RFC4211] | -- for regInfo in CertReqMsg [RFC4211] | |||
} | } | |||
CertifiedKeyPair ::= SEQUENCE { | CertifiedKeyPair ::= SEQUENCE { | |||
certOrEncCert CertOrEncCert, | certOrEncCert CertOrEncCert, | |||
privateKey [0] EncryptedKey OPTIONAL, | privateKey [0] EncryptedKey OPTIONAL, | |||
skipping to change at page 43, line 15 ¶ | skipping to change at page 46, line 46 ¶ | |||
-- signed with the new private root CA key | -- signed with the new private root CA key | |||
} | } | |||
-- Added in CMP Updates [thisRFC] | -- Added in CMP Updates [thisRFC] | |||
CertReqTemplateContent ::= SEQUENCE { | CertReqTemplateContent ::= SEQUENCE { | |||
certTemplate CertTemplate, | certTemplate CertTemplate, | |||
-- prefilled certTemplate structure elements | -- prefilled certTemplate structure elements | |||
-- The SubjectPublicKeyInfo field in the certTemplate MUST NOT | -- The SubjectPublicKeyInfo field in the certTemplate MUST NOT | |||
-- be used. | -- be used. | |||
controls Controls OPTIONAL | keySpec Controls OPTIONAL | |||
-- MAY be used to specify supported algorithms. | -- MAY be used to specify supported algorithms. | |||
-- Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue | -- Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue | |||
-- as specified in CRMF (RFC4211) | -- as specified in CRMF (RFC4211) | |||
} | } | |||
id-regCtrl-algId OBJECT IDENTIFIER ::= { id-regCtrl TBD3 } | id-regCtrl-algId OBJECT IDENTIFIER ::= { id-regCtrl TBD3 } | |||
AlgIdCtrl ::= AlgorithmIdentifier | AlgIdCtrl ::= AlgorithmIdentifier | |||
-- SHALL be used to specify suported algorithms other than RSA | -- SHALL be used to specify suported algorithms other than RSA | |||
id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl TBD4 } | id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl TBD4 } | |||
skipping to change at page 46, line 17 ¶ | skipping to change at page 49, line 48 ¶ | |||
-- id-kp-cmcRA OBJECT IDENTIFIER ::= { id-kp 28 } | -- id-kp-cmcRA OBJECT IDENTIFIER ::= { id-kp 28 } | |||
id-kp-cmKGA OBJECT IDENTIFIER ::= { id-kp 32 } | id-kp-cmKGA OBJECT IDENTIFIER ::= { id-kp 32 } | |||
END | END | |||
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 06 -> 07: | ||||
* Added David von Oheimb as co-author | ||||
* Changed to XML V3 | ||||
* Added Section 2.3 to enable a CMP protocol version number 3 in the | ||||
PKIHeader for cases where EnvelopedData is to be used (see thread | ||||
"Mail regarding draft-ietf-lamps-cmp-updates"). | ||||
* Added Section 2.4 to refer to [I-D.ietf-lamps-crmf-update-algs] | ||||
for the update of id-PasswordBasedMac for PKI message protection | ||||
using passwords or shared secrets. | ||||
* Updated Section 2.6 to introduce the protocol version number 3 to | ||||
properly indicate support of EnvelopedData instead of | ||||
EncryptedValue in case a transaction requires use of EnvelopedData | ||||
(see thread "Mail regarding draft-ietf-lamps-cmp-updates"). | ||||
* Update Section 2.14 to make the minimal changes to the respective | ||||
section in CMP more explicit. | ||||
* Added Sections 2.15 and 2.16 to address the new cmp2021 protocol | ||||
version in Section 7 Version Negotiation. | ||||
* Updated Section 2.17 to add new OIDs for id-regCtrl-algId and id- | ||||
regCtrl-rsaKeyLen for registration at IANA. | ||||
* Added Section 2.20 to update the general rules of interpretation | ||||
in Appendix D.1 regarding the new cmp2021 version. | ||||
* Added Section 2.21 to update the Algorithm Use Profile in | ||||
Appendix D.2 with the reference to the new CMP Algorithms document | ||||
as decided at IETF 108. | ||||
* Updates Section 3.1 to delete the description of a discovery | ||||
mechanism as decided at IETF 108. | ||||
* Various changes and corrections in wording. | ||||
From version 05 -> 06: | From version 05 -> 06: | |||
o Added the update of Appendix D.2 with the reference to the new CMP | * Added the update of Appendix D.2 with the reference to the new CMP | |||
Algorithms document as decided in IETF 108 | Algorithms document as decided in IETF 108 | |||
* Updated the IANA considerations to register new OIDs for id- | ||||
o Updated the IANA considerations to register new OIDs for id- | ||||
regCtrl-algId and d-regCtrl-rsaKeyLen. | regCtrl-algId and d-regCtrl-rsaKeyLen. | |||
* Minor changes and corrections | ||||
o Minor changes and corrections | ||||
From version 04 -> 05: | From version 04 -> 05: | |||
o Added Section 2.6 and Section 2.7 to clarify the usage of these | * Added Section 2.8 and Section 2.9 to clarify the usage of these | |||
general messages types with EC curves (see thread | general messages types with EC curves (see thread | |||
"AlgorithmIdentifier parameters NULL value - Re: InfoTypeAndValue | "AlgorithmIdentifier parameters NULL value - Re: InfoTypeAndValue | |||
in CMP headers") | in CMP headers") | |||
* Split former section 2.7 on adding 'CA Certificates', 'Root CA | ||||
o Split former section 2.7 on adding 'CA Certificates', 'Root CA | ||||
Certificates Update', and 'Certificate Request Template' in three | Certificates Update', and 'Certificate Request Template' in three | |||
separate sections for easier readability | separate sections for easier readability | |||
* Changed in Section 2.12 the ASN.1 syntax of CertReqTemplateValue | ||||
o Changed in Section 2.10 the ASN.1 syntax of CertReqTemplateValue | ||||
from using reaKeyLen to usage of controls as specified in CRMF | from using reaKeyLen to usage of controls as specified in CRMF | |||
Section 6 [RFC4211] (see thread "dtaft-ietf-lamps-cmp-updates and | Section 6 [RFC4211] (see thread "dtaft-ietf-lamps-cmp-updates and | |||
rsaKeyLen") | rsaKeyLen") | |||
o Updated the IANA considerations in Section 2.13 to introduce new | * Updated the IANA considerations in Section 2.17 to introduce new | |||
OID for id-regCtrl-algId and id-regCtrl-rsaKeyLen (see thread | OID for id-regCtrl-algId and id-regCtrl-rsaKeyLen (see thread | |||
"dtaft-ietf-lamps-cmp-updates and rsaKeyLen") | "dtaft-ietf-lamps-cmp-updates and rsaKeyLen") | |||
* Updated the IANA Considerations in and the Appendixes to introduce | ||||
o Updated the IANA Considerations in and the Appendixes to introduce | ||||
new OID for the updates ASN.1 modules (see thread "I-D Action: | new OID for the updates ASN.1 modules (see thread "I-D Action: | |||
draft-ietf-lamps-cmp-updates-04.txt") | draft-ietf-lamps-cmp-updates-04.txt") | |||
* Removed EncryptedValue from and added Controls to the list of | ||||
o Removed EncryptedValue from and added Controls to the list of | ||||
types imported from CRMF [RFC4211] in ASN.1 modules (see thread | types imported from CRMF [RFC4211] in ASN.1 modules (see thread | |||
"draft-ietf-lamps-cmp-updates and the ASN.1 modules") | "draft-ietf-lamps-cmp-updates and the ASN.1 modules") | |||
* Moved declaration of Rand out of the comment in ASN.1 modules (see | ||||
o Moved declaration of Rand out of the comment in ASN.1 modules (see | ||||
thread "draft-ietf-lamps-cmp-updates and the ASN.1 modules") | thread "draft-ietf-lamps-cmp-updates and the ASN.1 modules") | |||
* Minor changes and corrections | ||||
o Minor changes and corrections | ||||
From version 03 -> 04: | From version 03 -> 04: | |||
o Added Section 2.7 to introduce three new id-it IDs for uses in | * Added Section 2.7 to introduce three new id-it IDs for uses in | |||
general messages as discussed (see thread "draft-ietf-lamps-cmp- | general messages as discussed (see thread "draft-ietf-lamps-cmp- | |||
updates add section to introduce id-it-caCerts, id-it- | updates add section to introduce id-it-caCerts, id-it- | |||
rootCaKeyUpdate, and id-it-certReqTemplate") | rootCaKeyUpdate, and id-it-certReqTemplate") | |||
* Added the new id-it IDs and the /.well-known/cmp to the IANA | ||||
o Added the new id-it IDs and the /.well-known/cmp to the IANA | ||||
Considerations of [RFC4210] in Section 2.9 | Considerations of [RFC4210] in Section 2.9 | |||
* Updated the IANA Considerations of [RFC4210] in Section 2.18 | ||||
o Updated the IANA Considerations of [RFC4210] in Section 2.14 | * Some changes in wording on Section 3 due to review comments from | |||
o Some changes in wording on Section 3 due to review comments from | ||||
Martin Peylo | Martin Peylo | |||
From version 02 -> 03: | From version 02 -> 03: | |||
o Added a ToDo on aligning with the CMP Algorithms draft that will | * Added a ToDo on aligning with the CMP Algorithms draft that will | |||
be set up as decided in IETF 108 | be set up as decided in IETF 108 | |||
* Updated section on Encrypted Values in Section 2.6 to add the | ||||
o Updated section on Encrypted Values in Section 2.4 to add the | ||||
AsymmetricKey Package structure to transport a newly generated | AsymmetricKey Package structure to transport a newly generated | |||
private key as decided in IETF 108 | private key as decided in IETF 108 | |||
* Updated the IANA Considerations of [RFC4210] in Section 2.18 | ||||
o Updated the IANA Considerations of [RFC4210] in Section 2.14 | * Added the pre-registered OID in Section 2.18 and the ASN.1 module | |||
* Added Section 3 to document the changes to RFC 6712 [RFC6712] | ||||
o Added the pre-registered OID in Section 2.14 and the ASN.1 module | ||||
o Added Section 3 to document the changes to RFC 6712 [RFC6712] | ||||
regarding URI discovery and using the path-prefix of '/.well- | regarding URI discovery and using the path-prefix of '/.well- | |||
known/' as discussed in IETF 108 | known/' as discussed in IETF 108 | |||
* Updated the IANA Considerations section | ||||
o Updated the IANA Considerations section | * Added a complete updated ASN.1 module in 1988 syntax to update | |||
o Added a complete updated ASN.1 module in 1988 syntax to update | ||||
Appendix F of [RFC4210] and a complete updated ASN.1 module in | Appendix F of [RFC4210] and a complete updated ASN.1 module in | |||
2002 syntax to update Section 9 of [RFC5912] | 2002 syntax to update Section 9 of [RFC5912] | |||
* Minor changes in wording | ||||
o Minor changes in wording | ||||
From version 01 -> 02: | From version 01 -> 02: | |||
o Updated section on EKU OIDs in Section 2.2 as decided in IETF 107 | * Updated section on EKU OIDs in Section 2.2 as decided in IETF 107 | |||
* Changed from symmetric key-encryption to password-based key | ||||
o Changed from symmetric key-encryption to password-based key | management technique in Section 2.6 as discussed with Russ and Jim | |||
management technique in Section 2.4 as discussed with Russ and Jim | ||||
on the mailing list | on the mailing list | |||
* Defined the attribute containing the key identifier for the | ||||
o Defined the attribute containing the key identifier for the | revocation passphrase in Section 2.18 | |||
revocation passphrase in Section 2.14 | * Moved the change history to the Appendix | |||
o Moved the change history to the Appendix | ||||
From version 00 -> 01: | From version 00 -> 01: | |||
o Minor changes in wording | * Minor changes in wording | |||
From draft-brockhaus-lamps-cmp-updates-03 -> draft-ietf-lamps-cmp- | From draft-brockhaus-lamps-cmp-updates-03 -> draft-ietf-lamps-cmp- | |||
updates-00: | updates-00: | |||
o Changes required to reflect WG adoption | * Changes required to reflect WG adoption | |||
From version 02 -> 03: | From version 02 -> 03: | |||
o Added some clarification in Section 2.1 | * Added some clarification in Section 2.1 | |||
From version 01 -> 02: | From version 01 -> 02: | |||
o Added clarification to section on multiple protection | * Added clarification to section on multiple protection | |||
* Added clarification on new EKUs after some exchange with Tomas | ||||
o Added clarification on new EKUs after some exchange with Tomas | ||||
Gustavsson | Gustavsson | |||
* Reused OIDs from RFC 6402 [RFC6402] as suggested by Sean Turner at | ||||
o Reused OIDs from RFC 6402 [RFC6402] as suggested by Sean Turner at | ||||
IETF 106 | IETF 106 | |||
* Added clarification on the field containing the key identifier for | ||||
o Added clarification on the field containing the key identifier for | ||||
a revocation passphrase | a revocation passphrase | |||
* Minor changes in wording | ||||
o Minor changes in wording | ||||
From version 00 -> 01: | From version 00 -> 01: | |||
o Added a section describing the new extended key usages | * Added a section describing the new extended key usages | |||
* Completed the section on changes to the specification of encrypted | ||||
o Completed the section on changes to the specification of encrypted | ||||
values | values | |||
* Added a section on clarification to Appendix D.4 | ||||
o Added a section on clarification to Appendix D.4 | * Minor generalization in RFC 4210 [RFC4210] Sections 5.1.3.4 and | |||
o Minor generalization in RFC 4210 [RFC4210] Sections 5.1.3.4 and | ||||
5.3.22 | 5.3.22 | |||
* Minor changes in wording | ||||
o Minor changes in wording | Authors' Addresses | |||
Author's Address | ||||
Hendrik Brockhaus | Hendrik Brockhaus | |||
Siemens AG | Siemens AG | |||
Email: hendrik.brockhaus@siemens.com | Email: hendrik.brockhaus@siemens.com | |||
David von Oheimb | ||||
Siemens AG | ||||
Email: david.von.oheimb@siemens.com | ||||
End of changes. 205 change blocks. | ||||
559 lines changed or deleted | 704 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/ |