| < draft-nottingham-rfc5785bis-09.txt | draft-nottingham-rfc5785bis-10.txt > | |||
|---|---|---|---|---|
| Network Working Group M. Nottingham | Network Working Group M. Nottingham | |||
| Internet-Draft February 26, 2019 | Internet-Draft March 26, 2019 | |||
| Obsoletes: 5785, 8307 (if approved) | Obsoletes: 5785, 8307 (if approved) | |||
| Updates: 7230, 6455 (if approved) | Updates: 7230, 6455 (if approved) | |||
| Intended status: Standards Track | Intended status: Standards Track | |||
| Expires: August 30, 2019 | Expires: September 27, 2019 | |||
| Well-Known Uniform Resource Identifiers (URIs) | Well-Known Uniform Resource Identifiers (URIs) | |||
| draft-nottingham-rfc5785bis-09 | draft-nottingham-rfc5785bis-10 | |||
| Abstract | Abstract | |||
| This memo defines a path prefix for "well-known locations", "/.well- | This memo defines a path prefix for "well-known locations", "/.well- | |||
| known/", in selected Uniform Resource Identifier (URI) schemes. | known/", in selected Uniform Resource Identifier (URI) schemes. | |||
| In doing so, it obsoletes RFC 5785 and RFC 8307, and updates the URI | In doing so, it obsoletes RFC 5785 and RFC 8307, and updates the URI | |||
| schemes defined in RFC 7230 and RFC 6455 to reserve that space. | schemes defined in RFC 7230 and RFC 6455 to reserve that space. | |||
| Note to Readers | Note to Readers | |||
| skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 10 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 30, 2019. | This Internet-Draft will expire on September 27, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 34 ¶ | skipping to change at page 2, line 34 ¶ | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Notational Conventions . . . . . . . . . . . . . . . . . . . 3 | 2. Notational Conventions . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Well-Known URIs . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Well-Known URIs . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3.1. Registering Well-Known URIs . . . . . . . . . . . . . . . 5 | 3.1. Registering Well-Known URIs . . . . . . . . . . . . . . . 5 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.1. Interaction with Web Browsing . . . . . . . . . . . . . . 6 | 4.1. Protecting Well-Known Resources . . . . . . . . . . . . . 6 | |||
| 4.2. Scoping Applications . . . . . . . . . . . . . . . . . . 7 | 4.2. Interaction with Web Browsing . . . . . . . . . . . . . . 6 | |||
| 4.3. Hidden Capabilities . . . . . . . . . . . . . . . . . . . 8 | 4.3. Scoping Applications . . . . . . . . . . . . . . . . . . 7 | |||
| 4.4. Hidden Capabilities . . . . . . . . . . . . . . . . . . . 8 | ||||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.1. The Well-Known URI Registry . . . . . . . . . . . . . . . 8 | 5.1. The Well-Known URI Registry . . . . . . . . . . . . . . . 8 | |||
| 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 6.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 6.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
| 6.2. Informative References . . . . . . . . . . . . . . . . . 9 | 6.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
| 6.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 6.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| Appendix A. Frequently Asked Questions . . . . . . . . . . . . . 11 | Appendix A. Frequently Asked Questions . . . . . . . . . . . . . 11 | |||
| Appendix B. Changes from RFC5785 . . . . . . . . . . . . . . . . 11 | Appendix B. Changes from RFC5785 . . . . . . . . . . . . . . . . 12 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 1. Introduction | 1. Introduction | |||
| Some applications on the Web require the discovery of information | Some applications on the Web require the discovery of information | |||
| about an origin [RFC6454] (sometimes called "site-wide metadata") | about an origin [RFC6454] (sometimes called "site-wide metadata") | |||
| before making a request. For example, the Robots Exclusion Protocol | before making a request. For example, the Robots Exclusion Protocol | |||
| (http://www.robotstxt.org/ [5]) specifies a way for automated | (http://www.robotstxt.org/ [5]) specifies a way for automated | |||
| processes to obtain permission to access resources; likewise, the | processes to obtain permission to access resources; likewise, the | |||
| Platform for Privacy Preferences [P3P] tells user-agents how to | Platform for Privacy Preferences [P3P] tells user-agents how to | |||
| discover privacy policy before interacting with an origin server. | discover privacy policy before interacting with an origin server. | |||
| skipping to change at page 3, line 26 ¶ | skipping to change at page 3, line 27 ¶ | |||
| way to locate one or more resources on a given host. | way to locate one or more resources on a given host. | |||
| When this happens, one solution is to designate a "well-known | When this happens, one solution is to designate a "well-known | |||
| location" for data or services related to the origin overall, so that | location" for data or services related to the origin overall, so that | |||
| it can be easily located. However, this approach has the drawback of | it can be easily located. However, this approach has the drawback of | |||
| risking collisions, both with other such designated "well-known | risking collisions, both with other such designated "well-known | |||
| locations" and with resources that the origin has created (or wishes | locations" and with resources that the origin has created (or wishes | |||
| to create). Furthermore, defining well-known locations usurp's the | to create). Furthermore, defining well-known locations usurp's the | |||
| origin's control over its own URI space [RFC7320]. | origin's control over its own URI space [RFC7320]. | |||
| To address these uses, this memo defines a path prefix in HTTP(S) | To address these uses, this memo reserves a path prefix in HTTP, | |||
| URIs for these "well-known locations", "/.well-known/". Future | HTTPS, WS and WSS URIs for these "well-known locations", "/.well- | |||
| specifications that need to define a resource for such metadata can | known/". Future specifications that need to define a resource for | |||
| register their use to avoid collisions and minimise impingement upon | such metadata can register their use to avoid collisions and minimise | |||
| origins' URI space. | impingement upon origins' URI space. | |||
| Well-known URIs can also be used with other URI schemes, but only | Well-known URIs can also be used with other URI schemes, but only | |||
| when those schemes' definitions explicitly allow it. | when those schemes' definitions explicitly allow it. | |||
| 2. Notational Conventions | 2. Notational Conventions | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| skipping to change at page 5, line 47 ¶ | skipping to change at page 5, line 47 ¶ | |||
| Values defined by standards-track RFCs and other open standards (in | Values defined by standards-track RFCs and other open standards (in | |||
| the sense of [RFC2026], Section 7.1.1) have a status of "permanent". | the sense of [RFC2026], Section 7.1.1) have a status of "permanent". | |||
| Other values can also be registered as permanent, if the Experts find | Other values can also be registered as permanent, if the Experts find | |||
| that they are in use, in consultation with the community. Other | that they are in use, in consultation with the community. Other | |||
| values should be registered as "provisional". | values should be registered as "provisional". | |||
| Provisional entries can be removed by the Experts if - in | Provisional entries can be removed by the Experts if - in | |||
| consultation with the community - the Experts find that they are not | consultation with the community - the Experts find that they are not | |||
| in use. The Experts can change a provisional entry's status to | in use. The Experts can change a provisional entry's status to | |||
| permanent at any time. | permanent; in doing so, the Experts should consider how widely used a | |||
| value is, and consult the community beforehand. | ||||
| Note that well-known URIs can be registered by third parties | Note that "consult with the community" above refers to those | |||
| (including the expert(s)), if the expert(s) determines that an | responsible for the URI scheme(s) in question. Generally, this would | |||
| unregistered well-known URI is widely deployed and not likely to be | take place on the mailing list(s) of the appropriate Working Group(s) | |||
| registered in a timely manner otherwise. Such registrations still | (possibly historical), or on art@ietf.org if no such list exists. | |||
| are subject to the requirements defined, including the need to | ||||
| reference a specification. | Well-known URIs can be registered by third parties (including the | |||
| expert(s)), if the expert(s) determine that an unregistered well- | ||||
| known URI is widely deployed and not likely to be registered in a | ||||
| timely manner otherwise. Such registrations still are subject to the | ||||
| requirements defined, including the need to reference a | ||||
| specification. | ||||
| 4. Security Considerations | 4. Security Considerations | |||
| Applications minting new well-known URIs, as well as administrators | Applications minting new well-known URIs, as well as administrators | |||
| deploying them, will need to consider several security-related | deploying them, will need to consider several security-related | |||
| issues, including (but not limited to) exposure of sensitive data, | issues, including (but not limited to) exposure of sensitive data, | |||
| denial-of-service attacks (in addition to normal load issues), server | denial-of-service attacks (in addition to normal load issues), server | |||
| and client authentication, vulnerability to DNS rebinding attacks, | and client authentication, vulnerability to DNS rebinding attacks, | |||
| and attacks where limited access to a server grants the ability to | and attacks where limited access to a server grants the ability to | |||
| affect how well-known URIs are served. | affect how well-known URIs are served. | |||
| 4.1. Interaction with Web Browsing | [RFC3552] contains some examples of potential security considerations | |||
| that may be relevant to application protocols and administrators | ||||
| deploying them. | ||||
| 4.1. Protecting Well-Known Resources | ||||
| Because well-known locations effectively represent the entire origin, | ||||
| server operators should appropriately control the ability to write to | ||||
| them. This is especially true when more than one entity is co- | ||||
| located on the same origin. Even for origins that are controlled by | ||||
| and represent a single entity, due care should be taken to assure | ||||
| that write access to well-known locations is not granted unwittingly, | ||||
| either externally through server configuration, or locally through | ||||
| implementation permissions (e.g., on a filesystem). | ||||
| 4.2. Interaction with Web Browsing | ||||
| Applications using well-known URIs for "http" or "https" URLs need to | Applications using well-known URIs for "http" or "https" URLs need to | |||
| be aware that well-known resources will be accessible to Web | be aware that well-known resources will be accessible to Web | |||
| browsers, and therefore are able to be manipulated by content | browsers, and therefore are able to be manipulated by content | |||
| obtained from other parts of that origin. If an attacker is able to | obtained from other parts of that origin. If an attacker is able to | |||
| inject content (e.g., through a Cross-Site Scripting vulnerability), | inject content (e.g., through a Cross-Site Scripting vulnerability), | |||
| they will be able to make potentially arbitrary requests to the well- | they will be able to make potentially arbitrary requests to the well- | |||
| known resource. | known resource. | |||
| HTTP and HTTPS also use origins as a security boundary for many other | HTTP and HTTPS also use origins as a security boundary for many other | |||
| skipping to change at page 7, line 22 ¶ | skipping to change at page 7, line 44 ¶ | |||
| o Using Referrer-Policy [REFERRER-POLICY] to prevent sensitive data | o Using Referrer-Policy [REFERRER-POLICY] to prevent sensitive data | |||
| in URLs from being leaked in the Referer request header field | in URLs from being leaked in the Referer request header field | |||
| o Avoiding use of compression on any sensitive information (e.g., | o Avoiding use of compression on any sensitive information (e.g., | |||
| authentication tokens, passwords), as the scripting environment | authentication tokens, passwords), as the scripting environment | |||
| offered by Web browsers allows an attacker to repeatedly probe the | offered by Web browsers allows an attacker to repeatedly probe the | |||
| compression space; if the attacker has access to the path of the | compression space; if the attacker has access to the path of the | |||
| communication, they can use this capability to recover that | communication, they can use this capability to recover that | |||
| information. | information. | |||
| 4.2. Scoping Applications | 4.3. Scoping Applications | |||
| This memo does not specify the scope of applicability for the | This memo does not specify the scope of applicability for the | |||
| information obtained from a well-known URI, and does not specify how | information obtained from a well-known URI, and does not specify how | |||
| to discover a well-known URI for a particular application. | to discover a well-known URI for a particular application. | |||
| Individual applications using this mechanism must define both | Individual applications using this mechanism must define both | |||
| aspects; if this is not specified, security issues can arise from | aspects; if this is not specified, security issues can arise from | |||
| implementation deviations and confusion about boundaries between | implementation deviations and confusion about boundaries between | |||
| applications. | applications. | |||
| skipping to change at page 8, line 5 ¶ | skipping to change at page 8, line 23 ¶ | |||
| where there might be none, giving control to a potential attacker. | where there might be none, giving control to a potential attacker. | |||
| Likewise, specifying that a well-known URI on a particular hostname | Likewise, specifying that a well-known URI on a particular hostname | |||
| is to be used to bootstrap a protocol can cause a large number of | is to be used to bootstrap a protocol can cause a large number of | |||
| undesired requests. For example, if a well-known HTTPS URI is used | undesired requests. For example, if a well-known HTTPS URI is used | |||
| to find policy about a separate service such as e-mail, it can result | to find policy about a separate service such as e-mail, it can result | |||
| in a flood of requests to Web servers, even if they don't implement | in a flood of requests to Web servers, even if they don't implement | |||
| the well-known URI. Such undesired requests can resemble a denial- | the well-known URI. Such undesired requests can resemble a denial- | |||
| of-services attack. | of-services attack. | |||
| 4.3. Hidden Capabilities | 4.4. Hidden Capabilities | |||
| Applications using well-known locations should consider that some | Applications using well-known locations should consider that some | |||
| server administrators might be unaware of its existence (especially | server administrators might be unaware of its existence (especially | |||
| on operating systems that hide directories whose names begin with | on operating systems that hide directories whose names begin with | |||
| "."). This means that if an attacker has write access to the .well- | "."). This means that if an attacker has write access to the .well- | |||
| known directory, they would be able to control its contents, possibly | known directory, they would be able to control its contents, possibly | |||
| without the administrator realising it. | without the administrator realising it. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| skipping to change at page 10, line 15 ¶ | skipping to change at page 10, line 32 ¶ | |||
| [REFERRER-POLICY] | [REFERRER-POLICY] | |||
| Eisinger, J. and E. Stark, "Referrer Policy", World Wide | Eisinger, J. and E. Stark, "Referrer Policy", World Wide | |||
| Web Consortium CR CR-referrer-policy-20170126, January | Web Consortium CR CR-referrer-policy-20170126, January | |||
| 2017, | 2017, | |||
| <https://www.w3.org/TR/2017/CR-referrer-policy-20170126>. | <https://www.w3.org/TR/2017/CR-referrer-policy-20170126>. | |||
| [RFC2026] Bradner, S., "The Internet Standards Process -- Revision | [RFC2026] Bradner, S., "The Internet Standards Process -- Revision | |||
| 3", BCP 9, RFC 2026, DOI 10.17487/RFC2026, October 1996, | 3", BCP 9, RFC 2026, DOI 10.17487/RFC2026, October 1996, | |||
| <https://www.rfc-editor.org/info/rfc2026>. | <https://www.rfc-editor.org/info/rfc2026>. | |||
| [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC | ||||
| Text on Security Considerations", BCP 72, RFC 3552, | ||||
| DOI 10.17487/RFC3552, July 2003, | ||||
| <https://www.rfc-editor.org/info/rfc3552>. | ||||
| [RFC4918] Dusseault, L., Ed., "HTTP Extensions for Web Distributed | [RFC4918] Dusseault, L., Ed., "HTTP Extensions for Web Distributed | |||
| Authoring and Versioning (WebDAV)", RFC 4918, | Authoring and Versioning (WebDAV)", RFC 4918, | |||
| DOI 10.17487/RFC4918, June 2007, | DOI 10.17487/RFC4918, June 2007, | |||
| <https://www.rfc-editor.org/info/rfc4918>. | <https://www.rfc-editor.org/info/rfc4918>. | |||
| [RFC5785] Nottingham, M. and E. Hammer-Lahav, "Defining Well-Known | [RFC5785] Nottingham, M. and E. Hammer-Lahav, "Defining Well-Known | |||
| Uniform Resource Identifiers (URIs)", RFC 5785, | Uniform Resource Identifiers (URIs)", RFC 5785, | |||
| DOI 10.17487/RFC5785, April 2010, | DOI 10.17487/RFC5785, April 2010, | |||
| <https://www.rfc-editor.org/info/rfc5785>. | <https://www.rfc-editor.org/info/rfc5785>. | |||
| End of changes. 14 change blocks. | ||||
| 28 lines changed or deleted | 55 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||