idnits 2.17.1 draft-ietf-stir-certificates-04.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 : ---------------------------------------------------------------------------- ** There is 1 instance of too long lines in the document, the longest one being 6 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document date (May 26, 2016) is 2889 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) == Missing Reference: 'TBD' is mentioned on line 574, but not defined == Missing Reference: 'More TBD' is mentioned on line 618, but not defined == Unused Reference: 'I-D.peterson-sipping-retarget' is defined on line 717, but no explicit reference was found in the text == Unused Reference: 'RFC2818' is defined on line 736, but no explicit reference was found in the text == Unused Reference: 'RFC3261' is defined on line 740, but no explicit reference was found in the text == Unused Reference: 'RFC3263' is defined on line 746, but no explicit reference was found in the text == Unused Reference: 'RFC7299' is defined on line 808, but no explicit reference was found in the text == Outdated reference: A later version (-11) exists of draft-ietf-stir-passport-02 == Outdated reference: A later version (-16) exists of draft-ietf-stir-rfc4474bis-09 -- Obsolete informational reference (is this intentional?): RFC 2818 (Obsoleted by RFC 9110) -- Obsolete informational reference (is this intentional?): RFC 3280 (Obsoleted by RFC 5280) -- Obsolete informational reference (is this intentional?): RFC 3447 (Obsoleted by RFC 8017) -- Obsolete informational reference (is this intentional?): RFC 6961 (Obsoleted by RFC 8446) Summary: 1 error (**), 0 flaws (~~), 11 warnings (==), 5 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: November 27, 2016 Sn3rd 6 May 26, 2016 8 Secure Telephone Identity Credentials: Certificates 9 draft-ietf-stir-certificates-04.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 November 27, 2016. 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 . . . . . . . . . . . . . 14 68 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 69 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 70 12. Security Considerations . . . . . . . . . . . . . . . . . . . 16 71 13. Informative References . . . . . . . . . . . . . . . . . . . 16 72 Appendix A. ASN.1 Module . . . . . . . . . . . . . . . . . . . . 19 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 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 (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 certification authority or deployment environment. We 127 anticipate that some deployment experience will be necessary to 128 determine optimal operational models. 130 2. Terminology 132 In this document, the key words "MUST", "MUST NOT", "REQUIRED", 133 "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT 134 RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as 135 described in RFC 2119 [RFC2119] and RFC 6919 [RFC6919]. 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 PKI 183 certificates; for the second approach, we must define an appropriate 184 enrollment and authorization process. For the purposes of STIR, the 185 over-the-wire format specified in [I-D.ietf-stir-rfc4474bis] 186 accommodates either of these approaches: the methods for 187 canonicalizing, signing, for identifying and accessing the 188 certificate and so on remain the same; it is only the verifier 189 behavior and authorization decision that will change depending on the 190 approach to telephone number authority taken by the certificate. For 191 that reason, the two approaches are not mutually exclusive, and in 192 fact a certificate issued to a traditional telephone network service 193 provider could contain a TN Authorization List or not, depending on 194 the certification authority issuing the credential. Regardless of 195 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 P-256 signatures necessary to 241 support the ES256 hashed signatures required by PASSporT 242 [I-D.ietf-stir-passport], which in turn follows JWT [RFC7519]. 244 5. Enrollment and Authorization using the TN Authorization List 246 This document assumes a threefold model for certificate enrollment 247 when using the TN Authorization List extension. 249 The first enrollment model is one where the certification authority 250 acts in concert with national numbering authorities to issue 251 credentials to those parties to whom numbers are assigned. In the 252 United States, for example, telephone number blocks are assigned to 253 Local Exchange Carriers (LECs) by the North American Numbering Plan 254 Administrator (NANPA), who is in turn directed by the national 255 regulator. LECs may also receive numbers in smaller allocations, 256 through number pooling, or via an individual assignment through 257 number portability. LECs assign numbers to customers, who may be 258 private individuals or organizations - and organizations take 259 responsibility for assigning numbers within their own enterprise. 260 This model requires top-down adoption of the model from regulators 261 through to carriers. 263 The second enrollment model is a bottom-up approach where a 264 certification authority requires that an entity prove control by 265 means of some sort of test, which, as with certification authorities 266 for web PKI, might either be automated or a manual administrative 267 process. As an example of an automated process, an authority might 268 send a text message to a telephone number containing a URL (which 269 might be dereferenced by the recipient) as a means of verifying that 270 a user has control of terminal corresponding to that number. Checks 271 of this form are frequently used in commercial systems today to 272 validate telephone numbers provided by users. This is comparable to 273 existing enrollment systems used by some certificate authorities for 274 issuing S/MIME credentials for email by verifying that the party 275 applying for a credential receives mail at the email address in 276 question. 278 The third enrollment model is delegation: that is, the holder of a 279 certificate (assigned by either of the two methods above) might 280 delegate some or all of their authority to another party. In some 281 cases, multiple levels of delegation could occur: a LEC, for example, 282 might delegate authority to a customer organization for a block of 283 100 numbers used by an IP PBX, and the organization might in turn 284 delegate authority for a particular number to an individual employee. 285 This is analogous to delegation of organizational identities in 286 traditional hierarchical Public Key Infrastructures (PKIs) who use 287 the name constraints extension [RFC5280]; the root CA delegates names 288 in sales to the sales department CA, names in development to the 289 development CA, etc. As lengthy certificate delegation chains are 290 brittle, however, and can cause delays in the verification process, 291 this document considers optimizations to reduce the complexity of 292 verification. 294 [TBD] Future versions of this specification may address adding a 295 level of assurance indication to certificates to differentiate those 296 enrolled from proof-of-possession versus delegation. 298 [TBD] Future versions of this specification may also discuss methods 299 of partial delegation, where certificate holders delegate only part 300 of their authority. For example, individual assignees may want to 301 delegate to a service authority for text messages associated with 302 their telephone number, but not for other functions. 304 5.1. Certificate Extension Scope and Structure 306 This specification places no limits on the number of telephone 307 numbers that can be associated with any given certificate. Some 308 service providers may be assigned millions of numbers, and may wish 309 to have a single certificate that is capable of signing for any one 310 of those numbers. Others may wish to compartmentalize authority over 311 subsets of the numbers they control. 313 Moreover, service providers may wish to have multiple certificates 314 with the same scope of authority. For example, a service provider 315 with several regional gateway systems may want each system to be 316 capable of signing for each of their numbers, but not want to have 317 each system share the same private key. 319 The set of telephone numbers for which a particular certificate is 320 valid is expressed in the certificate through a certificate 321 extension; the certificate's extensibility mechanism is defined in 322 [RFC5280] but the TN Authorization List extension is specified in 323 this document. 325 The subjects of certificates containing the TN Authorization List 326 extension are typically the administrative entities to whom numbers 327 are assigned or delegated. For example, a LEC might hold a 328 certificate for a range of telephone numbers. In some cases, the 329 organization or individual issued such a certificate may not want to 330 associate themselves with a certificate; for example, a private 331 individual with a certificate for a single telephone number might not 332 want to distribute that certificate publicly if every verifier 333 immediately knew their name. The certification authorities issuing 334 certificates with the TN Authorization List extensions may, in 335 accordance with their policies, obscure the identity of the subject, 336 though mechanisms for doing so are outside the scope of this 337 document. 339 6. Provisioning Private Keying Material 341 In order for authentication services to sign calls via the procedures 342 described in [I-D.ietf-stir-rfc4474bis], they must hold a private key 343 corresponding to a certificate with authority over the calling 344 number. This specification does not require that any particular 345 entity in a SIP deployment architecture sign requests, only that it 346 be an entity with an appropriate private key; the authentication 347 service role may be instantiated by any entity in a SIP network. For 348 a certificate granting authority only over a particular number which 349 has been issued to an end user, for example, an end user device might 350 hold the private key and generate the signature. In the case of a 351 service provider with authority over large blocks of numbers, an 352 intermediary might hold the private key and sign calls. 354 The specification recommends distribution of private keys through 355 PKCS#8 objects signed by a trusted entity, for example through the 356 CMS package specified in [RFC5958]. 358 7. Acquiring Credentials to Verify Signatures 360 This specification documents multiple ways that a verifier can gain 361 access to the credentials needed to verify a request. As the 362 validity of certificates does not depend on the method of their 363 acquisition, there is no need to standardize any single mechanism for 364 this purpose. All entities that comply with 365 [I-D.ietf-stir-rfc4474bis] necessarily support SIP, and consequently 366 SIP itself can serve as a way to acquire certificates. 367 [I-D.ietf-stir-rfc4474bis] provides an "info" parameter of the 368 Identity header which contains a URI where the credential used to 369 generate the Identity header, and requires documents which define 370 credential systems to list the URI schemes that may be present in the 371 "info" parameter. For implementations compliant with this 372 specification, three URI schemes are REQUIRED: the CID URI, the SIP 373 URI, and the HTTP URI. 375 The simplest way for a verifier to acquire the certificate needed to 376 verify a signature is for the certificate be conveyed in a SIP 377 request along with the signature itself. In SIP, for example, a 378 certificate could be carried in a multipart MIME body [RFC2046], and 379 the URI in the Identity header "info" parameter could specify that 380 body with a CID URI [RFC2392]. However, in many environments this is 381 not feasible due to message size restrictions or lack of necessary 382 support for multipart MIME. 384 More commonly, the Identity header "info" parameter in a SIP request 385 may contain a URI that the verifier dereferences with a network call. 386 Implementations of this specification are required to support the use 387 of SIP for this function (via the SUBSCRIBE/NOTIFY mechanism), as 388 well as HTTP, via the Enrollment over Secure Transport mechanisms 389 described in RFC 7030 [RFC7030]. 391 Note well that as an optimization, a verifier may have access to a 392 service, a cache or other local store that grants access to 393 certificates for a particular telephone number. However, there may 394 be multiple valid certificates that can sign a call setup request for 395 a telephone number, and as a consequence, there needs to be some 396 discriminator that the signer uses to identify their credentials. 397 The Identity header "info" parameter itself can serve as such a 398 discriminator, provided implementations use that parameter as a key 399 when accessing certificates from caches or other sources. 401 8. Verifying Certificate Scope with TN Authorization List 403 The subjects of certificates containing the TN Authorization List 404 extension are the administrative entities to whom numbers are 405 assigned or delegated. When a verifier is validating a caller's 406 identity, local policy always determines the circumstances under 407 which any particular subject may be trusted, but the purpose of the 408 TN Authorization List extension particular is to allow a verifier to 409 ascertain when the certification authority has designed that the 410 subject has authority over a particular telephone number or number 411 range. 413 The Telephony Number (TN) Authorization List certificate extension is 414 identified by the following object identifier: 416 id-ce-TNAuthList OBJECT IDENTIFIER ::= { TBD } 418 The TN Authorization List certificate extension has the following 419 syntax: 421 TNAuthorizationList ::= SEQUENCE SIZE (1..MAX) OF TNAuthorization 423 TNAuthorization ::= SEQUENCE SIZE (1..MAX) OF TNEntry 425 TNEntry ::= CHOICE { 427 spid ServiceProviderIdentifierList, 429 range TelephoneNumberRange, 431 one E164Number } 433 ServiceProviderIdentifierList ::= SEQUENCE SIZE (1..3) OF 435 OCTET STRING 437 -- When all three are present: SPID, Alt SPID, and Last Alt SPID 439 TelephoneNumberRange ::= SEQUENCE { 441 start E164Number, 443 count INTEGER } 445 E164Number ::= IA5String (SIZE (1..15)) (FROM ("0123456789")) 447 [TBD- do we really need to do IA5String? The alternative would be 448 UTF8String, e.g.: UTF8String (SIZE (1..15)) (FROM ("0123456789")) ] 450 The TN Authorization List certificate extension indicates the 451 authorized phone numbers for the call setup signer. It indicates one 452 or more blocks of telephone number entries that have been authorized 453 for use by the call setup signer. There are three ways to identify 454 the block: 1) a Service Provider Identifier (SPID) can be used to 455 indirectly name all of the telephone numbers associated with that 456 service provider, 2) telephone numbers can be listed in a range, and 457 3) a single telephone number can be listed. 459 Note that because large-scale service providers may want to associate 460 many numbers, possibly millions of numbers, with a particular 461 certificate, optimizations are required for those cases to prevent 462 certificate size from becoming unmanageable. In these cases, the TN 463 Authorization List may be given by reference rather than by value, 464 through the presence of a separate certificate extension that permits 465 verifiers to either securely download the list of numbers associated 466 with a certificate, or to verify that a single number is under the 467 authority of this certificate. This optimization will be detailed in 468 future version of this specification. 470 9. Certificate Freshness and Revocation 472 Regardless of which of the approaches in Section 3 is followed for 473 using certificates, some sort of certificate verification mechanism 474 is required. However, the traditional problem of certificate 475 freshness gains a new wrinkle when using the TN Authorization List 476 extension, because verifiers must establish not only that a 477 certificate remains valid, but also that the certificate's scope 478 contains the telephone number that the verifier is validating. 479 Dynamic changes to number assignments can occur due to number 480 portability, for example. So even if a verifier has a valid cached 481 certificate for a telephone number (or a range containing the 482 number), the verifier must determine that the entity that signed is 483 still a proper authority for that number. 485 To verify the status of the certificate, the verifier needs to 486 acquire the certificate if necessary (via the methods described in 487 Section 7), and then would need to either: 489 Rely on short-lived certificates and not check the certificate's 490 status, or 492 Rely on status information from the authority 494 The tradeoff between short lived certificates and using status 495 information is the former's burden is on the front end (i.e., 496 enrollment) and the latter's burden is on the back end (i.e., 497 verification). Both impact call setup time, but it is assumed that 498 performing enrollment for each call is more of an impact that using 499 status information. This document therefore recommends relying on 500 status information. 502 9.1. Choosing a Verification Method 504 There are three common certificate verification mechanisms employed 505 by CAs: 507 Certificate Revocation Lists (CRLs) [RFC5280] 509 Online Certificate Status Protocol (OCSP) [RFC6960], and 510 Server-based Certificate Validation Protocol (SCVP) [RFC5055]. 512 When relying on status information, the verifier needs to obtain the 513 status information - but before that can happen, the verifier needs 514 to know where to locate it. Placing the location of the status 515 information in the certificate makes the certificate larger, but it 516 eases the client workload. The CRL Distribution Point certificate 517 extension includes the location of the CRL and the Authority 518 Information Access certificate extension includes the location of 519 OCSP and/or SCVP servers; both of these extensions are defined in 520 [RFC5280]. In all cases, the status information location is provided 521 in the form of an URI. 523 CRLs are an obviously attractive solution because they are supported 524 by every CA. CRLs have a reputation of being quite large (10s of 525 MBytes), because CAs maintain and issue one monolithic CRL with all 526 of their revoked certificates, but CRLs do support a variety of 527 mechanisms to scope the size of the CRLs based on revocation reasons 528 (e.g., key compromise vs CA compromise), user certificates only, and 529 CA certificates only as well as just operationally deciding to keep 530 the CRLs small. However, scoping the CRL introduces other issues 531 (i.e., does the RP have all of the CRL partitions). 533 CAs in the STIR architecture will likely all create CRLs for audit 534 purposes, but it NOT RECOMMENDED that they be relying upon for status 535 information. Instead, one of the two "online" options is preferred. 536 Between the two, OCSP is much more widely deployed and this document 537 therefore recommends the use of OCSP in high-volume environments for 538 validating the freshness of certificates, based on [RFC6960], 539 incorporating some (but not all) of the optimizations of [RFC5019]. 541 9.2. Using OCSP with TN Auth List 543 Certificates compliant with this specification therefore SHOULD 544 include a URL pointing to an OCSP service in the Authority 545 Information Access (AIA) certificate extension, via the "id-ad-ocsp" 546 accessMethod specified in [RFC5280]. Baseline OCSP however supports 547 only three possible response values: good, revoked, or unknown. With 548 some extension, OCSP would not indicate whether the certificate is 549 authorized for a particular telephone number that the verifier is 550 validating. 552 [TBD] What would happen in the unknown case? Can we profile OCSP 553 usage so that unknown is never returned for our extension? 555 At a high level, there are two ways that a client might pose this 556 authorization question: 558 For this certificate, is the following number currently in its 559 scope of validity? 561 What are all the telephone numbers associated with this 562 certificate, or this certificate subject? 564 Only the former lends itself to piggybacking on the OCSP status 565 mechanism; since the verifier is already asking an authority about 566 the certificate's status, why not reuse that mechanism, instead of 567 creating a new service that requires additional round trips? Like 568 most PKIX-developed protocols, OCSP is extensible; OCSP supports 569 request extensions (including sending multiple requests at once) and 570 per-request extensions. It seems unlikely that the verifier will be 571 requesting authorization checks on multiple telephone numbers in one 572 request, so a per-request extension is what is needed. 574 [TBD] HVE OCSP requires SHA-1 be used as the hash algorithm, 575 we're6960 obviously going to change this to be SHA-256. 577 The requirement to consult OCSP in real time results in a network 578 round-trip time of day, which is something to consider because it 579 will add to the call setup time. OCSP server implementations 580 commonly pre-generate responses, and to speed up HTTPS connections, 581 servers often provide OCSP responses for each certificate in their 582 hierarchy. If possible, both of these OCSP concepts should be 583 adopted for use with STIR. 585 9.2.1. OCSP Extension Specification 587 The extension mechanism for OCSP follows X.509 v3 certificate 588 extensions, and thus requires an OID, a criticality flag, and ASN.1 589 syntax as defined by the OID. The criticality specified here is 590 optional: per [RFC6960] Section 4.4, support for all OCSP extensions 591 is optional. If the OCSP server does not understand the requested 592 extension, it will still provide the baseline validation of the 593 certificate itself. Moreover, in practical STIR deployments, the 594 issuer of the certificate will set the accessLocation for the OCSP 595 AIA extension to point to an OCSP service that supports this 596 extension, so the risk of interoperability failure due to lack of 597 support for this extension is minimal. 599 The OCSP TNQuery extension is included as one of the 600 requestExtensions in requests. It may also appear in the 601 responseExtensions. When an OCSP server includes a number in the 602 responseExtensions, this informs the client that the certificate is 603 still valid for the number that appears in the TNQuery extension 604 field. If the TNQuery is absent from a response to a query 605 containing a TNQuery in its requestExtensions, then the server is not 606 able to validate that the number is still in the scope of authority 607 of the certificate. 609 id-pkix-ocsp-stir-tn OBJECT IDENTIFIER ::= { id-pkix-ocsp TBD } 611 TNQuery ::= E164Number 613 Note that HVE OCSP profile [RFC5019] prohibits the use of per-request 614 extensions. As it is anticipated that STIR will use OCSP in a high- 615 volume environment, many of the optimizations recommended by HVE are 616 desirable for the STIR environment. This document therefore uses 617 these extensions in a baseline OCSP environment with some HVE 618 optimizations. [More TBD] 620 Ideally, once a certificate has been acquired by a verifier, some 621 sort of asynchronous mechanism could notify and update the verifier 622 if the scope of the certificate changes so that verifiers could 623 implement a cache. While not all possible categories of verifiers 624 could implement such behavior, some sort of event-driven notification 625 of certificate status is another potential subject of future work. 626 One potential direction is that a future SIP SUBSCRIBE/NOTIFY-based 627 accessMethod for AIA might be defined (which would also be applicable 628 to the method described in the following section) by some future 629 specification. 631 Strategies for stapling OCSP [RFC6961] have become common in some web 632 PKI environments as an optimization which allows web servers to send 633 up-to-date certificate status information acquired from OCSP to 634 clients as TLS is negotiated. A similar mechanism could be 635 implemented for SIP requests, in which the authentication service 636 adds status information for its certificate to the SIP request, which 637 would save the verifier the trouble of performing the OCSP dip 638 itself. Especially for high-volume authentication and verification 639 services, this could result in significant performance improvements. 640 This is left as an optimization for future work. 642 9.3. Acquiring TN Lists By Reference 644 Acquiring a list of the telephone numbers associated with a 645 certificate or its subject lends itself to an application-layer 646 query/response interaction outside of OCSP, one which could be 647 initiated through a separate URI included in the certificate. The 648 AIA extension (see [RFC5280]) supports such a mechanism: it 649 designates an OID to identify the accessMethod and an accessLocation, 650 which would most likely be a URI. A verifier would then follow the 651 URI to ascertain whether the list of TNs authorized for use by the 652 caller. 654 HTTPS is the most obvious candidate for a protocol to be used for 655 fetching the list of telephone number associated with a particular 656 certificate. This document defines a new AIA accessMethod, called 657 "id-ad-stir-tn", which uses the following AIA OID: 659 id-ad-stir-tn OBJECT IDENTIFIER ::= { id-ad TBD } 661 When the "id-ad-stir-tn" accessMethod is used, the accessLocation 662 MUST be an HTTPS URI. The document returned by dereferencing that 663 URI will contain the complete TN Authorization List (see Section 8) 664 for the certificate. 666 Delivering the entire list of telephone numbers associated with a 667 particular certificate will divulge to STIR verifiers information 668 about telephone numbers other than the one associated with the 669 particular call that the verifier is checking. In some environments, 670 where STIR verifiers handle a high volume of calls, maintaining an 671 up-to-date and complete cache for the numbers associated with crucial 672 certificate holders could give an important boost to performance. 674 10. Acknowledgments 676 Russ Housley, Brian Rosen, Cullen Jennings and Eric Rescorla provided 677 key input to the discussions leading to this document. 679 11. IANA Considerations 681 This document makes use of object identifiers for the TN Certificate 682 Extension defined in Section 8, TN-HVE OCSP extension in 683 Section 9.2.1, and the TN by reference AIA access descriptor defined 684 in Section 9.3. It therefore requests that the IANA make the 685 following assignments: 687 - TN Certificate Extension in the SMI Security for PKIX 688 Certificate Extension registry: http://www.iana.org/assignments/ 689 smi-numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.1 691 - TN-HVE OCSP extension in the SMI Security for PKIX Online 692 Certificate Status Protocol (OCSP) registry: 693 http://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#smi- 694 numbers-1.3.6.1.5.5.7.48.1 695 - TNS by reference access descriptor in the SMI Security for PKIX 696 Access Descriptor registry: http://www.iana.org/assignments/smi- 697 numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.48 699 12. Security Considerations 701 This document is entirely about security. For further information on 702 certificate security and practices, see [RFC3280], in particular its 703 Security Considerations. 705 13. Informative References 707 [I-D.ietf-stir-passport] 708 Wendt, C. and J. Peterson, "Persona Assertion Token", 709 draft-ietf-stir-passport-02 (work in progress), May 2016. 711 [I-D.ietf-stir-rfc4474bis] 712 Peterson, J., Jennings, C., Rescorla, E., and C. Wendt, 713 "Authenticated Identity Management in the Session 714 Initiation Protocol (SIP)", draft-ietf-stir-rfc4474bis-09 715 (work in progress), May 2016. 717 [I-D.peterson-sipping-retarget] 718 Peterson, J., "Retargeting and Security in SIP: A 719 Framework and Requirements", draft-peterson-sipping- 720 retarget-00 (work in progress), February 2005. 722 [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 723 Extensions (MIME) Part Two: Media Types", RFC 2046, 724 DOI 10.17487/RFC2046, November 1996, 725 . 727 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 728 Requirement Levels", BCP 14, RFC 2119, 729 DOI 10.17487/RFC2119, March 1997, 730 . 732 [RFC2392] Levinson, E., "Content-ID and Message-ID Uniform Resource 733 Locators", RFC 2392, DOI 10.17487/RFC2392, August 1998, 734 . 736 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, 737 DOI 10.17487/RFC2818, May 2000, 738 . 740 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 741 A., Peterson, J., Sparks, R., Handley, M., and E. 742 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 743 DOI 10.17487/RFC3261, June 2002, 744 . 746 [RFC3263] Rosenberg, J. and H. Schulzrinne, "Session Initiation 747 Protocol (SIP): Locating SIP Servers", RFC 3263, 748 DOI 10.17487/RFC3263, June 2002, 749 . 751 [RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet 752 X.509 Public Key Infrastructure Certificate and 753 Certificate Revocation List (CRL) Profile", RFC 3280, 754 DOI 10.17487/RFC3280, April 2002, 755 . 757 [RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography 758 Standards (PKCS) #1: RSA Cryptography Specifications 759 Version 2.1", RFC 3447, DOI 10.17487/RFC3447, February 760 2003, . 762 [RFC4754] Fu, D. and J. Solinas, "IKE and IKEv2 Authentication Using 763 the Elliptic Curve Digital Signature Algorithm (ECDSA)", 764 RFC 4754, DOI 10.17487/RFC4754, January 2007, 765 . 767 [RFC5019] Deacon, A. and R. Hurst, "The Lightweight Online 768 Certificate Status Protocol (OCSP) Profile for High-Volume 769 Environments", RFC 5019, DOI 10.17487/RFC5019, September 770 2007, . 772 [RFC5055] Freeman, T., Housley, R., Malpani, A., Cooper, D., and W. 773 Polk, "Server-Based Certificate Validation Protocol 774 (SCVP)", RFC 5055, DOI 10.17487/RFC5055, December 2007, 775 . 777 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 778 Housley, R., and W. Polk, "Internet X.509 Public Key 779 Infrastructure Certificate and Certificate Revocation List 780 (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, 781 . 783 [RFC5958] Turner, S., "Asymmetric Key Packages", RFC 5958, 784 DOI 10.17487/RFC5958, August 2010, 785 . 787 [RFC6919] Barnes, R., Kent, S., and E. Rescorla, "Further Key Words 788 for Use in RFCs to Indicate Requirement Levels", RFC 6919, 789 DOI 10.17487/RFC6919, April 2013, 790 . 792 [RFC6960] Santesson, S., Myers, M., Ankney, R., Malpani, A., 793 Galperin, S., and C. Adams, "X.509 Internet Public Key 794 Infrastructure Online Certificate Status Protocol - OCSP", 795 RFC 6960, DOI 10.17487/RFC6960, June 2013, 796 . 798 [RFC6961] Pettersen, Y., "The Transport Layer Security (TLS) 799 Multiple Certificate Status Request Extension", RFC 6961, 800 DOI 10.17487/RFC6961, June 2013, 801 . 803 [RFC7030] Pritikin, M., Ed., Yee, P., Ed., and D. Harkins, Ed., 804 "Enrollment over Secure Transport", RFC 7030, 805 DOI 10.17487/RFC7030, October 2013, 806 . 808 [RFC7299] Housley, R., "Object Identifier Registry for the PKIX 809 Working Group", RFC 7299, DOI 10.17487/RFC7299, July 2014, 810 . 812 [RFC7340] Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure 813 Telephone Identity Problem Statement and Requirements", 814 RFC 7340, DOI 10.17487/RFC7340, September 2014, 815 . 817 [RFC7375] Peterson, J., "Secure Telephone Identity Threat Model", 818 RFC 7375, DOI 10.17487/RFC7375, October 2014, 819 . 821 [RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token 822 (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, 823 . 825 [X.680] USC/Information Sciences Institute, "Information 826 Technology - Abstract Syntax Notation One.", ITU-T X.680, 827 ISO/IEC 8824-1:2002, 2002. 829 [X.681] USC/Information Sciences Institute, "Information 830 Technology - Abstract Syntax Notation One: Information 831 Object Specification", ITU-T X.681, ISO/IEC 8824-2:2002, 832 2002. 834 [X.682] USC/Information Sciences Institute, "Information 835 Technology - Abstract Syntax Notation One: Constraint 836 Specification", ITU-T X.682, ISO/IEC 8824-3:2002, 2002. 838 [X.683] USC/Information Sciences Institute, "Information 839 Technology - Abstract Syntax Notation One: 840 Parameterization of ASN.1 Specifications", ITU-T X.683, 841 ISO/IEC 8824-4:2002, 2002. 843 Appendix A. ASN.1 Module 845 This appendix provides the normative ASN.1 [X.680] definitions for 846 the structures described in this specification using ASN.1, as 847 defined in [X.680] through [X.683]. 849 TBD 851 Authors' Addresses 853 Jon Peterson 854 Neustar, Inc. 856 Email: jon.peterson@neustar.biz 858 Sean Turner 859 Sn3rd 861 Email: sean@sn3rd.com