draft-ietf-lamps-cmp-updates-13.txt | draft-ietf-lamps-cmp-updates-14.txt | |||
---|---|---|---|---|
LAMPS Working Group H. Brockhaus, Ed. | LAMPS Working Group H. Brockhaus, Ed. | |||
Internet-Draft D. von Oheimb | Internet-Draft D. von Oheimb | |||
Updates: 4210, 5912, 6712 (if approved) Siemens | Updates: 4210, 5912, 6712 (if approved) Siemens | |||
Intended status: Standards Track J. Gray | Intended status: Standards Track J. Gray | |||
Expires: 28 April 2022 Entrust | Expires: 23 May 2022 Entrust | |||
25 October 2021 | 19 November 2021 | |||
Certificate Management Protocol (CMP) Updates | Certificate Management Protocol (CMP) Updates | |||
draft-ietf-lamps-cmp-updates-13 | draft-ietf-lamps-cmp-updates-14 | |||
Abstract | Abstract | |||
This document contains a set of updates to the syntax and transfer of | This document contains a set of updates to the syntax and transfer of | |||
Certificate Management Protocol (CMP) version 2. This document | Certificate Management Protocol (CMP) version 2. This document | |||
updates RFC 4210, RFC 5912, and RFC 6712. | updates RFC 4210, RFC 5912, and RFC 6712. | |||
The aspects of CMP updated in this document are using EnvelopedData | The aspects of CMP updated in this document are using EnvelopedData | |||
instead of EncryptedValue, clarifying the handling of p10cr messages, | instead of EncryptedValue, clarifying the handling of p10cr messages, | |||
improving the crypto agility, as well as adding new general message | improving the crypto agility, as well as adding new general message | |||
skipping to change at page 1, line 49 ¶ | skipping to change at page 1, line 49 ¶ | |||
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 28 April 2022. | This Internet-Draft will expire on 23 May 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
extracted from this document must include Simplified BSD License text | extracted from this document must include Revised BSD License text as | |||
as described in Section 4.e of the Trust Legal Provisions and are | described in Section 4.e of the Trust Legal Provisions and are | |||
provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Convention and Terminology . . . . . . . . . . . . . . . 4 | 1.1. Convention and Terminology . . . . . . . . . . . . . . . 4 | |||
2. Updates to RFC 4210 - Certificate Management Protocol | 2. Updates to RFC 4210 - Certificate Management Protocol | |||
(CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | (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 . . . . . . . . . . 5 | 2.2. New Section 4.5 - Extended Key Usage . . . . . . . . . . 5 | |||
2.3. Update Section 5.1.1. - PKI Message Header . . . . . . . 7 | 2.3. Update Section 5.1.1. - PKI Message Header . . . . . . . 7 | |||
2.4. New Section 5.1.1.4. - CertProfile . . . . . . . . . . . 7 | 2.4. New Section 5.1.1.3. - CertProfile . . . . . . . . . . . 7 | |||
2.5. Update Section 5.1.3.1. - Shared Secret Information . . . 8 | 2.5. Update Section 5.1.3.1. - Shared Secret Information . . . 8 | |||
2.6. Replace Section 5.1.3.4 - Multiple Protection . . . . . . 8 | 2.6. Replace Section 5.1.3.4 - Multiple Protection . . . . . . 8 | |||
2.7. Replace Section 5.2.2. - Encrypted Values . . . . . . . . 9 | 2.7. Replace Section 5.2.2. - Encrypted Values . . . . . . . . 9 | |||
2.8. Update Section 5.3.4. - Certification Response . . . . . 11 | 2.8. Update Section 5.3.4. - Certification Response . . . . . 11 | |||
2.9. Update Section 5.3.18. - Certificate Confirmation | 2.9. Update Section 5.3.18. - Certificate Confirmation | |||
Content . . . . . . . . . . . . . . . . . . . . . . . . 12 | Content . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
2.10. Update Section 5.3.19.2. - Signing Key Pair Types . . . . 13 | 2.10. Update Section 5.3.19.2. - Signing Key Pair Types . . . . 13 | |||
2.11. Update Section 5.3.19.3. - Encryption/Key Agreement Key | 2.11. Update Section 5.3.19.3. - Encryption/Key Agreement Key | |||
Pair Types . . . . . . . . . . . . . . . . . . . . . . . 13 | Pair Types . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
2.12. Replace Section 5.3.19.9. - Revocation Passphrase . . . . 13 | 2.12. Replace Section 5.3.19.9. - Revocation Passphrase . . . . 13 | |||
2.13. New Section 5.3.19.14 - CA Certificates . . . . . . . . . 14 | 2.13. New Section 5.3.19.14 - CA Certificates . . . . . . . . . 14 | |||
2.14. New Section 5.3.19.15 - Root CA Certificate Update . . . 14 | 2.14. New Section 5.3.19.15 - Root CA Certificate Update . . . 14 | |||
2.15. New Section 5.3.19.16 - Certificate Request Template . . 15 | 2.15. New Section 5.3.19.16 - Certificate Request Template . . 15 | |||
2.16. New Section 5.3.19.17 - CRL update retrieval . . . . . . 17 | 2.16. New Section 5.3.19.17 - CRL update retrieval . . . . . . 16 | |||
2.17. Update Section 5.3.21 - Error Message Content . . . . . . 17 | 2.17. Update Section 5.3.21 - Error Message Content . . . . . . 17 | |||
2.18. Replace Section 5.3.22 - Polling Request and Response . . 18 | 2.18. Replace Section 5.3.22 - Polling Request and Response . . 17 | |||
2.19. Update Section 7 - Version Negotiation . . . . . . . . . 23 | 2.19. Update Section 7 - Version Negotiation . . . . . . . . . 22 | |||
2.20. Update Section 7.1.1. - Clients Talking to RFC 2510 | 2.20. Update Section 7.1.1. - Clients Talking to RFC 2510 | |||
Servers . . . . . . . . . . . . . . . . . . . . . . . . 25 | Servers . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
2.21. Add Section 8.4 - Private keys for certificate signing and | 2.21. Add Section 8.4 - Private keys for certificate signing and | |||
CMP message protection . . . . . . . . . . . . . . . . . 25 | CMP message protection . . . . . . . . . . . . . . . . . 24 | |||
2.22. Add Section 8.5 - Entropy of random numbers, key pairs, and | 2.22. Add Section 8.5 - Entropy of random numbers, key pairs, and | |||
shared secret information . . . . . . . . . . . . . . . 25 | shared secret information . . . . . . . . . . . . . . . 24 | |||
2.23. Add Section 8.6 - Trust anchor provisioning using | 2.23. Add Section 8.6 - Trust anchor provisioning using CMP | |||
caPubs . . . . . . . . . . . . . . . . . . . . . . . . . 26 | messages . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
2.24. Update Section 9 - IANA Considerations . . . . . . . . . 26 | 2.24. Update Section 9 - IANA Considerations . . . . . . . . . 26 | |||
2.25. Update Appendix B - The Use of Revocation Passphrase . . 28 | 2.25. Update Appendix B - The Use of Revocation Passphrase . . 27 | |||
2.26. Update Appendix C - Request Message Behavioral | 2.26. Update Appendix C - Request Message Behavioral | |||
Clarifications . . . . . . . . . . . . . . . . . . . . . 29 | Clarifications . . . . . . . . . . . . . . . . . . . . . 28 | |||
2.27. Update Appendix D.1. - General Rules for Interpretation of | 2.27. Update Appendix D.1. - General Rules for Interpretation of | |||
These Profiles . . . . . . . . . . . . . . . . . . . . . 30 | These Profiles . . . . . . . . . . . . . . . . . . . . . 29 | |||
2.28. Update Appendix D.2. - Algorithm Use Profile . . . . . . 31 | 2.28. Update Appendix D.2. - Algorithm Use Profile . . . . . . 29 | |||
2.29. Update Appendix D.4. - Initial Registration/Certification | 2.29. Update Appendix D.4. - Initial Registration/Certification | |||
(Basic Authenticated Scheme) . . . . . . . . . . . . . . 31 | (Basic Authenticated Scheme) . . . . . . . . . . . . . . 30 | |||
3. Updates to RFC 6712 - HTTP Transfer for the Certificate | 3. Updates to RFC 6712 - HTTP Transfer for the Certificate | |||
Management Protocol (CMP) . . . . . . . . . . . . . . . . 31 | Management Protocol (CMP) . . . . . . . . . . . . . . . . 30 | |||
3.1. Update Section 1. - Introduction . . . . . . . . . . . . 31 | 3.1. Update Section 1. - Introduction . . . . . . . . . . . . 30 | |||
3.2. New Section 1.1. - Changes since RFC 6712 . . . . . . . . 32 | 3.2. New Section 1.1. - Changes since RFC 6712 . . . . . . . . 30 | |||
3.3. Replace Section 3.6. - HTTP Request-URI . . . . . . . . . 32 | 3.3. Replace Section 3.6. - HTTP Request-URI . . . . . . . . . 31 | |||
3.4. Update Section 6. - IANA Considerations . . . . . . . . . 33 | 3.4. Update Section 6. - IANA Considerations . . . . . . . . . 31 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 34 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 32 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 34 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 34 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 33 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 36 | 7.2. Informative References . . . . . . . . . . . . . . . . . 35 | |||
Appendix A. ASN.1 Modules . . . . . . . . . . . . . . . . . . . 37 | Appendix A. ASN.1 Modules . . . . . . . . . . . . . . . . . . . 35 | |||
A.1. 1988 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 37 | A.1. 1988 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 35 | |||
A.2. 2002 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 50 | A.2. 2002 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 49 | |||
Appendix B. History of changes . . . . . . . . . . . . . . . . . 64 | Appendix B. History of changes . . . . . . . . . . . . . . . . . 62 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 69 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 67 | |||
1. Introduction | 1. Introduction | |||
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. | |||
skipping to change at page 7, line 35 ¶ | skipping to change at page 7, line 37 ¶ | |||
OPTIONAL, | OPTIONAL, | |||
senderKID [2] KeyIdentifier OPTIONAL, | senderKID [2] KeyIdentifier OPTIONAL, | |||
recipKID [3] KeyIdentifier OPTIONAL, | recipKID [3] KeyIdentifier OPTIONAL, | |||
transactionID [4] OCTET STRING OPTIONAL, | transactionID [4] OCTET STRING OPTIONAL, | |||
senderNonce [5] OCTET STRING OPTIONAL, | senderNonce [5] OCTET STRING OPTIONAL, | |||
recipNonce [6] OCTET STRING OPTIONAL, | recipNonce [6] OCTET STRING OPTIONAL, | |||
freeText [7] PKIFreeText OPTIONAL, | freeText [7] PKIFreeText OPTIONAL, | |||
generalInfo [8] SEQUENCE SIZE (1..MAX) OF | generalInfo [8] SEQUENCE SIZE (1..MAX) OF | |||
InfoTypeAndValue OPTIONAL | InfoTypeAndValue OPTIONAL | |||
} | } | |||
PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String | PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String | |||
The usage of pvno values is described in Section 7. | The usage of pvno values is described in Section 7. | |||
2.4. New Section 5.1.1.4. - CertProfile | 2.4. New Section 5.1.1.3. - CertProfile | |||
Section 5.1.1 of RFC 4210 [RFC4210] defines the PKIHeader and id-it | Section 5.1.1 of RFC 4210 [RFC4210] defines the PKIHeader and id-it | |||
OIDs to be used in the generalInfo field. This section introduces | OIDs to be used in the generalInfo field. This section introduces | |||
id-it-certProfile. | id-it-certProfile. | |||
Insert this section after Section 5.1.1.3: | Insert this section after Section 5.1.1.2: | |||
5.1.1.4. CertProfile | ||||
5.1.1.3. CertProfile | ||||
This is used by the EE to indicate specific certificate profiles, | This is used by the EE to indicate specific certificate profiles, | |||
e.g., when requesting a new certificate or a certificate request | e.g., when requesting a new certificate or a certificate request | |||
template, see Section 5.3.19.16. | template, see Section 5.3.19.16. | |||
id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | |||
CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF UTF8String | CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF UTF8String | |||
< TBD: The authors would prefer re-ordering the newly requested OIDs, | ||||
if possible. See also IANA Consideration. | ||||
+---------+-------------------------+------------+ | ||||
| 20 | id-it-certProfile | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
> | ||||
When used in an ir/cr/kur/genm, the value MUST NOT contain more | When used in an ir/cr/kur/genm, the value MUST NOT contain more | |||
elements than the number of CertReqMsg or InfoTypeAndValue elements | elements than the number of CertReqMsg or InfoTypeAndValue elements | |||
and the certificate profile names refer to the elements in the given | and the certificate profile names refer to the elements in the given | |||
order. | order. | |||
When used in a p10cr, the value MUST NOT contain multiple certificate | When used in a p10cr, the value MUST NOT contain multiple certificate | |||
profile names. | profile names. | |||
2.5. Update Section 5.1.3.1. - Shared Secret Information | 2.5. Update Section 5.1.3.1. - Shared Secret Information | |||
skipping to change at page 14, line 23 ¶ | skipping to change at page 14, line 23 ¶ | |||
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.13. New Section 5.3.19.14 - CA Certificates | 2.13. New Section 5.3.19.14 - CA Certificates | |||
The following subsection describes PKI general messages using id-it- | The following subsection describes PKI general messages using id-it- | |||
caCerts. The use is specified in Lightweight CMP Profile Section 4.3 | caCerts. The intended use is specified in Lightweight CMP Profile | |||
[I-D.ietf-lamps-lightweight-cmp-profile]. | Section 4.3 [I-D.ietf-lamps-lightweight-cmp-profile]. | |||
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 current CA intermediate and | This MAY be used by the client to get CA certificates. | |||
issuing CA certificates. | ||||
GenMsg: {id-it 17}, < absent > | GenMsg: {id-it 17}, < absent > | |||
GenRep: {id-it 17}, SEQUENCE SIZE (1..MAX) OF | GenRep: {id-it 17}, SEQUENCE SIZE (1..MAX) OF | |||
CMPCertificate | < absent > | CMPCertificate | < absent > | |||
2.14. New Section 5.3.19.15 - Root CA Certificate Update | 2.14. New Section 5.3.19.15 - Root CA Certificate Update | |||
The following subsection describes PKI general messages using id-it- | The following subsection describes PKI general messages using id-it- | |||
oldTrustAnchor and id-it-trustAnchorUpdate. The use is specified in | rootCaCert and id-it-rootCaKeyUpdate. The use is specified in | |||
Lightweight CMP Profile Section 4.3 | Lightweight CMP Profile Section 4.3 | |||
[I-D.ietf-lamps-lightweight-cmp-profile]. | [I-D.ietf-lamps-lightweight-cmp-profile]. | |||
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 Certificate Update | 5.3.19.15. Root CA Certificate Update | |||
This MAY be used by the client to get an update of a trust anchor, | This MAY be used by the client to get an update of a root CA | |||
which usually is provided in the form of a root CA Certificate. In | certificate, which is provided in the body of the request message. | |||
contrast to the ckuann message this approach follows the request/ | In contrast to the ckuann message this approach follows the request/ | |||
response model. | response model. | |||
The EE SHOULD reference its current trust anchor in a TrustAnchor | The EE SHOULD reference its current trust anchor in a TrustAnchor | |||
structure in the request body, giving the root CA certificate if | structure in the request body, giving the root CA certificate if | |||
available, otherwise the public key value of the trust anchor. | available, otherwise the public key value of the trust anchor. | |||
GenMsg: {id-it 20}, OldTrustAnchor | < absent > | GenMsg: {id-it 20}, RootCaCertValue | < absent > | |||
GenRep: {id-it 18}, TrustAnchorUpdate | < absent > | GenRep: {id-it 18}, RootCaKeyUpdateContent | < absent > | |||
OldTrustAnchor ::= CHOICE { | RootCaCertValue ::= CMPCertificate | |||
certificate CMPCertificate, | ||||
publicKey BIT STRING } | ||||
TrustAnchorUpdate ::= SEQUENCE { | RootCaKeyUpdateValue ::= RootCaKeyUpdateContent | |||
RootCaKeyUpdateContent ::= SEQUENCE { | ||||
newWithNew CMPCertificate, | newWithNew CMPCertificate, | |||
newWithOld [0] CMPCertificate OPTIONAL, | newWithOld [0] CMPCertificate OPTIONAL, | |||
oldWithNew [1] CMPCertificate OPTIONAL } | oldWithNew [1] CMPCertificate OPTIONAL | |||
} | ||||
< TBD: Rename OIDs | ||||
id-it-rootCaCert --> id-it-oldTrustAnchor | ||||
id-it-rootCaKeyUpdate --> id-it-trustAnchorUpdate | ||||
The authors would prefer re-ordering the newly requested OIDs, | ||||
if possible. See also IANA Consideration. | ||||
+---------+-------------------------+------------+ | ||||
| 18 | id-it-oldTrustAnchor | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| 19 | id-it-trustAnchorUpdate | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
> | ||||
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.15. New Section 5.3.19.16 - Certificate Request Template | 2.15. New Section 5.3.19.16 - Certificate Request Template | |||
The following subsection introduces the PKI general message using id- | The following subsection introduces the PKI general message using id- | |||
it-certReqTemplate. Details are specified in the Lightweight CMP | it-certReqTemplate. Details are specified in the Lightweight CMP | |||
Profile Section 4.3 [I-D.ietf-lamps-lightweight-cmp-profile]. | Profile Section 4.3 [I-D.ietf-lamps-lightweight-cmp-profile]. | |||
skipping to change at page 16, line 40 ¶ | skipping to change at page 16, line 28 ¶ | |||
mechanisms(5) pkix(7) pkip(5) regCtrl(1) 11 } | mechanisms(5) pkix(7) pkip(5) regCtrl(1) 11 } | |||
AlgIdCtrl ::= AlgorithmIdentifier{ALGORITHM, {...}} | AlgIdCtrl ::= AlgorithmIdentifier{ALGORITHM, {...}} | |||
id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { iso(1) | id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { iso(1) | |||
identified-organization(3) dod(6) internet(1) security(5) | identified-organization(3) dod(6) internet(1) security(5) | |||
mechanisms(5) pkix(7) pkip(5) regCtrl(1) 12 } | mechanisms(5) pkix(7) pkip(5) regCtrl(1) 12 } | |||
RsaKeyLenCtrl ::= INTEGER (1..MAX) | RsaKeyLenCtrl ::= INTEGER (1..MAX) | |||
< TBD: The authors would prefer re-ordering the newly requested OIDs, | ||||
if possible. See also IANA Consideration. | ||||
+---------+-------------------------+------------+ | ||||
| 21 | id-it-certReqTemplate | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
> | ||||
The CertReqTemplateValue contains the prefilled certTemplate to be | The CertReqTemplateValue contains the prefilled certTemplate to be | |||
used for a future certificate request. The publicKey field in the | used for a future certificate request. The publicKey field in the | |||
certTemplate MUST NOT be used. In case the PKI management entity | certTemplate MUST NOT be used. In case the PKI management entity | |||
wishes to specify supported public-key algorithms, the keySpec field | wishes to specify supported public-key algorithms, the keySpec field | |||
MUST be used. One AttributeTypeAndValue per supported algorithm or | MUST be used. One AttributeTypeAndValue per supported algorithm or | |||
RSA key length MUST be used. | RSA key 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.16. New Section 5.3.19.17 - CRL update retrieval | 2.16. New Section 5.3.19.17 - CRL update retrieval | |||
skipping to change at page 17, line 42 ¶ | skipping to change at page 17, line 17 ¶ | |||
CertificateList | < absent > | CertificateList | < absent > | |||
CRLSource ::= CHOICE { | CRLSource ::= CHOICE { | |||
dpn [0] DistributionPointName, | dpn [0] DistributionPointName, | |||
issuer [1] GeneralNames } | issuer [1] GeneralNames } | |||
CRLStatus ::= SEQUENCE { | CRLStatus ::= SEQUENCE { | |||
source CRLSource, | source CRLSource, | |||
thisUpdate Time OPTIONAL } | thisUpdate Time OPTIONAL } | |||
< TBD: Request OID for id-it-crlStatusList (TBD1) and id-it-crls | < TBD: Add requested OIDs for id-it-crlStatusList (TBD1) and id-it- | |||
(TBD2). > | crls (TBD2). > | |||
2.17. Update Section 5.3.21 - Error Message Content | 2.17. Update Section 5.3.21 - Error Message Content | |||
Section 5.3.21 of RFC 4210 [RFC4210] describes the regular use of | Section 5.3.21 of RFC 4210 [RFC4210] describes the regular use of | |||
error messages. This document adds a use by a PKI management entity | error messages. This document adds a use by a PKI management entity | |||
to initiate delayed delivery in response to certConf, rr, and genm | to initiate delayed delivery in response to certConf, rr, and genm | |||
requests and to error messages. | requests and to error messages. | |||
Replace the first sentence of the first paragraph with the following | Replace the first sentence of the first paragraph with the following | |||
one: | one: | |||
skipping to change at page 26, line 6 ¶ | skipping to change at page 25, line 6 ¶ | |||
The following subsection addresses the risk arising from low entropy | The following subsection addresses the risk arising from low entropy | |||
of random numbers, asymmetric keys, and shared secret information. | of random numbers, asymmetric keys, and shared secret information. | |||
8.5. Entropy of random numbers, key pairs, and shared secret | 8.5. Entropy of random numbers, key pairs, and shared secret | |||
information | information | |||
For requirements regarding proper random number and key generation | For requirements regarding proper random number and key generation | |||
please refer to [RFC4086]. | please refer to [RFC4086]. | |||
For the case of centrally generated key pairs, the entropy of the | For the case of centrally generated key pairs, the entropy of the | |||
shared secret information SHALL not be less than the security | shared secret information SHALL NOT be less than the security | |||
strength of the centrally generated key pair; if the shared secret | strength of the centrally generated key pair; if the shared secret | |||
information is re-used for different key pairs, the entropy and the | information is re-used for different key pairs, the entropy and the | |||
security of the underlying cryptographic mechanisms SHOULD exceed the | security of the underlying cryptographic mechanisms SHOULD exceed the | |||
security strength of the key pairs. | security strength of the key pairs. | |||
For the case of a PKI management operation that delivers a new trust | For the case of a PKI management operation that delivers a new trust | |||
anchor (e.g., a root CA certificate) using caPubs, (a) that is not | anchor (e.g., a root CA certificate) using caPubs, (a) that is not | |||
concluded in a timely manner or (b) where the shared secret | concluded in a timely manner or (b) where the shared secret | |||
information is re-used for several key management operations, the | information is re-used for several key management operations, the | |||
entropy of the shared secret information SHALL not be less than the | entropy of the shared secret information SHALL NOT be less than the | |||
security strength of the key material being managed by the operation. | security strength of the key material being managed by the operation. | |||
For other cases it is recommended to (a) either use a shared secret | For other cases it is recommended to (a) either use a shared secret | |||
information of possibly low entropy (e.g., a password) only for a | information of possibly low entropy (e.g., a password) only for a | |||
single PKI management operation or (b) use a shared secret | single PKI management operation or (b) use a shared secret | |||
information with an entropy that matches the security strength of the | information with an entropy that matches the security strength of the | |||
key material being managed by the operation. | key material being managed by the operation. | |||
2.23. Add Section 8.6 - Trust anchor provisioning using caPubs | 2.23. Add Section 8.6 - Trust anchor provisioning using CMP messages | |||
The following subsection addresses the risk arising from provisioning | The following subsection addresses the risk arising from in-band | |||
a new trust anchor in-band in a CMP management operation. | provisioning of new trust anchors in a PKI management operation. | |||
Insert this section after new Section 8.5: | Insert this section after new Section 8.5: | |||
8.6. Trust anchor provisioning using caPubs | 8.6. Trust anchor provisioning using CMP messages | |||
In case an EE receives a CA certificate in the caPubs field for | The provider of trust anchors, which typically will be an RA involved | |||
installation as a new trust anchor, it is advised to properly | in configuration management of its clients, MUST NOT include to-be- | |||
authenticate the message and authorize the sender as trusted source | trusted CA certificates in a CMP message unless it can take | |||
of the new trust anchor. This authorization is typically indicated | responsibility for making the recipient trust them. When doing so, | |||
using shared secret information for protecting an initialization | it MUST exert the same due diligence as for its own trust anchors. | |||
response (ir) message. Authorization can also be signature-based | ||||
using a certificate issued by another PKI that is explicitly | Whenever an EE receives in a CMP message, e.g., in the caPubs field | |||
authorized for this purpose. A certificate received in caPubs MUST | of a certificate response or in a general response (genp), a CA | |||
NOT be accepted as trust anchor if the CMP message was protected | certificate for use as a trust anchor, it MUST properly authenticate | |||
using a certificate issued by this same CA or one of its subordinate | the message sender without already trusting any of the CA | |||
CAs. | certificates given in the message. | |||
Moreover, the EE MUST verify that the sender is an authorized source | ||||
of trust anchors. This authorization is typically indicated using | ||||
shared secret information or with a signature-based message | ||||
protection using a certificate issued by a PKI that is explicitly | ||||
authorized for this purpose. | ||||
2.24. Update Section 9 - IANA Considerations | 2.24. 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 Extended Key Usage, | that document. As this document defines a new Extended Key Usage, | |||
the IANA Considerations need to be updated accordingly. | the IANA Considerations need to be updated accordingly. | |||
Add the following paragraphs after the third paragraph of the | Add the following paragraphs after the third paragraph of the | |||
section: | section: | |||
skipping to change at page 27, line 30 ¶ | skipping to change at page 26, line 39 ¶ | |||
Extended Key Purpose Identifiers | Extended Key Purpose Identifiers | |||
registry | registry | |||
In the SMI-numbers registry "SMI Security for PKIX CMP Information | 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- | 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 | numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.4) as defined in | |||
RFC 7299 [RFC7299] fife additions have been performed. | RFC 7299 [RFC7299] fife additions have been performed. | |||
Fife new entries have been added: | Fife new entries have been added: | |||
+=========+=========================+============+ | +=========+=======================+============+ | |||
| Decimal | Description | References | | | Decimal | Description | References | | |||
+=========+=========================+============+ | +=========+=======================+============+ | |||
| 17 | id-it-caCerts | [thisRFC] | | | 17 | id-it-caCerts | [thisRFC] | | |||
+---------+-------------------------+------------+ | +---------+-----------------------+------------+ | |||
| 18 | id-it-trustAnchorUpdate | [thisRFC] | | | 18 | id-it-rootCaKeyUpdate | [thisRFC] | | |||
+---------+-------------------------+------------+ | +---------+-----------------------+------------+ | |||
| 19 | id-it-certReqTemplate | [thisRFC] | | | 19 | id-it-certReqTemplate | [thisRFC] | | |||
+---------+-------------------------+------------+ | +---------+-----------------------+------------+ | |||
| 20 | id-it-oldTrustAnchor | [thisRFC] | | | 20 | id-it-rootCaCert | [thisRFC] | | |||
+---------+-------------------------+------------+ | +---------+-----------------------+------------+ | |||
| 21 | id-it-certProfile | [thisRFC] | | | 21 | id-it-certProfile | [thisRFC] | | |||
+---------+-------------------------+------------+ | +---------+-----------------------+------------+ | |||
| TBD1 | id-it-crlStatusList | [thisRFC] | | | TBD1 | id-it-crlStatusList | [thisRFC] | | |||
+---------+-------------------------+------------+ | +---------+-----------------------+------------+ | |||
| TBD2 | id-it-crls | [thisRFC] | | | TBD2 | id-it-crls | [thisRFC] | | |||
+---------+-------------------------+------------+ | +---------+-----------------------+------------+ | |||
Table 2: Addition to the PKIX CMP Information | Table 2: Addition to the PKIX CMP | |||
Types registry | Information Types registry | |||
< TBD: Request OID for id-it-crlStatusList (TBD1) and id-it-crls | < TBD: Add requested OIDs for id-it-crlStatusList (TBD1) and id-it- | |||
(TBD2). | crls (TBD2). > | |||
Preferred ordering, if possible: | ||||
+=========+=========================+============+ | ||||
| Decimal | Description | References | | ||||
+=========+=========================+============+ | ||||
| 17 | id-it-caCerts | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| 18 | id-it-oldTrustAnchor | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| 19 | id-it-trustAnchorUpdate | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| 20 | id-it-certProfile | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| 21 | id-it-certReqTemplate | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| TBD1 | id-it-crlStatusList | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| TBD2 | id-it-crls | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
> | ||||
In the SMI-numbers registry " SMI Security for PKIX CRMF Registration | 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/ | Controls (1.3.6.1.5.5.7.5.1)" (see https://www.iana.org/assignments/ | |||
smi-numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.5.1) as | smi-numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.5.1) as | |||
defined in RFC 7299 [RFC7299] two additions have been performed. | defined in RFC 7299 [RFC7299] two additions have been performed. | |||
Two new entries have been added: | Two new entries have been added: | |||
+=========+======================+============+ | +=========+======================+============+ | |||
| Decimal | Description | References | | | Decimal | Description | References | | |||
skipping to change at page 30, line 27 ¶ | skipping to change at page 29, line 5 ¶ | |||
-- * encoded value of AltCertTemplate). If | -- * encoded value of AltCertTemplate). If | |||
-- * certTemplate/altCertTemplate does not contain both the | -- * certTemplate/altCertTemplate does not contain both the | |||
-- * subject and public key values (i.e., if it contains only | -- * subject and public key values (i.e., if it contains only | |||
-- * one of these, or neither), then poposkInput MUST be present | -- * one of these, or neither), then poposkInput MUST be present | |||
-- * and MUST be signed. | -- * and MUST be signed. | |||
-- ********** | -- ********** | |||
Replace the comment within the ASN.1 syntax coming after the | Replace the comment within the ASN.1 syntax coming after the | |||
definition of POPOPrivKey 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 | -- * Section 5.2.2 of this specification). Therefore, this | |||
-- * document makes the behavioral clarification of specifying | -- * document makes the behavioral clarification of specifying | |||
-- * that the 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 | -- * compatibility) and then wrapped in a BIT STRING. This | |||
-- * allows the necessary conveyance and protection of the | -- * allows the necessary conveyance and protection of the | |||
-- * private key while maintaining bits-on-the-wire compatibility | -- * private key while maintaining bits-on-the-wire compatibility | |||
-- * with RFC 4211 [RFC4211]. | -- * with RFC 4211 [RFC4211]. | |||
-- ********** | -- ********** | |||
2.27. Update Appendix D.1. - General Rules for Interpretation of These | 2.27. Update Appendix D.1. - General Rules for Interpretation of These | |||
Profiles | Profiles | |||
Appendix D.1 of RFC 4210 [RFC4210] provides general rules for | Appendix D.1 of RFC 4210 [RFC4210] provides general rules for | |||
interpretation of the PKI management messages profiles specified in | interpretation of the PKI management messages profiles specified in | |||
Appendix D and Appendix E of RFC 4210 [RFC4210]. This document | Appendix D and Appendix E of RFC 4210 [RFC4210]. This document | |||
updates a sentence regarding the new protocol version cmp2021. | updates a sentence regarding the new protocol version cmp2021. | |||
Replace the last sentence of the first paragraph of the section with | Replace the last sentence of the first paragraph of the section with | |||
skipping to change at page 34, line 23 ¶ | skipping to change at page 33, line 4 ¶ | |||
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 we got from [RFC6402] which | on structuring and writing this document we got from [RFC6402] which | |||
updates CMC. Special thank also goes also to Russ Housley, Lijun | updates CMC. Special thank also goes also to Russ Housley, Lijun | |||
Liao, Martin Peylo, and Tomas Gustavsson for reviewing and providing | Liao, Martin Peylo, and Tomas Gustavsson for reviewing and providing | |||
valuable suggestions on improving this document. | valuable suggestions on improving this document. | |||
We also thank all reviewers of this document for their valuable | We also thank all reviewers of this document for their 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., Aschauer, H., Ounsworth, M., and J. Gray, | Brockhaus, H., Aschauer, H., Ounsworth, M., and J. Gray, | |||
"Certificate Management Protocol (CMP) Algorithms", Work | "Certificate Management Protocol (CMP) Algorithms", Work | |||
in Progress, Internet-Draft, draft-ietf-lamps-cmp- | in Progress, Internet-Draft, draft-ietf-lamps-cmp- | |||
algorithms-07, 22 August 2021, | algorithms-08, 17 November 2021, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-lamps- | <https://datatracker.ietf.org/doc/html/draft-ietf-lamps- | |||
cmp-algorithms-07>. | cmp-algorithms-08>. | |||
[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 | [RFC2510] Adams, C. and S. Farrell, "Internet X.509 Public Key | |||
Infrastructure Certificate Management Protocols", | Infrastructure Certificate Management Protocols", | |||
RFC 2510, DOI 10.17487/RFC2510, March 1999, | RFC 2510, DOI 10.17487/RFC2510, March 1999, | |||
<https://www.rfc-editor.org/info/rfc2510>. | <https://www.rfc-editor.org/info/rfc2510>. | |||
skipping to change at page 36, line 40 ¶ | skipping to change at page 35, line 22 ¶ | |||
Request Message Format (CRMF)", RFC 9045, | Request Message Format (CRMF)", RFC 9045, | |||
DOI 10.17487/RFC9045, June 2021, | DOI 10.17487/RFC9045, June 2021, | |||
<https://www.rfc-editor.org/info/rfc9045>. | <https://www.rfc-editor.org/info/rfc9045>. | |||
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. V. Oheimb, "Lightweight | Brockhaus, H., Fries, S., and D. V. Oheimb, "Lightweight | |||
Certificate Management Protocol (CMP) Profile", Work in | Certificate Management Protocol (CMP) Profile", Work in | |||
Progress, Internet-Draft, draft-ietf-lamps-lightweight- | Progress, Internet-Draft, draft-ietf-lamps-lightweight- | |||
cmp-profile-06, 9 July 2021, | cmp-profile-07, 25 October 2021, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-lamps- | <https://datatracker.ietf.org/doc/html/draft-ietf-lamps- | |||
lightweight-cmp-profile-06>. | lightweight-cmp-profile-07>. | |||
[IEEE.802.1AR_2018] | [IEEE.802.1AR_2018] | |||
IEEE, "IEEE Standard for Local and metropolitan area | IEEE, "IEEE Standard for Local and metropolitan area | |||
networks - Secure Device Identity", IEEE 802.1AR-2018, | networks - Secure Device Identity", IEEE 802.1AR-2018, | |||
DOI 10.1109/IEEESTD.2018.8423794, 2 August 2018, | DOI 10.1109/IEEESTD.2018.8423794, 2 August 2018, | |||
<https://ieeexplore.ieee.org/document/8423794>. | <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 | |||
skipping to change at page 37, line 25 ¶ | skipping to change at page 36, line 4 ¶ | |||
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-cmp2021-88(99)} | id-mod(0) id-mod-cmp2021-88(99)} | |||
DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= | |||
BEGIN | BEGIN | |||
-- EXPORTS ALL -- | -- EXPORTS ALL -- | |||
IMPORTS | IMPORTS | |||
Certificate, CertificateList, Extensions, Name, Time, | ||||
Certificate, CertificateList, Extensions, Name, | ||||
AlgorithmIdentifier, id-kp | AlgorithmIdentifier, id-kp | |||
--, UTF8String -- -- if required; otherwise, comment out | --, UTF8String -- -- if required; otherwise, comment out | |||
FROM PKIX1Explicit88 {iso(1) identified-organization(3) | FROM PKIX1Explicit88 {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-pkix1-explicit-88(18)} | id-mod(0) id-pkix1-explicit-88(18)} | |||
-- The import of Name is added to define CertificationRequest | -- The import of Name is added to define CertificationRequest | |||
-- instead of importing it from PKCS#10 [RFC2986] | -- instead of importing it from PKCS#10 [RFC2986] | |||
GeneralName, KeyIdentifier | DistributionPointName, GeneralNames, GeneralName, KeyIdentifier | |||
FROM PKIX1Implicit88 {iso(1) identified-organization(3) | FROM PKIX1Implicit88 {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-pkix1-implicit-88(19)} | id-mod(0) id-pkix1-implicit-88(19)} | |||
CertTemplate, PKIPublicationInfo, EncryptedKey, CertId, | CertTemplate, PKIPublicationInfo, EncryptedKey, CertId, | |||
CertReqMessages, Controls, AttributeTypeAndValue, id-regCtrl | CertReqMessages, Controls, AttributeTypeAndValue, id-regCtrl | |||
FROM PKIXCRMF-2005 {iso(1) identified-organization(3) | FROM PKIXCRMF-2005 {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-crmf2005(36)} | id-mod(0) id-mod-crmf2005(36)} | |||
-- The import of EncryptedKey is added due to the updates made | -- The import of EncryptedKey is added due to the updates made | |||
skipping to change at page 47, line 7 ¶ | skipping to change at page 45, line 36 ¶ | |||
-- public-key certificate | -- public-key certificate | |||
id-regCtrl-algId OBJECT IDENTIFIER ::= { id-regCtrl 11 } | id-regCtrl-algId OBJECT IDENTIFIER ::= { id-regCtrl 11 } | |||
AlgIdCtrl ::= AlgorithmIdentifier | AlgIdCtrl ::= AlgorithmIdentifier | |||
-- SHALL be used to specify supported algorithms other than RSA | -- SHALL be used to specify supported algorithms other than RSA | |||
id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl 12 } | id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl 12 } | |||
RsaKeyLenCtrl ::= INTEGER (1..MAX) | RsaKeyLenCtrl ::= INTEGER (1..MAX) | |||
-- SHALL be used to specify supported RSA key lengths | -- SHALL be used to specify supported RSA key lengths | |||
-- OldTrustAnchor, TrustAnchorUpdateContent, CRLSource, and | -- RootCaKeyUpdateContent, CRLSource, and CRLStatus were added in | |||
-- CRLStatus were added in CMP Updates [thisRFC] | -- CMP Updates [thisRFC] | |||
OldTrustAnchor ::= CHOICE { | ||||
certificate CMPCertificate, | ||||
publicKey BIT STRING | ||||
} | ||||
TrustAnchorUpdate ::= SEQUENCE { | RootCaKeyUpdateContent ::= SEQUENCE { | |||
newWithNew CMPCertificate, | newWithNew CMPCertificate, | |||
-- new root CA certificate | -- new root CA certificate | |||
newWithOld [0] CMPCertificate OPTIONAL, | newWithOld [0] CMPCertificate OPTIONAL, | |||
-- X.509 certificate containing the new public root CA key | -- X.509 certificate containing the new public root CA key | |||
-- signed with the old private root CA key | -- signed with the old private root CA key | |||
oldWithNew [1] CMPCertificate OPTIONAL | oldWithNew [1] CMPCertificate OPTIONAL | |||
-- X.509 certificate containing the old public root CA key | -- X.509 certificate containing the old public root CA key | |||
-- signed with the new private root CA key | -- signed with the new private root CA key | |||
} | } | |||
skipping to change at page 48, line 34 ¶ | skipping to change at page 47, line 10 ¶ | |||
-- id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} | -- id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} | |||
-- ConfirmWaitTimeValue ::= GeneralizedTime | -- ConfirmWaitTimeValue ::= GeneralizedTime | |||
-- id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} | -- id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} | |||
-- OrigPKIMessageValue ::= PKIMessages | -- OrigPKIMessageValue ::= PKIMessages | |||
-- id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} | -- id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} | |||
-- SuppLangTagsValue ::= SEQUENCE OF UTF8String | -- SuppLangTagsValue ::= SEQUENCE OF UTF8String | |||
-- id-it-caCerts OBJECT IDENTIFIER ::= {id-it 17} | -- id-it-caCerts OBJECT IDENTIFIER ::= {id-it 17} | |||
-- CaCertsValue ::= SEQUENCE SIZE (1..MAX) OF | -- CaCertsValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- CMPCertificate | -- CMPCertificate | |||
-- - id-it-caCerts added in CMP Updates [thisRFC] | -- - id-it-caCerts added in CMP Updates [thisRFC] | |||
-- id-it-trustAnchorUpdate OBJECT IDENTIFIER ::= {id-it 18} | -- id-it-rootCaKeyUpdate OBJECT IDENTIFIER ::= {id-it 18} | |||
-- TrustAnchorUpdateValue ::= TrustAnchorUpdate | -- RootCaKeyUpdateValue ::= RootCaKeyUpdateContent | |||
-- - id-it-trustAnchorUpdate added in CMP Updates [thisRFC] | -- - id-it-rootCaKeyUpdate added in CMP Updates [thisRFC] | |||
-- id-it-certReqTemplate OBJECT IDENTIFIER ::= {id-it 19} | -- id-it-certReqTemplate OBJECT IDENTIFIER ::= {id-it 19} | |||
-- CertReqTemplateValue ::= CertReqTemplateContent | -- CertReqTemplateValue ::= CertReqTemplateContent | |||
-- - id-it-certReqTemplate added in CMP Updates [thisRFC] | -- - id-it-certReqTemplate added in CMP Updates [thisRFC] | |||
-- id-it-oldTrustAnchor OBJECT IDENTIFIER ::= {id-it 20} | -- id-it-rootCaCert OBJECT IDENTIFIER ::= {id-it 20} | |||
-- OldTrustAnchorValue ::= OldTrustAnchor | -- RootCaCertValue ::= CMPCertificate | |||
-- - id-it-oldTrustAnchor added in CMP Updates [thisRFC] | -- - id-it-rootCaCert added in CMP Updates [thisRFC] | |||
-- id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | -- id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | |||
-- CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF | -- CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- UTF8String | -- UTF8String | |||
-- - id-it-certProfile added in CMP Updates [thisRFC] | -- - id-it-certProfile added in CMP Updates [thisRFC] | |||
-- id-it-crlStatusList OBJECT IDENTIFIER ::= {id-it TBD1} | -- id-it-crlStatusList OBJECT IDENTIFIER ::= {id-it TBD1} | |||
-- CRLStatusListValue ::= SEQUENCE SIZE (1..MAX) OF | -- CRLStatusListValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- CRLStatus | -- CRLStatus | |||
-- - id-it-crlStatusList added in CMP Updates [thisRFC] | -- - id-it-crlStatusList added in CMP Updates [thisRFC] | |||
-- id-it-crls OBJECT IDENTIFIER ::= {id-it TBD2} | -- id-it-crls OBJECT IDENTIFIER ::= {id-it TBD2} | |||
-- CRLsValue ::= SEQUENCE SIZE (1..MAX) OF | -- CRLsValue ::= SEQUENCE SIZE (1..MAX) OF | |||
skipping to change at page 51, line 12 ¶ | skipping to change at page 49, line 36 ¶ | |||
{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) | |||
id-mod-algorithmInformation-02(58)} | id-mod-algorithmInformation-02(58)} | |||
Certificate, CertificateList, id-kp | Certificate, CertificateList, Time, id-kp | |||
FROM PKIX1Explicit-2009 | FROM PKIX1Explicit-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-pkix1-explicit-02(51)} | mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51)} | |||
GeneralName, KeyIdentifier | DistributionPointName, GeneralNames, GeneralName, KeyIdentifier | |||
FROM PKIX1Implicit-2009 | FROM PKIX1Implicit-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-pkix1-implicit-02(59)} | mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59)} | |||
CertTemplate, PKIPublicationInfo, EncryptedKey, CertId, | CertTemplate, PKIPublicationInfo, EncryptedKey, CertId, | |||
CertReqMessages, Controls, RegControlSet, id-regCtrl | CertReqMessages, Controls, RegControlSet, id-regCtrl | |||
FROM PKIXCRMF-2009 | FROM PKIXCRMF-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-crmf2005-02(55) } | id-mod-crmf2005-02(55) } | |||
skipping to change at page 60, line 39 ¶ | skipping to change at page 59, line 15 ¶ | |||
-- SHALL be used to specify supported algorithms other than RSA | -- SHALL be used to specify supported algorithms other than RSA | |||
regCtrl-rsaKeyLen ATTRIBUTE ::= | regCtrl-rsaKeyLen ATTRIBUTE ::= | |||
{ TYPE RsaKeyLenCtrl IDENTIFIED BY id-regCtrl-rsaKeyLen } | { TYPE RsaKeyLenCtrl IDENTIFIED BY id-regCtrl-rsaKeyLen } | |||
id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl 12 } | id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl 12 } | |||
RsaKeyLenCtrl ::= INTEGER (1..MAX) | RsaKeyLenCtrl ::= INTEGER (1..MAX) | |||
-- SHALL be used to specify supported RSA key lengths | -- SHALL be used to specify supported RSA key lengths | |||
-- OldTrustAnchor, TrustAnchorUpdateContent, CRLSource, and CRLStatus | -- RootCaKeyUpdateContent, CRLSource, and CRLStatus were added in | |||
-- were added in CMP Updates [thisRFC] | -- CMP Updates [thisRFC] | |||
OldTrustAnchor ::= CHOICE { | ||||
certificate CMPCertificate, | ||||
publicKey BIT STRING | ||||
} | ||||
TrustAnchorUpdate ::= SEQUENCE { | RootCaKeyUpdateContent ::= SEQUENCE { | |||
newWithNew CMPCertificate, | newWithNew CMPCertificate, | |||
-- new root CA certificate | -- new root CA certificate | |||
newWithOld [0] CMPCertificate OPTIONAL, | newWithOld [0] CMPCertificate OPTIONAL, | |||
-- X.509 certificate containing the new public root CA key | -- X.509 certificate containing the new public root CA key | |||
-- signed with the old private root CA key | -- signed with the old private root CA key | |||
oldWithNew [1] CMPCertificate OPTIONAL | oldWithNew [1] CMPCertificate OPTIONAL | |||
-- X.509 certificate containing the old public root CA key | -- X.509 certificate containing the old public root CA key | |||
-- signed with the new private root CA key | -- signed with the new private root CA key | |||
} | } | |||
skipping to change at page 62, line 24 ¶ | skipping to change at page 60, line 43 ¶ | |||
-- id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} | -- id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} | |||
-- ConfirmWaitTimeValue ::= GeneralizedTime | -- ConfirmWaitTimeValue ::= GeneralizedTime | |||
-- id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} | -- id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} | |||
-- OrigPKIMessageValue ::= PKIMessages | -- OrigPKIMessageValue ::= PKIMessages | |||
-- id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} | -- id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} | |||
-- SuppLangTagsValue ::= SEQUENCE OF UTF8String | -- SuppLangTagsValue ::= SEQUENCE OF UTF8String | |||
-- id-it-caCerts OBJECT IDENTIFIER ::= {id-it 17} | -- id-it-caCerts OBJECT IDENTIFIER ::= {id-it 17} | |||
-- CaCertsValue ::= SEQUENCE SIZE (1..MAX) OF | -- CaCertsValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- CMPCertificate | -- CMPCertificate | |||
-- - id-it-caCerts added in CMP Updates [thisRFC] | -- - id-it-caCerts added in CMP Updates [thisRFC] | |||
-- id-it-trustAnchorUpdate OBJECT IDENTIFIER ::= {id-it 18} | -- id-it-rootCaKeyUpdate OBJECT IDENTIFIER ::= {id-it 18} | |||
-- TrustAnchorUpdateValue ::= TrustAnchorUpdate | -- RootCaKeyUpdateValue ::= RootCaKeyUpdateContent | |||
-- - id-it-trustAnchorUpdate added in CMP Updates [thisRFC] | -- - id-it-rootCaKeyUpdate added in CMP Updates [thisRFC] | |||
-- id-it-certReqTemplate OBJECT IDENTIFIER ::= {id-it 19} | -- id-it-certReqTemplate OBJECT IDENTIFIER ::= {id-it 19} | |||
-- CertReqTemplateValue ::= CertReqTemplateContent | -- CertReqTemplateValue ::= CertReqTemplateContent | |||
-- - id-it-certReqTemplate added in CMP Updates [thisRFC] | -- - id-it-certReqTemplate added in CMP Updates [thisRFC] | |||
-- id-it-oldTrustAnchor OBJECT IDENTIFIER ::= {id-it 20} | -- id-it-rootCaCert OBJECT IDENTIFIER ::= {id-it 20} | |||
-- OldTrustAnchorValue ::= OldTrustAnchor | -- RootCaCertValue ::= CMPCertificate | |||
-- - id-it-oldTrustAnchor added in CMP Updates [thisRFC] | -- - id-it-rootCaCert added in CMP Updates [thisRFC] | |||
-- id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | -- id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | |||
-- CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF | -- CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- UTF8String | -- UTF8String | |||
-- - id-it-certProfile added in CMP Updates [thisRFC] | -- - id-it-certProfile added in CMP Updates [thisRFC] | |||
-- id-it-crlStatusList OBJECT IDENTIFIER ::= {id-it TBD1} | -- id-it-crlStatusList OBJECT IDENTIFIER ::= {id-it TBD1} | |||
-- CRLStatusListValue ::= SEQUENCE SIZE (1..MAX) OF | -- CRLStatusListValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- CRLStatus | -- CRLStatus | |||
-- - id-it-crlStatusList added in CMP Updates [thisRFC] | -- - id-it-crlStatusList added in CMP Updates [thisRFC] | |||
-- id-it-crls OBJECT IDENTIFIER ::= {id-it TBD2} | -- id-it-crls OBJECT IDENTIFIER ::= {id-it TBD2} | |||
-- CRLsValue ::= SEQUENCE SIZE (1..MAX) OF | -- CRLsValue ::= SEQUENCE SIZE (1..MAX) OF | |||
skipping to change at page 63, line 33 ¶ | skipping to change at page 62, line 4 ¶ | |||
-- Receiver MAY ignore any contained OIDs that it does not | -- Receiver MAY ignore any contained OIDs that it does not | |||
-- recognize. | -- recognize. | |||
ErrorMsgContent ::= SEQUENCE { | ErrorMsgContent ::= SEQUENCE { | |||
pKIStatusInfo PKIStatusInfo, | pKIStatusInfo PKIStatusInfo, | |||
errorCode INTEGER OPTIONAL, | errorCode INTEGER OPTIONAL, | |||
-- implementation-specific error codes | -- implementation-specific error codes | |||
errorDetails PKIFreeText OPTIONAL | errorDetails PKIFreeText OPTIONAL | |||
-- implementation-specific error details | -- implementation-specific error details | |||
} | } | |||
CertConfirmContent ::= SEQUENCE OF CertStatus | CertConfirmContent ::= SEQUENCE OF CertStatus | |||
CertStatus ::= SEQUENCE { | CertStatus ::= SEQUENCE { | |||
certHash OCTET STRING, | certHash OCTET STRING, | |||
-- the hash of the certificate, using the same hash algorithm | -- the hash of the certificate, using the same hash algorithm | |||
-- as is used to create and verify the certificate signature | -- as is used to create and verify the certificate signature | |||
certReqId INTEGER, | certReqId INTEGER, | |||
-- to match this confirmation with the corresponding req/rep | -- to match this confirmation with the corresponding req/rep | |||
statusInfo PKIStatusInfo OPTIONAL, | statusInfo PKIStatusInfo OPTIONAL, | |||
hashAlg [0] AlgorithmIdentifier OPTIONAL | hashAlg [0] AlgorithmIdentifier{DIGEST-ALGORITHM, {...}} OPTIONAL | |||
-- the hash algorithm to use for calculating certHash | -- the hash algorithm to use for calculating certHash | |||
-- SHOULD NOT be used in all cases where the AlgorithmIdentifier | -- SHOULD NOT be used in all cases where the AlgorithmIdentifier | |||
-- of the certificate signature specifies a hash algorithm | -- of the certificate signature specifies a hash algorithm | |||
} | } | |||
PollReqContent ::= SEQUENCE OF SEQUENCE { | PollReqContent ::= SEQUENCE OF SEQUENCE { | |||
certReqId INTEGER } | certReqId INTEGER } | |||
PollRepContent ::= SEQUENCE OF SEQUENCE { | PollRepContent ::= SEQUENCE OF SEQUENCE { | |||
certReqId INTEGER, | certReqId INTEGER, | |||
skipping to change at page 64, line 29 ¶ | skipping to change at page 62, line 46 ¶ | |||
-- 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 13 -> 14: | ||||
* Extended id-it-caCerts support message to allow transporting to- | ||||
be-trusted root CA certificates; added respective security | ||||
consideration (see thread "Generalizing the CMP "Get CA | ||||
certificates" use case") | ||||
* Rolled back changes made in previous version regarding root CA | ||||
update to avoid registration of new OIDs. Yet we sticked to using | ||||
id-it-rootCaCert in the genm body instead its headers' generalInfo | ||||
field and removed the ToDos and TBDs on re-arranging id-it OIDs | ||||
(see thread "Allocation of OIDs for CRL update retrieval (draft- | ||||
ietf-lamps-cmp-updates-13)") | ||||
From version 12 -> 13: | From version 12 -> 13: | |||
* Added John Gray to the list of authors due to fruitful discussion | * Added John Gray to the list of authors due to fruitful discussion | |||
and important proposals | and important proposals | |||
* Fixed errata no. 2615, 2616, 3949, 4078, and 5201 on RFC 4210 | * Fixed errata no. 2615, 2616, 3949, 4078, and 5201 on RFC 4210 | |||
* Added reference on RFC 8933 regarding CMS signedAttrs to | * Added reference on RFC 8933 regarding CMS signedAttrs to | |||
Section 2.7 | Section 2.7 | |||
* Updated Section 2.9 and the ASN.1 modules moving the position of | * Updated Section 2.9 and the ASN.1 modules moving the position of | |||
the hashAlg field (see thread "[CMP Updates] position of hashAlg | the hashAlg field (see thread "[CMP Updates] position of hashAlg | |||
in certStatus") | in certStatus") | |||
End of changes. 61 change blocks. | ||||
193 lines changed or deleted | 156 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/ |