idnits 2.17.1 draft-ietf-stir-certificates-00.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 (October 23, 2014) is 3473 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 163 == Unused Reference: '4' is defined on line 368, but no explicit reference was found in the text == Unused Reference: '6' is defined on line 377, but no explicit reference was found in the text == Unused Reference: '14' is defined on line 406, 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 (==), 4 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: April 26, 2015 IECA 6 October 23, 2014 8 Secure Telephone Identity Credentials: Certificates 9 draft-ietf-stir-certificates-00.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 April 26, 2015. 38 Copyright Notice 40 Copyright (c) 2014 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 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 57 3. Enrollment and Authorization . . . . . . . . . . . . . . . . 3 58 3.1. Certificate Scope and Structure . . . . . . . . . . . . . 4 59 3.2. Provisioning Private Keying Material . . . . . . . . . . 5 60 4. Acquiring Credentials to Verify Signatures . . . . . . . . . 5 61 4.1. Verifying Certificate Scope . . . . . . . . . . . . . . . 6 62 4.2. Certificate Freshness and Revocation . . . . . . . . . . 8 63 5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 64 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 65 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 66 8. Informative References . . . . . . . . . . . . . . . . . . . 9 67 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 69 1. Introduction 71 As is discussed in the STIR problem statement [13], the primary 72 enabler of robocalling, vishing, swatting and related attacks is the 73 capability to impersonate a calling party number. The starkest 74 examples of these attacks are cases where automated callees on the 75 PSTN rely on the calling number as a security measure, for example to 76 access a voicemail system. Robocallers use impersonation as a means 77 of obscuring identity; while robocallers can, in the ordinary PSTN, 78 block (that is, withhold) their caller identity, callees are less 79 likely to pick up calls from blocked identities, and therefore 80 appearing to calling from some number, any number, is preferable. 81 Robocallers however prefer not to call from a number that can trace 82 back to the robocaller, and therefore they impersonate numbers that 83 are not assigned to them. 85 One of the most important components of a system to prevent 86 impersonation is an authority responsible for issuing credentials to 87 parties who control telephone numbers. With these credentials, 88 parties can prove that they are in fact authorized to use telephony 89 numbers, and thus distinguish themselves from impersonators unable to 90 present credentials. This document describes a credential system for 91 telephone numbers based on X.509 version 3 certificates in accordance 92 with [7]. While telephone numbers have long been a part of the X.509 93 standard, the certificates described in this document may contain 94 telephone number blocks or ranges, and accordingly it uses an 95 alternate syntax. 97 In the STIR in-band architecture, two basic types of entities need 98 access to these credentials: authentication services, and 99 verification services (or verifiers); see [15]. An authentication 100 service must be operated by an entity enrolled with the certificate 101 authority (see Section 3), whereas a verifier need only trust the 102 root certificate of the authority, and have a means to acquire and 103 validate certificates. 105 This document attempts to specify only the basic elements necessary 106 for this architecture. Only through deployment experience will it be 107 possible to decide directions for future work. 109 2. Terminology 111 In this document, the key words "MUST", "MUST NOT", "REQUIRED", 112 "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT 113 RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as 114 described in RFC 2119 [1] and RFC 6919 [2]. 116 3. Enrollment and Authorization 118 This document assumes a threefold model for certificate enrollment. 120 The first enrollment model is one where the certificate authority 121 acts in concert with national numbering authorities to issue 122 credentials to those parties to whom numbers are assigned. In the 123 United States, for example, telephone number blocks are assigned to 124 Local Exchange Carriers (LECs) by the North American Numbering Plan 125 Administrator (NANPA), who is in turn directed by the national 126 regulator. LECs may also receive numbers in smaller allocations, 127 through number pooling, or via an individual assignment through 128 number portability. LECs assign numbers to customers, who may be 129 private individuals or organizations - and organizations take 130 responsibility for assigning numbers within their own enterprise. 132 The second enrollment model is one where a certificate authority 133 requires that an entity prove control by means of some sort of test. 134 For example, an authority might send a text message to a telephone 135 number containing a URL (which might be deferenced by the recipient) 136 as a means of verifying that a user has control of terminal 137 corresponding to that number. Checks of this form are frequently 138 used in commercial systems today to validate telephone numbers 139 provided by users. This is comparable to existing enrollment systems 140 used by some certificate authorities for issuing S/MIME credentials 141 for email by verifying that the party applying for a credential 142 receives mail at the email address in question. 144 The third enrollment model is delegation: that is, the holder of a 145 certificate (assigned by either of the two methods above) may 146 delegate some or all of their authority to another party. In some 147 cases, multiple levels of delegation could occur: a LEC, for example, 148 might delegate authority to customer organization for a block of 100 149 numbers, and the organization might in turn delegate authority for a 150 particular number to an individual employee. This is analogous to 151 delegation of organizational identities in traditional hierarchical 152 PKIs who use the name constraints extension [3]; the root CA 153 delegates names in sales to the sales department CA, names in 154 development to the development CA, etc. As lengthy certificate 155 delegation chains are brittle, however, and can cause delays in the 156 verification process, this document considers optimizations to reduce 157 the complexity of verification. 159 [TBD] Future versions of this specification may address adding a 160 level of assurance indication to certificates to differentiate those 161 enrolled from proof-of-possession versus delegation. 163 [TBD] Future versions of this specification may also discuss methods 164 of partial delegation, where certificate holders delegate only part 165 of their authority. For example, individual assignees may want to 166 delegate to a service authority for text messages associated with 167 their telephone number, but not for other functions. 169 3.1. Certificate Scope and Structure 171 The subjects of telephone number certificates are the administrative 172 entities to whom numbers are assigned or delegated. For example, a 173 LEC might hold a certificate for a range of telephone numbers. [TBD 174 - what if the subject is considered a privacy leak?] 176 This specification places no limits on the number of telephone 177 numbers that can be associated with any given certificate. Some 178 service providers may be assigned millions of numbers, and may wish 179 to have a single certificate that is capable of signing for any one 180 of those numbers. Others may wish to compartmentalize authority over 181 subsets of the numbers they control. 183 Moreover, service providers may wish to have multiple certificates 184 with the same scope of authority. For example, a service provider 185 with several regional gateway systems may want each system to be 186 capable of signing for each of their numbers, but not want to have 187 each system share the same private key. 189 The set of telephone numbers for which a particular certificate is 190 valid is expressed in the certificate through a certificate 191 extension; the certificate's extensibility mechanism is defined in 192 RFC 5280 but the telephone number authorization extension is defined 193 in this document. 195 3.2. Provisioning Private Keying Material 197 In order for authentication services to sign calls via the procedures 198 described in [15], they must possess a private key corresponding to a 199 certificate with authority over the calling number. This 200 specification does not require that any particular entity sign 201 requests, only that it be an entity with an appropriate private key; 202 the authentication service role may be instantiated by any entity in 203 a SIP network. For a certificate granting authority only over a 204 particular number which has been issued to an end user, for example, 205 an end user device might hold the private key and generate the 206 signature. In the case of a service provider with authority over 207 large blocks of numbers, an intermediary might hold the private key 208 and sign calls. 210 The specification recommends distribution of private keys through 211 PKCS#8 objects signed by a trusted entity, for example through the 212 CMS package specified in [8]. 214 4. Acquiring Credentials to Verify Signatures 216 This specification documents multiple ways that a verifier can gain 217 access to the credentials needed to verify a request. As the 218 validity of certificates does not depend on the circumstances of 219 their acquistion, there is no need to standardize any single 220 mechanism for this purpose. All entities that comply with [15] 221 necessarily support SIP, and consequently SIP itself can serve as a 222 way to acquire certificates. This specific does allow delivery 223 through alternate means as well. 225 The simplest way for a verifier to acquire the certificate needed to 226 verify a signature is for the certificate be conveyed along with the 227 signature itself. In SIP, for example, a certificate could be 228 carried in a multipart MIME body [9], and the URI in the Identity- 229 Info header could specify that body with a CID URI [10]. However, in 230 many environments this is not feasible due to message size 231 restrictions or lack of necessary support for multipart MIME. 233 Alternatively, the Identity-Info header of a SIP request may contain 234 a URI that the verifier dereferences with a network call. 235 Implementations of this specification are required to support the use 236 of SIP for this function (via the SUBSCRIBE/NOTIFY mechanism), as 237 well as HTTP, via the Enrollment over Secure Transport mechanisms 238 described in RFC 7030 [11]. 240 A verifier can however have access to a service that grants access to 241 certificates for a particular telephone number. Note however that 242 there may be multiple valid certificates that can sign a call setup 243 request for a telephone number, and that as a consequence, there 244 needs to be some discriminator that the signer uses to identify their 245 credentials. The Identity-Info header itself can serve as such a 246 discriminator. 248 4.1. Verifying Certificate Scope 250 The subjects of these certificates are the administrative entities to 251 whom numbers are assigned or delegated. When a verifier is 252 validating a caller's identity, local policy always determines the 253 circumstances under which any particular subject may be trusted, but 254 for the purpose of validating a caller's identity, this certificate 255 extension establishes whether or not a signer is authorized to sign 256 for a particular number. 258 The TN Authorization List certificate extension is identified by the 259 following object identifier: 261 id-ce-TNAuthList OBJECT IDENTIFIER ::= { TBD } 263 The TN Authorization List certificate extension has the following 264 syntax: 266 TNAuthorizationList ::= SEQUENCE SIZE (1..MAX) OF TNAuthorization 268 TNAuthorization ::= SEQUENCE SIZE (1..MAX) OF TNEntry 270 TNEntry ::= CHOICE { 272 spid ServiceProviderIdentifierList, 274 range TelephoneNumberRange, 276 one E164Number } 278 ServiceProviderIdentifierList ::= SEQUENCE SIZE (1..3) OF 280 OCTET STRING 282 -- When all three are present: SPID, Alt SPID, and Last Alt SPID 284 TelephoneNumberRange ::= SEQUENCE { 286 start E164Number, 288 count INTEGER } 290 E164Number ::= IA5String (SIZE (1..15)) (FROM ("0123456789")) 292 [TBD- do we really need to do IA5String? The alternative would be 293 UTF8String, e.g.: UTF8String (SIZE (1..15)) (FROM ("0123456789")) ] 295 The TN Authorization List certificate extension indicates the 296 authorized phone numbers for the call setup signer. It indicates one 297 or more blocks of telephone number entries that have been authorized 298 for use by the call setup signer. There are three ways to identify 299 the block: 1) a Service Provider Identifier (SPID) can be used to 300 indirectly name all of the telephone numbers associated with that 301 service provider, 2) telephone numbers can be listed in a range, and 302 3) a single telephone number can be listed. 304 Note that because large-scale service providers may want to associate 305 many numbers, possibly millions of numbers, with a particular 306 certificate, optimizations are required for those cases to prevent 307 certificate size from becoming unmanageable. In these cases, the TN 308 Authorization List may be given by reference rather than by value, 309 through the presence of a separate certificate extension that permits 310 verifiers to either securely download the list of numbers associated 311 with a certificate, or to verify that a single number is under the 312 authority of this certificate. This optimization will be detailed in 313 future version of this specification. 315 4.2. Certificate Freshness and Revocation 317 The problem of certificate freshness gains a new wrinkle in the 318 telephone number context, because verifiers must establish not only 319 that a certificate remains valid, but also that the certificate's 320 scope contains the telephone number that the verifier is validating. 321 Dynamic changes to number assignments can occur due to number 322 portability, for example. So even if a verifier has a valid cached 323 certificate for a telephone number (or a range containing the 324 number), the verifier must determine that the entity that the signer 325 is still a proper authority for that number. 327 This document therefore recommends the use of OCSP in high-volume 328 environments for validating the freshness of certificates, per [12]. 329 [TBD - depending on our algorithm choices this profile may need to be 330 further profiled.] 332 Ideally, once a certificate has been acquired by a verifier, some 333 sort of asynchronous mechanism could notify and update the verifier 334 if the scope of the certificate changes. While not all possible 335 categories of verifiers could implement such behavior, some sort of 336 event-driven notification of certificate status is another potential 337 subject of future work. 339 5. Acknowledgments 341 Russ Housley, Brian Rosen, Cullen Jennings and Eric Rescorla provided 342 key input to the discussions leading to this document. 344 6. IANA Considerations 346 This memo includes no request to IANA. 348 7. Security Considerations 350 This document is entirely about security. For further information on 351 certificate security and practices, see RFC 3280 [5], in particular 352 its Security Considerations. 354 8. Informative References 356 [1] Bradner, S., "Key words for use in RFCs to Indicate 357 Requirement Levels", BCP 14, RFC 2119, March 1997. 359 [2] Barnes, R., Kent, S., and E. Rescorla, "Further Key Words 360 for Use in RFCs to Indicate Requirement Levels", RFC 6919, 361 April 1 2013. 363 [3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 364 A., Peterson, J., Sparks, R., Handley, M., and E. 365 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 366 June 2002. 368 [4] Rosenberg, J. and H. Schulzrinne, "Session Initiation 369 Protocol (SIP): Locating SIP Servers", RFC 3263, June 370 2002. 372 [5] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet 373 X.509 Public Key Infrastructure Certificate and 374 Certificate Revocation List (CRL) Profile", RFC 3280, 375 April 2002. 377 [6] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. 379 [7] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 380 Housley, R., and W. Polk, "Internet X.509 Public Key 381 Infrastructure Certificate and Certificate Revocation List 382 (CRL) Profile", RFC 5280, May 2008. 384 [8] Turner, S., "Asymmetric Key Packages", RFC 5958, August 385 2010. 387 [9] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 388 Extensions (MIME) Part Two: Media Types", RFC 2046, 389 November 1996. 391 [10] Levinson, E., "Content-ID and Message-ID Uniform Resource 392 Locators", RFC 2392, August 1998. 394 [11] Pritikin, M., Yee, P., and D. Harkins, "Enrollment over 395 Secure Transport", RFC 7030, October 2013. 397 [12] Deacon, A. and R. Hurst, "The Lightweight Online 398 Certificate Status Protocol (OCSP) Profile for High-Volume 399 Environments", RFC 5019, September 2007. 401 [13] Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure 402 Telephone Identity Problem Statement and Requirements", 403 draft-ietf-stir-problem-statement-05 (work in progress), 404 May 2014. 406 [14] Peterson, J., "Retargeting and Security in SIP: A 407 Framework and Requirements", draft-peterson-sipping- 408 retarget-00 (work in progress), February 2005. 410 [15] Peterson, J., Jennings, C., and E. Rescorla, 411 "Authenticated Identity Management in the Session 412 Initiation Protocol (SIP)", draft-ietf-stir-rfc4474bis-02 413 (work in progress), October 2014. 415 Authors' Addresses 417 Jon Peterson 418 Neustar, Inc. 419 1800 Sutter St Suite 570 420 Concord, CA 94520 421 US 423 Email: jon.peterson@neustar.biz 425 Sean Turner 426 IECA, Inc. 427 3057 Nutley Street, Suite 106 428 Farifax, VA 22031 429 US 431 Email: turners@ieca.com