idnits 2.17.1 draft-ietf-weirds-rdap-sec-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 : ---------------------------------------------------------------------------- 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 (June 03, 2013) is 3979 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) == Outdated reference: A later version (-14) exists of draft-ietf-weirds-json-response-03 == Outdated reference: A later version (-18) exists of draft-ietf-weirds-rdap-query-04 == Outdated reference: A later version (-15) exists of draft-ietf-weirds-using-http-05 -- Possible downref: Normative reference to a draft: ref. 'I-D.ietf-weirds-using-http' -- Possible downref: Non-RFC (?) normative reference: ref. 'OpenID' ** Obsolete normative reference: RFC 2616 (Obsoleted by RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235) ** Obsolete normative reference: RFC 2617 (Obsoleted by RFC 7235, RFC 7615, RFC 7616, RFC 7617) ** Obsolete normative reference: RFC 2818 (Obsoleted by RFC 9110) ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) Summary: 4 errors (**), 0 flaws (~~), 4 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force S. Hollenbeck 3 Internet-Draft Verisign Labs 4 Intended status: Standards Track N. Kong 5 Expires: December 05, 2013 CNNIC 6 June 03, 2013 8 Security Services for the Registration Data Access Protocol 9 draft-ietf-weirds-rdap-sec-04 11 Abstract 13 The Registration Data Access Protocol (RDAP) provides "RESTful" web 14 services to retrieve registration metadata from domain name and 15 regional internet registries. This document describes information 16 security services including authentication, authorization, 17 availability, data confidentiality, and data integrity for RDAP. 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at http://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on December 05, 2013. 36 Copyright Notice 38 Copyright (c) 2013 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (http://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 Table of Contents 53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 54 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 55 2.1. Acronyms and Abbreviations . . . . . . . . . . . . . . . 3 56 3. Information Security Services and RDAP . . . . . . . . . . . 3 57 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . 3 58 3.1.1. Federated Authentication . . . . . . . . . . . . . . 4 59 3.2. Authorization . . . . . . . . . . . . . . . . . . . . . . 5 60 3.3. Availability . . . . . . . . . . . . . . . . . . . . . . 5 61 3.4. Data Confidentiality . . . . . . . . . . . . . . . . . . 5 62 3.5. Data Integrity . . . . . . . . . . . . . . . . . . . . . 6 63 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 64 5. Security Considerations . . . . . . . . . . . . . . . . . . . 7 65 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 66 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 67 7.1. Normative References . . . . . . . . . . . . . . . . . . 8 68 7.2. Informative References . . . . . . . . . . . . . . . . . 8 69 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 9 70 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 72 1. Introduction 74 The Registration Data Access Protocol (RDAP) is specified in multiple 75 documents, including "Registration Data Access Protocol Lookup 76 Format" [I-D.ietf-weirds-rdap-query], "JSON Responses for the 77 Registration Data Access Protocol (RDAP)" 78 [I-D.ietf-weirds-json-response], and "HTTP usage in the Registration 79 Data Access Protocol (RDAP)" [I-D.ietf-weirds-using-http]. 81 One goal of RDAP is to provide security services that do not exist in 82 the WHOIS [RFC3912] protocol, including authentication, 83 authorization, availability, data confidentiality, and data 84 integrity. This document describes how each of these services is 85 achieved by RDAP. Where applicable, informational references to 86 requirements for a WHOIS replacement service [RFC3707] are noted. 88 2. Conventions Used in This Document 90 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 91 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 92 document are to be interpreted as described in RFC 2119 [RFC2119]. 94 2.1. Acronyms and Abbreviations 96 DNR: Domain Name Registry 98 RDAP: Registration Data Access Protocol 100 RIR: Regional Internet Registry 102 3. Information Security Services and RDAP 104 RDAP itself does not include native security services. Instead, RDAP 105 relies on features that are available in other protocol layers to 106 provide needed security services including authentication, 107 authorization, availability, data confidentiality, and data 108 integrity. A description of each of these security services can be 109 found in "Internet Security Glossary, Version 2" [RFC4949]. No 110 requirements have been identified for other security services. 112 3.1. Authentication 114 WHOIS does not provide features to identify and authenticate clients. 115 As noted in section 3.1.4.2 of "Cross Registry Internet Service 116 Protocol (CRISP) Requirements" [RFC3707], there is utility in 117 allowing server operators to offer "varying degrees of access 118 depending on policy and need". Clients have to be identified and 119 authenticated to provide that utility. 121 RDAP's authentication framework needs to accomodate anonymous access 122 as well as verification of identities using a range of authentication 123 methods and credential services. To that end, RDAP clients and 124 servers MUST implement the authentication framework specified in 125 "HTTP Authentication: Basic and Digest Access Authentication" 126 [RFC2617]. The "basic" scheme can be used to send a client's user 127 name and password to a server in plaintext, based64-encoded form. 128 The "digest" scheme can be used to authenticate a client without 129 exposing the client's plaintext password. If the "basic" scheme is 130 used, HTTP Over TLS [RFC2818] MUST be used to protect the client's 131 credentials from disclosure while in transit (see Section 3.4). 133 The Transport Layer Security Protocol [RFC5246] includes an optional 134 feature to identify and authenticate clients who possess and present 135 a valid X.509 digital certificate [RFC5280]. Support for this 136 feature is OPTIONAL. 138 RDAP SHOULD be capable of supporting future authentication methods 139 defined for use with HTTP. 141 3.1.1. Federated Authentication 143 The traditional client-server authentication model requires clients 144 to maintain distinct credentials for every RDAP server. This 145 situation can become unwieldy as the number of RDAP servers 146 increases. Federated authentication mechanisms allow clients to use 147 one credential to access multiple RDAP servers and reduce client 148 credential management complexity. RDAP MAY include a federated 149 authentication mechanism that permits a client to access multiple 150 RDAP servers in the same federation with one credential. 152 Federated authentication mechanisms used by RDAP are OPTIONAL. If 153 used, they MUST be fully supported by HTTP. OAuth, OpenID, and CA- 154 based mechanisms are three possible approaches to provide federated 155 authentication. 157 The OAuth authorization framework [RFC6749] describes a method for 158 users to access protected web resources without having to hand out 159 their credentials. Instead, clients supply access tokens issued by 160 an authorization server with the permission of the resource owner. 161 Using OAuth, multiple RDAP servers can form a federation and the 162 clients can access any server in the same federation by providing one 163 credential registered in any server in that federation. The OAuth 164 authorization framework is designed for use with HTTP and thus can be 165 used with RDAP. 167 OpenID [OpenID] is a decentralized single sign-on authentication 168 system that allows users to log in at web sites with one ID instead 169 of having to create multiple unique accounts. An end user can freely 170 choose which OpenID provider to use, and can preserve their 171 Identifier if they switch OpenID providers. 173 Section 7.4.6 of the Transport Layer Security Protocol [RFC5246] 174 describes the specification of a client certificate. Clients who 175 possess and present a valid X.509 digital certificate, issued by an 176 entity called "Certification Authority" (CA), could be identified and 177 authenticated by a server who trusts the corresponding CA. A 178 certificate authentication method can be used to achieve federated 179 authentication in which multiple RDAP servers all trust the same CAs 180 and then any client with a certificate issued by a trusted CA can 181 access any RDAP server in the federation. This certificate-based 182 mechanism is supported by HTTPS and can be introduced into RDAP. 184 3.2. Authorization 186 WHOIS does not provide services to grant different levels of access 187 to clients based on a client's authenticated identity. As noted in 188 section 3.1.4.2 of "Cross Registry Internet Service Protocol (CRISP) 189 Requirements" [RFC3707], there is utility in allowing server 190 operators to offer "varying degrees of access depending on policy and 191 need". Access control decisions can be made once a client's identity 192 has been established and authenticated (see Section 3.1). 194 An RDAP server MUST provide granular access controls (that is, on a 195 per registration data object basis) in order to implement 196 authorization policies. Server operators will offer varying degrees 197 of access depending on policy and need in conjunction with the 198 authentication methods described in Section 3.1. Some examples: 200 - Clients will be allowed access only to data for which they have a 201 relationship. 203 - Unauthenticated or anonymous access status may not yield any 204 contact information. 206 - Full access may be granted to a special group of authenticated 207 clients. 209 The type of access allowed by a server will most likely vary from one 210 operator to the next. 212 3.3. Availability 214 An RDAP service has to be available to be useful. There are no RDAP- 215 unique requirements to provide availability, but as a general 216 security consideration a service operator needs to be aware of the 217 issues associated with denial of service. A thorough reading of 218 "Internet Denial-of-Service Considerations" [RFC4732] is advised. 220 An RDAP service MAY use a throttling mechanism to limit the number of 221 queries that a single client can send in a given period of time. If 222 used, the server SHOULD return a 429 response code as described in 223 "Additional HTTP Status Codes" [RFC6585]. A client that receives a 224 429 response SHOULD decrease its query rate, and honor the Retry- 225 After header field if one is present. 227 3.4. Data Confidentiality 228 WHOIS does not provide the ability to protect data from inadvertent 229 disclosure while in transit. Web services such as RDAP commonly use 230 HTTP Over TLS [RFC2818] to provide that protection by encrypting all 231 traffic sent on the connection between client and server. It is also 232 possible to encrypt discrete objects (such as command path segments 233 and JSON-encoded response objects) at one endpoint, send them to the 234 other endpoint via an unprotected transport protocol, and decrypt the 235 object on receipt. Encryption algorithms as described in "Internet 236 Security Glossary, Version 2" [RFC4949] are commonly used to provide 237 data confidentiality at the object level. 239 There are no current requirements for object-level data 240 confidentiality using encryption. Support for this feature could be 241 added to RDAP in the future. 243 As noted in Section 3.1, the HTTP "basic" authentication scheme can 244 be used to authenticate a client. When this scheme is used, HTTP 245 Over TLS MUST be used to protect the client's credentials from 246 disclosure while in transit. If the policy of the server operator 247 requires encryption to protect client-server data exchanges (such as 248 to protect non-public data that can not be accessed without client 249 identification and authentication), HTTP Over TLS MUST be used to 250 protect those exchanges. 252 3.5. Data Integrity 254 WHOIS does not provide the ability to protect data from modification 255 while in transit. Web services such as RDAP commonly use HTTP Over 256 TLS [RFC2818] to provide that protection by using a keyed Message 257 Authentication Code (MAC) to detect modifications. It is also 258 possible to sign discrete objects (such as command path segments and 259 JSON-encoded response objects) at one endpoint, send them to the 260 other endpoint via a transport protocol, and validate the signature 261 of the object on receipt. Digital signature algorithms as described 262 in "Internet Security Glossary, Version 2" [RFC4949] are commonly 263 used to provide data integrity at the object level. 265 There are no current requirements for object-level data integrity 266 using digital signatures. Support for this feature could be added to 267 RDAP in the future. 269 The most specific need for this service is to provide assurance that 270 HTTP 30x redirection hints [RFC2616] and response elements returned 271 from the server are not modified while in transit. If the policy of 272 the server operator requires message integrity for client-server data 273 exchanges, HTTP Over TLS MUST be used to protect those exchanges. 275 4. IANA Considerations 277 This document does not specify any IANA actions. This section can be 278 removed if this document is published as an RFC. 280 5. Security Considerations 282 One of the goals of RDAP is to provide security services that do not 283 exist in the WHOIS protocol. This document describes the security 284 services provided by RDAP and associated protocol layers, including 285 authentication, authorization, availability, data confidentiality, 286 and data integrity. Non-repudiation services were also considered 287 and ultimately rejected due to a lack of requirements. There are, 288 however, currently-deployed WHOIS servers that can return signed 289 responses that provide non-repudiation with proof of origin. RDAP 290 might need to be extended to provide this service in the future. 292 As an HTTP-based protocol RDAP is susceptible to code injection 293 attacks. Code injection refers to adding code into a computer system 294 or program to alter the course of execution. There are many types of 295 code injection, including SQL injection, dynamic variable or function 296 injection, include file injection, shell injection, and html-script 297 injection among others. Data confidentiality and integrity services 298 provide a measure of defense against man-in-the-middle injection 299 attacks, but vulnerabilities in both client-side and server-side 300 software make it possible for injection attacks to succeed. 302 Data integrity services are sometimes mistakenly associated with 303 directory service operational policy requirements focused on data 304 accuracy. "Accuracy" refers to the truthful association of data 305 elements (such as names, addresses, and telephone numbers) in the 306 context of a particular directory object (such as a domain name). 307 Accuracy requirements are out of scope for this protocol. 309 6. Acknowledgements 311 The authors would like to acknowledge the following individuals for 312 their contributions to this document: Marc Blanchet, Ernie Dainow, 313 Jean-Philippe Dionne, Byron Ellacott, Peter Koch, Murray Kucherawy, 314 Andrew Newton, and Linlin Zhou. 316 7. References 317 7.1. Normative References 319 [I-D.ietf-weirds-json-response] 320 Newton, A. and S. Hollenbeck, "JSON Responses for the 321 Registration Data Access Protocol (RDAP)", draft-ietf- 322 weirds-json-response-03 (work in progress), April 2013. 324 [I-D.ietf-weirds-rdap-query] 325 Newton, A. and S. Hollenbeck, "Registration Data Access 326 Protocol Lookup Format", draft-ietf-weirds-rdap-query-04 327 (work in progress), April 2013. 329 [I-D.ietf-weirds-using-http] 330 Newton, A., Ellacott, B., and N. Kong, "HTTP usage in the 331 Registration Data Access Protocol (RDAP)", draft-ietf- 332 weirds-using-http-05 (work in progress), May 2013. 334 [OpenID] OpenID Foundation, "OpenID Authentication 2.0 - Final ", 335 December 2007, . 337 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 338 Requirement Levels", BCP 14, RFC 2119, March 1997. 340 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., 341 Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext 342 Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. 344 [RFC2617] Franks, J., Hallam-Baker, P.M., Hostetler, J.L., Lawrence, 345 S.D., Leach, P.J., Luotonen, A., and L. Stewart, "HTTP 346 Authentication: Basic and Digest Access Authentication", 347 RFC 2617, June 1999. 349 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. 351 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 352 (TLS) Protocol Version 1.2", RFC 5246, August 2008. 354 [RFC6585] Nottingham, M. and R. Fielding, "Additional HTTP Status 355 Codes", RFC 6585, April 2012. 357 7.2. Informative References 359 [RFC3707] Newton, A., "Cross Registry Internet Service Protocol 360 (CRISP) Requirements", RFC 3707, February 2004. 362 [RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912, 363 September 2004. 365 [RFC4732] Handley, M., Rescorla, E., IAB, "Internet Denial-of- 366 Service Considerations", RFC 4732, December 2006. 368 [RFC4949] Shirey, R., "Internet Security Glossary, Version 2", RFC 369 4949, August 2007. 371 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 372 Housley, R., and W. Polk, "Internet X.509 Public Key 373 Infrastructure Certificate and Certificate Revocation List 374 (CRL) Profile", RFC 5280, May 2008. 376 [RFC6749] Hardt, D., "The OAuth 2.0 Authorization Framework", RFC 377 6749, October 2012. 379 Appendix A. Change Log 381 Initial -00: Adopted as working group document. 382 -01: Extensive text additions and revisions based on in-room 383 discussion at IETF-85. Sections for data integrity and non- 384 repudiation have been removed due to a lack of requirements, but 385 both topics are now addressed in the Security Considerations 386 section. 387 -02: Fixed document names in the Introduction. Modified text in 388 Section 3.1.1 to clarify requirement. Added text to Section 3.3 389 to describe rate limiting. Added new data integrity section. 390 Updated security considerations to describe injection attacks. 391 -03: Extensive updates to address WG last call comments: rewrote 392 introduction, removed references to draft documents, changed 393 "HTML" to "HTTP" in Section 5, eliminated upper case words that 394 could be misunderstood to be normative guidance, rewrote 395 Section 3.4 and Section 3.5. 396 -04: Address AD evaluation comments: In Section 3.1 change "RDAP 397 MUST include an authentication framework that can accommodate" to 398 "RDAP's authentication framework needs to accomodate"; in 399 Section 3.2 change "RDAP MUST include an authorization framework 400 that is capable of providing granular (per registration data 401 object) access controls according to the policies of the operator" 402 to "An RDAP server MUST provide granular access controls (that is, 403 on a per registration data object basis) in order to implement 404 authorization policies"; move RFCs 4732, 5280, and 6749 from 405 normative to informative subsection. 407 Authors' Addresses 408 Scott Hollenbeck 409 Verisign Labs 410 12061 Bluemont Way 411 Reston, VA 20190 412 US 414 Email: shollenbeck@verisign.com 415 URI: http://www.verisignlabs.com/ 417 Ning Kong 418 China Internet Network Information Center 419 4 South 4th Street, Zhongguancun, Haidian District 420 Beijing 100190 421 China 423 Phone: +86 10 5881 3147 424 Email: nkong@cnnic.cn