draft-ietf-stir-enhance-rfc8226-03.txt   draft-ietf-stir-enhance-rfc8226-04.txt 
Network Working Group R. Housley Network Working Group R. Housley
Internet-Draft Vigil Security Internet-Draft Vigil Security
Updates: 8226 (if approved) 10 June 2021 Updates: 8226 (if approved) 30 June 2021
Intended status: Standards Track Intended status: Standards Track
Expires: 12 December 2021 Expires: 1 January 2022
Enhanced JWT Claim Constraints for STIR Certificates Enhanced JWT Claim Constraints for STIR Certificates
draft-ietf-stir-enhance-rfc8226-03 draft-ietf-stir-enhance-rfc8226-04
Abstract Abstract
RFC 8226 specifies the use of certificates for Secure Telephone RFC 8226 specifies the use of certificates for Secure Telephone
Identity Credentials, and these certificates are often called "STIR Identity Credentials, and these certificates are often called "STIR
Certificates". RFC 8226 provides a certificate extension to Certificates". RFC 8226 provides a certificate extension to
constrain the JSON Web Token (JWT) claims that can be included in the constrain the JSON Web Token (JWT) claims that can be included in the
Personal Assertion Token (PASSporT) as defined in RFC 8225. If the Personal Assertion Token (PASSporT) as defined in RFC 8225. If the
PASSporT signer includes a JWT claim outside the constraint PASSporT signer includes a JWT claim outside the constraint
boundaries, then the PASSporT recipient will reject the entire boundaries, then the PASSporT recipient will reject the entire
PASSporT. This document updates RFC 8226 to define an additional way PASSporT. This document updates RFC 8226; it provides all of the
that the JWT claims can be constrained. capabilities available in the original certificate extension as well
as an additional way to constrain the allowable JWT claims. The
enhanced extension can also provide a list of claims that are not
allowed to be included in the PASSporT.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 12 December 2021. This Internet-Draft will expire on 1 January 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 Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are as 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 Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Enhanced JWT Claim Constraints Syntax . . . . . . . . . . . . 3 3. Enhanced JWT Claim Constraints Syntax . . . . . . . . . . . . 3
4. Usage Examples . . . . . . . . . . . . . . . . . . . . . . . 4 4. Usage Examples . . . . . . . . . . . . . . . . . . . . . . . 5
5. Certificate Extension Example . . . . . . . . . . . . . . . . 5 5. Certificate Extension Example . . . . . . . . . . . . . . . . 5
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 6. Guidance to Certification Authorities . . . . . . . . . . . . 7
7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 8. Security Considerations . . . . . . . . . . . . . . . . . . . 7
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8
9.1. Normative References . . . . . . . . . . . . . . . . . . 8 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 8
9.2. Informative References . . . . . . . . . . . . . . . . . 9 10.1. Normative References . . . . . . . . . . . . . . . . . . 8
Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 9 10.2. Informative References . . . . . . . . . . . . . . . . . 9
Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11
1. Introduction 1. Introduction
The use of certificates [RFC5280] in establishing authority over The use of certificates [RFC5280] in establishing authority over
telephone numbers is described in [RFC8226]. These certificates are telephone numbers is described in [RFC8226]. These certificates are
often called "STIR Certificates". STIR certificates are an important often called "STIR Certificates". STIR certificates are an important
element of the overall system that prevents the impersonation of element of the overall system that prevents the impersonation of
telephone numbers on the Internet. telephone numbers on the Internet.
skipping to change at page 4, line 8 skipping to change at page 4, line 8
required by [RFC8225], and these claims SHOULD NOT be part of the required by [RFC8225], and these claims SHOULD NOT be part of the
mustInclude list. If mustInclude is absent, the iat, orig, and mustInclude list. If mustInclude is absent, the iat, orig, and
dest claims MUST appear in the PASSporT. dest claims MUST appear in the PASSporT.
2. permittedValues indicates that if the claim name is present, the 2. permittedValues indicates that if the claim name is present, the
claim MUST exactly match one of the listed values. claim MUST exactly match one of the listed values.
3. mustExclude indicates JWT claims that MUST NOT appear in the 3. mustExclude indicates JWT claims that MUST NOT appear in the
PASSporT. The baseline PASSporT claims ("iat", "orig", and PASSporT. The baseline PASSporT claims ("iat", "orig", and
"dest") are always permitted, and these claims MUST NOT be part "dest") are always permitted, and these claims MUST NOT be part
of the mustExclude list. of the mustExclude list. If one of these baseline PASSporT
claims appears in the mustExclude list, then the certificate MUST
be treated as if the extension was not present.
Following the precedent in [RFC8226], JWT Claim Names MUST be ASCII
strings, which are also known as strings using the International
Alphabet No. 5 [ISO646].
The Enhanced JWT Claim Constraints certificate extension is The Enhanced JWT Claim Constraints certificate extension is
identified by the following object identifier (OID): identified by the following object identifier (OID):
id-pe-eJWTClaimConstraints OBJECT IDENTIFIER ::= { id-pe TBD1 } id-pe-eJWTClaimConstraints OBJECT IDENTIFIER ::= { id-pe TBD1 }
The Enhanced JWT Claim Constraints certificate extension has the The Enhanced JWT Claim Constraints certificate extension has the
following syntax: following syntax:
EnhancedJWTClaimConstraints ::= SEQUENCE { EnhancedJWTClaimConstraints ::= SEQUENCE {
skipping to change at page 5, line 15 skipping to change at page 5, line 27
service will treat as invalid any PASSporT it receives without a service will treat as invalid any PASSporT it receives without a
"confidence" PASSporT claim. "confidence" PASSporT claim.
* If a CA issues a certificate to an authentication service that * If a CA issues a certificate to an authentication service that
includes an Enhanced JWT Claim Constraints certificate extension includes an Enhanced JWT Claim Constraints certificate extension
that contains the permittedValues JWTClaimName "confidence" and a that contains the permittedValues JWTClaimName "confidence" and a
permitted "high" value, then a verification service will treat as permitted "high" value, then a verification service will treat as
invalid any PASSporT it receives with a PASSporT "confidence" invalid any PASSporT it receives with a PASSporT "confidence"
claim with a value other than "high". However, a verification claim with a value other than "high". However, a verification
service will not treat as invalid a PASSporT it receives without a service will not treat as invalid a PASSporT it receives without a
PASSporT "confidence" claim at all. PASSporT "confidence" claim at all, unless "confidence" also
appears in mustInclude.
* If a CA issues a certificate to an authentication service that * If a CA issues a certificate to an authentication service that
includes an Enhanced JWT Claim Constraints certificate extension includes an Enhanced JWT Claim Constraints certificate extension
that contains the mustExclude JWTClaimName "confidence", then a that contains the mustExclude JWTClaimName "confidence", then a
verification service will treat as invalid any PASSporT it verification service will treat as invalid any PASSporT it
receives with a PASSporT "confidence" claim regardless of the receives with a PASSporT "confidence" claim regardless of the
claim value. claim value.
5. Certificate Extension Example 5. Certificate Extension Example
skipping to change at page 7, line 5 skipping to change at page 7, line 5
: } : }
52 12: [2] { 52 12: [2] {
54 10: SEQUENCE { 54 10: SEQUENCE {
56 8: IA5String 'priority' 56 8: IA5String 'priority'
: } : }
: } : }
: } : }
Figure 2. Example EnhancedJWTClaimConstraints extension. Figure 2. Example EnhancedJWTClaimConstraints extension.
6. IANA Considerations 6. Guidance to Certification Authorities
The EnhancedJWTClaimConstraints extension specified in this document
and the JWTClaimConstraints extension specified in [RFC8226] MUST NOT
both appear in the same certificate.
If the situation calls for mustExclude constraints, then the
EnhancedJWTClaimConstraints extension is the only extension that can
express the constraints.
On the other hand, if the situation does not call for mustExclude
constraints, then either the EnhancedJWTClaimConstraints extension or
the JWTClaimConstraints extension can express the constraints. Until
such time as the EnhancedJWTClaimConstraints become widely
implemented, the use of the JWTClaimConstraints extension may be more
likely to be implemented. This guess is based on the presumption
that the first specified extension will be implemented more widely in
the next few years.
7. IANA Considerations
This document makes use of object identifiers for the Enhanced JWT This document makes use of object identifiers for the Enhanced JWT
Claim Constraints certificate extension defined in Section 3 and the Claim Constraints certificate extension defined in Section 3 and the
ASN.1 module identifier defined in Appendix A. Therefore, IANA is ASN.1 module identifier defined in Appendix A. Therefore, IANA is
asked to made the following assignments within the SMI Numbers asked to made the following assignments within the SMI Numbers
Registry. Registry.
For the Enhanced JWT Claim Constraints certificate extension in the For the Enhanced JWT Claim Constraints certificate extension in the
"SMI Security for PKIX Certificate Extension" (1.3.6.1.5.5.7.1) "SMI Security for PKIX Certificate Extension" (1.3.6.1.5.5.7.1)
registry: registry:
TBD1 id-pe-eJWTClaimConstraints TBD1 id-pe-eJWTClaimConstraints
For the ASN.1 module identifier in the "SMI Security for PKIX Module For the ASN.1 module identifier in the "SMI Security for PKIX Module
Identifier" (1.3.6.1.5.5.7.0) registry: Identifier" (1.3.6.1.5.5.7.0) registry:
TBD2 id-mod-eJWTClaimConstraints-2021 TBD2 id-mod-eJWTClaimConstraints-2021
7. Security Considerations 8. Security Considerations
For further information on certificate security and practices, see For further information on certificate security and practices, see
[RFC5280], especially the Security Considerations section. [RFC5280], especially the Security Considerations section.
Since non-critical certificate extension are ignored by
implementations that do not recognize the extension object identifier
(OID), constraints on PASSporT validation will only be applied by
relying parties that recognize the EnhancedJWTClaimConstraints
extension.
The Enhanced JWT Claim Constraints certificate extension can be used The Enhanced JWT Claim Constraints certificate extension can be used
by certificate issuers to provide limits on the acceptable PASSporTs by certificate issuers to provide limits on the acceptable PASSporTs
that will be accepted by verification services. Enforcement of these that can be accepted by verification services. Enforcement of these
limits depends upon proper implementation by the verification limits depends upon proper implementation by the verification
services. The digital signature on the PASSportT data structure will services. The digital signature on the PASSportT data structure will
be valid even if the limits are violated. be valid even if the limits are violated.
Use of the Enhanced JWT Claim Constraints certificate extension Use of the Enhanced JWT Claim Constraints certificate extension
permittedValues constraint is most useful when the claim definition permittedValues constraint is most useful when the claim definition
allows a specified set of values. In this way, all of the values allows a specified set of values. In this way, all of the values
that are not listed in the JWTClaimValuesList are prohibited in a that are not listed in the JWTClaimValuesList are prohibited in a
valid PASSporT. valid PASSporT.
Certificate issuers must take care when imposing constraints on the Certificate issuers must take care when imposing constraints on the
PASSporT claims and the claim values that can successfully validated; PASSporT claims and the claim values that can successfully validated;
some combinations can prevent any PASSporT from being successfully some combinations can prevent any PASSporT from being successfully
validated by the certificate. For example, an entry in mustInclude validated by the certificate. For example, an entry in mustInclude
and an entry in mustExclude for the same claim will prevent and an entry in mustExclude for the same claim will prevent
successful validation on any PASSporT. successful validation on any PASSporT.
Certificate issuers should not include an entry in mustExclude for Certificate issuers SHOULD NOT include an entry in mustExclude for
the "rcdi" claim for a certificate that will be used with the the "rcdi" claim for a certificate that will be used with the
PASSporT Extension for Rich Call Data defined in PASSporT Extension for Rich Call Data defined in
[I-D.ietf-stir-passport-rcd]. Excluding this claim would prevent the [I-D.ietf-stir-passport-rcd]. Excluding this claim would prevent the
integrity protection mechanism from working properly. integrity protection mechanism from working properly.
Certificate issuers must take care when performing certificate Certificate issuers must take care when performing certificate
renewal [RFC4949] to include exactly the same Enhanced JWT Claim renewal [RFC4949] to include exactly the same Enhanced JWT Claim
Constraints certificate extension in the new certificate as the old Constraints certificate extension in the new certificate as the old
one. Renewal usually takes place before the old certificate expires, one. Renewal usually takes place before the old certificate expires,
so there is a period of time where both the new certificate and the so there is a period of time where both the new certificate and the
old certificate are valid. If different constraints appear in the old certificate are valid. If different constraints appear in the
two certificates with the same public key, some PASSporTs might be two certificates with the same public key, some PASSporTs might be
valid when one certificate is used and invalid when the other one is valid when one certificate is used and invalid when the other one is
used. used.
8. Acknowledgements 9. Acknowledgements
Many thanks to Chris Wendt for his insight into the need for the for Many thanks to Chris Wendt for his insight into the need for the for
the Enhanced JWT Claim Constraints certificate extension. the Enhanced JWT Claim Constraints certificate extension.
Thanks to Ben Campbell and Theresa Enghardt for the thoughtful review Thanks to Ben Campbell, Theresa Enghardt, Ben Kaduk, Erik Kline, Eric
and comments. The document is much better as a result of the Vyncke, and Rob Wilton for their thoughtful review and comments. The
comments. document is much better as a result of their efforts.
9. References 10. References
9.1. Normative References 10.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/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[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,
skipping to change at page 9, line 19 skipping to change at page 9, line 39
[RFC8226] Peterson, J. and S. Turner, "Secure Telephone Identity [RFC8226] Peterson, J. and S. Turner, "Secure Telephone Identity
Credentials: Certificates", RFC 8226, Credentials: Certificates", RFC 8226,
DOI 10.17487/RFC8226, February 2018, DOI 10.17487/RFC8226, February 2018,
<https://www.rfc-editor.org/info/rfc8226>. <https://www.rfc-editor.org/info/rfc8226>.
[X.680] International Telecommunication Union, "Information [X.680] International Telecommunication Union, "Information
Technology - Abstract Syntax Notation One (ASN.1): Technology - Abstract Syntax Notation One (ASN.1):
Specification of basic notation", ISO/IEC 8824-1, August Specification of basic notation", ISO/IEC 8824-1, August
2021. 2021.
9.2. Informative References 10.2. Informative References
[I-D.ietf-stir-cert-delegation] [I-D.ietf-stir-cert-delegation]
Peterson, J., "STIR Certificate Delegation", Work in Peterson, J., "STIR Certificate Delegation", Work in
Progress, Internet-Draft, draft-ietf-stir-cert-delegation- Progress, Internet-Draft, draft-ietf-stir-cert-delegation-
04, 22 February 2021, <https://www.ietf.org/archive/id/ 04, 22 February 2021, <https://www.ietf.org/archive/id/
draft-ietf-stir-cert-delegation-04.txt>. draft-ietf-stir-cert-delegation-04.txt>.
[I-D.ietf-stir-passport-rcd] [I-D.ietf-stir-passport-rcd]
Wendt, C. and J. Peterson, "PASSporT Extension for Rich Wendt, C. and J. Peterson, "PASSporT Extension for Rich
Call Data", Work in Progress, Internet-Draft, draft-ietf- Call Data", Work in Progress, Internet-Draft, draft-ietf-
stir-passport-rcd-11, 29 March 2021, stir-passport-rcd-11, 29 March 2021,
<https://www.ietf.org/archive/id/draft-ietf-stir-passport- <https://www.ietf.org/archive/id/draft-ietf-stir-passport-
rcd-11.txt>. rcd-11.txt>.
[ISO646] International Organization for Standardization,
"Information processing - ISO 7-bit coded character set
for information interchange", ISO/IEC 646:1991, December
1991.
[RFC4949] Shirey, R., "Internet Security Glossary, Version 2", [RFC4949] Shirey, R., "Internet Security Glossary, Version 2",
FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007, FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007,
<https://www.rfc-editor.org/info/rfc4949>. <https://www.rfc-editor.org/info/rfc4949>.
[RFC7468] Josefsson, S. and S. Leonard, "Textual Encodings of PKIX, [RFC7468] Josefsson, S. and S. Leonard, "Textual Encodings of PKIX,
PKCS, and CMS Structures", RFC 7468, DOI 10.17487/RFC7468, PKCS, and CMS Structures", RFC 7468, DOI 10.17487/RFC7468,
April 2015, <https://www.rfc-editor.org/info/rfc7468>. April 2015, <https://www.rfc-editor.org/info/rfc7468>.
Appendix A. ASN.1 Module Appendix A. ASN.1 Module
 End of changes. 20 change blocks. 
27 lines changed or deleted 68 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/