idnits 2.17.00 (12 Aug 2021) /tmp/idnits62336/draft-ietf-stir-certificates-06.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 750 has weird spacing: '... Name foo-l...' -- The document date (July 7, 2016) is 2143 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Looks like a reference, but probably isn't: '0' on line 942 -- Looks like a reference, but probably isn't: '1' on line 943 == Outdated reference: draft-ietf-stir-passport has been published as RFC 8225 == Outdated reference: draft-ietf-stir-rfc4474bis has been published as RFC 8224 ** Obsolete normative reference: RFC 3447 (Obsoleted by RFC 8017) ** Downref: Normative reference to an Informational RFC: RFC 3647 ** Downref: Normative reference to an Informational RFC: RFC 5912 ** Downref: Normative reference to an Informational RFC: RFC 6711 ** Obsolete normative reference: RFC 6961 (Obsoleted by RFC 8446) ** Downref: Normative reference to an Informational RFC: RFC 7093 ** Downref: Normative reference to an Informational RFC: RFC 7340 ** Downref: Normative reference to an Informational RFC: RFC 7375 Summary: 9 errors (**), 0 flaws (~~), 4 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group J. Peterson 3 Internet-Draft Neustar 4 Intended status: Standards Track S. Turner 5 Expires: January 8, 2017 sn3rd 6 July 7, 2016 8 Secure Telephone Identity Credentials: Certificates 9 draft-ietf-stir-certificates-06.txt 11 Abstract 13 In order to prevent the impersonation of telephone numbers on the 14 Internet, some kind of credential system needs to exist that 15 cryptographically proves authority over telephone numbers. This 16 document describes the use of certificates in establishing authority 17 over telephone numbers, as a component of a broader architecture for 18 managing telephone numbers as identities in protocols like SIP. 20 Status of This Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at http://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on January 8, 2017. 37 Copyright Notice 39 Copyright (c) 2016 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (http://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 55 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 56 3. Authority for Telephone Numbers in Certificates . . . . . . . 3 57 4. Certificate Usage . . . . . . . . . . . . . . . . . . . . . . 5 58 5. Enrollment and Authorization using the TN Authorization List 6 59 5.1. Certificate Extension Scope and Structure . . . . . . . . 7 60 6. Provisioning Private Keying Material . . . . . . . . . . . . 8 61 7. Acquiring Credentials to Verify Signatures . . . . . . . . . 8 62 8. Verifying Certificate Scope with TN Authorization List . . . 9 63 9. Certificate Freshness and Revocation . . . . . . . . . . . . 11 64 9.1. Choosing a Verification Method . . . . . . . . . . . . . 11 65 9.2. Using OCSP with TN Auth List . . . . . . . . . . . . . . 12 66 9.2.1. OCSP Extension Specification . . . . . . . . . . . . 13 67 9.3. Acquiring TN Lists By Reference . . . . . . . . . . . . . 15 68 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 69 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 70 12. Security Considerations . . . . . . . . . . . . . . . . . . . 17 71 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 72 Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 20 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 75 1. Introduction 77 The STIR problem statement [RFC7340] identifies the primary enabler 78 of robocalling, vishing, swatting and related attacks as the 79 capability to impersonate a calling party number. The starkest 80 examples of these attacks are cases where automated callees on the 81 PSTN rely on the calling number as a security measure, for example to 82 access a voicemail system. Robocallers use impersonation as a means 83 of obscuring identity; while robocallers can, in the ordinary PSTN, 84 block (that is, withhold) their caller identity, callees are less 85 likely to pick up calls from blocked identities, and therefore 86 appearing to calling from some number, any number, is preferable. 87 Robocallers however prefer not to call from a number that can trace 88 back to the robocaller, and therefore they impersonate numbers that 89 are not assigned to them. 91 One of the most important components of a system to prevent 92 impersonation is the implementation of credentials which identify the 93 parties who control telephone numbers. With these credentials, 94 parties can prove that they are in fact authorized to use telephony 95 numbers, and thus distinguish themselves from impersonators unable to 96 present such credentials. For that reason the STIR threat model 98 [RFC7375] stipulates, "The design of the credential system envisioned 99 as a solution to these threats must, for example, limit the scope of 100 the credentials issued to carriers or national authorities to those 101 numbers that fall under their purview." This document describes 102 credential systems for telephone numbers based on X.509 version 3 103 certificates in accordance with [RFC5280]. While telephone numbers 104 have long been a part of the X.509 standard, this document provides 105 ways to determine authority more aligned with telephone network 106 requirements, including extending X.509 with a Telephone Number 107 Authorization List which binds certificates to authority for 108 particular telephone numbers, or potentially telephone number blocks 109 or ranges. 111 In the STIR in-band architecture specified in 112 [I-D.ietf-stir-rfc4474bis], two basic types of entities need access 113 to these credentials: authentication services, and verification 114 services (or verifiers). An authentication service must be operated 115 by an entity enrolled with the certification authority (CA, see 116 Section 5), whereas a verifier need only trust the root certificate 117 of the authority, and have a means to access and validate the public 118 keys associated with these certificates. Although the guidance in 119 this document is written with the STIR in-band architecture in mind, 120 the credential system described in this document could be useful for 121 other protocols that want to make use of certificates to prove 122 authority over telephone numbers on the Internet. 124 This document specifies only the credential syntax and semantics 125 necessary to support this architecture. It does not assume any 126 particular CA or deployment environment. We anticipate that some 127 deployment experience will be necessary to determine optimal 128 operational models. 130 2. Terminology 132 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 133 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 134 "OPTIONAL" in this document are to be interpreted as described in RFC 135 2119 [RFC2119]. 137 3. Authority for Telephone Numbers in Certificates 139 At a high level, this specification details two non-exclusive 140 approaches that can be employed to determine authority over telephone 141 numbers with certificates. 143 The first approach is to leverage the subject of the certificate to 144 ascertain that the holder of the certificate is authorized to claim 145 authority over a telephone number. The subject might be represented 146 as a domain name in the SubjectAltName, such as an "example.net" 147 where that domain is known to relying parties as a carrier, or 148 represented with other identifiers related to the operation of the 149 telephone network including Service Provider Identifiers (SPIDs) 150 could serve as a subject as well. A relying party could then employ 151 an external data set or service that determines whether or not a 152 specific telephone number is under the authority of the carrier 153 identified as the subject of the certificate, and use that to 154 ascertain whether or not the carrier should have authority over a 155 telephone number. Potentially, a certificate extension to convey the 156 URI of such an information service trusted by the issuer of the 157 certificate could be developed (though this specification does not 158 propose one). Alternatively, some relying parties could form 159 bilateral or multilateral trust relationships with peer carriers, 160 trusting one another's assertions just as telephone carriers in the 161 SS7 network today rely on transitive trust when displaying the 162 calling party telephone number received through SS7 signaling. 164 The second approach is to extend the syntax of certificates to 165 include a new attribute, defined here as TN Authorization List, which 166 contains a list of telephone numbers defining the scope of authority 167 of the certificate. Relying parties, if they trust the issuer of the 168 certificate as a source of authoritative information on telephone 169 numbers, could therefore use the TN Authorization List instead of the 170 subject of the certificate to make a decision about whether or not 171 the signer has authority over a particular telephone number. The TN 172 Authorization List could be provided in one of two ways: as a literal 173 value in the certificate, or as a network service that allows relying 174 parties to query in real time to determine that a telephone number is 175 in the scope of a certificate. Using the TN Authorization list 176 rather than the certificate subject makes sense when, for example, 177 for privacy reasons, the certificate owner would prefer not to be 178 identified, or in cases where the holder of the certificate does not 179 participate in the sort of traditional carrier infrastructure taht 180 the first approach assumes. 182 The first approach requires little change to existing Public Key 183 Infrastructure (PKI) certificates; for the second approach, we must 184 define an appropriate enrollment and authorization process. For the 185 purposes of STIR, the over-the-wire format specified in 186 [I-D.ietf-stir-rfc4474bis] accommodates either of these approaches: 187 the methods for canonicalizing, signing, for identifying and 188 accessing the certificate and so on remain the same; it is only the 189 verifier behavior and authorization decision that will change 190 depending on the approach to telephone number authority taken by the 191 certificate. For that reason, the two approaches are not mutually 192 exclusive, and in fact a certificate issued to a traditional 193 telephone network service provider could contain a TN Authorization 194 List or not, depending on the CA issuing the credential. Regardless 195 of which approach is used, certificates that assert authority over 196 telephone numbers are subject to the ordinary operational procedures 197 that govern certificate use per [RFC5280]. This means that 198 verification services must be mindful of the need to ensure that they 199 trust the root certificate authority that issued the certificate, and 200 that they have some means to determine the freshness of the 201 certificate (see Section 9). 203 4. Certificate Usage 205 [I-D.ietf-stir-rfc4474bis] requires that all credential systems used 206 for signing the Identity header in SIP detail the following: 208 1. The URI schemes permitted in the SIP Identity header "info" 209 parameter, as well as any special procedures required to 210 dereference the URIs. While normative text is given below in 211 Section 7, this mechanism permits the HTTP, CID and SIP URI 212 schemes to appear in the "info" parameter. 214 2. Procedures required to extract keying material from the resources 215 designated by the URI. Implementations perform no special 216 procedures beyond dereferencing the "info" URI. See Section 7. 218 3. Procedures used by the verification service to determine the 219 scope of the credential. This specification effectively proposes 220 two methods, as outlined in Section 3: one where the subject (or 221 more properly subjectAltName) of the certificate indicates the 222 scope of authority through a domain name, and relying parties 223 either trust the subject entirely or have some direct means of 224 determining whether or not a number falls under a subject's 225 authority; and another where an extension to the certificate as 226 described in Section 8 identifies the scope of the certificate. 228 4. The cryptographic algorithms required to validate the 229 credentials. For this specification, that means the signature 230 algorithms used to sign certificates. This specification 231 REQUIRES that implementations support both ECDSA with the P-256 232 curve (see [RFC4754]) and RSA PKCS#1 v1.5 (see [RFC3447] 233 Section 8.2) for certificate signatures. Implementers are 234 advised that RS256 is mandated only as a transitional mechanism, 235 due to its widespread use in existing PKI, but we anticipate that 236 this mechanism will eventually be deprecated. 238 5. Finally, note that all certificates compliant with this 239 specification MUST provide cryptographic keying material 240 sufficient to generate the ECDSA using P-256 and SHA-256 241 signatures necessary to support the ES256 hashed signatures 242 required by PASSporT [I-D.ietf-stir-passport], which in turn 243 follows JSON Web Token (JWT) [RFC7519]. 245 5. Enrollment and Authorization using the TN Authorization List 247 This document assumes a threefold model for certificate enrollment 248 when using the TN Authorization List extension. 250 The first enrollment model is one where the CA acts in concert with 251 national numbering authorities to issue credentials to those parties 252 to whom numbers are assigned. In the United States, for example, 253 telephone number blocks are assigned to Local Exchange Carriers 254 (LECs) by the North American Numbering Plan Administrator (NANPA), 255 who is in turn directed by the national regulator. LECs may also 256 receive numbers in smaller allocations, through number pooling, or 257 via an individual assignment through number portability. LECs assign 258 numbers to customers, who may be private individuals or organizations 259 - and organizations take responsibility for assigning numbers within 260 their own enterprise. This model requires top-down adoption of the 261 model from regulators through to carriers. 263 The second enrollment model is a bottom-up approach where a CA 264 requires that an entity prove control by means of some sort of test, 265 which, as with certification authorities for web PKI, might either be 266 automated or a manual administrative process. As an example of an 267 automated process, an authority might send a text message to a 268 telephone number containing a URL (which might be dereferenced by the 269 recipient) as a means of verifying that a user has control of 270 terminal corresponding to that number. Checks of this form are 271 frequently used in commercial systems today to validate telephone 272 numbers provided by users. This is comparable to existing enrollment 273 systems used by some certificate authorities for issuing S/MIME 274 credentials for email by verifying that the party applying for a 275 credential receives mail at the email address in question. 277 The third enrollment model is delegation: that is, the holder of a 278 certificate (assigned by either of the two methods above) might 279 delegate some or all of their authority to another party. In some 280 cases, multiple levels of delegation could occur: a LEC, for example, 281 might delegate authority to a customer organization for a block of 282 100 numbers used by an IP PBX, and the organization might in turn 283 delegate authority for a particular number to an individual employee. 284 This is analogous to delegation of organizational identities in 285 traditional hierarchical PKIs who use the name constraints extension 286 [RFC5280]; the root CA delegates names in sales to the sales 287 department CA, names in development to the development CA, etc. As 288 lengthy certificate delegation chains are brittle, however, and can 289 cause delays in the verification process, this document considers 290 optimizations to reduce the complexity of verification. 292 This specification supports different level of assurance (LOA). The 293 LOA indications, which are Object Identifiers (OIDs) included in the 294 certificate's certificate policies extension [RFC5280], allow CAs to 295 differentiate those enrolled from proof-of-possession versus 296 delegation. A Certification Policy and a Certification Practice 297 Statement [RFC3647] are produced as part of the normal PKI 298 bootstrapping process (i.e., the CP is written first and then the CAs 299 say how they conform to the CP in the CPS). OIDs are used to 300 reference the CP and if the CA wishes it can also include a reference 301 to the CPS with the certificate policies extension. CAs that wish to 302 express different LOAs MUST include the certificate policies 303 extension in issued certificates. See Section 11 for additional 304 information about the LOA registry. 306 Future versions of this specification may also discuss methods of 307 partial delegation, where certificate holders delegate only part of 308 their authority. For example, individual assignees may want to 309 delegate to a service authority for text messages associated with 310 their telephone number, but not for other functions. 312 5.1. Certificate Extension Scope and Structure 314 This specification places no limits on the number of telephone 315 numbers that can be associated with any given certificate. Some 316 service providers may be assigned millions of numbers, and may wish 317 to have a single certificate that is capable of signing for any one 318 of those numbers. Others may wish to compartmentalize authority over 319 subsets of the numbers they control. 321 Moreover, service providers may wish to have multiple certificates 322 with the same scope of authority. For example, a service provider 323 with several regional gateway systems may want each system to be 324 capable of signing for each of their numbers, but not want to have 325 each system share the same private key. 327 The set of telephone numbers for which a particular certificate is 328 valid is expressed in the certificate through a certificate 329 extension; the certificate's extensibility mechanism is defined in 330 [RFC5280] but the TN Authorization List extension is specified in 331 this document. 333 The subjects of certificates containing the TN Authorization List 334 extension are typically the administrative entities to whom numbers 335 are assigned or delegated. For example, a LEC might hold a 336 certificate for a range of telephone numbers. In some cases, the 337 organization or individual issued such a certificate may not want to 338 associate themselves with a certificate; for example, a private 339 individual with a certificate for a single telephone number might not 340 want to distribute that certificate publicly if every verifier 341 immediately knew their name. The certification authorities issuing 342 certificates with the TN Authorization List extensions may, in 343 accordance with their policies, obscure the identity of the subject, 344 though mechanisms for doing so are outside the scope of this 345 document. 347 6. Provisioning Private Keying Material 349 In order for authentication services to sign calls via the procedures 350 described in [I-D.ietf-stir-rfc4474bis], they must hold a private key 351 corresponding to a certificate with authority over the calling 352 number. This specification does not require that any particular 353 entity in a SIP deployment architecture sign requests, only that it 354 be an entity with an appropriate private key; the authentication 355 service role may be instantiated by any entity in a SIP network. For 356 a certificate granting authority only over a particular number which 357 has been issued to an end user, for example, an end user device might 358 hold the private key and generate the signature. In the case of a 359 service provider with authority over large blocks of numbers, an 360 intermediary might hold the private key and sign calls. 362 The specification recommends distribution of private keys through 363 PKCS#8 objects signed by a trusted entity, for example through the 364 CMS package specified in [RFC5958]. 366 7. Acquiring Credentials to Verify Signatures 368 This specification documents multiple ways that a verifier can gain 369 access to the credentials needed to verify a request. As the 370 validity of certificates does not depend on the method of their 371 acquisition, there is no need to standardize any single mechanism for 372 this purpose. All entities that comply with 373 [I-D.ietf-stir-rfc4474bis] necessarily support SIP, and consequently 374 SIP itself can serve as a way to acquire certificates. 375 [I-D.ietf-stir-rfc4474bis] provides an "info" parameter of the 376 Identity header which contains a URI where the credential used to 377 generate the Identity header, and requires documents which define 378 credential systems to list the URI schemes that may be present in the 379 "info" parameter. For implementations compliant with this 380 specification, three URI schemes are REQUIRED: the CID URI, the SIP 381 URI, and the HTTP URI. 383 The simplest way for a verifier to acquire the certificate needed to 384 verify a signature is for the certificate be conveyed in a SIP 385 request along with the signature itself. In SIP, for example, a 386 certificate could be carried in a multipart MIME body [RFC2046], and 387 the URI in the Identity header "info" parameter could specify that 388 body with a CID URI [RFC2392]. However, in many environments this is 389 not feasible due to message size restrictions or lack of necessary 390 support for multipart MIME. 392 More commonly, the Identity header "info" parameter in a SIP request 393 may contain a URI that the verifier dereferences with a network call. 394 Implementations of this specification are required to support the use 395 of SIP for this function (via the SUBSCRIBE/NOTIFY mechanism), as 396 well as HTTP, via the Enrollment over Secure Transport mechanisms 397 described in RFC 7030 [RFC7030]. 399 Note well that as an optimization, a verifier may have access to a 400 service, a cache or other local store that grants access to 401 certificates for a particular telephone number. However, there may 402 be multiple valid certificates that can sign a call setup request for 403 a telephone number, and as a consequence, there needs to be some 404 discriminator that the signer uses to identify their credentials. 405 The Identity header "info" parameter itself can serve as such a 406 discriminator, provided implementations use that parameter as a key 407 when accessing certificates from caches or other sources. 409 8. Verifying Certificate Scope with TN Authorization List 411 The subjects of certificates containing the TN Authorization List 412 extension are the administrative entities to whom numbers are 413 assigned or delegated. When a verifier is validating a caller's 414 identity, local policy always determines the circumstances under 415 which any particular subject may be trusted, but the purpose of the 416 TN Authorization List extension particular is to allow a verifier to 417 ascertain when the CA has designed that the subject has authority 418 over a particular telephone number or number range. 420 The Telephony Number (TN) Authorization List certificate extension is 421 identified by the following object identifier: 423 id-ce-TNAuthList OBJECT IDENTIFIER ::= { id-ce TBD } 425 The TN Authorization List certificate extension has the following 426 syntax: 428 TNAuthorizationList ::= SEQUENCE SIZE (1..MAX) OF TNAuthorization 430 TNAuthorization ::= SEQUENCE SIZE (1..MAX) OF TNEntry 432 TNEntry ::= CHOICE { 433 spid [0] ServiceProviderIdentifierList, 434 range [1] TelephoneNumberRange, 435 one E164Number } 437 ServiceProviderIdentifierList ::= SEQUENCE SIZE (1..3) OF 438 OCTET STRING 440 -- When all three are present: SPID, Alt SPID, and Last Alt SPID 442 TelephoneNumberRange ::= SEQUENCE { 443 start E164Number, 444 count INTEGER } 446 E164Number ::= IA5String (SIZE (1..15)) (FROM ("0123456789")) 448 The TN Authorization List certificate extension indicates the 449 authorized phone numbers for the call setup signer. It indicates one 450 or more blocks of telephone number entries that have been authorized 451 for use by the call setup signer. There are three ways to identify 452 the block: 454 1. A Service Provider Identifier (SPID) can be used to indirectly 455 name all of the telephone numbers associated with that service 456 provider, 458 2. Telephone numbers can be listed in a range, and 460 3. A single telephone number can be listed. 462 Note that because large-scale service providers may want to associate 463 many numbers, possibly millions of numbers, with a particular 464 certificate, optimizations are required for those cases to prevent 465 certificate size from becoming unmanageable. In these cases, the TN 466 Authorization List may be given by reference rather than by value, 467 through the presence of a separate certificate extension that permits 468 verifiers to either securely download the list of numbers associated 469 with a certificate, or to verify that a single number is under the 470 authority of this certificate. This optimization will be detailed in 471 future version of this specification. 473 9. Certificate Freshness and Revocation 475 Regardless of which of the approaches in Section 3 is followed for 476 using certificates, some sort of certificate verification mechanism 477 is required. However, the traditional problem of certificate 478 freshness gains a new wrinkle when using the TN Authorization List 479 extension, because verifiers must establish not only that a 480 certificate remains valid, but also that the certificate's scope 481 contains the telephone number that the verifier is validating. 482 Dynamic changes to number assignments can occur due to number 483 portability, for example. So even if a verifier has a valid cached 484 certificate for a telephone number (or a range containing the 485 number), the verifier must determine that the entity that signed is 486 still a proper authority for that number. 488 To verify the status of the certificate, the verifier needs to 489 acquire the certificate if necessary (via the methods described in 490 Section 7), and then would need to either: 492 (a) Rely on short-lived certificates and not check the certificate's 493 status, or 495 (b) Rely on status information from the authority 497 The tradeoff between short lived certificates and using status 498 information is the former's burden is on the front end (i.e., 499 enrollment) and the latter's burden is on the back end (i.e., 500 verification). Both impact call setup time, but it is assumed that 501 performing enrollment for each call is more of an impact that using 502 status information. This document therefore recommends relying on 503 status information. 505 9.1. Choosing a Verification Method 507 There are three common certificate verification mechanisms employed 508 by CAs: 510 1. Certificate Revocation Lists (CRLs) [RFC5280] 512 2. Online Certificate Status Protocol (OCSP) [RFC6960], and 514 3. Server-based Certificate Validation Protocol (SCVP) [RFC5055]. 516 When relying on status information, the verifier needs to obtain the 517 status information - but before that can happen, the verifier needs 518 to know where to locate it. Placing the location of the status 519 information in the certificate makes the certificate larger, but it 520 eases the client workload. The CRL Distribution Point certificate 521 extension includes the location of the CRL and the Authority 522 Information Access certificate extension includes the location of 523 OCSP and/or SCVP servers; both of these extensions are defined in 524 [RFC5280]. In all cases, the status information location is provided 525 in the form of an URI. 527 CRLs are an obviously attractive solution because they are supported 528 by every CA. CRLs have a reputation of being quite large (10s of 529 MBytes), because CAs maintain and issue one monolithic CRL with all 530 of their revoked certificates, but CRLs do support a variety of 531 mechanisms to scope the size of the CRLs based on revocation reasons 532 (e.g., key compromise vs CA compromise), user certificates only, and 533 CA certificates only as well as just operationally deciding to keep 534 the CRLs small. However, scoping the CRL introduces other issues 535 (i.e., does the RP have all of the CRL partitions). 537 CAs in the STIR architecture will likely all create CRLs for audit 538 purposes, but it NOT RECOMMENDED that they be relying upon for status 539 information. Instead, one of the two "online" options is preferred. 540 Between the two, OCSP is much more widely deployed and this document 541 therefore recommends the use of OCSP in high-volume environments for 542 validating the freshness of certificates, based on [RFC6960], 543 incorporating some (but not all) of the optimizations of [RFC5019]. 545 9.2. Using OCSP with TN Auth List 547 Certificates compliant with this specification therefore SHOULD 548 include a URL pointing to an OCSP service in the Authority 549 Information Access (AIA) certificate extension, via the "id-ad-ocsp" 550 accessMethod specified in [RFC5280]. Baseline OCSP however supports 551 only three possible response values: good, revoked, or unknown. 552 Without some extension, OCSP would not indicate whether the 553 certificate is authorized for a particular telephone number that the 554 verifier is validating. 556 At a high level, there are two ways that a client might pose this 557 authorization question: 559 For this certificate, is the following number currently in its 560 scope of validity? 562 What are all the telephone numbers associated with this 563 certificate, or this certificate subject? 565 Only the former lends itself to piggybacking on the OCSP status 566 mechanism; since the verifier is already asking an authority about 567 the certificate's status, why not reuse that mechanism, instead of 568 creating a new service that requires additional round trips? Like 569 most PKIX-developed protocols, OCSP is extensible; OCSP supports 570 request extensions (including sending multiple requests at once) and 571 per-request extensions. It seems unlikely that the verifier will be 572 requesting authorization checks on multiple telephone numbers in one 573 request, so a per-request extension is what is needed. 575 The requirement to consult OCSP in real time results in a network 576 round-trip time of day, which is something to consider because it 577 will add to the call setup time. OCSP server implementations 578 commonly pre-generate responses, and to speed up HTTPS connections, 579 servers often provide OCSP responses for each certificate in their 580 hierarchy. If possible, both of these OCSP concepts should be 581 adopted for use with STIR. 583 9.2.1. OCSP Extension Specification 585 The extension mechanism for OCSP follows X.509 v3 certificate 586 extensions, and thus requires an OID, a criticality flag, and ASN.1 587 syntax as defined by the OID. The criticality specified here is 588 optional: per [RFC6960] Section 4.4, support for all OCSP extensions 589 is optional. If the OCSP server does not understand the requested 590 extension, it will still provide the baseline validation of the 591 certificate itself. Moreover, in practical STIR deployments, the 592 issuer of the certificate will set the accessLocation for the OCSP 593 AIA extension to point to an OCSP service that supports this 594 extension, so the risk of interoperability failure due to lack of 595 support for this extension is minimal. 597 The OCSP TNQuery extension is included as one of the request's 598 signlerequestExtensions. It may also appear in the response's 599 singleExtensions. When an OCSP server includes a number in the 600 response's singleExtensions, this informs the client that the 601 certificate is still valid for the number that appears in the TNQuery 602 extension field. If the TNQuery is absent from a response to a query 603 containing a TNQuery in its singleRequestExtension, then the server 604 is not able to validate that the number is still in the scope of 605 authority of the certificate. 607 id-pkix-ocsp-stir-tn OBJECT IDENTIFIER ::= { id-pkix-ocsp TBD } 609 TNQuery ::= E164Number 611 The HVE OCSP profile [RFC5019] prohibits the use of per-request 612 extensions. As it is anticipated that STIR will use OCSP in a high- 613 volume environment, many of the optimizations recommended by HVE are 614 desirable for the STIR environment. This document therefore uses the 615 HVE optimizations augmented as follows: 617 o Implementations MUST use SHA-256 as the hashing algorithm for the 618 CertID.issuerNameHash and the CertID.issuerKeyHash values. That 619 is CertID.hashAlgorithm is id-sha256 [RFC4055] and the values are 620 truncated as per Option 1 in [RFC7093]. 622 o Clients MUST include the OCSP TNQuery extension in requests' 623 singleRequestExtensions. 625 o Servers MUST include the OCSP TNQuery extension in responses' 626 singleExtensions. 628 o Servers SHOULD return responses that would otherwise have been 629 "unknown" as "not good" (i.e., return only "good" and "not good" 630 responses). 632 o Clients MUST treat returned "unknown"responses as "not good". 634 o If the server uses ResponderID, it MUST generate the KeyHash using 635 SHA-256. The value is generated as per Option 1 in [RFC7093]. 637 o Implementations MUST support ECDSA using P-256 and SHA-256. Note 638 that [RFC6960] requires RSA with SHA-256 be supported. 640 o There is no requirement to support SHA-1, RSA with SHA-1, or DSA 641 with SHA-1. 643 Ideally, once a certificate has been acquired by a verifier, some 644 sort of asynchronous mechanism could notify and update the verifier 645 if the scope of the certificate changes so that verifiers could 646 implement a cache. While not all possible categories of verifiers 647 could implement such behavior, some sort of event-driven notification 648 of certificate status is another potential subject of future work. 649 One potential direction is that a future SIP SUBSCRIBE/NOTIFY-based 650 accessMethod for AIA might be defined (which would also be applicable 651 to the method described in the following section) by some future 652 specification. 654 Strategies for stapling OCSP [RFC6961] have become common in some web 655 PKI environments as an optimization which allows web servers to send 656 up-to-date certificate status information acquired from OCSP to 657 clients as TLS is negotiated. A similar mechanism could be 658 implemented for SIP requests, in which the authentication service 659 adds status information for its certificate to the SIP request, which 660 would save the verifier the trouble of performing the OCSP dip 661 itself. Especially for high-volume authentication and verification 662 services, this could result in significant performance improvements. 663 This is left as an optimization for future work. 665 9.3. Acquiring TN Lists By Reference 667 Acquiring a list of the telephone numbers associated with a 668 certificate or its subject lends itself to an application-layer 669 query/response interaction outside of OCSP, one which could be 670 initiated through a separate URI included in the certificate. The 671 AIA extension (see [RFC5280]) supports such a mechanism: it 672 designates an OID to identify the accessMethod and an accessLocation, 673 which would most likely be a URI. A verifier would then follow the 674 URI to ascertain whether the list of TNs authorized for use by the 675 caller. 677 HTTPS is the most obvious candidate for a protocol to be used for 678 fetching the list of telephone number associated with a particular 679 certificate. This document defines a new AIA accessMethod, called 680 "id-ad-stir-tn", which uses the following AIA OID: 682 id-ad-stir-tn OBJECT IDENTIFIER ::= { id-ad TBD } 684 When the "id-ad-stir-tn" accessMethod is used, the accessLocation 685 MUST be an HTTPS URI. The document returned by dereferencing that 686 URI will contain the complete TN Authorization List (see Section 8) 687 for the certificate. 689 Delivering the entire list of telephone numbers associated with a 690 particular certificate will divulge to STIR verifiers information 691 about telephone numbers other than the one associated with the 692 particular call that the verifier is checking. In some environments, 693 where STIR verifiers handle a high volume of calls, maintaining an 694 up-to-date and complete cache for the numbers associated with crucial 695 certificate holders could give an important boost to performance. 697 10. Acknowledgments 699 Russ Housley, Brian Rosen, Cullen Jennings and Eric Rescorla provided 700 key input to the discussions leading to this document. 702 11. IANA Considerations 704 This document makes use of object identifiers for the TN Certificate 705 Extension defined in Section 8, TN-HVE OCSP extension in 706 Section 9.2.1, the TN by reference AIA access descriptor defined in 707 Section 9.3, and the ASN.1 module identifier defined in Appendix A. 708 It therefore requests that the IANA make the following assignments: 710 o TN Certificate Extension in the SMI Security for PKIX Certificate 711 Extension registry: http://www.iana.org/assignments/smi-numbers/ 712 smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.1 714 o TN-HVE OCSP extension in the SMI Security for PKIX Online 715 Certificate Status Protocol (OCSP) registry: 716 http://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi- 717 numbers-1.3.6.1.5.5.7.48.1 719 o TNS by reference access descriptor in the SMI Security for PKIX 720 Access Descriptor registry: http://www.iana.org/assignments/smi- 721 numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.48 723 o The TN ASN.1 module in SMI Security for PKIX Module Identifier 724 registry: http://www.iana.org/assignments/smi-numbers/smi- 725 numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.0 727 This document also makes use of the Level of Assurance (LoA) Profiles 728 registry defined in [RFC6711] because as is stated in RFC 6711: "Use 729 of the registry by protocols other than SAML is encouraged." IANA is 730 requested to creae the STIR Levels of Assurance (LOA) sub-registry in 731 the Level of Assurance (LoA) Profile registry. Instead of 732 registering a SAML Context Class, the Certificate Policy's Object 733 Identifier representing the LOA is included in the registry. An 734 example registration is as follows: 736 To: loa-profiles-experts@icann.org 738 From: jrandom@example.com 740 1. Name of requester: J. Random User 742 2. Email address of requester: jrandom@example.com 744 3. Organization of requester: Example Trust Frameworks LLP 746 4. Requested registration: 748 URI http://foo.example.com/assurance/loa-1 750 Name foo-loa-1 752 Informational URL https://foo.example.com/assurance/ 754 Certificate Policy Object Identifier: 0.0.0.0 756 NOTE: Do not register this example. The OID is purposely invalid. 758 Experts are expected to ensure the reference CP includes the OID 759 being registered. 761 12. Security Considerations 763 This document is entirely about security. For further information on 764 certificate security and practices, see [RFC5280], in particular its 765 Security Considerations. For OCSP-related security considerations 766 see [RFC6960] and [RFC5019] 768 13. References 770 [I-D.ietf-stir-passport] 771 Wendt, C. and J. Peterson, "Persona Assertion Token", 772 draft-ietf-stir-passport-03 (work in progress), June 2016. 774 [I-D.ietf-stir-rfc4474bis] 775 Peterson, J., Jennings, C., Rescorla, E., and C. Wendt, 776 "Authenticated Identity Management in the Session 777 Initiation Protocol (SIP)", draft-ietf-stir-rfc4474bis-09 778 (work in progress), May 2016. 780 [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 781 Extensions (MIME) Part Two: Media Types", RFC 2046, 782 DOI 10.17487/RFC2046, November 1996, 783 . 785 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 786 Requirement Levels", BCP 14, RFC 2119, 787 DOI 10.17487/RFC2119, March 1997, 788 . 790 [RFC2392] Levinson, E., "Content-ID and Message-ID Uniform Resource 791 Locators", RFC 2392, DOI 10.17487/RFC2392, August 1998, 792 . 794 [RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography 795 Standards (PKCS) #1: RSA Cryptography Specifications 796 Version 2.1", RFC 3447, DOI 10.17487/RFC3447, February 797 2003, . 799 [RFC3647] Chokhani, S., Ford, W., Sabett, R., Merrill, C., and S. 800 Wu, "Internet X.509 Public Key Infrastructure Certificate 801 Policy and Certification Practices Framework", RFC 3647, 802 DOI 10.17487/RFC3647, November 2003, 803 . 805 [RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional 806 Algorithms and Identifiers for RSA Cryptography for use in 807 the Internet X.509 Public Key Infrastructure Certificate 808 and Certificate Revocation List (CRL) Profile", RFC 4055, 809 DOI 10.17487/RFC4055, June 2005, 810 . 812 [RFC4754] Fu, D. and J. Solinas, "IKE and IKEv2 Authentication Using 813 the Elliptic Curve Digital Signature Algorithm (ECDSA)", 814 RFC 4754, DOI 10.17487/RFC4754, January 2007, 815 . 817 [RFC5019] Deacon, A. and R. Hurst, "The Lightweight Online 818 Certificate Status Protocol (OCSP) Profile for High-Volume 819 Environments", RFC 5019, DOI 10.17487/RFC5019, September 820 2007, . 822 [RFC5055] Freeman, T., Housley, R., Malpani, A., Cooper, D., and W. 823 Polk, "Server-Based Certificate Validation Protocol 824 (SCVP)", RFC 5055, DOI 10.17487/RFC5055, December 2007, 825 . 827 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 828 Housley, R., and W. Polk, "Internet X.509 Public Key 829 Infrastructure Certificate and Certificate Revocation List 830 (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, 831 . 833 [RFC5912] Hoffman, P. and J. Schaad, "New ASN.1 Modules for the 834 Public Key Infrastructure Using X.509 (PKIX)", RFC 5912, 835 DOI 10.17487/RFC5912, June 2010, 836 . 838 [RFC5958] Turner, S., "Asymmetric Key Packages", RFC 5958, 839 DOI 10.17487/RFC5958, August 2010, 840 . 842 [RFC6711] Johansson, L., "An IANA Registry for Level of Assurance 843 (LoA) Profiles", RFC 6711, DOI 10.17487/RFC6711, August 844 2012, . 846 [RFC6960] Santesson, S., Myers, M., Ankney, R., Malpani, A., 847 Galperin, S., and C. Adams, "X.509 Internet Public Key 848 Infrastructure Online Certificate Status Protocol - OCSP", 849 RFC 6960, DOI 10.17487/RFC6960, June 2013, 850 . 852 [RFC6961] Pettersen, Y., "The Transport Layer Security (TLS) 853 Multiple Certificate Status Request Extension", RFC 6961, 854 DOI 10.17487/RFC6961, June 2013, 855 . 857 [RFC7030] Pritikin, M., Ed., Yee, P., Ed., and D. Harkins, Ed., 858 "Enrollment over Secure Transport", RFC 7030, 859 DOI 10.17487/RFC7030, October 2013, 860 . 862 [RFC7093] Turner, S., Kent, S., and J. Manger, "Additional Methods 863 for Generating Key Identifiers Values", RFC 7093, 864 DOI 10.17487/RFC7093, December 2013, 865 . 867 [RFC7340] Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure 868 Telephone Identity Problem Statement and Requirements", 869 RFC 7340, DOI 10.17487/RFC7340, September 2014, 870 . 872 [RFC7375] Peterson, J., "Secure Telephone Identity Threat Model", 873 RFC 7375, DOI 10.17487/RFC7375, October 2014, 874 . 876 [RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token 877 (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, 878 . 880 [X.680] USC/Information Sciences Institute, "Information 881 Technology - Abstract Syntax Notation One.", ITU-T X.680, 882 ISO/IEC 8824-1:2002, 2002. 884 [X.681] USC/Information Sciences Institute, "Information 885 Technology - Abstract Syntax Notation One: Information 886 Object Specification", ITU-T X.681, ISO/IEC 8824-2:2002, 887 2002. 889 [X.682] USC/Information Sciences Institute, "Information 890 Technology - Abstract Syntax Notation One: Constraint 891 Specification", ITU-T X.682, ISO/IEC 8824-3:2002, 2002. 893 [X.683] USC/Information Sciences Institute, "Information 894 Technology - Abstract Syntax Notation One: 895 Parameterization of ASN.1 Specifications", ITU-T X.683, 896 ISO/IEC 8824-4:2002, 2002. 898 Appendix A. ASN.1 Module 900 This appendix provides the normative ASN.1 [X.680] definitions for 901 the structures described in this specification using ASN.1, as 902 defined in [X.680] through [X.683]. 904 This ASN.1 module imports ASN.1 from [RFC5912]. 906 TN-Module { 907 iso(1) identified-organization(3) dod(6) internet(1) 908 security(5) mechanisms(5) pkix(7) id-mod(0) 909 id-mod-tn-module(TBD) } 911 DEFINITIONS EXPLICIT TAGS ::= BEGIN 913 IMPORTS 914 id-ad, id-ad-ocsp -- From [RFC5912] 915 FROM PKIX1Explicit-2009 { 916 iso(1) identified-organization(3) dod(6) internet(1) security(5) 917 mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51) } 919 id-ce -- From [RFC5912] 920 FROM PKIX1Implicit-2009 { 921 iso(1) identified-organization(3) dod(6) internet(1) security(5) 922 mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59) } 924 EXTENSION -- From [RFC5912] 925 FROM PKIX-CommonTypes-2009 { 926 iso(1) identified-organization(3) dod(6) internet(1) 927 security(5) mechanisms(5) pkix(7) id-mod(0) 928 id-mod-pkixCommon-02(57) } 930 ; 932 -- TN Entry Certificate Extension 934 ext-tnAuthList EXTENSION ::= { 935 SYNTAX TNAuthorizationList IDENTIFIED BY id-ce-TNAuthList } 937 TNAuthorizationList ::= SEQUENCE SIZE (1..MAX) OF TNAuthorization 939 TNAuthorization ::= SEQUENCE SIZE (1..MAX) OF TNEntry 941 TNEntry ::= CHOICE { 942 spid [0] ServiceProviderIdentifierList, 943 range [1] TelephoneNumberRange, 944 one E164Number } 946 ServiceProviderIdentifierList ::= SEQUENCE SIZE (1..3) OF 947 OCTET STRING 949 -- When all three are present: SPID, Alt SPID, and Last Alt SPID 951 TelephoneNumberRange ::= SEQUENCE { 952 start E164Number, 953 count INTEGER } 955 E164Number ::= IA5String (SIZE (1..15)) (FROM ("0123456789")) 957 -- TN OCSP Extension 959 re-ocsp-tn-query EXTENSION ::= { 960 SYNTAX TNQuery IDENTIFIED BY id-pkix-ocsp-stir-tn } 962 TNQuery ::= E164Number 964 -- TN Access Descriptor 966 id-ad-stir-tn OBJECT IDENTIFIER ::= { id-ad TBD } 968 -- 969 -- Object Identifiers 970 -- 972 id-pkix-ocsp OBJECT IDENTIFIER ::= id-ad-ocsp 973 id-ce-TNAuthList OBJECT IDENTIFIER ::= { id-ce TBD } 974 id-pkix-ocsp-stir-tn OBJECT IDENTIFIER ::= { id-pkix-ocsp TBD } 976 END 978 Authors' Addresses 980 Jon Peterson 981 Neustar, Inc. 983 Email: jon.peterson@neustar.biz 985 Sean Turner 986 sn3rd 988 Email: sean@sn3rd.com