rfc9883.original   rfc9883.txt 
Network Working Group R. Housley Internet Engineering Task Force (IETF) R. Housley
Internet-Draft Vigil Security Request for Comments: 9883 Vigil Security
Intended status: Standards Track 26 June 2025 Category: Standards Track October 2025
Expires: 28 December 2025 ISSN: 2070-1721
An Attribute for Statement of Possession of a Private Key An Attribute for Statement of Possession of a Private Key
draft-ietf-lamps-private-key-stmt-attr-09
Abstract Abstract
This document specifies an attribute for a statement of possession of This document specifies an attribute for a statement of possession of
a private key by a certificate subject. As part of X.509 certificate a private key by a certificate subject. As part of X.509 certificate
enrollment, a Certification Authority (CA) typically demands proof enrollment, a Certification Authority (CA) typically demands proof
that the subject possesses the private key that corresponds to the that the subject possesses the private key that corresponds to the
to-be-certified public key. In some cases, a CA might accept a to-be-certified public key. In some cases, a CA might accept a
signed statement from the certificate subject. For example, when a signed statement from the certificate subject. For example, when a
certificate subject needs separate certificates for signature and key certificate subject needs separate certificates for signature and key
establishment, a statement that can be validated with the previously establishment, a statement that can be validated with the previously
issued signature certificate for the same subject might be adequate issued signature certificate for the same subject might be adequate
for subsequent issuance of the key establishment certificate. for subsequent issuance of the key establishment certificate.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on 28 December 2025. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9883.
Copyright Notice Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the Copyright (c) 2025 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
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
1.1. ASN.1 . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. ASN.1
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Terminology
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Overview
3. Attribute for Statement of Possession of a Private Key . . . 4 3. Attribute for Statement of Possession of a Private Key
4. Conventions for PKCS#10 . . . . . . . . . . . . . . . . . . . 6 4. Conventions for PKCS#10
5. Conventions for CRMF . . . . . . . . . . . . . . . . . . . . 6 5. Conventions for CRMF
6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 6. Security Considerations
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 7. IANA Considerations
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 8. References
8.1. Normative References . . . . . . . . . . . . . . . . . . 8 8.1. Normative References
8.2. Informative References . . . . . . . . . . . . . . . . . 9 8.2. Informative References
Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 9 Appendix A. ASN.1 Module
Appendix B. Example use of the privateKeyPossessionStatement Appendix B. Example Use of the privateKeyPossessionStatement
Attribute . . . . . . . . . . . . . . . . . . . . . . . . 10 Attribute
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 19 Acknowledgements
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 19 Author's Address
1. Introduction 1. Introduction
This document specifies an attribute for a statement of possession of This document specifies an attribute for a statement of possession of
a private key by a certificate subject. X.509 certificate [RFC5280] a private key by a certificate subject. X.509 certificate [RFC5280]
enrollment often depends on PKCS#10 [RFC2986] or the Certificate enrollment often depends on PKCS#10 [RFC2986] or the Certificate
Request Message Format (CRMF) [RFC4211]. As part of enrollment, a Request Message Format (CRMF) [RFC4211]. As part of enrollment, a
Certification Authority (CA) typically demands proof that the subject Certification Authority (CA) typically demands proof that the subject
possesses the private key that corresponds to the to-be-certified possesses the private key that corresponds to the to-be-certified
public key. Alternatively, a CA may accept a signed statement from public key. Alternatively, a CA may accept a signed statement from
the certificate subject claiming knowledge of that private key. When the certificate subject claiming knowledge of that private key. When
a certificate subject needs separate certificates for signature and a certificate subject needs separate certificates for signature and
key establishment, a signed statement that can be validated with the key establishment, a signed statement that can be validated with the
previously issued signature certificate for the same subject might be previously issued signature certificate for the same subject might be
adequate for subsequent issuance of the key establishment adequate for subsequent issuance of the key establishment
certificate. certificate.
For example, a subject may need a signature certificate that contains For example, a subject may need a signature certificate that contains
a ML-DSA (Module-Lattice-Based Digital Signature Algorithm) public an ML-DSA (Module-Lattice-Based Digital Signature Algorithm) public
key and a key establishment certificate that contains a ML-KEM key and a key establishment certificate that contains an ML-KEM
(Module-Lattice-Based Key-Encapsulation Mechanism) public key. For (Module-Lattice-Based Key-Encapsulation Mechanism) public key. For
another example, a subject may need a signature certificate that another example, a subject may need a signature certificate that
contains a ECDSA (Elliptic Curve Digital Signature Algorithm) public contains an ECDSA (Elliptic Curve Digital Signature Algorithm) public
key and a key establishment certificate that contains a ECDH key and a key establishment certificate that contains an ECDH
(Elliptic Curve Diffie-Hellman) public key. (Elliptic Curve Diffie-Hellman) public key.
A statement of possession may be used in lieu of the usual proof of A statement of possession may be used in lieu of the usual proof-of-
possession mechanisms. The statement is simply a signed assertion possession mechanisms. The statement is simply a signed assertion
that the requestor of a key establishment certificate has possession that the requestor of a key establishment certificate has possession
of the key establishment private key, and that statement is signed of the key establishment private key and that statement is signed
using a signature private key that was previously shown to be in the using a signature private key that was previously shown to be in the
possession of the same certificate subject. If allowed by the possession of the same certificate subject. If allowed by the
Certificate Policy [RFC3647], the CA is permitted to accept this Certificate Policy [RFC3647], the CA is permitted to accept this
statement in lieu of proof that the requestor has possession of the statement in lieu of proof that the requestor has possession of the
private key, such as [RFC6955]. private key, such as [RFC6955].
Note that [RFC6955] offers some algorithms that provide proof of Note that [RFC6955] offers some algorithms that provide proof of
possession for Diffie-Hellman private keys; however, these algorithms possession for Diffie-Hellman private keys; however, these algorithms
are not suitable for use with PKCS#10 [RFC2986]. In addition, the are not suitable for use with PKCS#10 [RFC2986]. In addition, the
algorithms in [RFC6955] do not support key encapsulation mechanism algorithms in [RFC6955] do not support key encapsulation mechanism
skipping to change at page 3, line 49 skipping to change at line 131
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
2. Overview 2. Overview
When using the attribute defined in this document to make a statement When using the attribute defined in this document to make a statement
about the possession of the key establishment private key, the about the possession of the key establishment private key, the
process to obtain two certificates with PKCS#10 is: process to obtain two certificates with PKCS#10 is as follows:
1. The subject generates the signature key pair. 1. The subject generates the signature key pair.
2. The subject composes a PKCS#10 Certificate Signing Request (CSR) 2. The subject composes a PKCS#10 Certificate Signing Request (CSR)
in the usual manner. It includes a signature that is produced in the usual manner. It includes a signature that is produced
with the private key from step 1. with the private key from step 1.
3. The subject sends the CSR to the CA, and it gets back a signature 3. The subject sends the CSR to the CA, and it gets back a signature
certificate. The signature certificate includes a key usage of certificate. The signature certificate includes a key usage of
digitalSignature, nonRepudiation, or both (see Section 4.2.1.3 of digitalSignature, nonRepudiation, or both (see Section 4.2.1.3 of
skipping to change at page 5, line 22 skipping to change at line 200
If subject alternative names are present in the certificate request, If subject alternative names are present in the certificate request,
they SHOULD match subject alternative names in the signature they SHOULD match subject alternative names in the signature
certificate. If they are different, the certificate policy MUST certificate. If they are different, the certificate policy MUST
describe how the CA can determine that the two subject alternative describe how the CA can determine that the two subject alternative
names identify the same entity. If the CA is unable to determine names identify the same entity. If the CA is unable to determine
that each of subject alternative names identifies the same entity as that each of subject alternative names identifies the same entity as
is named in the signature certificate, then the CA MUST reject the is named in the signature certificate, then the CA MUST reject the
certificate request. certificate request.
When the CA rejects a certificate request for any of the reasons When the CA rejects a certificate request for any of the reasons
listed above, the CA should provide information to the requester listed above, the CA should provide information to the requestor
about the reason for the rejection to aid with diagnostic efforts. about the reason for the rejection to aid with diagnostic efforts.
Likewise, the CA should log the rejection events. Likewise, the CA should log the rejection events.
The attribute for statement of possession of a private key has the The attribute for statement of possession of a private key has the
following structure: following structure:
id-at-statementOfPossession OBJECT IDENTIFIER ::= id-at-statementOfPossession OBJECT IDENTIFIER ::=
{ 1 3 6 1 4 1 22112 2 1 } { 1 3 6 1 4 1 22112 2 1 }
privateKeyPossessionStatement ATTRIBUTE ::= { privateKeyPossessionStatement ATTRIBUTE ::= {
TYPE PrivateKeyPossessionStatement TYPE PrivateKeyPossessionStatement
IDENTIFIED BY id-at-statementOfPossession } IDENTIFIED BY id-at-statementOfPossession }
PrivateKeyPossessionStatement ::= SEQUENCE { PrivateKeyPossessionStatement ::= SEQUENCE {
signer IssuerAndSerialNumber, signer IssuerAndSerialNumber,
cert Certificate OPTIONAL } cert Certificate OPTIONAL }
The components of the PrivateKeyStatement SEQUENCE have the following The components of the PrivateKeyStatement SEQUENCE have the following
semantics: semantics:
signer: the issuer name and certificate serial number of the signer: The issuer name and certificate serial number of the
signature certificate. signature certificate.
cert: the signature certificate. If the issuer of the key cert: The signature certificate. If the issuer of the key
establishment certificate will be the same as the issuer of the establishment certificate will be the same as the issuer of the
signature certificate, then this component MAY be omitted. signature certificate, then this component MAY be omitted. When
When the signature certificate is omitted, the signer is the signature certificate is omitted, the signer is assuming that
assuming that the CA has a mechanism to obtain all valid the CA has a mechanism to obtain all valid certificates that it
certificates that it issued. issued.
4. Conventions for PKCS#10 4. Conventions for PKCS#10
This section specifies the conventions for using the attribute for This section specifies the conventions for using the attribute for
statement of possession of a private key with PKCS#10 [RFC2986] when statement of possession of a private key with PKCS#10 [RFC2986] when
requesting a key establishment certificate. requesting a key establishment certificate.
The PKCS#10 CertificationRequest always has three components, as The PKCS#10 CertificationRequest always has three components, as
follows: follows:
certificationRequestInfo: the subject name SHOULD be the same as certificationRequestInfo: The subject name SHOULD be the same as the
the subject name in the signature certificate, the subject name in the signature certificate, the subjectPKInfo MUST
subjectPKInfo MUST contain the public key for the key contain the public key for the key establishment algorithm, and
establishment algorithm, and the attributes MUST include the attributes MUST include privateKeyPossessionStatement
privateKeyPossessionStatement attribute as specified in attribute as specified in Section 3 of this document.
Section 3 of this document.
signatureAlgorithm: the signature algorithm MUST be one that can signatureAlgorithm: The signature algorithm MUST be one that can be
be validated with the public key in the signature certificate. validated with the public key in the signature certificate.
signature: the signature over certificationRequestInfo MUST signature: The signature over certificationRequestInfo MUST validate
validate with the public key in the signature certificate, and with the public key in the signature certificate, and
certification path validation for the signature certificate certification path validation for the signature certificate MUST
MUST be successful as specified in Section 6 of [RFC5280]. be successful as specified in Section 6 of [RFC5280].
5. Conventions for CRMF 5. Conventions for CRMF
This section specifies the conventions for using the attribute for This section specifies the conventions for using the attribute for
statement of possession of a private key with the CRMF [RFC4211] when statement of possession of a private key with the CRMF [RFC4211] when
requesting a key establishment certificate. requesting a key establishment certificate.
The following ASN.1 types are defined for use with CRMF. They have The following ASN.1 types are defined for use with CRMF. They have
exactly the same semantics and syntax as the attribute discussed exactly the same semantics and syntax as the attribute discussed
above, but they offer a similar naming convention to the Registration above, but they offer a similar naming convention to the Registration
skipping to change at page 6, line 49 skipping to change at line 274
regCtrl-privateKeyPossessionStatement ATTRIBUTE ::= regCtrl-privateKeyPossessionStatement ATTRIBUTE ::=
privateKeyPossessionStatement privateKeyPossessionStatement
id-regCtrl-statementOfPossession OBJECT IDENTIFIER ::= id-regCtrl-statementOfPossession OBJECT IDENTIFIER ::=
id-at-statementOfPossession id-at-statementOfPossession
The CRMF CertificationRequest always has three components, as The CRMF CertificationRequest always has three components, as
follows: follows:
certReq: the certTemplate MUST include the subject and the certReq: The certTemplate MUST include the subject and the publicKey
publicKey components. The same subject name SHOULD match the components. The same subject name SHOULD match the subject name
subject name in the signature certificate, and publicKey MUST in the signature certificate, and publicKey MUST contain the
contain the public key for the key establishment algorithm. public key for the key establishment algorithm.
popo: the ProofOfPossession MUST use the signature CHOICE, the popo: The ProofOfPossession MUST use the signature CHOICE, the
poposkInput MUST be present, POPOSigningKeyInput.authInfo MUST poposkInput MUST be present, POPOSigningKeyInput.authInfo MUST use
use the sender CHOICE, the sender SHOULD be set to the subject the sender CHOICE, the sender SHOULD be set to the subject name
name that appears in the signature certificate, the publicKey that appears in the signature certificate, the publicKey MUST
MUST contain a copy of the public key from the certTemplate, contain a copy of the public key from the certTemplate, the
the algorithmIdentifier MUST identify a signature algorithm algorithmIdentifier MUST identify a signature algorithm that can
that can be validated with the public key in the signature be validated with the public key in the signature certificate, the
certificate, signature over the poposkInput MUST validate with signature over the poposkInput MUST validate with the public key
the public key in the signature certificate, and certification in the signature certificate, and certification path validation
path validation for the signature certificate MUST be for the signature certificate MUST be successful as specified in
successful as specified in Section 6 of [RFC5280]. Section 6 of [RFC5280].
regInfo: the attributes MUST include regInfo: The attributes MUST include the
privateKeyPossessionStatement attribute as specified in privateKeyPossessionStatement attribute as specified in Section 3
Section 3 of this document. of this document.
6. Security Considerations 6. Security Considerations
The privateKeyPossessionStatement attribute MUST NOT be used to The privateKeyPossessionStatement attribute MUST NOT be used to
obtain a signature certificate. Performing proof of possession of obtain a signature certificate. Performing proof of possession of
the signature private key is easily accomplished by signing the the signature private key is easily accomplished by signing the
certificate request. certificate request.
The subject is signing privateKeyPossessionStatement attribute to The subject is signing the privateKeyPossessionStatement attribute to
tell the CA that it has possession of the key establishment private tell the CA that it has possession of the key establishment private
key. This is being done instead of providing technical proof of key. This is being done instead of providing technical proof of
possession. If the subject has lost control of the signature private possession. If the subject has lost control of the signature private
key, then the signed privateKeyPossessionStatement attribute could be key, then the signed privateKeyPossessionStatement attribute could be
generated by some other party. Timely revocation of the compromised generated by some other party. Timely revocation of the compromised
signature certificate is the only protection against such loss of signature certificate is the only protection against such loss of
control. control.
If the CA revokes a compromised signature certificate, then the CA If the CA revokes a compromised signature certificate, then the CA
SHOULD also revoke all key establishment certificates that were SHOULD also revoke all key establishment certificates that were
obtained with privateKeyPossessionStatement attributes signed by that obtained with privateKeyPossessionStatement attributes signed by that
compromised signature certificate. compromised signature certificate.
The signature key pair and the key establishment key pair are The signature key pair and the key establishment key pair are
expected to have roughly the same security strength. To ensure that expected to have roughly the same security strength. To ensure that
the signature on the statement is not the weakest part of the the signature on the statement is not the weakest part of the
certificate enrollment, the signature key pair SHOULD be at least as certificate enrollment, the signature key pair SHOULD be at least as
strong as the key establishment key pair. strong as the key establishment key pair.
If a CA allows subject in the key establishment certificate to be If a CA allows a subject in the key establishment certificate to be
different than the subject name in the signature certificate, then different than the subject name in the signature certificate, then
certificate policy MUST describe how to determine that the two certificate policy MUST describe how to determine that the two
subject names identify the same entity. Likewise, if a CA allows subject names identify the same entity. Likewise, if a CA allows
subject alternative names in the key establishment certificate that subject alternative names in the key establishment certificate that
are not present in the signature certificate, then certificate policy are not present in the signature certificate, then certificate policy
MUST describe how to determine that the subject alternative names MUST describe how to determine that the subject alternative names
identify the same entity as is named in the signature certificate. identify the same entity as is named in the signature certificate.
7. IANA Considerations 7. IANA Considerations
For the ASN.1 Module in the Appendix A of this document, IANA is For the ASN.1 Module in Appendix A of this document, IANA has
requested to assign an object identifier (OID) for the module assigned an object identifier (OID) for the module identifier (118)
identifier (TBD0) with a Description of "id-mod-private-key- with a Description of "id-mod-private-key-possession-stmt-2025" in
possession-stmt-2025". The OID for the module should be allocated in
the "SMI Security for PKIX Module Identifier" registry the "SMI Security for PKIX Module Identifier" registry
(1.3.6.1.5.5.7.0). (1.3.6.1.5.5.7.0).
8. References 8. References
8.1. Normative References 8.1. Normative References
[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/rfc/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification
Request Syntax Specification Version 1.7", RFC 2986, Request Syntax Specification Version 1.7", RFC 2986,
DOI 10.17487/RFC2986, November 2000, DOI 10.17487/RFC2986, November 2000,
<https://www.rfc-editor.org/rfc/rfc2986>. <https://www.rfc-editor.org/info/rfc2986>.
[RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure
Certificate Request Message Format (CRMF)", RFC 4211, Certificate Request Message Format (CRMF)", RFC 4211,
DOI 10.17487/RFC4211, September 2005, DOI 10.17487/RFC4211, September 2005,
<https://www.rfc-editor.org/rfc/rfc4211>. <https://www.rfc-editor.org/info/rfc4211>.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Housley, R., and W. Polk, "Internet X.509 Public Key Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
<https://www.rfc-editor.org/rfc/rfc5280>. <https://www.rfc-editor.org/info/rfc5280>.
[RFC5912] Hoffman, P. and J. Schaad, "New ASN.1 Modules for the [RFC5912] Hoffman, P. and J. Schaad, "New ASN.1 Modules for the
Public Key Infrastructure Using X.509 (PKIX)", RFC 5912, Public Key Infrastructure Using X.509 (PKIX)", RFC 5912,
DOI 10.17487/RFC5912, June 2010, DOI 10.17487/RFC5912, June 2010,
<https://www.rfc-editor.org/rfc/rfc5912>. <https://www.rfc-editor.org/info/rfc5912>.
[RFC6268] Schaad, J. and S. Turner, "Additional New ASN.1 Modules [RFC6268] Schaad, J. and S. Turner, "Additional New ASN.1 Modules
for the Cryptographic Message Syntax (CMS) and the Public for the Cryptographic Message Syntax (CMS) and the Public
Key Infrastructure Using X.509 (PKIX)", RFC 6268, Key Infrastructure Using X.509 (PKIX)", RFC 6268,
DOI 10.17487/RFC6268, July 2011, DOI 10.17487/RFC6268, July 2011,
<https://www.rfc-editor.org/rfc/rfc6268>. <https://www.rfc-editor.org/info/rfc6268>.
[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/rfc/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[X680] ITU-T, "Information technology -- Abstract Syntax Notation [X680] ITU-T, "Information technology -- Abstract Syntax Notation
One (ASN.1): Specification of basic notation", ITU-T One (ASN.1): Specification of basic notation", ITU-T
Recommendation X.680, ISO/IEC 8824-1:2021, February 2021, Recommendation X.680, ISO/IEC 8824-1:2021, February 2021,
<https://www.itu.int/rec/T-REC-X.680>. <https://www.itu.int/rec/T-REC-X.680>.
[X690] ITU-T, "Information technology -- ASN.1 encoding rules: [X690] ITU-T, "Information technology -- ASN.1 encoding rules:
Specification of Basic Encoding Rules (BER), Canonical Specification of Basic Encoding Rules (BER), Canonical
Encoding Rules (CER) and Distinguished Encoding Rules Encoding Rules (CER) and Distinguished Encoding Rules
(DER)", ITU-T Recommendation X.690, ISO/IEC 8825-1-2021, (DER)", ITU-T Recommendation X.690, ISO/IEC 8825-1:2021,
February 2021, <https://www.itu.int/rec/T-REC-X.690>. February 2021, <https://www.itu.int/rec/T-REC-X.690>.
8.2. Informative References 8.2. Informative References
[RFC3647] Chokhani, S., Ford, W., Sabett, R., Merrill, C., and S. [RFC3647] Chokhani, S., Ford, W., Sabett, R., Merrill, C., and S.
Wu, "Internet X.509 Public Key Infrastructure Certificate Wu, "Internet X.509 Public Key Infrastructure Certificate
Policy and Certification Practices Framework", RFC 3647, Policy and Certification Practices Framework", RFC 3647,
DOI 10.17487/RFC3647, November 2003, DOI 10.17487/RFC3647, November 2003,
<https://www.rfc-editor.org/rfc/rfc3647>. <https://www.rfc-editor.org/info/rfc3647>.
[RFC6955] Schaad, J. and H. Prafullchandra, "Diffie-Hellman Proof- [RFC6955] Schaad, J. and H. Prafullchandra, "Diffie-Hellman Proof-
of-Possession Algorithms", RFC 6955, DOI 10.17487/RFC6955, of-Possession Algorithms", RFC 6955, DOI 10.17487/RFC6955,
May 2013, <https://www.rfc-editor.org/rfc/rfc6955>. May 2013, <https://www.rfc-editor.org/info/rfc6955>.
Appendix A. ASN.1 Module Appendix A. ASN.1 Module
This ASN.1 Module uses the conventions established by [RFC5912] and This ASN.1 Module uses the conventions established by [RFC5912] and
[RFC6268]. [RFC6268].
<CODE BEGINS> <CODE BEGINS>
PrivateKeyPossessionStatement-2025 PrivateKeyPossessionStatement-2025
{ 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-private-key-possession-stmt-2025(TBD0) } id-mod-private-key-possession-stmt-2025(118) }
DEFINITIONS IMPLICIT TAGS ::= BEGIN DEFINITIONS IMPLICIT TAGS ::= BEGIN
EXPORTS ALL; EXPORTS ALL;
IMPORTS IMPORTS
ATTRIBUTE ATTRIBUTE
FROM PKIX-CommonTypes-2009 -- in [RFC5912] FROM PKIX-CommonTypes-2009 -- in [RFC5912]
{ 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)
skipping to change at page 10, line 48 skipping to change at line 467
regCtrl-privateKeyPossessionStatement ATTRIBUTE ::= regCtrl-privateKeyPossessionStatement ATTRIBUTE ::=
privateKeyPossessionStatement privateKeyPossessionStatement
id-regCtrl-statementOfPossession OBJECT IDENTIFIER ::= id-regCtrl-statementOfPossession OBJECT IDENTIFIER ::=
id-at-statementOfPossession id-at-statementOfPossession
END END
<CODE ENDS> <CODE ENDS>
Appendix B. Example use of the privateKeyPossessionStatement Attribute Appendix B. Example Use of the privateKeyPossessionStatement Attribute
In this example, the self-signed certificate for the CA is: In this example, the self-signed certificate for the CA is as
follows:
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIB7DCCAXKgAwIBAgIUL149AUxHunELBZMELEQm+isgKCQwCgYIKoZIzj0EAwMw MIIB7DCCAXKgAwIBAgIUL149AUxHunELBZMELEQm+isgKCQwCgYIKoZIzj0EAwMw
NzELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkV4YW1wbGUgQ0ExEzARBgNVBAMTCmNh NzELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkV4YW1wbGUgQ0ExEzARBgNVBAMTCmNh
LmV4YW1wbGUwHhcNMjUwMTAzMjAyNzA5WhcNMzUwMTAzMjAyNzA5WjA3MQswCQYD LmV4YW1wbGUwHhcNMjUwMTAzMjAyNzA5WhcNMzUwMTAzMjAyNzA5WjA3MQswCQYD
VQQGEwJVUzETMBEGA1UEChMKRXhhbXBsZSBDQTETMBEGA1UEAxMKY2EuZXhhbXBs VQQGEwJVUzETMBEGA1UEChMKRXhhbXBsZSBDQTETMBEGA1UEAxMKY2EuZXhhbXBs
ZTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDxZdB/Glcxdk1p6Jf1j5en6QfliY9OS ZTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDxZdB/Glcxdk1p6Jf1j5en6QfliY9OS
fjZbtje/w6M58PN8Sb3VFln1rPdvD17UXeazSG9Hr/Dq3enbsHHO0pPntcFOgb8n fjZbtje/w6M58PN8Sb3VFln1rPdvD17UXeazSG9Hr/Dq3enbsHHO0pPntcFOgb8n
r8R8LUGhxRzjlxkaEJN+pa6Nf7qk49JDeaM/MD0wDwYDVR0TAQH/BAUwAwEB/zAL r8R8LUGhxRzjlxkaEJN+pa6Nf7qk49JDeaM/MD0wDwYDVR0TAQH/BAUwAwEB/zAL
BgNVHQ8EBAMCAgQwHQYDVR0OBBYEFD6YvLLv3DQbvnGS0qP6bbzyZkCqMAoGCCqG BgNVHQ8EBAMCAgQwHQYDVR0OBBYEFD6YvLLv3DQbvnGS0qP6bbzyZkCqMAoGCCqG
SM49BAMDA2gAMGUCMGfb61IigoJ3QDnlsRdoktREHe0Dpm6DKw3qOyLL6A0cFK9Z SM49BAMDA2gAMGUCMGfb61IigoJ3QDnlsRdoktREHe0Dpm6DKw3qOyLL6A0cFK9Z
g8m11xIwvptlran52gIxAK1VrOjzRsFiHRptO+gFXstTXnQkKBb2/3WQz2SqcIS/ g8m11xIwvptlran52gIxAK1VrOjzRsFiHRptO+gFXstTXnQkKBb2/3WQz2SqcIS/
BWEp+siJ19OXOlz6APDB7w== BWEp+siJ19OXOlz6APDB7w==
-----END CERTIFICATE----- -----END CERTIFICATE-----
Alice generates her ECDSA signature key pair. Then, Alice composes a Alice generates her ECDSA signature key pair. Then, Alice composes a
PKCS#10 Certificate Signing Request (CSR) in the usual manner as PKCS#10 Certificate Signing Request (CSR) in the usual manner as
specified in [RFC2986]. The CSR includes a signature that is specified in [RFC2986]. The CSR includes a signature that is
produced with her ECDSA private key. The CSR is: produced with her ECDSA private key. The CSR is as follows:
-----BEGIN CERTIFICATE REQUEST----- -----BEGIN CERTIFICATE REQUEST-----
MIIBhTCCAQsCAQAwPDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlZBMRAwDgYDVQQH MIIBhTCCAQsCAQAwPDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlZBMRAwDgYDVQQH
EwdIZXJuZG9uMQ4wDAYDVQQDEwVBbGljZTB2MBAGByqGSM49AgEGBSuBBAAiA2IA EwdIZXJuZG9uMQ4wDAYDVQQDEwVBbGljZTB2MBAGByqGSM49AgEGBSuBBAAiA2IA
BIAc+6lXN1MIM/82QeWNb55H0zr+lVgWVeF0bf4jzxCb5MCjVaM0eFEvcjXMV5p4 BIAc+6lXN1MIM/82QeWNb55H0zr+lVgWVeF0bf4jzxCb5MCjVaM0eFEvcjXMV5p4
kzqiJTHC0V2JAoqYMX/DMFIcwZ7xP9uQd9ep6KZ+RXut211L8+W1QI1QJSDNxANR kzqiJTHC0V2JAoqYMX/DMFIcwZ7xP9uQd9ep6KZ+RXut211L8+W1QI1QJSDNxANR
saBQME4GCSqGSIb3DQEJDjFBMD8wDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4Aw saBQME4GCSqGSIb3DQEJDjFBMD8wDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4Aw
IgYDVR0RBBswGYEXYWxpY2VAZW1haWwuZXhhbXBsZS5jb20wCgYIKoZIzj0EAwMD IgYDVR0RBBswGYEXYWxpY2VAZW1haWwuZXhhbXBsZS5jb20wCgYIKoZIzj0EAwMD
aAAwZQIwPa2rOCe60edAF43C/t57IW8liyy+69FE04hMAFgw3Ga+nR+8zDuUsVLw aAAwZQIwPa2rOCe60edAF43C/t57IW8liyy+69FE04hMAFgw3Ga+nR+8zDuUsVLw
xXGAHtcDAjEA6LbvNkZjo6j2z5xRIjrHzEbGgiV4MF4xtnpfSSRI4dB0zT52bWkj xXGAHtcDAjEA6LbvNkZjo6j2z5xRIjrHzEbGgiV4MF4xtnpfSSRI4dB0zT52bWkj
skipping to change at page 12, line 4 skipping to change at line 519
VQQGEwJVUzELMAkGA1UECBMCVkExEDAOBgNVBAcTB0hlcm5kb24xDjAMBgNVBAMT VQQGEwJVUzELMAkGA1UECBMCVkExEDAOBgNVBAcTB0hlcm5kb24xDjAMBgNVBAMT
BUFsaWNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEgBz7qVc3Uwgz/zZB5Y1vnkfT BUFsaWNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEgBz7qVc3Uwgz/zZB5Y1vnkfT
Ov6VWBZV4XRt/iPPEJvkwKNVozR4US9yNcxXmniTOqIlMcLRXYkCipgxf8MwUhzB Ov6VWBZV4XRt/iPPEJvkwKNVozR4US9yNcxXmniTOqIlMcLRXYkCipgxf8MwUhzB
nvE/25B316nopn5Fe63bXUvz5bVAjVAlIM3EA1Gxo3YwdDAMBgNVHRMBAf8EAjAA nvE/25B316nopn5Fe63bXUvz5bVAjVAlIM3EA1Gxo3YwdDAMBgNVHRMBAf8EAjAA
MAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUIx0A0f7tCzkQEZgYzH3NcM2L05IwHwYD MAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUIx0A0f7tCzkQEZgYzH3NcM2L05IwHwYD
VR0jBBgwFoAUPpi8su/cNBu+cZLSo/ptvPJmQKowFwYDVR0gBBAwDjAMBgpghkgB VR0jBBgwFoAUPpi8su/cNBu+cZLSo/ptvPJmQKowFwYDVR0gBBAwDjAMBgpghkgB
ZQMCATAwMAoGCCqGSM49BAMDA2cAMGQCMGu/Uypd7BaVnUjB36UtX9m5ZmPi78y5 ZQMCATAwMAoGCCqGSM49BAMDA2cAMGQCMGu/Uypd7BaVnUjB36UtX9m5ZmPi78y5
1RA8WhbOv0KQVrcYtj4qOdiMVKBcoVceyAIwRJ6U91048NAb3nicHcrGFf1UYrhb 1RA8WhbOv0KQVrcYtj4qOdiMVKBcoVceyAIwRJ6U91048NAb3nicHcrGFf1UYrhb
DlytK4tCa5HBxD/qAgy4/eUzA5NZwVaLK78u DlytK4tCa5HBxD/qAgy4/eUzA5NZwVaLK78u
-----END CERTIFICATE----- -----END CERTIFICATE-----
Alice generates her ECDH key establishment key pair. Then, Alice Alice generates her ECDH key establishment key pair. Then, Alice
composes a PKCS#10 CSR. The CSR attributes include the composes a PKCS#10 CSR. The CSR attributes include the
privateKeyPossessionStatement attribute, which points to her ECDSA privateKeyPossessionStatement attribute, which points to her ECDSA
signature certificate. The CSR includes her ECDH public key and a signature certificate. The CSR includes her ECDH public key and a
signature that is produced with her ECDSA private key. The CSR is: signature that is produced with her ECDSA private key. The CSR is as
follows:
-----BEGIN CERTIFICATE REQUEST----- -----BEGIN CERTIFICATE REQUEST-----
MIIEMTCCA7gCAQAwPDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlZBMRAwDgYDVQQH MIIEMTCCA7gCAQAwPDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlZBMRAwDgYDVQQH
EwdIZXJuZG9uMQ4wDAYDVQQDEwVBbGljZTB0MA4GBSuBBAEMBgUrgQQAIgNiAAQB EwdIZXJuZG9uMQ4wDAYDVQQDEwVBbGljZTB0MA4GBSuBBAEMBgUrgQQAIgNiAAQB
RyQTH+cq1s5F94uFqFe7l1LqGdEC8Tm+e5VYBCfKAC8MJySQMj1GixEEXL+1Wjtg RyQTH+cq1s5F94uFqFe7l1LqGdEC8Tm+e5VYBCfKAC8MJySQMj1GixEEXL+1Wjtg
23XvnJouCDoxSpDCSMqf3kvp5+naM37uxa3ZYgD6DPY3me5EZvyZPvSRJTFl/Bag 23XvnJouCDoxSpDCSMqf3kvp5+naM37uxa3ZYgD6DPY3me5EZvyZPvSRJTFl/Bag
ggL9MGcGCSqGSIb3DQEJDjFaMFgwDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCAwgw ggL9MGcGCSqGSIb3DQEJDjFaMFgwDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCAwgw
IgYDVR0RBBswGYEXYWxpY2VAZW1haWwuZXhhbXBsZS5jb20wFwYDVR0gBBAwDjAM IgYDVR0RBBswGYEXYWxpY2VAZW1haWwuZXhhbXBsZS5jb20wFwYDVR0gBBAwDjAM
BgpghkgBZQMCATAwMIICkAYKKwYBBAGBrGACATGCAoAwggJ8ME8wNzELMAkGA1UE BgpghkgBZQMCATAwMIICkAYKKwYBBAGBrGACATGCAoAwggJ8ME8wNzELMAkGA1UE
BhMCVVMxEzARBgNVBAoTCkV4YW1wbGUgQ0ExEzARBgNVBAMTCmNhLmV4YW1wbGUC BhMCVVMxEzARBgNVBAoTCkV4YW1wbGUgQ0ExEzARBgNVBAMTCmNhLmV4YW1wbGUC
skipping to change at page 12, line 36 skipping to change at line 553
A1Gxo3YwdDAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUIx0A A1Gxo3YwdDAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUIx0A
0f7tCzkQEZgYzH3NcM2L05IwHwYDVR0jBBgwFoAUPpi8su/cNBu+cZLSo/ptvPJm 0f7tCzkQEZgYzH3NcM2L05IwHwYDVR0jBBgwFoAUPpi8su/cNBu+cZLSo/ptvPJm
QKowFwYDVR0gBBAwDjAMBgpghkgBZQMCATAwMAoGCCqGSM49BAMDA2cAMGQCMGu/ QKowFwYDVR0gBBAwDjAMBgpghkgBZQMCATAwMAoGCCqGSM49BAMDA2cAMGQCMGu/
Uypd7BaVnUjB36UtX9m5ZmPi78y51RA8WhbOv0KQVrcYtj4qOdiMVKBcoVceyAIw Uypd7BaVnUjB36UtX9m5ZmPi78y51RA8WhbOv0KQVrcYtj4qOdiMVKBcoVceyAIw
RJ6U91048NAb3nicHcrGFf1UYrhbDlytK4tCa5HBxD/qAgy4/eUzA5NZwVaLK78u RJ6U91048NAb3nicHcrGFf1UYrhbDlytK4tCa5HBxD/qAgy4/eUzA5NZwVaLK78u
MAoGCCqGSM49BAMDA2cAMGQCL2TNHPULWcCS2DqZCCiQeSwx2JPLMI14Vi977bzy MAoGCCqGSM49BAMDA2cAMGQCL2TNHPULWcCS2DqZCCiQeSwx2JPLMI14Vi977bzy
rImq5p0H3Bel6fAS8BnQ00WNAjEAhHDAlcbRuHhqdW6mOgDd5kWEGGqgixIuvEEc rImq5p0H3Bel6fAS8BnQ00WNAjEAhHDAlcbRuHhqdW6mOgDd5kWEGGqgixIuvEEc
fVbnNCEyEE4n0mQ99PHURnXoHwqF fVbnNCEyEE4n0mQ99PHURnXoHwqF
-----END CERTIFICATE REQUEST----- -----END CERTIFICATE REQUEST-----
The CSR decodes to: The CSR decodes to the following:
0 1073: SEQUENCE { 0 1073: SEQUENCE {
4 952: SEQUENCE { 4 952: SEQUENCE {
8 1: INTEGER 0 8 1: INTEGER 0
11 60: SEQUENCE { 11 60: SEQUENCE {
13 11: SET { 13 11: SET {
15 9: SEQUENCE { 15 9: SEQUENCE {
17 3: OBJECT IDENTIFIER countryName (2 5 4 6) 17 3: OBJECT IDENTIFIER countryName (2 5 4 6)
22 2: PrintableString 'US' 22 2: PrintableString 'US'
: } : }
skipping to change at page 19, line 30 skipping to change at line 878
Acknowledgements Acknowledgements
Thanks to Sean Turner, Joe Mandel, Mike StJohns, Mike Ounsworth, John Thanks to Sean Turner, Joe Mandel, Mike StJohns, Mike Ounsworth, John
Gray, Carl Wallace, Corey Bonnell, Hani Ezzadeen, Deb Cooley, Mohamed Gray, Carl Wallace, Corey Bonnell, Hani Ezzadeen, Deb Cooley, Mohamed
Boucadair, and Bron Gondwana for their constructive comments. Boucadair, and Bron Gondwana for their constructive comments.
Author's Address Author's Address
Russ Housley Russ Housley
Vigil Security, LLC Vigil Security, LLC
Herndon, VA, Herndon, VA
United States of America United States of America
Email: housley@vigilsec.com Email: housley@vigilsec.com
 End of changes. 42 change blocks. 
110 lines changed or deleted 108 lines changed or added

This html diff was produced by rfcdiff 1.48.