| < 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/ | ||||