idnits 2.17.1 draft-ietf-weirds-rdap-sec-02.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 (April 04, 2013) is 4038 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-02 == Outdated reference: A later version (-18) exists of draft-ietf-weirds-rdap-query-03 -- 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) ** Downref: Normative reference to an Informational RFC: RFC 4732 ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) Summary: 5 errors (**), 0 flaws (~~), 3 warnings (==), 2 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: October 06, 2013 CNNIC 6 April 04, 2013 8 Security Services for the Registration Data Access Protocol 9 draft-ietf-weirds-rdap-sec-02 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, specific requirements for RDAP, and approaches to 17 provide RDAP security services. 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 October 06, 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 . . . . . . . . . . . . . . 2 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 . . . . . . . . . . . . . . . . . . 6 62 3.5. Data Integrity . . . . . . . . . . . . . . . . . . . . . 6 63 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 64 5. Security Considerations . . . . . . . . . . . . . . . . . . . 7 65 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 66 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 67 7.1. Normative References . . . . . . . . . . . . . . . . . . 8 68 7.2. Informative References . . . . . . . . . . . . . . . . . 9 69 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 9 70 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 72 1. Introduction 74 The Registration Data Access Protocol (RDAP) core is specified in two 75 documents: "Registration Data Access Protocol Lookup Format" 76 [I-D.ietf-weirds-rdap-query] and "JSON Responses for the Registration 77 Data Access Protocol (RDAP)" [I-D.ietf-weirds-json-response]. One 78 goal of RDAP is to provide security services that do not exist in the 79 WHOIS [RFC3912] protocol, including authentication, authorization, 80 availability, data confidentiality, and data integrity. 82 This document describes each of these security services from the 83 perspective of RDAP requirements and applicability. Where 84 applicable, informational references to requirements for a WHOIS 85 replacement service [RFC3707] are noted. 87 2. Conventions Used in This Document 88 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 89 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 90 document are to be interpreted as described in RFC 2119 [RFC2119]. 92 2.1. Acronyms and Abbreviations 94 DNR: Domain Name Registry 96 RDAP: Registration Data Access Protocol 98 RIR: Regional Internet Registry 100 3. Information Security Services and RDAP 102 RDAP itself does not include native security services. Instead, RDAP 103 relies on features that are available in other protocol layers to 104 provide needed security services including authentication, 105 authorization, availability, data confidentiality, and data 106 integrity. A description of each of these security services can be 107 found in RFC 4949 [RFC4949]. No requirements have been identified 108 for other security services. 110 3.1. Authentication 112 WHOIS does not provide features to identify and authenticate clients. 113 As noted in section 3.1.4.2 of RFC 3707 [RFC3707], there is utility 114 in allowing server operators to offer "varying degrees of access 115 depending on policy and need". Clients have to be identified and 116 authenticated to provide that utility. 118 REQUIREMENT: RDAP MUST include an authentication framework that can 119 accommodate anonymous access as well as verification of identities 120 using a range of authentication methods and credential services. 122 REQUIREMENT: The RDAP authentication framework MUST use 123 authentication methods that are fully specified and available to 124 existing HTTP clients and servers. 126 REQUIREMENT: The RDAP authentication framework MUST be capable of 127 supporting future authentication methods defined for use with HTTP. 129 APPROACH: RDAP clients and servers MUST implement the authentication 130 framework specified in RFC 2617 [RFC2617]. The "basic" scheme can be 131 used to send a client's user name and password to a server in 132 plaintext, based64-encoded form. The "digest" scheme can be used to 133 authenticate a client without exposing the client's plaintext 134 password. If the "basic" scheme is used another protocol (such as 135 HTTP Over TLS [RFC2818]) MUST be used to protect the client's 136 credentials from disclosure while in transit (see Section 3.4). 138 The Transport Layer Security Protocol [RFC5246] includes an optional 139 feature to identify and authenticate clients who possess and present 140 a valid X.509 digital certificate [RFC5280]. Support for this 141 feature is OPTIONAL. 143 3.1.1. Federated Authentication 145 The traditional client-server authentication model requires clients 146 to maintain distinct credentials for every RDAP server. This 147 situation can become unwieldy as the number of RDAP servers 148 increases. Federated authentication mechanisms allow clients to use 149 one credential to access multiple RDAP servers and reduce client 150 credential management complexity. RDAP MAY include a federated 151 authentication mechanism that permits a client to access multiple 152 RDAP servers in the same federation with one credential. 154 Federated authentication mechanisms used by RDAP are OPTIONAL. If 155 used, they MUST be fully supported by HTTP. 157 POSSIBLE APPROACH: The OAuth authorization framework [RFC6749] 158 describes a method for users to access protected web resources 159 without having to hand out their credentials. Instead, clients 160 supply access tokens issued by an authorization server with the 161 permission of the resource owner. Using OAuth, multiple RDAP servers 162 can form a federation and the clients can access any server in the 163 same federation by providing one credential registered in any server 164 in that federation. The OAuth authorization framework is designed 165 for use with HTTP and thus can be used with RDAP. 167 POSSIBLE APPROACH: OpenID [OpenID] is a decentralized single sign-on 168 authentication system that allows users to log in at web sites with 169 one ID instead of having to create multiple unique accounts. OpenID 170 is decentralized. An end user can freely choose which OpenID 171 provider to use, and can preserve their Identifier if they switch 172 OpenID providers. [To be discussed: Is it possible to introduce 173 OpenID into RDAP?] 175 POSSIBLE APPROACH: Section 7.4.6 of the Transport Layer Security 176 Protocol [RFC5246] describes the specification of a client 177 certificate. Clients who possess and present a valid X.509 digital 178 certificate, issued by an entity called "Certification Authority" 179 (CA), could be identified and authenticated by a server who trusts 180 the corresponding CA. A certificate authentication method can be 181 used to achieve federated authentication in which multiple RDAP 182 servers all trust the same CAs and then any client with a certificate 183 issued by a trusted CA can access any RDAP server in the federation. 184 This certificate-based mechanism is supported by HTTPS and can be 185 introduced into RDAP. 187 3.2. Authorization 189 WHOIS does not provide services to grant different levels of access 190 to clients based on a client's authenticated identity. As noted in 191 section 3.1.4.2 of RFC 3707 [RFC3707], there is utility in allowing 192 server operators to offer "varying degrees of access depending on 193 policy and need". Access control decisions can be made once a 194 client's identity has been established and authenticated (see 195 Section 3.1). 197 REQUIREMENT: RDAP MUST include an authorization framework that is 198 capable of providing granular (per registration data object) access 199 controls according to the policies of the operator. 201 APPROACH: Server operators will offer varying degrees of access 202 depending on policy and need in conjunction with the authentication 203 methods described in Section 3.1. Some examples: 205 - Clients will be allowed access only to data for which they have a 206 relationship. 208 - Unauthenticated or anonymous access status may not yield any 209 contact information. 211 - Full access may be granted to a special group of authenticated 212 clients. 214 The type of access allowed by a server will most likely vary from one 215 operator to the next. 217 3.3. Availability 219 An RDAP service has to be available to be useful. There are no RDAP- 220 unique requirements to provide availability, but as a general 221 security consideration a service operator needs to be aware of the 222 issues associated with denial of service. A thorough reading of RFC 223 4732 [RFC4732] is RECOMMENDED. 225 An RDAP service MAY use a throttling mechanism to limit the number of 226 queries that a single client can send in a given period of time. If 227 used, the server SHOULD return a 429 response code as described in 228 RFC 6585 [RFC6585]. A client that receives a 429 response SHOULD 229 decrease its query rate, and honor the Retry-After header if one is 230 present. 232 3.4. Data Confidentiality 234 WHOIS does not provide the ability to encrypt data while in transit 235 to protect it from inadvertent disclosure. Web services commonly use 236 HTTP Over TLS [RFC2818] to provide that protection. 238 REQUIREMENT: RDAP or a protocol layer used by RDAP MUST include 239 features to protect plaintext client credentials used for client 240 authentication. 242 REQUIREMENT: The data confidentiality methods used by RDAP MUST be 243 fully specified and available to existing HTTP clients and servers. 245 REQUIREMENT: RDAP MUST be capable of supporting future data 246 confidentiality methods defined for use with HTTP. 248 OPTION: RDAP or a protocol layer used by RDAP MAY include features to 249 encrypt client-server data exchanges. 251 APPROACH: As noted in Section 3.1, the HTTP "basic" authentication 252 scheme can be used to authenticate a client. When this scheme is 253 used HTTP Over TLS [RFC2818] MUST be used to protect the client's 254 credentials from disclosure while in transit. HTTP Over TLS MAY also 255 be used to protect client-server data exchanges if the policy of the 256 server operator requires encryption. There are no current 257 requirements for object-level encryption, but RDAP MUST NOT preclude 258 support for this feature in the future. 260 3.5. Data Integrity 262 WHOIS does not provide the ability to protect data from modification 263 while in transit. Web services commonly use HTTP Over TLS [RFC2818] 264 to provide that protection. Digital signatures as described in RFC 265 4949 [RFC4949] are also used to provide data integrity. Note that 266 this security service is often mistakenly associated with policy 267 requirements focused on data accuracy; those requirements are out of 268 scope for this protocol. The most specific need for this service is 269 to provide assurance that HTTP redirection hints [RFC2616] are not 270 modified. 272 REQUIREMENT: RDAP or a protocol layer used by RDAP MUST include 273 features to protect HTTP 30x redirection hints from modification. 275 REQUIREMENT: The data integrity methods used by RDAP MUST be fully 276 specified and available to existing HTTP clients and servers. 278 OPTION: RDAP or a protocol layer used by RDAP MAY include features to 279 provide message integrity checks. 281 REQUIREMENT: RDAP MUST be capable of supporting future JSON data 282 integrity methods defined for use with HTTP. 284 OPTION: RDAP or a protocol layer used by RDAP MAY include features to 285 provide data integrity by signing JSON-encoded objects. 287 APPROACH: HTTP Over TLS MAY be used to protect client-server data 288 exchanges if the policy of the server operator requires message 289 integrity. There are no current requirements for object-level data 290 signing, but RDAP MUST NOT preclude support for this feature in the 291 future. 293 4. IANA Considerations 295 This document does not specify any IANA actions. This section can be 296 removed if this document is published as an RFC. 298 5. Security Considerations 300 One of the goals of RDAP is to provide security services that do not 301 exist in the WHOIS protocol. This document describes the security 302 services provided by RDAP and associated protocol layers, including 303 authentication, authorization, availability, data confidentiality, 304 and data integrity. Non-repudiation services were also considered 305 and ultimately rejected due to a lack of requirements. There are, 306 however, currently-deployed WHOIS servers that can return signed 307 responses that provide non-repudiation with proof of origin. RDAP 308 MUST NOT preclude support for this feature in the future. 310 As an HTML-based protocol RDAP is susceptible to code injection 311 attacks. Code injection refers to adding code into a computer system 312 or program to alter the course of execution. There are many types of 313 code injection, including SQL injection, dynamic variable or function 314 injection, include file injection, shell injection, and html-script 315 injection among others. Data confidentiality and integrity services 316 provide a measure of defense against man-in-the-middle injection 317 attacks, but vulnerabilities in both client- and server-side software 318 make it possible for injection attacks to succeed. 320 6. Acknowledgements 322 The authors would like to acknowledge the following individuals for 323 their contributions to this document: Marc Blanchet, Jean-Philippe 324 Dionne, Andrew Newton, and Linlin Zhou. 326 7. References 328 7.1. Normative References 330 [I-D.ietf-weirds-json-response] 331 Newton, A. and S. Hollenbeck, "JSON Responses for the 332 Registration Data Access Protocol (RDAP)", draft-ietf- 333 weirds-json-response-02 (work in progress), January 2013. 335 [I-D.ietf-weirds-rdap-query] 336 Newton, A. and S. Hollenbeck, "Registration Data Access 337 Protocol Lookup Format", draft-ietf-weirds-rdap-query-03 338 (work in progress), March 2013. 340 [OpenID] OpenID Foundation, "OpenID Authentication 2.0 - Final ", 341 December 2007, . 343 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 344 Requirement Levels", BCP 14, RFC 2119, March 1997. 346 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., 347 Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext 348 Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. 350 [RFC2617] Franks, J., Hallam-Baker, P.M., Hostetler, J.L., Lawrence, 351 S.D., Leach, P.J., Luotonen, A., and L. Stewart, "HTTP 352 Authentication: Basic and Digest Access Authentication", 353 RFC 2617, June 1999. 355 [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. 357 [RFC4732] Handley, M., Rescorla, E., IAB, "Internet Denial-of- 358 Service Considerations", RFC 4732, December 2006. 360 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 361 (TLS) Protocol Version 1.2", RFC 5246, August 2008. 363 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., 364 Housley, R., and W. Polk, "Internet X.509 Public Key 365 Infrastructure Certificate and Certificate Revocation List 366 (CRL) Profile", RFC 5280, May 2008. 368 [RFC6585] Nottingham, M. and R. Fielding, "Additional HTTP Status 369 Codes", RFC 6585, April 2012. 371 [RFC6749] Hardt, D., "The OAuth 2.0 Authorization Framework", RFC 372 6749, October 2012. 374 7.2. Informative References 376 [RFC3707] Newton, A., "Cross Registry Internet Service Protocol 377 (CRISP) Requirements", RFC 3707, February 2004. 379 [RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912, 380 September 2004. 382 [RFC4949] Shirey, R., "Internet Security Glossary, Version 2", RFC 383 4949, August 2007. 385 Appendix A. Change Log 387 Initial -00: Adopted as working group document. 388 -01: Extensive text additions and revisions based on in-room 389 discussion at IETF-85. Sections for data integrity and non- 390 repudiation have been removed due to a lack of requirements, but 391 both topics are now addressed in the Security Considerations 392 section. 393 -02: Fixed document names in the Introduction. Modified text in 394 Section 3.1.1 to clarify requirement. Added text to Section 3.3 395 to describe rate limiting. Added new data integrity section. 396 Updated security considerations to describe injection attacks. 398 Authors' Addresses 400 Scott Hollenbeck 401 Verisign Labs 402 12061 Bluemont Way 403 Reston, VA 20190 404 US 406 Email: shollenbeck@verisign.com 407 URI: http://www.verisignlabs.com/ 408 Ning Kong 409 China Internet Network Information Center 410 4 South 4th Street, Zhongguancun, Haidian District 411 Beijing 100190 412 China 414 Phone: +86 10 5881 3147 415 Email: nkong@cnnic.cn