| < draft-ietf-stir-certificates-03.txt | draft-ietf-stir-certificates-04.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: September 22, 2016 Sn3rd | Expires: November 27, 2016 Sn3rd | |||
| March 21, 2016 | May 26, 2016 | |||
| Secure Telephone Identity Credentials: Certificates | Secure Telephone Identity Credentials: Certificates | |||
| draft-ietf-stir-certificates-03.txt | draft-ietf-stir-certificates-04.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 proves 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. | |||
| skipping to change at page 1, line 36 ¶ | skipping to change at page 1, line 36 ¶ | |||
| 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 September 22, 2016. | This Internet-Draft will expire on November 27, 2016. | |||
| 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. Enrollment and Authorization using the TN Authorization List 5 | 4. Certificate Usage . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.1. Certificate Extension Scope and Structure . . . . . . . . 6 | 5. Enrollment and Authorization using the TN Authorization List 6 | |||
| 5. Provisioning Private Keying Material . . . . . . . . . . . . 7 | 5.1. Certificate Extension Scope and Structure . . . . . . . . 7 | |||
| 6. Acquiring Credentials to Verify Signatures . . . . . . . . . 7 | 6. Provisioning Private Keying Material . . . . . . . . . . . . 8 | |||
| 7. Verifying Certificate Scope with TN Authorization List . . . 8 | 7. Acquiring Credentials to Verify Signatures . . . . . . . . . 8 | |||
| 8. Certificate Freshness and Revocation . . . . . . . . . . . . 10 | 8. Verifying Certificate Scope with TN Authorization List . . . 9 | |||
| 8.1. Choosing a Verification Method . . . . . . . . . . . . . 10 | 9. Certificate Freshness and Revocation . . . . . . . . . . . . 11 | |||
| 8.2. Using OCSP with TN Auth List . . . . . . . . . . . . . . 11 | 9.1. Choosing a Verification Method . . . . . . . . . . . . . 11 | |||
| 8.2.1. OCSP Extension Specification . . . . . . . . . . . . 12 | 9.2. Using OCSP with TN Auth List . . . . . . . . . . . . . . 12 | |||
| 8.3. Acquiring TN Lists By Reference . . . . . . . . . . . . . 13 | 9.2.1. OCSP Extension Specification . . . . . . . . . . . . 13 | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 | 9.3. Acquiring TN Lists By Reference . . . . . . . . . . . . . 14 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 12. Informative References . . . . . . . . . . . . . . . . . . . 15 | 12. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
| Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 17 | 13. Informative References . . . . . . . . . . . . . . . . . . . 16 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 19 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | ||||
| 1. Introduction | 1. Introduction | |||
| The STIR problem statement [I-D.ietf-stir-problem-statement] | The STIR problem statement [RFC7340] identifies the primary enabler | |||
| identifies the primary enabler of robocalling, vishing, swatting and | of robocalling, vishing, swatting and related attacks as the | |||
| related attacks as the capability to impersonate a calling party | capability to impersonate a calling party number. The starkest | |||
| number. The starkest examples of these attacks are cases where | examples of these attacks are cases where automated callees on the | |||
| automated callees on the PSTN rely on the calling number as a | PSTN rely on the calling number as a security measure, for example to | |||
| security measure, for example to access a voicemail system. | access a voicemail system. Robocallers use impersonation as a means | |||
| Robocallers use impersonation as a means of obscuring identity; while | of obscuring identity; while robocallers can, in the ordinary PSTN, | |||
| robocallers can, in the ordinary PSTN, block (that is, withhold) | block (that is, withhold) their caller identity, callees are less | |||
| their caller identity, callees are less likely to pick up calls from | likely to pick up calls from blocked identities, and therefore | |||
| blocked identities, and therefore appearing to calling from some | appearing to calling from some number, any number, is preferable. | |||
| number, any number, is preferable. Robocallers however prefer not to | Robocallers however prefer not to call from a number that can trace | |||
| call from a number that can trace back to the robocaller, and | back to the robocaller, and therefore they impersonate numbers that | |||
| 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 prove 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. This document describes credential systems | present such credentials. For that reason the STIR threat model | |||
| for telephone numbers based on X.509 version 3 certificates in | ||||
| accordance with [RFC5280]. While telephone numbers have long been a | [RFC7375] stipulates, "The design of the credential system envisioned | |||
| part of the X.509 standard, this document extends X.509 with a | as a solution to these threats must, for example, limit the scope of | |||
| Telephone Number Authorization List which binds certificates to | the credentials issued to carriers or national authorities to those | |||
| authority for particular telephone numbers, or potentially telephone | numbers that fall under their purview." This document describes | |||
| number blocks or ranges. | credential systems for telephone numbers based on X.509 version 3 | |||
| certificates in accordance with [RFC5280]. While telephone numbers | ||||
| have long been a part of the X.509 standard, this document provides | ||||
| ways to determine authority more aligned with telephone network | ||||
| requirements, including extending X.509 with a Telephone Number | ||||
| Authorization List which binds certificates to authority for | ||||
| particular telephone numbers, or potentially telephone number blocks | ||||
| 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 (see | by an entity enrolled with the certification authority (see | |||
| Section 4), whereas a verifier need only trust the root certificate | Section 5), whereas a verifier need only trust the root certificate | |||
| of the authority, and have a means to access and validate the public | of 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 prove | |||
| 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 certification authority or deployment environment. We | particular certification authority or deployment environment. We | |||
| skipping to change at page 4, line 46 ¶ | skipping to change at page 5, line 5 ¶ | |||
| over-the-wire format specified in [I-D.ietf-stir-rfc4474bis] | over-the-wire format specified in [I-D.ietf-stir-rfc4474bis] | |||
| accommodates either of these approaches: the methods for | accommodates either of these approaches: the methods for | |||
| canonicalizing, signing, for identifying and accessing the | canonicalizing, signing, for identifying and accessing the | |||
| certificate and so on remain the same; it is only the verifier | certificate and so on remain the same; it is only the verifier | |||
| behavior and authorization decision that will change depending on the | behavior and authorization decision that will change depending on the | |||
| approach to telephone number authority taken by the certificate. For | approach to telephone number authority taken by the certificate. For | |||
| that reason, the two approaches are not mutually exclusive, and in | that reason, the two approaches are not mutually exclusive, and in | |||
| fact a certificate issued to a traditional telephone network service | fact a certificate issued to a traditional telephone network service | |||
| provider could contain a TN Authorization List or not, depending on | provider could contain a TN Authorization List or not, depending on | |||
| the certification authority issuing the credential. Regardless of | the certification authority issuing the credential. Regardless of | |||
| which approaches is used, certificates that assert authority over | which approach is used, certificates that assert authority over | |||
| telephone numbers are subject to the ordinary operational procedures | telephone numbers are subject to the ordinary operational procedures | |||
| that govern certificate use per [RFC5280]. This means that | that govern certificate use per [RFC5280]. This means that | |||
| verification services must be mindful of the need to ensure that they | verification services must be mindful of the need to ensure that they | |||
| trust the root certificate authority that issued the certificate, and | trust the root certificate authority that issued the certificate, and | |||
| that they have some means to determine the freshness of the | that they have some means to determine the freshness of the | |||
| certificate (see Section 8). | certificate (see Section 9). | |||
| 4. Enrollment and Authorization using the TN Authorization List | 4. Certificate Usage | |||
| [I-D.ietf-stir-rfc4474bis] requires that all credential systems used | ||||
| for signing the Identity header in SIP detail the following: | ||||
| 1. The URI schemes permitted in the SIP Identity header "info" | ||||
| parameter, as well as any special procedures required to | ||||
| dereference the URIs. While normative text is given below in | ||||
| Section 7, this mechanism permits the HTTP, CID and SIP URI | ||||
| schemes to appear in the "info" parameter. | ||||
| 2. Procedures required to extract keying material from the resources | ||||
| designated by the URI. Implementations perform no special | ||||
| procedures beyond dereferencing the "info" URI. See Section 7. | ||||
| 3. Procedures used by the verification service to determine the | ||||
| scope of the credential. This specification effectively proposes | ||||
| two methods, as outlined in Section 3: one where the subject (or | ||||
| more properly subjectAltName) of the certificate indicates the | ||||
| scope of authority through a domain name, and relying parties | ||||
| either trust the subject entirely or have some direct means of | ||||
| determining whether or not a number falls under a subject's | ||||
| authority; and another where an extension to the certificate as | ||||
| described in Section 8 identifies the scope of the certificate. | ||||
| 4. The cryptographic algorithms required to validate the | ||||
| credentials. For this specification, that means the signature | ||||
| algorithms used to sign certificates. This specification | ||||
| REQUIRES that implementations support both ECDSA with the P-256 | ||||
| curve (see [RFC4754]) and RSA PKCS#1 v1.5 (see [RFC3447] | ||||
| Section 8.2) for certificate signatures. Implementers are | ||||
| advised that RS256 is mandated only as a transitional mechanism, | ||||
| due to its widespread use in existing PKI, but we anticipate that | ||||
| this mechanism will eventually be deprecated. | ||||
| 5. Finally, note that all certificates compliant with this | ||||
| specification MUST provide cryptographic keying material | ||||
| sufficient to generate the ECDSA P-256 signatures necessary to | ||||
| support the ES256 hashed signatures required by PASSporT | ||||
| [I-D.ietf-stir-passport], which in turn follows JWT [RFC7519]. | ||||
| 5. Enrollment and Authorization using the TN Authorization List | ||||
| This document assumes a threefold model for certificate enrollment | This document assumes a threefold model for certificate enrollment | |||
| when using the TN Authorization List extension. | when using the TN Authorization List extension. | |||
| The first enrollment model is one where the certification authority | The first enrollment model is one where the certification authority | |||
| acts in concert with national numbering authorities to issue | acts in concert with national numbering authorities to issue | |||
| credentials to those parties to whom numbers are assigned. In the | credentials to those parties to whom numbers are assigned. In the | |||
| United States, for example, telephone number blocks are assigned to | United States, for example, telephone number blocks are assigned to | |||
| Local Exchange Carriers (LECs) by the North American Numbering Plan | Local Exchange Carriers (LECs) by the North American Numbering Plan | |||
| Administrator (NANPA), who is in turn directed by the national | Administrator (NANPA), who is in turn directed by the national | |||
| skipping to change at page 6, line 19 ¶ | skipping to change at page 7, line 19 ¶ | |||
| [TBD] Future versions of this specification may address adding a | [TBD] Future versions of this specification may address adding a | |||
| level of assurance indication to certificates to differentiate those | level of assurance indication to certificates to differentiate those | |||
| enrolled from proof-of-possession versus delegation. | enrolled from proof-of-possession versus delegation. | |||
| [TBD] Future versions of this specification may also discuss methods | [TBD] Future versions of this specification may also discuss methods | |||
| of partial delegation, where certificate holders delegate only part | of partial delegation, where certificate holders delegate only part | |||
| of their authority. For example, individual assignees may want to | of their authority. For example, individual assignees may want to | |||
| delegate to a service authority for text messages associated with | delegate to a service authority for text messages associated with | |||
| their telephone number, but not for other functions. | their telephone number, but not for other functions. | |||
| 4.1. Certificate Extension Scope and Structure | 5.1. 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 is capable of signing for any one | |||
| of those numbers. Others may wish to compartmentalize authority over | of those numbers. Others may wish to compartmentalize authority over | |||
| subsets of the numbers they control. | 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 | |||
| skipping to change at page 7, line 7 ¶ | skipping to change at page 8, line 7 ¶ | |||
| organization or individual issued such a certificate may not want to | organization or individual issued such a certificate may not want to | |||
| associate themselves with a certificate; for example, a private | associate themselves with a certificate; for example, a private | |||
| individual with a certificate for a single telephone number might not | individual with a certificate for a single telephone number might not | |||
| want to distribute that certificate publicly if every verifier | want to distribute that certificate publicly if every verifier | |||
| immediately knew their name. The certification authorities issuing | immediately knew their name. The certification authorities issuing | |||
| 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. | |||
| 5. 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. This specification does not require that any particular | |||
| entity in a SIP deployment architecture sign requests, only that it | entity in a SIP deployment architecture sign requests, only that it | |||
| be an entity with an appropriate private key; the authentication | be an entity with an appropriate private key; the authentication | |||
| service role may be instantiated by any entity in a SIP network. For | service role may be instantiated by any entity in a SIP network. For | |||
| a certificate granting authority only over a particular number which | a certificate granting authority only over a particular number which | |||
| has been issued to an end user, for example, an end user device might | has been issued to an end user, for example, an end user device might | |||
| hold the private key and generate the signature. In the case of a | hold the private key and generate the signature. In the case of a | |||
| service provider with authority over large blocks of numbers, an | service provider with authority over large blocks of numbers, an | |||
| intermediary might hold the private key and sign calls. | 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]. | |||
| 6. 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 acquire 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 where the credential used to | |||
| skipping to change at page 8, line 20 ¶ | skipping to change at page 9, line 20 ¶ | |||
| described in RFC 7030 [RFC7030]. | described in RFC 7030 [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. Verifiers | when accessing certificates from caches or other sources. | |||
| still | ||||
| 7. Verifying Certificate Scope with TN Authorization List | 8. Verifying Certificate Scope with TN Authorization List | |||
| 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 particular is to allow a verifier to | |||
| ascertain when the certification authority has designed that the | ascertain when the certification authority has designed that the | |||
| subject has authority over a particular telephone number or number | subject has authority over a particular telephone number or number | |||
| range. | range. | |||
| skipping to change at page 10, line 11 ¶ | skipping to change at page 11, line 11 ¶ | |||
| 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 will be detailed in | |||
| future version of this specification. | future version of this specification. | |||
| 8. 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, some sort of certificate verification mechanism | |||
| is required. However, the traditional problem of certificate | is required. However, the traditional problem of certificate | |||
| freshness gains a new wrinkle when using the TN Authorization List | freshness gains a new wrinkle when using the TN Authorization List | |||
| extension, because verifiers must establish not only that a | extension, because verifiers must establish not only that a | |||
| certificate remains valid, but also that the certificate's scope | certificate remains valid, but also that the certificate's scope | |||
| contains the telephone number that the verifier is validating. | contains the telephone number that the verifier is validating. | |||
| Dynamic changes to number assignments can occur due to number | Dynamic changes to number assignments can occur due to number | |||
| portability, for example. So even if a verifier has a valid cached | portability, for example. So even if a verifier has a valid cached | |||
| certificate for a telephone number (or a range containing the | certificate for a telephone number (or a range containing the | |||
| number), the verifier must determine that the entity that signed is | number), the verifier must determine that the entity that signed is | |||
| still a proper authority for that number. | still a proper authority for 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 6), and then would need to either: | Section 7), and then would need to either: | |||
| Rely on short-lived certificates and not check the certificate's | Rely on short-lived certificates and not check the certificate's | |||
| status, or | status, or | |||
| Rely on status information from the authority | Rely on status information from the authority | |||
| 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 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 | performing enrollment for each call is more of an impact that using | |||
| status information. This document therefore recommends relying on | status information. This document therefore recommends relying on | |||
| status information. | status information. | |||
| 8.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: | |||
| Certificate Revocation Lists (CRLs) [RFC5280] | Certificate Revocation Lists (CRLs) [RFC5280] | |||
| Online Certificate Status Protocol (OCSP) [RFC6960], and | Online Certificate Status Protocol (OCSP) [RFC6960], and | |||
| Server-based Certificate Validation Protocol (SCVP) [RFC5055]. | Server-based Certificate Validation Protocol (SCVP) [RFC5055]. | |||
| When relying on status information, the verifier needs to obtain the | When relying on status information, the verifier needs to obtain the | |||
| skipping to change at page 11, line 35 ¶ | skipping to change at page 12, line 35 ¶ | |||
| (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 relying 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 for | therefore recommends the use of OCSP in high-volume environments for | |||
| validating the freshness of certificates, based on [RFC6960], | validating the freshness of certificates, based on [RFC6960], | |||
| incorporating some (but not all) of the optimizations of [RFC5019]. | incorporating some (but not all) of the optimizations of [RFC5019]. | |||
| 8.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]. Baseline OCSP however supports | |||
| only three possible response values: good, revoked, or unknown. With | only three possible response values: good, revoked, or unknown. With | |||
| some extension, OCSP would not indicate whether the certificate is | some extension, OCSP would not indicate whether the certificate is | |||
| authorized for a particular telephone number that the verifier is | authorized for a particular telephone number that the verifier is | |||
| validating. | validating. | |||
| skipping to change at page 12, line 32 ¶ | skipping to change at page 13, line 32 ¶ | |||
| we're6960 obviously going to change this to be SHA-256. | we're6960 obviously going to change this to be SHA-256. | |||
| The requirement to consult OCSP in real time results in a network | The requirement to consult OCSP in real time results in a network | |||
| round-trip time of day, which is something to consider because it | round-trip time of day, which is something to consider because it | |||
| will add to the call setup time. OCSP server implementations | will add to the call setup time. OCSP server implementations | |||
| commonly pre-generate responses, and to speed up HTTPS connections, | commonly pre-generate responses, and to speed up HTTPS connections, | |||
| servers often provide OCSP responses for each certificate in their | servers often provide OCSP responses for each certificate in their | |||
| hierarchy. If possible, both of these OCSP concepts should be | hierarchy. If possible, both of these OCSP concepts should be | |||
| adopted for use with STIR. | adopted for use with STIR. | |||
| 8.2.1. OCSP Extension Specification | 9.2.1. OCSP Extension Specification | |||
| The extension mechanism for OCSP follows X.509 v3 certificate | The extension mechanism for OCSP follows X.509 v3 certificate | |||
| extensions, and thus requires an OID, a criticality flag, and ASN.1 | extensions, and thus requires an OID, a criticality flag, and ASN.1 | |||
| syntax as defined by the OID. The criticality specified here is | syntax as defined by the OID. The criticality specified here is | |||
| 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 | |||
| skipping to change at page 13, line 40 ¶ | skipping to change at page 14, line 40 ¶ | |||
| PKI environments as an optimization which allows web servers to send | PKI environments as an optimization which allows web servers to send | |||
| up-to-date certificate status information acquired from OCSP to | up-to-date certificate status information acquired from OCSP to | |||
| clients as TLS is negotiated. A similar mechanism could be | clients as TLS is negotiated. A similar mechanism could be | |||
| implemented for SIP requests, in which the authentication service | implemented for SIP requests, in which the authentication service | |||
| adds status information for its certificate to the SIP request, which | adds status information for its certificate to the SIP request, which | |||
| would save the verifier the trouble of performing the OCSP dip | would save the verifier the trouble of performing the OCSP dip | |||
| itself. Especially for high-volume authentication and verification | itself. Especially for high-volume authentication and verification | |||
| services, this could result in significant performance improvements. | services, this could result in significant performance improvements. | |||
| This is left as an optimization for future work. | This is left as an optimization for future work. | |||
| 8.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 authorized for use by the | |||
| caller. | 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 number 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 7) | 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. | |||
| 9. Acknowledgments | 10. Acknowledgments | |||
| Russ Housley, Brian Rosen, Cullen Jennings and Eric Rescorla provided | Russ Housley, Brian Rosen, Cullen Jennings and Eric Rescorla provided | |||
| key input to the discussions leading to this document. | key input to the discussions leading to this document. | |||
| 10. IANA Considerations | 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 7, TN-HVE OCSP extension in | Extension defined in Section 8, TN-HVE OCSP extension in | |||
| Section 8.2.1, and the TN by reference AIA access descriptor defined | Section 9.2.1, and the TN by reference AIA access descriptor defined | |||
| in Section 8.3. It therefore requests that the IANA make the | in Section 9.3. It therefore requests that the IANA make the | |||
| following assignments: | following assignments: | |||
| - TN Certificate Extension in the SMI Security for PKIX | - TN Certificate Extension in the SMI Security for PKIX | |||
| Certificate Extension registry: http://www.iana.org/assignments/ | Certificate Extension registry: http://www.iana.org/assignments/ | |||
| smi-numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.1 | smi-numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.1 | |||
| - TN-HVE OCSP extension in the SMI Security for PKIX Online | - TN-HVE OCSP extension in the SMI Security for PKIX Online | |||
| Certificate Status Protocol (OCSP) registry: | Certificate Status Protocol (OCSP) registry: | |||
| http://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi- | http://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi- | |||
| numbers-1.3.6.1.5.5.7.48.1 | numbers-1.3.6.1.5.5.7.48.1 | |||
| - TNS by reference access descriptor in the SMI Security for PKIX | - TNS by reference access descriptor in the SMI Security for PKIX | |||
| Access Descriptor registry: http://www.iana.org/assignments/smi- | Access Descriptor registry: http://www.iana.org/assignments/smi- | |||
| numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.48 | numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.48 | |||
| 11. Security Considerations | 12. 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 RFC 3280 [RFC3280], in | certificate security and practices, see [RFC3280], in particular its | |||
| particular its Security Considerations. | Security Considerations. | |||
| 12. Informative References | 13. Informative References | |||
| [I-D.ietf-stir-problem-statement] | [I-D.ietf-stir-passport] | |||
| Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure | Wendt, C. and J. Peterson, "Persona Assertion Token", | |||
| Telephone Identity Problem Statement and Requirements", | draft-ietf-stir-passport-02 (work in progress), May 2016. | |||
| draft-ietf-stir-problem-statement-05 (work in progress), | ||||
| May 2014. | ||||
| [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-07 | Initiation Protocol (SIP)", draft-ietf-stir-rfc4474bis-09 | |||
| (work in progress), February 2016. | (work in progress), May 2016. | |||
| [I-D.peterson-sipping-retarget] | [I-D.peterson-sipping-retarget] | |||
| Peterson, J., "Retargeting and Security in SIP: A | Peterson, J., "Retargeting and Security in SIP: A | |||
| Framework and Requirements", draft-peterson-sipping- | Framework and Requirements", draft-peterson-sipping- | |||
| retarget-00 (work in progress), February 2005. | retarget-00 (work in progress), February 2005. | |||
| [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>. | |||
| skipping to change at page 16, line 22 ¶ | skipping to change at page 17, line 22 ¶ | |||
| Protocol (SIP): Locating SIP Servers", RFC 3263, | Protocol (SIP): Locating SIP Servers", RFC 3263, | |||
| DOI 10.17487/RFC3263, June 2002, | DOI 10.17487/RFC3263, June 2002, | |||
| <http://www.rfc-editor.org/info/rfc3263>. | <http://www.rfc-editor.org/info/rfc3263>. | |||
| [RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet | [RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet | |||
| X.509 Public Key Infrastructure Certificate and | X.509 Public Key Infrastructure Certificate and | |||
| Certificate Revocation List (CRL) Profile", RFC 3280, | Certificate Revocation List (CRL) Profile", RFC 3280, | |||
| DOI 10.17487/RFC3280, April 2002, | DOI 10.17487/RFC3280, April 2002, | |||
| <http://www.rfc-editor.org/info/rfc3280>. | <http://www.rfc-editor.org/info/rfc3280>. | |||
| [RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography | ||||
| Standards (PKCS) #1: RSA Cryptography Specifications | ||||
| Version 2.1", RFC 3447, DOI 10.17487/RFC3447, February | ||||
| 2003, <http://www.rfc-editor.org/info/rfc3447>. | ||||
| [RFC4754] Fu, D. and J. Solinas, "IKE and IKEv2 Authentication Using | ||||
| the Elliptic Curve Digital Signature Algorithm (ECDSA)", | ||||
| RFC 4754, DOI 10.17487/RFC4754, January 2007, | ||||
| <http://www.rfc-editor.org/info/rfc4754>. | ||||
| [RFC5019] Deacon, A. and R. Hurst, "The Lightweight Online | [RFC5019] Deacon, A. and R. Hurst, "The Lightweight Online | |||
| Certificate Status Protocol (OCSP) Profile for High-Volume | Certificate Status Protocol (OCSP) Profile for High-Volume | |||
| Environments", RFC 5019, DOI 10.17487/RFC5019, September | Environments", RFC 5019, DOI 10.17487/RFC5019, September | |||
| 2007, <http://www.rfc-editor.org/info/rfc5019>. | 2007, <http://www.rfc-editor.org/info/rfc5019>. | |||
| [RFC5055] Freeman, T., Housley, R., Malpani, A., Cooper, D., and W. | [RFC5055] Freeman, T., Housley, R., Malpani, A., Cooper, D., and W. | |||
| Polk, "Server-Based Certificate Validation Protocol | Polk, "Server-Based Certificate Validation Protocol | |||
| (SCVP)", RFC 5055, DOI 10.17487/RFC5055, December 2007, | (SCVP)", RFC 5055, DOI 10.17487/RFC5055, December 2007, | |||
| <http://www.rfc-editor.org/info/rfc5055>. | <http://www.rfc-editor.org/info/rfc5055>. | |||
| skipping to change at page 17, line 19 ¶ | skipping to change at page 18, line 30 ¶ | |||
| [RFC7030] Pritikin, M., Ed., Yee, P., Ed., and D. Harkins, Ed., | [RFC7030] Pritikin, M., Ed., Yee, P., Ed., and D. Harkins, Ed., | |||
| "Enrollment over Secure Transport", RFC 7030, | "Enrollment over Secure Transport", RFC 7030, | |||
| DOI 10.17487/RFC7030, October 2013, | DOI 10.17487/RFC7030, October 2013, | |||
| <http://www.rfc-editor.org/info/rfc7030>. | <http://www.rfc-editor.org/info/rfc7030>. | |||
| [RFC7299] Housley, R., "Object Identifier Registry for the PKIX | [RFC7299] Housley, R., "Object Identifier Registry for the PKIX | |||
| Working Group", RFC 7299, DOI 10.17487/RFC7299, July 2014, | Working Group", RFC 7299, DOI 10.17487/RFC7299, July 2014, | |||
| <http://www.rfc-editor.org/info/rfc7299>. | <http://www.rfc-editor.org/info/rfc7299>. | |||
| [RFC7340] Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure | ||||
| Telephone Identity Problem Statement and Requirements", | ||||
| RFC 7340, DOI 10.17487/RFC7340, September 2014, | ||||
| <http://www.rfc-editor.org/info/rfc7340>. | ||||
| [RFC7375] Peterson, J., "Secure Telephone Identity Threat Model", | ||||
| RFC 7375, DOI 10.17487/RFC7375, October 2014, | ||||
| <http://www.rfc-editor.org/info/rfc7375>. | ||||
| [RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token | ||||
| (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, | ||||
| <http://www.rfc-editor.org/info/rfc7519>. | ||||
| [X.680] USC/Information Sciences Institute, "Information | [X.680] USC/Information Sciences Institute, "Information | |||
| Technology - Abstract Syntax Notation One.", ITU-T X.680, | Technology - Abstract Syntax Notation One.", ITU-T X.680, | |||
| ISO/IEC 8824-1:2002, 2002. | ISO/IEC 8824-1:2002, 2002. | |||
| [X.681] USC/Information Sciences Institute, "Information | [X.681] USC/Information Sciences Institute, "Information | |||
| Technology - Abstract Syntax Notation One: Information | Technology - Abstract Syntax Notation One: Information | |||
| Object Specification", ITU-T X.681, ISO/IEC 8824-2:2002, | Object Specification", ITU-T X.681, ISO/IEC 8824-2:2002, | |||
| 2002. | 2002. | |||
| [X.682] USC/Information Sciences Institute, "Information | [X.682] USC/Information Sciences Institute, "Information | |||
| End of changes. 32 change blocks. | ||||
| 73 lines changed or deleted | 142 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/ | ||||