| < draft-ietf-stir-certificates-07.txt | draft-ietf-stir-certificates-08.txt > | |||
|---|---|---|---|---|
| Network Working Group J. Peterson | Network Working Group J. Peterson | |||
| Internet-Draft Neustar | Internet-Draft Neustar | |||
| Intended status: Standards Track S. Turner | Intended status: Standards Track S. Turner | |||
| Expires: January 9, 2017 sn3rd | Expires: March 13, 2017 sn3rd | |||
| July 8, 2016 | September 9, 2016 | |||
| Secure Telephone Identity Credentials: Certificates | Secure Telephone Identity Credentials: Certificates | |||
| draft-ietf-stir-certificates-07.txt | draft-ietf-stir-certificates-08.txt | |||
| Abstract | Abstract | |||
| In order to prevent the impersonation of telephone numbers on the | In order to prevent the impersonation of telephone numbers on the | |||
| Internet, some kind of credential system needs to exist that | Internet, some kind of credential system needs to exist that | |||
| cryptographically proves authority over telephone numbers. This | cryptographically asserts authority over telephone numbers. This | |||
| document describes the use of certificates in establishing authority | document describes the use of certificates in establishing authority | |||
| over telephone numbers, as a component of a broader architecture for | over telephone numbers, as a component of a broader architecture for | |||
| managing telephone numbers as identities in protocols like SIP. | managing telephone numbers as identities in protocols like SIP. | |||
| 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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 January 9, 2017. | This Internet-Draft will expire on March 13, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 12 ¶ | skipping to change at page 2, line 12 ¶ | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | 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. Authority for Telephone Numbers in Certificates . . . . . . . 3 | 3. Authority for Telephone Numbers in Certificates . . . . . . . 3 | |||
| 4. Certificate Usage . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Certificate Usage with STIR . . . . . . . . . . . . . . . . . 5 | |||
| 5. Enrollment and Authorization using the TN Authorization List 6 | 5. Enrollment and Authorization using the TN Authorization List 6 | |||
| 5.1. Levels Of Assurance . . . . . . . . . . . . . . . . . . . 7 | 5.1. Levels Of Assurance . . . . . . . . . . . . . . . . . . . 7 | |||
| 5.2. Certificate Extension Scope and Structure . . . . . . . . 8 | 5.2. Certificate Extension Scope and Structure . . . . . . . . 8 | |||
| 6. Provisioning Private Keying Material . . . . . . . . . . . . 8 | 6. Provisioning Private Keying Material . . . . . . . . . . . . 8 | |||
| 7. Acquiring Credentials to Verify Signatures . . . . . . . . . 9 | 7. Acquiring Credentials to Verify Signatures . . . . . . . . . 9 | |||
| 8. Verifying Certificate Scope with TN Authorization List . . . 10 | 8. TN Authorization List Syntax . . . . . . . . . . . . . . . . 10 | |||
| 9. Certificate Freshness and Revocation . . . . . . . . . . . . 11 | 9. Certificate Freshness and Revocation . . . . . . . . . . . . 12 | |||
| 9.1. Choosing a Verification Method . . . . . . . . . . . . . 12 | 9.1. Choosing a Verification Method . . . . . . . . . . . . . 12 | |||
| 9.2. Using OCSP with TN Auth List . . . . . . . . . . . . . . 13 | 9.2. Using OCSP with TN Auth List . . . . . . . . . . . . . . 13 | |||
| 9.2.1. OCSP Extension Specification . . . . . . . . . . . . 13 | 9.2.1. OCSP Extension Specification . . . . . . . . . . . . 14 | |||
| 9.3. Acquiring TN Lists By Reference . . . . . . . . . . . . . 15 | 9.3. Acquiring TN Lists By Reference . . . . . . . . . . . . . 16 | |||
| 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
| 12. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 20 | Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 21 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 1. Introduction | 1. Introduction | |||
| The STIR problem statement [RFC7340] identifies the primary enabler | The STIR problem statement [RFC7340] identifies the primary enabler | |||
| of robocalling, vishing, swatting and related attacks as the | of robocalling, vishing, swatting and related attacks as the | |||
| capability to impersonate a calling party number. The starkest | capability to impersonate a calling party number. The starkest | |||
| examples of these attacks are cases where automated callees on the | examples of these attacks are cases where automated callees on the | |||
| PSTN rely on the calling number as a security measure, for example to | PSTN rely on the calling number as a security measure, for example to | |||
| access a voicemail system. Robocallers use impersonation as a means | access a voicemail system. Robocallers use impersonation as a means | |||
| of obscuring identity; while robocallers can, in the ordinary PSTN, | of obscuring identity; while robocallers can, in the ordinary PSTN, | |||
| block (that is, withhold) their caller identity, callees are less | block (that is, withhold) their caller identity, callees are less | |||
| likely to pick up calls from blocked identities, and therefore | likely to pick up calls from blocked identities, and therefore | |||
| appearing to calling from some number, any number, is preferable. | appearing to calling from some number, any number, is preferable. | |||
| Robocallers however prefer not to call from a number that can trace | Robocallers however prefer not to call from a number that can trace | |||
| back to the robocaller, and therefore they impersonate numbers that | back to the robocaller, and therefore they impersonate numbers that | |||
| are not assigned to them. | are not assigned to them. | |||
| One of the most important components of a system to prevent | One of the most important components of a system to prevent | |||
| impersonation is the implementation of credentials which identify the | impersonation is the implementation of credentials which identify the | |||
| parties who control telephone numbers. With these credentials, | parties who control telephone numbers. With these credentials, | |||
| parties can prove that they are in fact authorized to use telephony | parties can assert that they are in fact authorized to use telephony | |||
| numbers, and thus distinguish themselves from impersonators unable to | numbers, and thus distinguish themselves from impersonators unable to | |||
| present such credentials. For that reason the STIR threat model | present such credentials. For that reason the STIR threat model | |||
| [RFC7375] stipulates, "The design of the credential system envisioned | [RFC7375] stipulates, "The design of the credential system envisioned | |||
| as a solution to these threats must, for example, limit the scope of | as a solution to these threats must, for example, limit the scope of | |||
| the credentials issued to carriers or national authorities to those | the credentials issued to carriers or national authorities to those | |||
| numbers that fall under their purview." This document describes | numbers that fall under their purview." This document describes | |||
| credential systems for telephone numbers based on X.509 version 3 | credential systems for telephone numbers based on X.509 version 3 | |||
| certificates in accordance with [RFC5280]. While telephone numbers | certificates in accordance with [RFC5280]. While telephone numbers | |||
| have long been a part of the X.509 standard, this document provides | have long been part of the X.509 standard (X.509 supports arbitrary | |||
| ways to determine authority more aligned with telephone network | naming attributes to be included in a certificate; the | |||
| requirements, including extending X.509 with a Telephone Number | telephoneNumber attribute was defined in the 1988 [X.520] | |||
| Authorization List which binds certificates to authority for | specification) this document provides ways to determine authority | |||
| more aligned with telephone network requirements, including extending | ||||
| X.509 with a Telephone Number Authorization List certificate | ||||
| extension which binds certificates to asserted authority for | ||||
| particular telephone numbers, or potentially telephone number blocks | particular telephone numbers, or potentially telephone number blocks | |||
| or ranges. | or ranges. | |||
| In the STIR in-band architecture specified in | In the STIR in-band architecture specified in | |||
| [I-D.ietf-stir-rfc4474bis], two basic types of entities need access | [I-D.ietf-stir-rfc4474bis], two basic types of entities need access | |||
| to these credentials: authentication services, and verification | to these credentials: authentication services, and verification | |||
| services (or verifiers). An authentication service must be operated | services (or verifiers). An authentication service must be operated | |||
| by an entity enrolled with the certification authority (CA, see | by an entity enrolled with the certification authority (CA, see | |||
| Section 5), whereas a verifier need only trust the trust anchor of | Section 5), whereas a verifier need only trust the trust anchor of | |||
| the authority, and have a means to access and validate the public | the authority, and have a means to access and validate the public | |||
| keys associated with these certificates. Although the guidance in | keys associated with these certificates. Although the guidance in | |||
| this document is written with the STIR in-band architecture in mind, | this document is written with the STIR in-band architecture in mind, | |||
| the credential system described in this document could be useful for | the credential system described in this document could be useful for | |||
| other protocols that want to make use of certificates to prove | other protocols that want to make use of certificates to assert | |||
| authority over telephone numbers on the Internet. | authority over telephone numbers on the Internet. | |||
| This document specifies only the credential syntax and semantics | This document specifies only the credential syntax and semantics | |||
| necessary to support this architecture. It does not assume any | necessary to support this architecture. It does not assume any | |||
| particular CA or deployment environment. We anticipate that some | particular CA or deployment environment. We anticipate that some | |||
| deployment experience will be necessary to determine optimal | deployment experience will be necessary to determine optimal | |||
| operational models. | operational models. | |||
| 2. Terminology | 2. Terminology | |||
| skipping to change at page 3, line 50 ¶ | skipping to change at page 4, line 5 ¶ | |||
| "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 RFC | "OPTIONAL" in this document are to be interpreted as described in RFC | |||
| 2119 [RFC2119]. | 2119 [RFC2119]. | |||
| 3. Authority for Telephone Numbers in Certificates | 3. Authority for Telephone Numbers in Certificates | |||
| At a high level, this specification details two non-exclusive | At a high level, this specification details two non-exclusive | |||
| approaches that can be employed to determine authority over telephone | approaches that can be employed to determine authority over telephone | |||
| numbers with certificates. | numbers with certificates. | |||
| The first approach is to leverage the subject of the certificate to | The first approach is to leverage the existing subject of the | |||
| ascertain that the holder of the certificate is authorized to claim | certificate to ascertain that the holder of the certificate is | |||
| authority over a telephone number. The subject might be represented | authorized to claim authority over a telephone number. The subject | |||
| as a domain name in the SubjectAltName, such as an "example.net" | might be represented as a domain name in the SubjectAltName, such as | |||
| where that domain is known to relying parties as a carrier, or | an "example.net" where that domain is known to relying parties as a | |||
| represented with other identifiers related to the operation of the | carrier, or represented with other identifiers related to the | |||
| telephone network including Service Provider Identifiers (SPIDs) | operation of the telephone network including Service Provider | |||
| could serve as a subject as well. A relying party could then employ | Identifiers (SPIDs) could serve as a subject as well. A relying | |||
| an external data set or service that determines whether or not a | party could then employ an external data set or service that | |||
| specific telephone number is under the authority of the carrier | determines whether or not a specific telephone number is under the | |||
| identified as the subject of the certificate, and use that to | authority of the carrier identified as the subject of the | |||
| ascertain whether or not the carrier should have authority over a | certificate, and use that to ascertain whether or not the carrier | |||
| telephone number. Potentially, a certificate extension to convey the | should have authority over a telephone number. Potentially, a | |||
| URI of such an information service trusted by the issuer of the | certificate extension to convey the URI of such an information | |||
| certificate could be developed (though this specification does not | service trusted by the issuer of the certificate could be developed | |||
| propose one). Alternatively, some relying parties could form | (though this specification does not propose one). Alternatively, | |||
| bilateral or multilateral trust relationships with peer carriers, | some relying parties could form bilateral or multilateral trust | |||
| trusting one another's assertions just as telephone carriers in the | relationships with peer carriers, trusting one another's assertions | |||
| SS7 network today rely on transitive trust when displaying the | just as telephone carriers in the SS7 network today rely on | |||
| calling party telephone number received through SS7 signaling. | transitive trust when displaying the calling party telephone number | |||
| received through SS7 signaling. | ||||
| The second approach is to extend the syntax of certificates to | The second approach is to extend the syntax of certificates to | |||
| include a new attribute, defined here as TN Authorization List, which | include a new attribute, defined here as TN Authorization List, which | |||
| contains a list of telephone numbers defining the scope of authority | contains a list of telephone numbers defining the scope of authority | |||
| of the certificate. Relying parties, if they trust the issuer of the | of the certificate. Relying parties, if they trust the issuer of the | |||
| certificate as a source of authoritative information on telephone | certificate as a source of authoritative information on telephone | |||
| numbers, could therefore use the TN Authorization List instead of the | numbers, could therefore use the TN Authorization List instead of the | |||
| subject of the certificate to make a decision about whether or not | subject of the certificate to make a decision about whether or not | |||
| the signer has authority over a particular telephone number. The TN | the signer has authority over a particular telephone number. The TN | |||
| Authorization List could be provided in one of two ways: as a literal | Authorization List could be provided in one of two ways: as a literal | |||
| value in the certificate, or as a network service that allows relying | value in the certificate, or as a network service that allows relying | |||
| parties to query in real time to determine that a telephone number is | parties to query in real time to determine that a telephone number is | |||
| in the scope of a certificate. Using the TN Authorization list | in the scope of a certificate. Using the TN Authorization list | |||
| rather than the certificate subject makes sense when, for example, | rather than the certificate subject makes sense when, for example, | |||
| for privacy reasons, the certificate owner would prefer not to be | for privacy reasons, the certificate owner would prefer not to be | |||
| identified, or in cases where the holder of the certificate does not | identified, or in cases where the holder of the certificate does not | |||
| participate in the sort of traditional carrier infrastructure taht | participate in the sort of traditional carrier infrastructure that | |||
| the first approach assumes. | the first approach assumes. | |||
| The first approach requires little change to existing Public Key | The first approach requires little change to existing Public Key | |||
| Infrastructure (PKI) certificates; for the second approach, we must | Infrastructure (PKI) certificates; for the second approach, we must | |||
| define an appropriate enrollment and authorization process. For the | define an appropriate enrollment and authorization process. For the | |||
| purposes of STIR, the over-the-wire format specified in | purposes of STIR, the over-the-wire format specified in | |||
| [I-D.ietf-stir-rfc4474bis] accommodates either of these approaches: | [I-D.ietf-stir-rfc4474bis] accommodates either of these approaches: | |||
| the methods for canonicalizing, signing, for identifying and | the methods for canonicalizing, signing, for identifying and | |||
| accessing the certificate and so on remain the same; it is only the | accessing the certificate and so on remain the same; it is only the | |||
| verifier behavior and authorization decision that will change | verifier behavior and authorization decision that will change | |||
| depending on the approach to telephone number authority taken by the | depending on the approach to telephone number authority taken by the | |||
| certificate. For that reason, the two approaches are not mutually | certificate. For that reason, the two approaches are not mutually | |||
| exclusive, and in fact a certificate issued to a traditional | exclusive, and in fact a certificate issued to a traditional | |||
| telephone network service provider could contain a TN Authorization | telephone network service provider could contain a TN Authorization | |||
| List or not, depending on the CA issuing the credential. Regardless | List or not, were it supported by the CA issuing the credential. | |||
| of which approach is used, certificates that assert authority over | Regardless of which approach is used, certificates that assert | |||
| telephone numbers are subject to the ordinary operational procedures | authority over telephone numbers are subject to the ordinary | |||
| that govern certificate use per [RFC5280]. This means that | operational procedures that govern certificate use per [RFC5280]. | |||
| verification services must be mindful of the need to ensure that they | This means that verification services must be mindful of the need to | |||
| trust the trust anchor that issued the certificate, and that they | ensure that they trust the trust anchor that issued the certificate, | |||
| have some means to determine the freshness of the certificate (see | and that they have some means to determine the freshness of the | |||
| Section 9). | certificate (see Section 9). | |||
| 4. Certificate Usage | 4. Certificate Usage with STIR | |||
| [I-D.ietf-stir-rfc4474bis] requires that all credential systems used | [I-D.ietf-stir-rfc4474bis] Section 7.4 requires that all credential | |||
| for signing the Identity header in SIP detail the following: | systems used by STIR explain how they address the requirements | |||
| enumerated below. Certificates as described in this document address | ||||
| the STIR requirements as follows: | ||||
| 1. The URI schemes permitted in the SIP Identity header "info" | 1. The URI schemes permitted in the SIP Identity header "info" | |||
| parameter, as well as any special procedures required to | parameter, as well as any special procedures required to | |||
| dereference the URIs. While normative text is given below in | dereference the URIs. While normative text is given below in | |||
| Section 7, this mechanism permits the HTTP, CID and SIP URI | Section 7, this mechanism permits the HTTP, CID and SIP URI | |||
| schemes to appear in the "info" parameter. | schemes to appear in the "info" parameter. | |||
| 2. Procedures required to extract keying material from the resources | 2. Procedures required to extract keying material from the resources | |||
| designated by the URI. Implementations perform no special | designated by the URI. Implementations perform no special | |||
| procedures beyond dereferencing the "info" URI. See Section 7. | procedures beyond dereferencing the "info" URI. See Section 7. | |||
| 3. Procedures used by the verification service to determine the | 3. Procedures used by the verification service to determine the | |||
| scope of the credential. This specification effectively proposes | scope of the credential. This specification effectively proposes | |||
| two methods, as outlined in Section 3: one where the subject (or | two methods, as outlined in Section 3: one where the subject (or | |||
| more properly subjectAltName) of the certificate indicates the | more properly subjectAltName) of the certificate indicates the | |||
| scope of authority through a domain name, and relying parties | scope of authority through a domain name, and relying parties | |||
| either trust the subject entirely or have some direct means of | either trust the subject entirely or have some direct means of | |||
| determining whether or not a number falls under a subject's | determining whether or not a number falls under a subject's | |||
| authority; and another where an extension to the certificate as | authority; and another where an extension to the certificate as | |||
| described in Section 8 identifies the scope of the certificate. | described in Section 8 identifies the scope of authority of the | |||
| certificate. | ||||
| 4. The cryptographic algorithms required to validate the | 4. The cryptographic algorithms required to validate the | |||
| credentials. For this specification, that means the signature | credentials. For this specification, that means the signature | |||
| algorithms used to sign certificates. This specification | algorithms used to sign certificates. This specification | |||
| REQUIRES that implementations support both ECDSA with the P-256 | REQUIRES that implementations support both ECDSA with the P-256 | |||
| curve (see [RFC4754]) and RSA PKCS#1 v1.5 (see [RFC3447] | curve (see [RFC4754]) and RSA PKCS#1 v1.5 (see [RFC3447] | |||
| Section 8.2) for certificate signatures. Implementers are | Section 8.2) for certificate signatures. Implementers are | |||
| advised that RS256 is mandated only as a transitional mechanism, | advised that RS256 is mandated only as a transitional mechanism, | |||
| due to its widespread use in existing PKI, but we anticipate that | due to its widespread use in existing PKI, but we anticipate that | |||
| this mechanism will eventually be deprecated. | this mechanism will eventually be deprecated. | |||
| skipping to change at page 6, line 31 ¶ | skipping to change at page 6, line 36 ¶ | |||
| extension. | extension. | |||
| o See Section 9.2 and Section 9.3 for requirements related to the | o See Section 9.2 and Section 9.3 for requirements related to the | |||
| Authority Information Access (AIA) certificate extension. | Authority Information Access (AIA) certificate extension. | |||
| o See Section 9.2.1 for requirements related to the authority key | o See Section 9.2.1 for requirements related to the authority key | |||
| identifier and subject key identifier certificate extensions. | identifier and subject key identifier certificate extensions. | |||
| 5. Enrollment and Authorization using the TN Authorization List | 5. Enrollment and Authorization using the TN Authorization List | |||
| This document assumes a threefold model for certificate enrollment | This document covers three models for enrollment when using the TN | |||
| when using the TN Authorization List extension. | Authorization List extension. | |||
| The first enrollment model is one where the CA acts in concert with | The first enrollment model is one where the CA acts in concert with | |||
| national numbering authorities to issue credentials to those parties | national numbering authorities to issue credentials to those parties | |||
| to whom numbers are assigned. In the United States, for example, | to whom numbers are assigned. In the United States, for example, | |||
| telephone number blocks are assigned to Local Exchange Carriers | telephone number blocks are assigned to Local Exchange Carriers | |||
| (LECs) by the North American Numbering Plan Administrator (NANPA), | (LECs) by the North American Numbering Plan Administrator (NANPA), | |||
| who is in turn directed by the national regulator. LECs may also | who is in turn directed by the national regulator. LECs may also | |||
| receive numbers in smaller allocations, through number pooling, or | receive numbers in smaller allocations, through number pooling, or | |||
| via an individual assignment through number portability. LECs assign | via an individual assignment through number portability. LECs assign | |||
| numbers to customers, who may be private individuals or organizations | numbers to customers, who may be private individuals or organizations | |||
| - and organizations take responsibility for assigning numbers within | - and organizations take responsibility for assigning numbers within | |||
| their own enterprise. This model requires top-down adoption of the | their own enterprise. This model requires top-down adoption of the | |||
| model from regulators through to carriers. | model from regulators through to carriers. Assignees of E.164 | |||
| numbering resources participating in this enrollment model should | ||||
| take appropriate steps to establish trust anchors. | ||||
| The second enrollment model is a bottom-up approach where a CA | The second enrollment model is a bottom-up approach where a CA | |||
| requires that an entity prove control by means of some sort of test, | requires that an entity prove control by means of some sort of test, | |||
| which, as with certification authorities for web PKI, might either be | which, as with certification authorities for web PKI, might either be | |||
| automated or a manual administrative process. As an example of an | automated or a manual administrative process. As an example of an | |||
| automated process, an authority might send a text message to a | automated process, an authority might send a text message to a | |||
| telephone number containing a URL (which might be dereferenced by the | telephone number containing a URL (which might be dereferenced by the | |||
| recipient) as a means of verifying that a user has control of | recipient) as a means of verifying that a user has control of | |||
| terminal corresponding to that number. Checks of this form are | terminal corresponding to that number. Checks of this form are | |||
| frequently used in commercial systems today to validate telephone | frequently used in commercial systems today to validate telephone | |||
| skipping to change at page 7, line 27 ¶ | skipping to change at page 7, line 36 ¶ | |||
| 100 numbers used by an IP PBX, and the organization might in turn | 100 numbers used by an IP PBX, and the organization might in turn | |||
| delegate authority for a particular number to an individual employee. | delegate authority for a particular number to an individual employee. | |||
| This is analogous to delegation of organizational identities in | This is analogous to delegation of organizational identities in | |||
| traditional hierarchical PKIs who use the name constraints extension | traditional hierarchical PKIs who use the name constraints extension | |||
| [RFC5280]; the root CA delegates names in sales to the sales | [RFC5280]; the root CA delegates names in sales to the sales | |||
| department CA, names in development to the development CA, etc. As | department CA, names in development to the development CA, etc. As | |||
| lengthy certificate delegation chains are brittle, however, and can | lengthy certificate delegation chains are brittle, however, and can | |||
| cause delays in the verification process, this document considers | cause delays in the verification process, this document considers | |||
| optimizations to reduce the complexity of verification. | optimizations to reduce the complexity of verification. | |||
| Future versions of this specification may also discuss methods of | Future work might explore methods of partial delegation, where | |||
| partial delegation, where certificate holders delegate only part of | certificate holders delegate only part of their authority. For | |||
| their authority. For example, individual assignees may want to | example, individual assignees may want to delegate to a service | |||
| delegate to a service authority for text messages associated with | authority for text messages associated with their telephone number, | |||
| their telephone number, but not for other functions. | but not for other functions. | |||
| 5.1. Levels Of Assurance | 5.1. Levels Of Assurance | |||
| This specification supports different level of assurance (LOA). The | This specification supports different level of assurance (LOA). The | |||
| LOA indications, which are Object Identifiers (OIDs) included in the | LOA indications, which are Object Identifiers (OIDs) included in the | |||
| certificate's certificate policies extension [RFC5280], allow CAs to | certificate's certificate policies extension [RFC5280], allow CAs to | |||
| differentiate those enrolled from proof-of-possession versus | differentiate those enrolled from proof-of-possession versus | |||
| delegation. A Certification Policy and a Certification Practice | delegation. A Certification Policy and a Certification Practice | |||
| Statement [RFC3647] are produced as part of the normal PKI | Statement [RFC3647] are produced as part of the normal PKI | |||
| bootstrapping process (i.e., the CP is written first and then the CAs | bootstrapping process (i.e., the CP is written first and then the CAs | |||
| skipping to change at page 8, line 10 ¶ | skipping to change at page 8, line 15 ¶ | |||
| to the CPS with the certificate policies extension. CAs that wish to | to the CPS with the certificate policies extension. CAs that wish to | |||
| express different LOAs MUST include the certificate policies | express different LOAs MUST include the certificate policies | |||
| extension in issued certificates. See Section 11 for additional | extension in issued certificates. See Section 11 for additional | |||
| information about the LOA registry. | information about the LOA registry. | |||
| 5.2. Certificate Extension Scope and Structure | 5.2. Certificate Extension Scope and Structure | |||
| This specification places no limits on the number of telephone | This specification places no limits on the number of telephone | |||
| numbers that can be associated with any given certificate. Some | numbers that can be associated with any given certificate. Some | |||
| service providers may be assigned millions of numbers, and may wish | service providers may be assigned millions of numbers, and may wish | |||
| to have a single certificate that is capable of signing for any one | to have a single certificate that can be applied to signing for any | |||
| of those numbers. Others may wish to compartmentalize authority over | one of those numbers. Others may wish to compartmentalize authority | |||
| subsets of the numbers they control. | over subsets of the numbers they control. | |||
| Moreover, service providers may wish to have multiple certificates | Moreover, service providers may wish to have multiple certificates | |||
| with the same scope of authority. For example, a service provider | with the same scope of authority. For example, a service provider | |||
| with several regional gateway systems may want each system to be | with several regional gateway systems may want each system to be | |||
| capable of signing for each of their numbers, but not want to have | capable of signing for each of their numbers, but not want to have | |||
| each system share the same private key. | each system share the same private key. | |||
| The set of telephone numbers for which a particular certificate is | The set of telephone numbers for which a particular certificate is | |||
| valid is expressed in the certificate through a certificate | valid is expressed in the certificate through a certificate | |||
| extension; the certificate's extensibility mechanism is defined in | extension; the certificate's extensibility mechanism is defined in | |||
| skipping to change at page 8, line 45 ¶ | skipping to change at page 8, line 50 ¶ | |||
| certificates with the TN Authorization List extensions may, in | certificates with the TN Authorization List extensions may, in | |||
| accordance with their policies, obscure the identity of the subject, | accordance with their policies, obscure the identity of the subject, | |||
| though mechanisms for doing so are outside the scope of this | though mechanisms for doing so are outside the scope of this | |||
| document. | document. | |||
| 6. Provisioning Private Keying Material | 6. Provisioning Private Keying Material | |||
| In order for authentication services to sign calls via the procedures | In order for authentication services to sign calls via the procedures | |||
| described in [I-D.ietf-stir-rfc4474bis], they must hold a private key | described in [I-D.ietf-stir-rfc4474bis], they must hold a private key | |||
| corresponding to a certificate with authority over the calling | corresponding to a certificate with authority over the calling | |||
| number. This specification does not require that any particular | number. [I-D.ietf-stir-rfc4474bis] does not require that any | |||
| entity in a SIP deployment architecture sign requests, only that it | particular entity in a SIP deployment architecture sign requests, | |||
| be an entity with an appropriate private key; the authentication | only that it be an entity with an appropriate private key; the | |||
| service role may be instantiated by any entity in a SIP network. For | authentication service role may be instantiated by any entity in a | |||
| a certificate granting authority only over a particular number which | SIP network. For a certificate granting authority only over a | |||
| has been issued to an end user, for example, an end user device might | particular number which has been issued to an end user, for example, | |||
| hold the private key and generate the signature. In the case of a | an end user device might hold the private key and generate the | |||
| service provider with authority over large blocks of numbers, an | signature. In the case of a service provider with authority over | |||
| intermediary might hold the private key and sign calls. | large blocks of numbers, an intermediary might hold the private key | |||
| and sign calls. | ||||
| The specification recommends distribution of private keys through | The specification recommends distribution of private keys through | |||
| PKCS#8 objects signed by a trusted entity, for example through the | PKCS#8 objects signed by a trusted entity, for example through the | |||
| CMS package specified in [RFC5958]. | CMS package specified in [RFC5958]. | |||
| 7. Acquiring Credentials to Verify Signatures | 7. Acquiring Credentials to Verify Signatures | |||
| This specification documents multiple ways that a verifier can gain | This specification documents multiple ways that a verifier can gain | |||
| access to the credentials needed to verify a request. As the | access to the credentials needed to verify a request. As the | |||
| validity of certificates does not depend on the method of their | validity of certificates does not depend on the method of their | |||
| acquisition, there is no need to standardize any single mechanism for | acquisition, there is no need to standardize any single mechanism for | |||
| this purpose. All entities that comply with | this purpose. All entities that comply with | |||
| [I-D.ietf-stir-rfc4474bis] necessarily support SIP, and consequently | [I-D.ietf-stir-rfc4474bis] necessarily support SIP, and consequently | |||
| SIP itself can serve as a way to acquire certificates. | SIP itself can serve as a way to deliver certificates. | |||
| [I-D.ietf-stir-rfc4474bis] provides an "info" parameter of the | [I-D.ietf-stir-rfc4474bis] provides an "info" parameter of the | |||
| Identity header which contains a URI where the credential used to | Identity header which contains a URI for the credential used to | |||
| generate the Identity header, and requires documents which define | generate the Identity header; [I-D.ietf-stir-rfc4474bis] also | |||
| credential systems to list the URI schemes that may be present in the | requires documents which define credential systems list the URI | |||
| "info" parameter. For implementations compliant with this | schemes that may be present in the "info" parameter. For | |||
| specification, three URI schemes are REQUIRED: the CID URI, the SIP | implementations compliant with this specification, three URI schemes | |||
| URI, and the HTTP URI. | are REQUIRED: the CID URI, the SIP URI, and the HTTP URI. | |||
| The simplest way for a verifier to acquire the certificate needed to | The simplest way for a verifier to acquire the certificate needed to | |||
| verify a signature is for the certificate be conveyed in a SIP | verify a signature is for the certificate be conveyed in a SIP | |||
| request along with the signature itself. In SIP, for example, a | request along with the signature itself. In SIP, for example, a | |||
| certificate could be carried in a multipart MIME body [RFC2046], and | certificate could be carried in a multipart MIME body [RFC2046], and | |||
| the URI in the Identity header "info" parameter could specify that | the URI in the Identity header "info" parameter could specify that | |||
| body with a CID URI [RFC2392]. However, in many environments this is | body with a CID URI [RFC2392]. However, in many environments this is | |||
| not feasible due to message size restrictions or lack of necessary | not feasible due to message size restrictions or lack of necessary | |||
| support for multipart MIME. | support for multipart MIME. | |||
| More commonly, the Identity header "info" parameter in a SIP request | The Identity header "info" parameter in a SIP request may contain a | |||
| may contain a URI that the verifier dereferences with a network call. | URI that the verifier dereferences. Implementations of this | |||
| Implementations of this specification are required to support the use | specification are required to support the use of SIP for this | |||
| of SIP for this function (via the SUBSCRIBE/NOTIFY mechanism), as | function (via the SUBSCRIBE/NOTIFY mechanism), as well as HTTP, via | |||
| well as HTTP, via the Enrollment over Secure Transport mechanisms | the Enrollment over Secure Transport mechanisms described in RFC 7030 | |||
| described in RFC 7030 [RFC7030]. | [RFC7030]. | |||
| Note well that as an optimization, a verifier may have access to a | Note well that as an optimization, a verifier may have access to a | |||
| service, a cache or other local store that grants access to | service, a cache or other local store that grants access to | |||
| certificates for a particular telephone number. However, there may | certificates for a particular telephone number. However, there may | |||
| be multiple valid certificates that can sign a call setup request for | be multiple valid certificates that can sign a call setup request for | |||
| a telephone number, and as a consequence, there needs to be some | a telephone number, and as a consequence, there needs to be some | |||
| discriminator that the signer uses to identify their credentials. | discriminator that the signer uses to identify their credentials. | |||
| The Identity header "info" parameter itself can serve as such a | The Identity header "info" parameter itself can serve as such a | |||
| discriminator, provided implementations use that parameter as a key | discriminator, provided implementations use that parameter as a key | |||
| when accessing certificates from caches or other sources. | when accessing certificates from caches or other sources. | |||
| 8. Verifying Certificate Scope with TN Authorization List | 8. TN Authorization List Syntax | |||
| The subjects of certificates containing the TN Authorization List | The subjects of certificates containing the TN Authorization List | |||
| extension are the administrative entities to whom numbers are | extension are the administrative entities to whom numbers are | |||
| assigned or delegated. When a verifier is validating a caller's | assigned or delegated. When a verifier is validating a caller's | |||
| identity, local policy always determines the circumstances under | identity, local policy always determines the circumstances under | |||
| which any particular subject may be trusted, but the purpose of the | which any particular subject may be trusted, but the purpose of the | |||
| TN Authorization List extension particular is to allow a verifier to | TN Authorization List extension in particular is to allow a verifier | |||
| ascertain when the CA has designed that the subject has authority | to ascertain when the CA has designated that the subject has | |||
| over a particular telephone number or number range. | authority over a particular telephone number or number range. The | |||
| Telephony Number (TN) Authorization List certificate extension is | ||||
| included in the Certificate's extension field [RFC5280]. The | ||||
| extension is defined with ASN.1, defined in [X.680] through [X.683]. | ||||
| What follows is the syntax and semantics of the extension. | ||||
| The Telephony Number (TN) Authorization List certificate extension is | The Telephony Number (TN) Authorization List certificate extension is | |||
| identified by the following object identifier: | identified by the following object identifier (OID), which is defined | |||
| under the id-ce OID arc defined in [RFC5280] and managed by IANA (see | ||||
| Section 10): | ||||
| id-ce-TNAuthList OBJECT IDENTIFIER ::= { id-ce TBD } | id-ce-TNAuthList OBJECT IDENTIFIER ::= { id-ce TBD } | |||
| The TN Authorization List certificate extension has the following | The TN Authorization List certificate extension has the following | |||
| syntax: | syntax: | |||
| TNAuthorizationList ::= SEQUENCE SIZE (1..MAX) OF TNAuthorization | TNAuthorizationList ::= SEQUENCE SIZE (1..MAX) OF TNAuthorization | |||
| TNAuthorization ::= SEQUENCE SIZE (1..MAX) OF TNEntry | TNAuthorization ::= SEQUENCE SIZE (1..MAX) OF TNEntry | |||
| skipping to change at page 11, line 5 ¶ | skipping to change at page 11, line 31 ¶ | |||
| count INTEGER } | count INTEGER } | |||
| E164Number ::= IA5String (SIZE (1..15)) (FROM ("0123456789")) | E164Number ::= IA5String (SIZE (1..15)) (FROM ("0123456789")) | |||
| The TN Authorization List certificate extension indicates the | The TN Authorization List certificate extension indicates the | |||
| authorized phone numbers for the call setup signer. It indicates one | authorized phone numbers for the call setup signer. It indicates one | |||
| or more blocks of telephone number entries that have been authorized | or more blocks of telephone number entries that have been authorized | |||
| for use by the call setup signer. There are three ways to identify | for use by the call setup signer. There are three ways to identify | |||
| the block: | the block: | |||
| 1. A Service Provider Identifier (SPID) can be used to indirectly | 1. A Service Provider Identifier (SPID, also known as an Operating | |||
| name all of the telephone numbers associated with that service | Company Number (OCN) or Carrier Identification Code (CIC), as | |||
| provider, | specified in [ATIS-0300050]) can be used to indirectly name all | |||
| of the telephone numbers associated with that service provider, | ||||
| 2. Telephone numbers can be listed in a range, and | 2. Telephone numbers can be listed in a range (in the | |||
| TelephoneNumberRange format), or | ||||
| 3. A single telephone number can be listed. | 3. A single telephone number can be listed (as an E164Number). | |||
| Note that because large-scale service providers may want to associate | Note that because large-scale service providers may want to associate | |||
| many numbers, possibly millions of numbers, with a particular | many numbers, possibly millions of numbers, with a particular | |||
| certificate, optimizations are required for those cases to prevent | certificate, optimizations are required for those cases to prevent | |||
| certificate size from becoming unmanageable. In these cases, the TN | certificate size from becoming unmanageable. In these cases, the TN | |||
| Authorization List may be given by reference rather than by value, | Authorization List may be given by reference rather than by value, | |||
| through the presence of a separate certificate extension that permits | through the presence of a separate certificate extension that permits | |||
| verifiers to either securely download the list of numbers associated | verifiers to either securely download the list of numbers associated | |||
| with a certificate, or to verify that a single number is under the | with a certificate, or to verify that a single number is under the | |||
| authority of this certificate. This optimization will be detailed in | authority of this certificate. This optimization is left for future | |||
| future version of this specification. | work. | |||
| 9. Certificate Freshness and Revocation | 9. Certificate Freshness and Revocation | |||
| Regardless of which of the approaches in Section 3 is followed for | Regardless of which of the approaches in Section 3 is followed for | |||
| using certificates, some sort of certificate verification mechanism | using certificates, a certificate verification mechanism is required. | |||
| is required. However, the traditional problem of certificate | However, the traditional problem of certificate freshness gains a new | |||
| freshness gains a new wrinkle when using the TN Authorization List | wrinkle when using the TN Authorization List extension, because | |||
| extension, because verifiers must establish not only that a | verifiers must establish not only that a certificate remains valid, | |||
| certificate remains valid, but also that the certificate's scope | but also that the certificate's scope contains the telephone number | |||
| contains the telephone number that the verifier is validating. | that the verifier is validating. Dynamic changes to number | |||
| Dynamic changes to number assignments can occur due to number | assignments can occur due to number portability, for example. So | |||
| portability, for example. So even if a verifier has a valid cached | even if a verifier has a valid cached certificate for a telephone | |||
| certificate for a telephone number (or a range containing the | number (or a range containing the number), the verifier must | |||
| number), the verifier must determine that the entity that signed is | determine that the entity that signed is still a proper authority for | |||
| still a proper authority for that number. | that number. | |||
| To verify the status of the certificate, the verifier needs to | To verify the status of the certificate, the verifier needs to | |||
| acquire the certificate if necessary (via the methods described in | acquire the certificate if necessary (via the methods described in | |||
| Section 7), and then would need to either: | Section 7), and then would need to either: | |||
| (a) Rely on short-lived certificates and not check the certificate's | (a) Rely on short-lived certificates and not check the certificate's | |||
| status, or | status, or | |||
| (b) Rely on status information from the authority | (b) Rely on status information from the authority (e.g. OCSP, see | |||
| Section 9.2) | ||||
| The tradeoff between short lived certificates and using status | The tradeoff between short lived certificates and using status | |||
| information is the former's burden is on the front end (i.e., | information is that the former's burden is on the front end (i.e., | |||
| enrollment) and the latter's burden is on the back end (i.e., | enrollment) and the latter's burden is on the back end (i.e., | |||
| verification). Both impact call setup time, but it is assumed that | verification). Both impact call setup time, but it is assumed that | |||
| performing enrollment for each call is more of an impact that using | generating a short-lived certificate for each all, and consequently | |||
| status information. This document therefore recommends relying on | performing enrollment for each call, is more of an impact than | |||
| status information. | acquiring status information. This document therefore recommends | |||
| relying on status information. | ||||
| 9.1. Choosing a Verification Method | 9.1. Choosing a Verification Method | |||
| There are three common certificate verification mechanisms employed | There are three common certificate verification mechanisms employed | |||
| by CAs: | by CAs: | |||
| 1. Certificate Revocation Lists (CRLs) [RFC5280] | 1. Certificate Revocation Lists (CRLs) [RFC5280] | |||
| 2. Online Certificate Status Protocol (OCSP) [RFC6960], and | 2. Online Certificate Status Protocol (OCSP) [RFC6960], and | |||
| skipping to change at page 12, line 40 ¶ | skipping to change at page 13, line 23 ¶ | |||
| by every CA. CRLs have a reputation of being quite large (10s of | by every CA. CRLs have a reputation of being quite large (10s of | |||
| MBytes), because CAs maintain and issue one monolithic CRL with all | MBytes), because CAs maintain and issue one monolithic CRL with all | |||
| of their revoked certificates, but CRLs do support a variety of | of their revoked certificates, but CRLs do support a variety of | |||
| mechanisms to scope the size of the CRLs based on revocation reasons | mechanisms to scope the size of the CRLs based on revocation reasons | |||
| (e.g., key compromise vs CA compromise), user certificates only, and | (e.g., key compromise vs CA compromise), user certificates only, and | |||
| CA certificates only as well as just operationally deciding to keep | CA certificates only as well as just operationally deciding to keep | |||
| the CRLs small. However, scoping the CRL introduces other issues | the CRLs small. However, scoping the CRL introduces other issues | |||
| (i.e., does the RP have all of the CRL partitions). | (i.e., does the RP have all of the CRL partitions). | |||
| CAs in the STIR architecture will likely all create CRLs for audit | CAs in the STIR architecture will likely all create CRLs for audit | |||
| purposes, but it NOT RECOMMENDED that they be relying upon for status | purposes, but it NOT RECOMMENDED that they be relied upon for status | |||
| information. Instead, one of the two "online" options is preferred. | information. Instead, one of the two "online" options is preferred. | |||
| Between the two, OCSP is much more widely deployed and this document | Between the two, OCSP is much more widely deployed and this document | |||
| therefore recommends the use of OCSP in high-volume environments | therefore recommends the use of OCSP in high-volume environments | |||
| (HVE) for validating the freshness of certificates, based on | (HVE) for validating the freshness of certificates, based on | |||
| [RFC6960], incorporating some (but not all) of the optimizations of | [RFC6960], incorporating some (but not all) of the optimizations of | |||
| [RFC5019]. CRLs MUST be signed with the same algorithm as the | [RFC5019]. CRLs MUST be signed with the same algorithm as the | |||
| certificate. | certificate. | |||
| 9.2. Using OCSP with TN Auth List | 9.2. Using OCSP with TN Auth List | |||
| Certificates compliant with this specification therefore SHOULD | Certificates compliant with this specification therefore SHOULD | |||
| include a URL pointing to an OCSP service in the Authority | include a URL pointing to an OCSP service in the Authority | |||
| Information Access (AIA) certificate extension, via the "id-ad-ocsp" | Information Access (AIA) certificate extension, via the "id-ad-ocsp" | |||
| accessMethod specified in [RFC5280]. Baseline OCSP however supports | accessMethod specified in [RFC5280]. It is RECOMMENDED that entities | |||
| only three possible response values: good, revoked, or unknown. | that issue certificates with the Telephone Number Authorization List | |||
| Without some extension, OCSP would not indicate whether the | certificate extension run an OCSP server for this purpose. Baseline | |||
| certificate is authorized for a particular telephone number that the | OCSP however supports only three possible response values: good, | |||
| verifier is validating. | revoked, or unknown. Without some extension, OCSP would not indicate | |||
| whether the certificate is authorized for a particular telephone | ||||
| number that the verifier is validating. | ||||
| At a high level, there are two ways that a client might pose this | At a high level, there are two ways that a client might pose this | |||
| authorization question: | authorization question: | |||
| For this certificate, is the following number currently in its | For this certificate, is the following number currently in its | |||
| scope of validity? | scope of validity? | |||
| What are all the telephone numbers associated with this | What are all the telephone numbers associated with this | |||
| certificate, or this certificate subject? | certificate, or this certificate subject? | |||
| Only the former lends itself to piggybacking on the OCSP status | Only the former lends itself to piggybacking on the OCSP status | |||
| mechanism; since the verifier is already asking an authority about | mechanism; since the verifier is already asking an authority about | |||
| the certificate's status, why not reuse that mechanism, instead of | the certificate's status, why not reuse that mechanism, instead of | |||
| creating a new service that requires additional round trips? Like | creating a new service that requires additional round trips? Like | |||
| most PKIX-developed protocols, OCSP is extensible; OCSP supports | most PKIX-developed protocols, OCSP is extensible; OCSP supports | |||
| request extensions (including sending multiple requests at once) and | request extensions (including sending multiple requests at once) and | |||
| per-request extensions. It seems unlikely that the verifier will be | per-request extensions. It seems unlikely that the verifier will be | |||
| skipping to change at page 14, line 9 ¶ | skipping to change at page 14, line 40 ¶ | |||
| optional: per [RFC6960] Section 4.4, support for all OCSP extensions | optional: per [RFC6960] Section 4.4, support for all OCSP extensions | |||
| is optional. If the OCSP server does not understand the requested | is optional. If the OCSP server does not understand the requested | |||
| extension, it will still provide the baseline validation of the | extension, it will still provide the baseline validation of the | |||
| certificate itself. Moreover, in practical STIR deployments, the | certificate itself. Moreover, in practical STIR deployments, the | |||
| issuer of the certificate will set the accessLocation for the OCSP | issuer of the certificate will set the accessLocation for the OCSP | |||
| AIA extension to point to an OCSP service that supports this | AIA extension to point to an OCSP service that supports this | |||
| extension, so the risk of interoperability failure due to lack of | extension, so the risk of interoperability failure due to lack of | |||
| support for this extension is minimal. | support for this extension is minimal. | |||
| The OCSP TNQuery extension is included as one of the request's | The OCSP TNQuery extension is included as one of the request's | |||
| signlerequestExtensions. It may also appear in the response's | singleRequestExtensions. It may also appear in the response's | |||
| singleExtensions. When an OCSP server includes a number in the | singleExtensions. When an OCSP server includes a number in the | |||
| response's singleExtensions, this informs the client that the | response's singleExtensions, this informs the client that the | |||
| certificate is still valid for the number that appears in the TNQuery | certificate is still valid for the number that appears in the TNQuery | |||
| extension field. If the TNQuery is absent from a response to a query | extension field. If the TNQuery is absent from a response to a query | |||
| containing a TNQuery in its singleRequestExtension, then the server | containing a TNQuery in its singleRequestExtension, then the server | |||
| is not able to validate that the number is still in the scope of | is not able to validate that the number is still in the scope of | |||
| authority of the certificate. | authority of the certificate. | |||
| id-pkix-ocsp-stir-tn OBJECT IDENTIFIER ::= { id-pkix-ocsp TBD } | id-pkix-ocsp-stir-tn OBJECT IDENTIFIER ::= { id-pkix-ocsp TBD } | |||
| skipping to change at page 14, line 31 ¶ | skipping to change at page 15, line 14 ¶ | |||
| The HVE OCSP profile [RFC5019] prohibits the use of per-request | The HVE OCSP profile [RFC5019] prohibits the use of per-request | |||
| extensions. As it is anticipated that STIR will use OCSP in a high- | extensions. As it is anticipated that STIR will use OCSP in a high- | |||
| volume environment, many of the optimizations recommended by HVE are | volume environment, many of the optimizations recommended by HVE are | |||
| desirable for the STIR environment. This document therefore uses the | desirable for the STIR environment. This document therefore uses the | |||
| HVE optimizations augmented as follows: | HVE optimizations augmented as follows: | |||
| o Implementations MUST use SHA-256 as the hashing algorithm for the | o Implementations MUST use SHA-256 as the hashing algorithm for the | |||
| CertID.issuerNameHash and the CertID.issuerKeyHash values. That | CertID.issuerNameHash and the CertID.issuerKeyHash values. That | |||
| is CertID.hashAlgorithm is id-sha256 [RFC4055] and the values are | is CertID.hashAlgorithm is id-sha256 [RFC4055] and the values are | |||
| truncated to 160-bits as specified Option 1 in Sectin 2 of as per | truncated to 160-bits as specified Option 1 in Section 2 of | |||
| in [RFC7093]. | [RFC7093]. | |||
| o Clients MUST include the OCSP TNQuery extension in requests' | o Clients MUST include the OCSP TNQuery extension in requests' | |||
| singleRequestExtensions. | singleRequestExtensions. | |||
| o Servers MUST include the OCSP TNQuery extension in responses' | o Servers MUST include the OCSP TNQuery extension in responses' | |||
| singleExtensions. | singleExtensions. | |||
| o Servers SHOULD return responses that would otherwise have been | o Servers SHOULD return responses that would otherwise have been | |||
| "unknown" as "not good" (i.e., return only "good" and "not good" | "unknown" as "not good" (i.e., return only "good" and "not good" | |||
| responses). | responses). | |||
| skipping to change at page 15, line 14 ¶ | skipping to change at page 15, line 45 ¶ | |||
| o There is no requirement to support SHA-1, RSA with SHA-1, or DSA | o There is no requirement to support SHA-1, RSA with SHA-1, or DSA | |||
| with SHA-1. | with SHA-1. | |||
| OCSP responses MUST be signed using the same algorithm as the | OCSP responses MUST be signed using the same algorithm as the | |||
| certificate being checked. | certificate being checked. | |||
| To facilitate matching the authority key identifier values found in | To facilitate matching the authority key identifier values found in | |||
| CA certificates with the KeyHash used in the OCSP response, | CA certificates with the KeyHash used in the OCSP response, | |||
| certificates compliant with this specification MUST generate | certificates compliant with this specification MUST generate | |||
| authority key identifiers and subject key identifers using the | authority key identifiers and subject key identifiers using the | |||
| SHA-256 and truncate the value to 160-bits as specified in Option 1 | SHA-256 and truncate the value to 160-bits as specified in Option 1 | |||
| in Section 2 of [RFC7093]. | in Section 2 of [RFC7093]. | |||
| Ideally, once a certificate has been acquired by a verifier, some | Ideally, once a certificate has been acquired by a verifier, some | |||
| sort of asynchronous mechanism could notify and update the verifier | sort of asynchronous mechanism could notify and update the verifier | |||
| if the scope of the certificate changes so that verifiers could | if the scope of the certificate changes so that verifiers could | |||
| implement a cache. While not all possible categories of verifiers | implement a cache. While not all possible categories of verifiers | |||
| could implement such behavior, some sort of event-driven notification | could implement such behavior, some sort of event-driven notification | |||
| of certificate status is another potential subject of future work. | of certificate status is another potential subject of future work. | |||
| One potential direction is that a future SIP SUBSCRIBE/NOTIFY-based | One potential direction is that a future SIP SUBSCRIBE/NOTIFY-based | |||
| skipping to change at page 15, line 49 ¶ | skipping to change at page 16, line 31 ¶ | |||
| 9.3. Acquiring TN Lists By Reference | 9.3. Acquiring TN Lists By Reference | |||
| Acquiring a list of the telephone numbers associated with a | Acquiring a list of the telephone numbers associated with a | |||
| certificate or its subject lends itself to an application-layer | certificate or its subject lends itself to an application-layer | |||
| query/response interaction outside of OCSP, one which could be | query/response interaction outside of OCSP, one which could be | |||
| initiated through a separate URI included in the certificate. The | initiated through a separate URI included in the certificate. The | |||
| AIA extension (see [RFC5280]) supports such a mechanism: it | AIA extension (see [RFC5280]) supports such a mechanism: it | |||
| designates an OID to identify the accessMethod and an accessLocation, | designates an OID to identify the accessMethod and an accessLocation, | |||
| which would most likely be a URI. A verifier would then follow the | which would most likely be a URI. A verifier would then follow the | |||
| URI to ascertain whether the list of TNs authorized for use by the | URI to ascertain whether the list of TNs are authorized for use by | |||
| caller. | the caller. | |||
| HTTPS is the most obvious candidate for a protocol to be used for | HTTPS is the most obvious candidate for a protocol to be used for | |||
| fetching the list of telephone number associated with a particular | fetching the list of telephone numbers associated with a particular | |||
| certificate. This document defines a new AIA accessMethod, called | certificate. This document defines a new AIA accessMethod, called | |||
| "id-ad-stir-tn", which uses the following AIA OID: | "id-ad-stir-tn", which uses the following AIA OID: | |||
| id-ad-stir-tn OBJECT IDENTIFIER ::= { id-ad TBD } | id-ad-stir-tn OBJECT IDENTIFIER ::= { id-ad TBD } | |||
| When the "id-ad-stir-tn" accessMethod is used, the accessLocation | When the "id-ad-stir-tn" accessMethod is used, the accessLocation | |||
| MUST be an HTTPS URI. The document returned by dereferencing that | MUST be an HTTPS URI. The document returned by dereferencing that | |||
| URI will contain the complete TN Authorization List (see Section 8) | URI will contain the complete TN Authorization List (see Section 8) | |||
| for the certificate. | for the certificate. | |||
| Delivering the entire list of telephone numbers associated with a | Delivering the entire list of telephone numbers associated with a | |||
| particular certificate will divulge to STIR verifiers information | particular certificate will divulge to STIR verifiers information | |||
| about telephone numbers other than the one associated with the | about telephone numbers other than the one associated with the | |||
| particular call that the verifier is checking. In some environments, | particular call that the verifier is checking. In some environments, | |||
| where STIR verifiers handle a high volume of calls, maintaining an | where STIR verifiers handle a high volume of calls, maintaining an | |||
| up-to-date and complete cache for the numbers associated with crucial | up-to-date and complete cache for the numbers associated with crucial | |||
| certificate holders could give an important boost to performance. | certificate holders could give an important boost to performance. | |||
| 10. Acknowledgments | 10. IANA Considerations | |||
| Russ Housley, Brian Rosen, Cullen Jennings and Eric Rescorla provided | ||||
| key input to the discussions leading to this document. | ||||
| 11. IANA Considerations | ||||
| This document makes use of object identifiers for the TN Certificate | This document makes use of object identifiers for the TN Certificate | |||
| Extension defined in Section 8, TN-HVE OCSP extension in | Extension defined in Section 8, TN-HVE OCSP extension in | |||
| Section 9.2.1, the TN by reference AIA access descriptor defined in | Section 9.2.1, the TN by reference AIA access descriptor defined in | |||
| Section 9.3, and the ASN.1 module identifier defined in Appendix A. | Section 9.3, and the ASN.1 module identifier defined in Appendix A. | |||
| It therefore requests that the IANA make the following assignments: | It therefore requests that the IANA make the following assignments: | |||
| o TN Certificate Extension in the SMI Security for PKIX Certificate | o TN Certificate Extension in the SMI Security for PKIX Certificate | |||
| Extension registry: http://www.iana.org/assignments/smi-numbers/ | Extension registry: http://www.iana.org/assignments/smi-numbers/ | |||
| smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.1 | smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.1 | |||
| skipping to change at page 17, line 43 ¶ | skipping to change at page 18, line 18 ¶ | |||
| Informational URL https://foo.example.com/assurance/ | Informational URL https://foo.example.com/assurance/ | |||
| Certificate Policy Object Identifier: 0.0.0.0 | Certificate Policy Object Identifier: 0.0.0.0 | |||
| NOTE: Do not register this example. The OID is purposely invalid. | NOTE: Do not register this example. The OID is purposely invalid. | |||
| Experts are expected to ensure the reference CP includes the OID | Experts are expected to ensure the reference CP includes the OID | |||
| being registered. | being registered. | |||
| 12. Security Considerations | 11. Security Considerations | |||
| This document is entirely about security. For further information on | This document is entirely about security. For further information on | |||
| certificate security and practices, see [RFC5280], in particular its | certificate security and practices, see [RFC5280], in particular its | |||
| Security Considerations. For OCSP-related security considerations | Security Considerations. For OCSP-related security considerations | |||
| see [RFC6960] and [RFC5019] | see [RFC6960] and [RFC5019] | |||
| 12. Acknowledgments | ||||
| Russ Housley, Brian Rosen, Cullen Jennings, Dave Crocker, Tony | ||||
| Rutkowski, John Braunberger, and Eric Rescorla provided key input to | ||||
| the discussions leading to this document. | ||||
| 13. References | 13. References | |||
| [ATIS-0300050] | ||||
| ATIS Recommendation 0300050, "Carrier Identification Code | ||||
| (CIC) Assignment Guidelines", 2012. | ||||
| [I-D.ietf-stir-passport] | [I-D.ietf-stir-passport] | |||
| Wendt, C. and J. Peterson, "Persona Assertion Token", | Wendt, C. and J. Peterson, "Persona Assertion Token", | |||
| draft-ietf-stir-passport-03 (work in progress), June 2016. | draft-ietf-stir-passport-07 (work in progress), September | |||
| 2016. | ||||
| [I-D.ietf-stir-rfc4474bis] | [I-D.ietf-stir-rfc4474bis] | |||
| Peterson, J., Jennings, C., Rescorla, E., and C. Wendt, | Peterson, J., Jennings, C., Rescorla, E., and C. Wendt, | |||
| "Authenticated Identity Management in the Session | "Authenticated Identity Management in the Session | |||
| Initiation Protocol (SIP)", draft-ietf-stir-rfc4474bis-09 | Initiation Protocol (SIP)", draft-ietf-stir-rfc4474bis-11 | |||
| (work in progress), May 2016. | (work in progress), August 2016. | |||
| [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | |||
| Extensions (MIME) Part Two: Media Types", RFC 2046, | Extensions (MIME) Part Two: Media Types", RFC 2046, | |||
| DOI 10.17487/RFC2046, November 1996, | DOI 10.17487/RFC2046, November 1996, | |||
| <http://www.rfc-editor.org/info/rfc2046>. | <http://www.rfc-editor.org/info/rfc2046>. | |||
| [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, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| skipping to change at page 20, line 23 ¶ | skipping to change at page 21, line 5 ¶ | |||
| <http://www.rfc-editor.org/info/rfc7340>. | <http://www.rfc-editor.org/info/rfc7340>. | |||
| [RFC7375] Peterson, J., "Secure Telephone Identity Threat Model", | [RFC7375] Peterson, J., "Secure Telephone Identity Threat Model", | |||
| RFC 7375, DOI 10.17487/RFC7375, October 2014, | RFC 7375, DOI 10.17487/RFC7375, October 2014, | |||
| <http://www.rfc-editor.org/info/rfc7375>. | <http://www.rfc-editor.org/info/rfc7375>. | |||
| [RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token | [RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token | |||
| (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, | (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, | |||
| <http://www.rfc-editor.org/info/rfc7519>. | <http://www.rfc-editor.org/info/rfc7519>. | |||
| [X.680] USC/Information Sciences Institute, "Information | [X.509] ITU-T Recommendation X.520 (10/2012) | ISO/IEC 9594-8, | |||
| Technology - Abstract Syntax Notation One.", ITU-T X.680, | "Information technology - Open Systems Interconnection - | |||
| ISO/IEC 8824-1:2002, 2002. | The Directory: Public-key and attribute certificate | |||
| frameworks", 2012. | ||||
| [X.681] USC/Information Sciences Institute, "Information | [X.520] ITU-T Recommendation X.520 (10/2012) | ISO/IEC 9594-6, | |||
| Technology - Abstract Syntax Notation One: Information | "Information technology - Open Systems Interconnection - | |||
| Object Specification", ITU-T X.681, ISO/IEC 8824-2:2002, | The Directory: Selected Attribute Types", 2012. | |||
| 2002. | ||||
| [X.682] USC/Information Sciences Institute, "Information | [X.680] ITU-T Recommendation X.680 (08/2015) | ISO/IEC 8824-1, | |||
| Technology - Abstract Syntax Notation One: Constraint | "Information Technology - Abstract Syntax Notation One: | |||
| Specification", ITU-T X.682, ISO/IEC 8824-3:2002, 2002. | Specification of basic notation". | |||
| [X.683] USC/Information Sciences Institute, "Information | [X.681] ITU-T Recommendation X.681 (08/2015) | ISO/IEC 8824-2, | |||
| Technology - Abstract Syntax Notation One: | "Information Technology - Abstract Syntax Notation One: | |||
| Parameterization of ASN.1 Specifications", ITU-T X.683, | Information Object Specification". | |||
| ISO/IEC 8824-4:2002, 2002. | ||||
| [X.682] ITU-T Recommendation X.682 (08/2015) | ISO/IEC 8824-2, | ||||
| "Information Technology - Abstract Syntax Notation One: | ||||
| Constraint Specification". | ||||
| [X.683] ITU-T Recommendation X.683 (08/2015) | ISO/IEC 8824-3, | ||||
| "Information Technology - Abstract Syntax Notation One: | ||||
| Parameterization of ASN.1 Specifications". | ||||
| Appendix A. ASN.1 Module | Appendix A. ASN.1 Module | |||
| This appendix provides the normative ASN.1 [X.680] definitions for | This appendix provides the normative ASN.1 [X.680] definitions for | |||
| the structures described in this specification using ASN.1, as | the structures described in this specification using ASN.1, as | |||
| defined in [X.680] through [X.683]. | defined in [X.680] through [X.683]. | |||
| The modules defined in this document are compatible with the most | ||||
| current ASN.1 specification published in 2015 (see [X.680], [X.681], | ||||
| [X.682], [X.683]). None of the newly defined tokens in the 2008 | ||||
| ASN.1 (DATE, DATE-TIME, DURATION, NOT-A-NUMBER, OID-IRI, RELATIVE- | ||||
| OID-IRI, TIME, TIME-OF-DAY)) are currently used in any of the ASN.1 | ||||
| specifications referred to here. | ||||
| This ASN.1 module imports ASN.1 from [RFC5912]. | This ASN.1 module imports ASN.1 from [RFC5912]. | |||
| TN-Module { | TN-Module { | |||
| 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-tn-module(TBD) } | id-mod-tn-module(TBD) } | |||
| DEFINITIONS EXPLICIT TAGS ::= BEGIN | DEFINITIONS EXPLICIT TAGS ::= BEGIN | |||
| IMPORTS | IMPORTS | |||
| id-ad, id-ad-ocsp -- From [RFC5912] | id-ad, id-ad-ocsp -- From [RFC5912] | |||
| FROM PKIX1Explicit-2009 { | FROM PKIX1Explicit-2009 { | |||
| iso(1) identified-organization(3) dod(6) internet(1) security(5) | iso(1) identified-organization(3) dod(6) internet(1) security(5) | |||
| mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51) } | mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51) } | |||
| id-ce -- From [RFC5912] | id-ce -- From [RFC5912] | |||
| FROM PKIX1Implicit-2009 { | FROM PKIX1Implicit-2009 { | |||
| iso(1) identified-organization(3) dod(6) internet(1) security(5) | iso(1) identified-organization(3) dod(6) internet(1) security(5) | |||
| mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59) } | mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59) } | |||
| End of changes. 56 change blocks. | ||||
| 154 lines changed or deleted | 194 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/ | ||||