- Home
- RFC 9336
RFC 9336: X.509 Certificate General-Purpose Extended Key Usage (EKU) for Document Signing
- T. Ito,
- T. Okubo,
- S. Turner
Abstract
RFC 5280 specifies several extended key purpose identifiers
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
[RFC5280] specifies several extended key purpose
identifiers
In circumstances where code signing and S/MIME certificates are also
used for Document Signing, technical or policy changes made to the
code signing and S/MIME ecosystem may cause unexpected behaviors or
have an adverse impact such as decreased cryptographic
agility on the Document
Vendor-defined KeyPurposeIds that are used in a PKI governed by the
vendor or a group of vendors pose no interoperabilit
Therefore, it is not favorable to use a vendor-defined KeyPurposeId for signing a document that is not governed by the vendor.¶
This document defines an extended key purpose identifier for Document Signing.¶
2. Conventions and Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
3. Extended Key Purpose for Document Signing
This specification defines the KeyPurposeId id
As described in [RFC5280], "[i]f the [Extended Key Usage] extension is present, then the certificate MUST only be used for one of the purposes indicated." [RFC5280] also notes that "[i]f multiple [key] purposes are indicated the application need not recognize all purposes indicated, as long as the intended purpose is present."¶
Document-Signing applications MAY require that the EKU extension be present
and that the id
The term "Document Signing" in this document refers to digitally signing contents that are consumed by people. To be more precise, contents are intended to be shown to a person in a printable or displayable form by means of services or software, rather than processed by machines.¶
3.1. Including the Extended Key Purpose for Document Signing in Certificates
[RFC5280] specifies the EKU X.509 certificate extension for use on the Internet. The extension indicates one or more purposes for which the certified public key is valid. The EKU extension can be used in conjunction with the key usage extension, which indicates the set of basic cryptographic operations for which the certified key may be used.¶
The EKU extension syntax is repeated here for convenience:¶
ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId KeyPurposeId ::= OBJECT IDENTIFIER
As described in [RFC5280], the EKU extension may, at the option of the certificate issuer, be either critical or non-critical.¶
This specification defines the KeyPurposeId id
id-kp OBJECT IDENTIFIER ::=
{ iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) 3 }
id-kp-documentSigning OBJECT IDENTIFIER ::= { id-kp 36 }
4. Using the Extended Key Purpose for Document Signing in a Certificate
Our intended use case is people consuming the contents of signed documents. To be more precise, contents are intended to be shown to a person in a printable or displayable form by means of services or software, rather than processed by machines. The digital signature on the contents is to indicate to the recipient of the contents that the content has not changed since it was signed by the identity indicated as the subject of the certificate. To validate the digital signature that is signed on contents intended to be consumed by people, implementations MAY perform the steps below during certificate validation.¶
The following procedure is used to examine the Key
- If there are no restrictions set for the relying party and the relying party software, the certificate is acceptable.¶
-
If there are restrictions set for the relying party and relying party software, then process the Key
Purpose Id (s ) as described below.¶ This procedure is intended to permit or prohibit the presence of a certain KeyPurposeId or the complete absence of KeyPurposeIds. It is outside the scope of this document, but the relying party can permit or prohibit combinations of KeyPurposeIds, instead of a single KeyPurposeId. A consideration on prohibiting combinations of KeyPurposeIds is described in the Security Considerations section of this document. If both Excluded KeyPurposeId and Permitted KeyPurposeId exist, the relying party or the relying party software processes each restriction on Excluded KeyPurposeId first and then processes each restriction on Permitted KeyPurposeId.¶
- Excluded KeyPurposeId procedure:
-
Excluded KeyPurposeId is a KeyPurposeId that the relying party or the relying party software prohibits. Examples of Excluded KeyPurposeId include the presence of the any
Extended Key Usage KeyPurposeId or the complete absence of the EKU extension in a certificate. If a KeyPurposeId of the certificate meets the conditions set by the Excluded KeyPurposeId restriction, the relying party or the relying party software rejects the certificate.¶ - Permitted KeyPurposeId procedure:
-
Permitted KeyPurposeId is a KeyPurposeId that the relying party or the relying party software accepts. Examples of Permitted KeyPurposeId include the presence of this general-purpose Document
-Signing KeyPurposeId and/or the protocol -specific KeyPurposeIds that are relevant to Document Signing. If a KeyPurposeId of the certificate meets the condition set by a Permitted KeyPurposeId restriction, the certificate is acceptable. Otherwise, the relying party or the relying party software rejects the certificate.¶
When a single application has the capability to process various data formats, the software may choose to make the excluded and permitted decisions separately in accordance with the format it is handling (e.g., TEXT and PDF).¶
6. Security Considerations
The usage of the id
To reduce the risk of specific cross-protocol attacks, the relying party or the relying party software may additionally prohibit use of specific combinations of KeyPurposeIds.¶
While a specific protocol or signing scheme may choose to come up with
their own KeyPurposeIds, some may not have significant motive or
resources to set up and manage their own KeyPurposeIds. This general-purpose
Document
Introduction of this id
7. IANA Considerations
IANA has registered the following OID in the "SMI Security for PKIX
Extended Key Purpose" registry
| Decimal | Description | References |
|---|---|---|
| 36 | id |
RFC 9336 |
IANA has also registered the following ASN.1 [X.680] module OID in the "SMI
Security for PKIX Module Identifier" registry
| Decimal | Description | References |
|---|---|---|
| 104 | id |
RFC 9336 |
8. References
8.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC5280]
-
Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10
.17487 , , <https:///RFC5280 www >..rfc -editor .org /info /rfc5280 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [X.680]
- ITU-T, "Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation", ITU-T Recommendation X.680, .
8.2. Informative References
- [RFC7299]
-
Housley, R., "Object Identifier Registry for the PKIX Working Group", RFC 7299, DOI 10
.17487 , , <https:///RFC7299 www >..rfc -editor .org /info /rfc7299
Appendix A. ASN.1 Module
The following ASN.1 [X.680] module provides the complete definition of the
Document
DocSignEKU { iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) id-mod(0)
id-mod-docsign-eku(104) }
DEFINITIONS EXPLICIT TAGS ::=
BEGIN
-- EXPORTS ALL --
-- IMPORTS NOTHING --
-- OID Arc --
id-kp OBJECT IDENTIFIER ::= {
iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) kp(3) }
-- Document-Signing Extended Key Usage --
id-kp-documentSigning OBJECT IDENTIFIER ::= { id-kp 36 }
END
Acknowledgments
We would like to thank Russ Housley for verifying the ASN.1 module. Additionally, we would like to thank Corey Bonnell, Wendy Brown, Russ Housley, Prachi Jain, and Stefan Santesson for their comments.¶