idnits 2.17.1 draft-ietf-stir-certificates-01.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 24, 2015) is 3320 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: 'TBD' on line 375 -- Looks like a reference, but probably isn't: 'RFC6560' on line 333 -- Looks like a reference, but probably isn't: 'RFC5055' on line 334 == Unused Reference: '4' is defined on line 467, but no explicit reference was found in the text == Unused Reference: '6' is defined on line 476, but no explicit reference was found in the text == Unused Reference: '14' is defined on line 505, but no explicit reference was found in the text -- Obsolete informational reference (is this intentional?): RFC 3280 (ref. '5') (Obsoleted by RFC 5280) -- Obsolete informational reference (is this intentional?): RFC 2818 (ref. '6') (Obsoleted by RFC 9110) == Outdated reference: A later version (-16) exists of draft-ietf-stir-rfc4474bis-02 Summary: 0 errors (**), 0 flaws (~~), 5 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 STIR Working Group J. Peterson 3 Internet-Draft NeuStar 4 Intended status: Standards Track S. Turner 5 Expires: September 25, 2015 IECA 6 March 24, 2015 8 Secure Telephone Identity Credentials: Certificates 9 draft-ietf-stir-certificates-01.txt 11 Abstract 13 In order to prove ownership of telephone numbers on the Internet, 14 some kind of public infrastructure needs to exist that binds 15 cryptographic keys to authority over telephone numbers. This 16 document describes a certificate-based credential system for 17 telephone numbers, which could be used as a part of a broader 18 architecture for managing telephone numbers as identities in 19 protocols like SIP. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at http://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on September 22, 2015. 38 Copyright Notice 40 Copyright (c) 2015 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (http://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 58 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 59 3. Enrollment and Authorization . . . . . . . . . . . . . . . . . 3 60 3.1. Certificate Scope and Structure . . . . . . . . . . . . . 4 61 3.2. Provisioning Private Keying Material . . . . . . . . . . . 5 62 4. Acquiring Credentials to Verify Signatures . . . . . . . . . . 5 63 4.1. Verifying Certificate Scope . . . . . . . . . . . . . . . 6 64 4.2. Certificate Freshness and Revocation . . . . . . . . . . . 7 65 5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 66 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 67 7. Security Considerations . . . . . . . . . . . . . . . . . . . 10 68 8. Informative References . . . . . . . . . . . . . . . . . . . . 10 69 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12 71 1. Introduction 73 As is discussed in the STIR problem statement [13], the primary 74 enabler of robocalling, vishing, swatting and related attacks is the 75 capability to impersonate a calling party number. The starkest 76 examples of these attacks are cases where automated callees on the 77 Public Switched Telephone Network (PSTN) rely on the calling number 78 as a security measure, for example to access a voicemail system. 79 Robocallers use impersonation as a means of obscuring identity; while 80 robocallers can, in the ordinary PSTN, block (that is, withhold) 81 their caller identity, callees are less likely to pick up calls from 82 blocked identities, and therefore appearing to calling from some 83 number, any number, is preferable. Robocallers however prefer not to 84 call from a number that can trace back to the robocaller, and 85 therefore they impersonate numbers that are not assigned to them. 87 One of the most important components of a system to prevent 88 impersonation is an authority responsible for issuing credentials to 89 parties who control telephone numbers. With these credentials, 90 parties can prove that they are in fact authorized to use telephony 91 numbers, and thus distinguish themselves from impersonators unable to 92 present credentials. This document describes a credential system for 93 telephone numbers based on X.509 version 3 certificates in accordance 94 with [7]. While telephone numbers have long been a part of the X.509 95 standard, the certificates described in this document may contain 96 telephone number blocks or ranges, and accordingly it uses an 97 alternate syntax. 99 In the STIR in-band architecture, two basic types of entities need 100 access to these credentials: authentication services, and 101 verification services (or verifiers); see [15]. An authentication 102 service must be operated by an entity enrolled with the certification 103 authority (see Section 3), whereas a verifier need only trust the 104 root certificate of the authority, and have a means to acquire and 105 validate certificates. 107 This document attempts to specify only the basic elements necessary 108 for this architecture. Only through deployment experience will it be 109 possible to decide directions for future work. 111 2. Terminology 113 In this document, the key words "MUST", "MUST NOT", "REQUIRED", 114 "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT 115 RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as 116 described in RFC 2119 [1] and RFC 6919 [2]. 118 3. Enrollment and Authorization 120 This document assumes a threefold model for certificate enrollment. 122 The first enrollment model is one where the certification authority 123 (CA) acts in concert with national numbering authorities to issue 124 credentials to those parties to whom numbers are assigned. In the 125 United States, for example, telephone number blocks are assigned to 126 Local Exchange Carriers (LECs) by the North American Numbering Plan 127 Administrator (NANPA), who is in turn directed by the national 128 regulator. LECs may also receive numbers in smaller allocations, 129 through number pooling, or via an individual assignment through 130 number portability. LECs assign numbers to customers, who may be 131 private individuals or organizations - and organizations take 132 responsibility for assigning numbers within their own enterprise. 134 The second enrollment model is one where a certification authority 135 requires that an entity prove control by means of some sort of test. 136 For example, an authority might send a text message to a telephone 137 number containing a URL (which might be deferenced by the recipient) 138 as a means of verifying that a user has control of terminal 139 corresponding to that number. Checks of this form are frequently 140 used in commercial systems today to validate telephone numbers 141 provided by users. This is comparable to existing enrollment systems 142 used by some certificate authorities for issuing S/MIME credentials 143 for email by verifying that the party applying for a credential 144 receives mail at the email address in question. 146 The third enrollment model is delegation: that is, the holder of a 147 certificate (assigned by either of the two methods above) may 148 delegate some or all of their authority to another party. In some 149 cases, multiple levels of delegation could occur: a LEC, for example, 150 might delegate authority to customer organization for a block of 100 151 numbers, and the organization might in turn delegate authority for a 152 particular number to an individual employee. This is analogous to 153 delegation of organizational identities in traditional hierarchical 154 Public Key Infrastructures (PKIs) who use the name constraints 155 extension [3]; the root CA delegates names in sales to the sales 156 department CA, names in development to the development CA, etc. As 157 lengthy certificate delegation chains are brittle, however, and can 158 cause delays in the verification process, this document considers 159 optimizations to reduce the complexity of verification. 161 [TBD] Future versions of this specification may address adding a 162 level of assurance indication to certificates to differentiate those 163 enrolled from proof-of-possession versus delegation. 165 [TBD] Future versions of this specification may also discuss methods 166 of partial delegation, where certificate holders delegate only part 167 of their authority. For example, individual assignees may want to 168 delegate to a service authority for text messages associated with 169 their telephone number, but not for other functions. 171 3.1. Certificate Scope and Structure 173 The subjects of telephone number certificates are the administrative 174 entities to whom numbers are assigned or delegated. For example, a 175 LEC might hold a certificate for a range of telephone numbers. [TBD 176 - what if the subject is considered a privacy leak?] 178 This specification places no limits on the number of telephone 179 numbers that can be associated with any given certificate. Some 180 service providers may be assigned millions of numbers, and may wish 181 to have a single certificate that is capable of signing for any one 182 of those numbers. Others may wish to compartmentalize authority over 183 subsets of the numbers they control. 185 Moreover, service providers may wish to have multiple certificates 186 with the same scope of authority. For example, a service provider 187 with several regional gateway systems may want each system to be 188 capable of signing for each of their numbers, but not want to have 189 each system share the same private key. 191 The set of telephone numbers for which a particular certificate is 192 valid is expressed in the certificate through a certificate 193 extension; the certificate's extensibility mechanism is defined in 194 [7] but the telephone number authorization extension is defined in 195 this document. 197 3.2. Provisioning Private Keying Material 199 In order for authentication services to sign calls via the procedures 200 described in [15], they must possess a private key corresponding to a 201 certificate with authority over the calling number. This 202 specification does not require that any particular entity sign 203 requests, only that it be an entity with an appropriate private key; 204 the authentication service role may be instantiated by any entity in 205 a SIP network. For a certificate granting authority only over a 206 particular number which has been issued to an end user, for example, 207 an end user device might hold the private key and generate the 208 signature. In the case of a service provider with authority over 209 large blocks of numbers, an intermediary might hold the private key 210 and sign calls. 212 The specification recommends distribution of private keys through 213 PKCS#8 objects signed by a trusted entity, for example through the 214 CMS package specified in [8]. 216 4. Acquiring Credentials to Verify Signatures 218 This specification documents multiple ways that a verifier can gain 219 access to the credentials needed to verify a request. As the 220 validity of certificates does not depend on the circumstances of 221 their acquistion, there is no need to standardize any single 222 mechanism for this purpose. All entities that comply with [15] 223 necessarily support SIP, and consequently SIP itself can serve as a 224 way to acquire certificates. This specific does allow delivery 225 through alternate means as well. 227 The simplest way for a verifier to acquire the certificate needed to 228 verify a signature is for the certificate be conveyed along with the 229 signature itself. In SIP, for example, a certificate could be 230 carried in a multipart MIME body [9], and the URI in the Identity- 231 Info header could specify that body with a CID URI [10]. However, in 232 many environments this is not feasible due to message size 233 restrictions or lack of necessary support for multipart MIME. 235 Alternatively, the Identity-Info header of a SIP request may contain 236 a URI that the verifier dereferences with a network call. 237 Implementations of this specification are required to support the use 238 of SIP for this function (via the SUBSCRIBE/NOTIFY mechanism), as 239 well as HTTP, via the Enrollment over Secure Transport mechanisms 240 described in RFC 7030 [11]. 242 A verifier can however have access to a service that grants access to 243 certificates for a particular telephone number. Note however that 244 there may be multiple valid certificates that can sign a call setup 245 request for a telephone number, and that as a consequence, there 246 needs to be some discriminator that the signer uses to identify their 247 credentials. The Identity-Info header itself can serve as such a 248 discriminator. 250 4.1. Verifying Certificate Scope 252 The subjects of these certificates are the administrative entities to 253 whom numbers are assigned or delegated. When a verifier is 254 validating a caller's identity, local policy always determines the 255 circumstances under which any particular subject may be trusted, but 256 for the purpose of validating a caller's identity, this certificate 257 extension establishes whether or not a signer is authorized to sign 258 for a particular number. 260 The telephone number (TN) Authorization List certificate extension is 261 identified by the following object identifier: 263 id-ce-TNAuthList OBJECT IDENTIFIER ::= { TBD } 265 The TN Authorization List certificate extension has the following 266 syntax: 268 TNAuthorizationList ::= SEQUENCE SIZE (1..MAX) OF TNAuthorization 270 TNAuthorization ::= SEQUENCE SIZE (1..MAX) OF TNEntry 272 TNEntry ::= CHOICE { 273 spid ServiceProviderIdentifierList, 274 range TelephoneNumberRange, 275 one E164Number } 277 ServiceProviderIdentifierList ::= SEQUENCE SIZE (1..3) OF 278 OCTET STRING 280 -- When all three are present: SPID, Alt SPID, and Last Alt SPID 282 TelephoneNumberRange ::= SEQUENCE { 283 start E164Number, 284 count INTEGER } 286 E164Number ::= IA5String (SIZE (1..15)) (FROM ("0123456789")) 288 [TBD] Do we really need to do IA5String? The alternative would be 289 UTF8String, e.g.: UTF8String (SIZE (1..15)) (FROM ("0123456789")) 291 The TN Authorization List certificate extension indicates the 292 authorized phone numbers for the call setup signer. It indicates one 293 or more blocks of telephone number entries that have been authorized 294 for use by the call setup signer. There are three ways to identify 295 the block: 1) a Service Provider Identifier (SPID) can be used to 296 indirectly name all of the telephone numbers associated with that 297 service provider, 2) telephone numbers can be listed in a range, and 298 3) a single telephone number can be listed. 300 Note that because large-scale service providers may want to associate 301 many numbers, possibly millions of numbers, with a particular 302 certificate, optimizations are required for those cases to prevent 303 certificate size from becoming unmanageable. In these cases, the TN 304 Authorization List may be given by reference rather than by value, 305 through the presence of a separate certificate extension that permits 306 verifiers to either securely download the list of numbers associated 307 with a certificate, or to verify that a single number is under the 308 authority of this certificate. This optimization will be detailed in 309 future version of this specification. 311 4.2. Certificate Freshness and Revocation 313 The problem of certificate freshness gains a new wrinkle in the 314 telephone number context, because verifiers must establish not only 315 that a certificate remains valid, but also that the certificate's 316 scope contains the telephone number that the verifier is validating. 317 Dynamic changes to number assignments can occur due to number 318 portability, for example. So even if a verifier has a valid cached 319 certificate for a telephone number (or a range containing the 320 number), the verifier must determine that the entity that signed is 321 still a proper authority for that number. 323 To verify the status of the certificate, the verifier needs the 324 certificate, which is included with the call, and they need to: 326 o Rely on short-lived certificates and not check the certificate's 327 status, or 329 o Rely on status information from the authority; there are three 330 common mechanisms employed by CAs: 332 * Certificate Revocation Lists (CRLs) [7], 333 * Online Certificate Status Protocol (OCSP) [RFC6560], and 334 * Server-based Certificate Validation Protocol (SCVP) [RFC5055]. 336 The tradeoff between short lived certificates and using status 337 information is the former's burden is on the front end (i.e., 338 enrollment) and the latter's burden is on the back end (i.e., 339 verification). Both impact call setup time, but it is assumed that 340 performing enrollment for each call is more of an impact that using 341 status information. This document therefore recommends relying on 342 status information. 344 When relying on status information, the verifier needs to obtain the 345 status information but before that can happen the verifier needs to 346 know where to locate it. Placing the location of the status 347 information in the certificate makes the certificate larger but it 348 eases the client workload. The CRL Distribution Point certificate 349 extension includes the location of the CRL and the Authority 350 Information Access certificate extension includes the location of 351 OCSP and/or SCVP servers; both of these extensions are defined in 352 [7]. In all cases, the status information location is provided in 353 the form of an URI. 355 CRLs are an obviously attractive solution because they are supported 356 by every CA. CRLs have a reputation of being quite large (10s of 357 MBytes) because CAs issue one with all of their revoked certificates 358 but CRLs do support a variety of mechanisms to scope the size of the 359 CRLs based on revocation reasons (e.g., key compromise vs CA 360 compromise), user certificates only, and CA certificates only as well 361 as just operationally deciding to keep the CRLs small. Scoping the 362 CRL though introduces other issues (i.e., does the RP have all of the 363 CRL partitions). CAs in this system will likely all create CRLs for 364 audit purposes but it not recommended that they be relying upon for 365 status information. Instead, one of the two "online" options is 366 recommended. Between the two, OCSP is much more widely deployed and 367 this document therefore recommends the use of OCSP in high-volume 368 environments for validating the freshness of certificates, based on 369 [12]. Note that OCSP responses have three possible values: good, 370 revoked, or unknown. 372 [TBD] HVE OCSP requires SHA-1 be used as the hash algorithm, we're 373 obviously going to change this to be SHA-256. 375 [TBD] What would happen in the unknown case? 377 The wrinkle here is that OCSP only provides status information it 378 does not indicate whether the certificate's is authorized for the 379 telephone number that the verifier is validating. There's two ways 380 to ask the authorization question: 382 o For this certificate, is the following number currently in its 383 scope of validity? 385 o What are the numbers associated with this certificate? 387 The former seems to lend itself to piggybacking on the status 388 mechanism; since the verifier is already asking an authority about 389 the certificate's status why not use that mechanism instead of 390 creating a new service that requires additional round trips. Like 391 most PKIX-developed protocols, OCSP is extensible; OCSP supports 392 request extensions (OCSP supports sending multiple requests at once) 393 and per-request extensions. It seems unlikely that the verifier will 394 be requesting authorization checks on multiple callers in one request 395 so a per-request extension is what is needed. But, support for any 396 particular extension is optional and the HVE OCSP profile [12] 397 prohibits the use of per-request extensions so there is some 398 additional work required to modify existing OCSP responders. 400 The extension mechanism itself is fairly straightforward and it's 401 based on the X.509 v3 certificate extensions: an OID, a criticality 402 flag, and ASN.1 syntax as defined by the OID. The OID would be 403 registered in the IANA PKIX arc, the criticality would likely be set 404 to critical (i.e., if the OCSP responder doesn't understand the 405 extension stop processing), and the syntax can be anything we desire. 406 Applying the KISS principle, the syntax could simply be the TN being 407 asserted by caller. The responder could then determine whether the 408 TN asserted in the OCSP per-request extension is still authorized for 409 the certificate referred to in the certificate request field; the 410 reference is a tuple of hash algorithm, issuer name hash, issuer key 411 hash, and serial number. 413 The second option seems more like a query response type of 414 interaction and could be initiated through a URI included in the 415 certificate. Luckily, the AIA extension supports such a mechanism; 416 it's an OID to identify the "access method" and an "access location", 417 which would most most likely be a URI. The verifier would then 418 follow the URI to ascertain whether the list of TNs authorized for 419 use by the caller. There are obviously some privacy considerations 420 with this approach. 422 The need to check the authorizations in another round-trip is also 423 something to consider because it will add to the call setup time. 424 OCSP implementations commonly pre-generate responses and to speed up 425 HTTPS connections the server provides OCSP responses for each 426 certificate in their hierarchy. If possible, both of these OCSP 427 concepts should be adopted. 429 Ideally, once a certificate has been acquired by a verifier, some 430 sort of asynchronous mechanism could notify and update the verifier 431 if the scope of the certificate changes. While not all possible 432 categories of verifiers could implement such behavior, some sort of 433 event-driven notification of certificate status is another potential 434 subject of future work. 436 5. Acknowledgments 438 Russ Housley, Brian Rosen, Cullen Jennings and Eric Rescorla provided 439 key input to the discussions leading to this document. 441 6. IANA Considerations 443 This memo includes no request to IANA at this time. If we define an 444 OCSP extension or AIA access method then we'll need an OID from the 445 PKIX. 447 7. Security Considerations 449 This document is entirely about security. For further information on 450 certificate security and practices, see RFC 3280 [5], in particular 451 its Security Considerations. 453 8. Informative References 455 [1] Bradner, S., "Key words for use in RFCs to Indicate 456 Requirement Levels", BCP 14, RFC 2119, March 1997. 458 [2] Barnes, R., Kent, S., and E. Rescorla, "Further Key Words 459 for Use in RFCs to Indicate Requirement Levels", RFC 6919, 460 April 1 2013. 462 [3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 463 A., Peterson, J., Sparks, R., Handley, M., and E. 464 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 465 June 2002. 467 [4] Rosenberg, J. and H. Schulzrinne, "Session Initiation 468 Protocol (SIP): Locating SIP Servers", RFC 3263, June 469 2002. 471 [5] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet 472 X.509 Public Key Infrastructure Certificate and 473 Certificate Revocation List (CRL) Profile", RFC 3280, 474 April 2002. 476 [6] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. 478 [7] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 479 Housley, R., and W. Polk, "Internet X.509 Public Key 480 Infrastructure Certificate and Certificate Revocation List 481 (CRL) Profile", RFC 5280, May 2008. 483 [8] Turner, S., "Asymmetric Key Packages", RFC 5958, August 484 2010. 486 [9] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 487 Extensions (MIME) Part Two: Media Types", RFC 2046, 488 November 1996. 490 [10] Levinson, E., "Content-ID and Message-ID Uniform Resource 491 Locators", RFC 2392, August 1998. 493 [11] Pritikin, M., Yee, P., and D. Harkins, "Enrollment over 494 Secure Transport", RFC 7030, October 2013. 496 [12] Deacon, A. and R. Hurst, "The Lightweight Online 497 Certificate Status Protocol (OCSP) Profile for High-Volume 498 Environments", RFC 5019, September 2007. 500 [13] Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure 501 Telephone Identity Problem Statement and Requirements", 502 draft-ietf-stir-problem-statement-05 (work in progress), 503 May 2014. 505 [14] Peterson, J., "Retargeting and Security in SIP: A 506 Framework and Requirements", draft-peterson-sipping- 507 retarget-00 (work in progress), February 2005. 509 [15] Peterson, J., Jennings, C., and E. Rescorla, 510 "Authenticated Identity Management in the Session 511 Initiation Protocol (SIP)", draft-ietf-stir-rfc4474bis-02 512 (work in progress), October 2014. 514 Authors' Addresses 516 Jon Peterson 517 Neustar, Inc. 518 1800 Sutter St Suite 570 519 Concord, CA 94520 520 US 522 Email: jon.peterson@neustar.biz 524 Sean Turner 525 IECA, Inc. 526 3057 Nutley Street, Suite 106 527 Farifax, VA 22031 528 US 530 Email: turners@ieca.com