| draft-iab-path-signals-collaboration-beforejuly.txt | draft-iab-path-signals-collaboration.txt | |||
|---|---|---|---|---|
| Network Working Group J. Arkko | Network Working Group J. Arkko | |||
| Internet-Draft Ericsson | Internet-Draft Ericsson | |||
| Intended status: Best Current Practice T. Hardie | Intended status: Informational T. Hardie | |||
| Expires: 9 January 2022 Cisco | Expires: 23 July 2022 Cisco | |||
| T. Pauly | T. Pauly | |||
| Apple | Apple | |||
| M. Kühlewind | M. Kühlewind | |||
| Ericsson | Ericsson | |||
| 8 July 2021 | 19 January 2022 | |||
| Considerations on Application - Network Collaboration Using Path Signals | Considerations on Application - Network Collaboration Using Path Signals | |||
| draft-iab-path-signals-collaboration-00 | draft-iab-path-signals-collaboration-00 | |||
| Abstract | Abstract | |||
| Encryption and other security mechanisms are on the rise on all | Encryption and other security mechanisms are on the rise on all | |||
| layers of the stack, protecting user data and making network | layers of the stack, protecting user data and making network | |||
| operations more secured. Further, encryption is also a tool to | operations more secured. Further, encryption is also a tool to | |||
| address ossification that has been observed on various layers of the | address ossification that has been observed over time. Separation of | |||
| stack over time. Separation of functions into layers and enforcement | functions into layers and enforcement of layer boundaries based on | |||
| of layer boundaries based on encryption supports selected exposure to | encryption supports selected exposure to those entities that are | |||
| those entities that are addressed by a function on a certain layer. | addressed by a function on a certain layer. A clear separation | |||
| A clear separation supports innovation and also enables new | supports innovation and also enables new opportunities for | |||
| opportunities for collaborative functions. RFC8558 describes path | collaborative functions. RFC 8558 describes path signals as messages | |||
| signals as messages to or from on-path elements. This document | to or from on-path elements. This document states principles for | |||
| states principles for designing mechanisms that use or provide path | designing mechanisms that use or provide path signals and calls for | |||
| signals and calls for actions on specific valuable cases. | actions on specific valuable cases. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 9 January 2022. | This Internet-Draft will expire on 23 July 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2022 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
| extracted from this document must include Simplified BSD License text | extracted from this document must include Simplified BSD License text | |||
| as described in Section 4.e of the Trust Legal Provisions and are | as described in Section 4.e of the Trust Legal Provisions and are | |||
| provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Past Guidance . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Past Guidance . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Problems with existing implicit signals . . . . . . . . . . . 4 | 3. Principles . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4. Principles . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. Intentional Distribution . . . . . . . . . . . . . . . . 7 | |||
| 4.1. Parties Need to Consent . . . . . . . . . . . . . . . . . 6 | 3.2. Minimum Set of Entities . . . . . . . . . . . . . . . . . 7 | |||
| 4.2. Nature of Information . . . . . . . . . . . . . . . . . . 6 | 3.3. Consent of Parties . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.3. Authenticating Discussion Partners . . . . . . . . . . . 8 | 3.4. Minimum Information . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.4. Authentication does not equal Trust . . . . . . . . . . . 8 | 3.5. Carrying Information . . . . . . . . . . . . . . . . . . 9 | |||
| 4.5. Granularity . . . . . . . . . . . . . . . . . . . . . . . 8 | 3.6. Protecting Information and Authentication . . . . . . . . 9 | |||
| 5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 | 4. Further Work . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 6. Informative References . . . . . . . . . . . . . . . . . . . 8 | 5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | 6. Informative References . . . . . . . . . . . . . . . . . . . 11 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | ||||
| 1. Introduction | 1. Introduction | |||
| Encryption, besides its important role in security in general, | Encryption, besides its important role in security in general, | |||
| provides a tool to control information access and protects again | provides a tool to control information access and protects again | |||
| ossification by avoiding unintended dependencies and requiring active | ossification by avoiding unintended dependencies and requiring active | |||
| maintenance. The increased deployment of encryption provides an | maintenance. The increased deployment of encryption provides an | |||
| opportunity to reconsider parts of Internet architecture that have | opportunity to reconsider parts of Internet architecture that have | |||
| rather used implicit derivation of input signals for on-path | rather used implicit derivation of input signals for on-path | |||
| functions than explicit signaling, as recommended by RFC8558. | functions than explicit signaling, as recommended by RFC 8558 | |||
| [RFC8558]. | ||||
| [RFC8558] defines the term path signals as signals to or from on-path | RFC 8558 defines the term path signals as signals to or from on-path | |||
| elements. Today path signals are often implicit, e.g. derived from | elements. Today path signals are often implicit, e.g. derived from | |||
| in-clear end-to-end information by e.g. examining transport | in-clear end-to-end information by e.g. examining transport | |||
| protocols. For instance, on-path elements use various fields of the | protocols. For instance, on-path elements use various fields of the | |||
| TCP header [RFC0793] to derive information about end-to-end latency | TCP header [RFC0793] to derive information about end-to-end latency | |||
| as well as congestion. These techniques have evolved because the | as well as congestion. These techniques have evolved because the | |||
| information was simply available and use of this information is | information was available and its use required no coordination with | |||
| easier and therefore also cheaper than any explicit and potentially | anyone. This made such techniques more easily deployed than | |||
| complex cooperative approach. | alternative, potentially more explicit or cooperative approaches. | |||
| Such techniques had some drawbacks as well, such as having to | ||||
| interpret information designed to be carried for another purpose. | ||||
| As such, applications and networks have evolved their interaction | As such, applications and networks have evolved their interaction | |||
| without comprehensive design for how this interaction should happen | without comprehensive design for how this interaction should happen | |||
| or which information would be desired for a certain function. This | or which information would be desired for a certain function. This | |||
| has lead to a situation where sometimes information is used that | has lead to a situation where sometimes information is used that | |||
| maybe incomplete or incorrect or often indirectly only derives the | maybe incomplete, incorrect, or only indirectly representative of the | |||
| information that was actually desired. Further, dependencies on | information that was actually desired. In addition, dependencies on | |||
| information and mechanisms that were designed for a different | information and mechanisms that were designed for a different | |||
| function limits the evolvability of the original intends. | function limits the evolvability of the protocols in question. | |||
| The unplanned interaction ends up having several negative effects: | ||||
| * Ossifying protocols by introducing unintended parties that may not | ||||
| be updating | ||||
| * Creating systemic incentives against deploying more secure or | ||||
| otherwise updated versions of protocols | ||||
| * Basing network behaviour on information that may be incomplete or | ||||
| incorrect | ||||
| * Creating a model where network entities expect to be able to use | ||||
| rich information about sessions passing through | ||||
| For instance, features such as DNS resolution or TLS setup have been | ||||
| used beyond their original intent, such as in name-based filtering. | ||||
| MAC addresses have been used for access control, captive portal | ||||
| implementations that employ taking over cleartext HTTP sessions, and | ||||
| so on. | ||||
| Increased deployment of encryption can and will change this | Increased deployment of encryption can and will change this | |||
| situation. E.g. QUIC replaces TCP for various application and | situation. For instance, QUIC replaces TCP for various application | |||
| protects all end-to-end signals to only be accessible by the | and protects all end-to-end signals to only be accessible by the | |||
| endpoint, ensuring evolvability [RFC9000]. QUIC does expose | endpoint, ensuring evolvability [RFC9000]. QUIC does expose | |||
| information dedicated for on-path elements to consume by design | information dedicated for on-path elements to consume by design | |||
| explicit signal for specific use cases, such as the Spin bit for | explicit signal for specific use cases, such as the Spin bit for | |||
| latency measurements or connection ID that can be used by load | latency measurements or connection ID that can be used by load | |||
| balancers [I-D.ietf-quic-manageability] but information is limited to | balancers [I-D.ietf-quic-manageability] but information is limited to | |||
| only those use cases. Each new use cases requires additional action. | only those use cases. Each new use cases requires additional action. | |||
| Such explicit signals that are specifically designed for the use of | Explicit signals that are specifically designed for the use of on- | |||
| on-path function, while all other information is appropriately | path function leave all other information is appropriately protected. | |||
| protected, enables an architecturally clean approach with the aims to | This enables an architecturally clean approach and evolvability, | |||
| use and manage the existing network infrastructure most efficiently | while allowing an information exchage that is important for improving | |||
| as well as improve the quality of experience for those this | the quality of experience for users and efficient management of the | |||
| technology is build for - the user. | network infrastructure built for them. | |||
| This draft then discusses different approaches for explicit | This draft discusses different approaches for explicit collaboration | |||
| collaboration and provides guidance on architectural principles to | and provides guidance on architectural principles to design new | |||
| design new mechanisms. | mechanisms. Section 2 discusses past guidance. Section 3 discusses | |||
| principles that good design can follow. This section also provides | ||||
| some examples and explanation of situations that not following the | ||||
| principles can lead to. Section 4 points to topics that need more to | ||||
| be looked at more carefully before any guidance can be given. | ||||
| 2. Past Guidance | 2. Past Guidance | |||
| Incentives are a well understood problem in general but perhaps not | Incentives are a well understood problem in general but perhaps not | |||
| fully internalised for various designs attempting to establish | fully internalised for various designs attempting to establish | |||
| collaboration between applications and path elements. The principle | collaboration between applications and path elements. The principle | |||
| is that both receiver and sender of information must acquire tangible | is that both receiver and sender of information must acquire tangible | |||
| and immediate benefits from the communication, such as improved | and immediate benefits from the communication, such as improved | |||
| performance, | performance. | |||
| A related issue is understanding whether a business model or | A related issue is understanding whether a business model or | |||
| ecosystem change is needed. Some designs may work well without any | ecosystem change is needed. For instance, relative prioritization | |||
| monetary or payment or cross-administrative domains agreements. For | between different flows of a user or an application does not require | |||
| instance, I could ask my packets to be prioritised relative to each | agreements or payments. But requesting prioritization over other | |||
| other and that shouldn't affect anything else. Some other designs | people's traffic may imply that you have to pay for that which may | |||
| may require a matching business ecosystem change to support what is | not be easy even for a single provider let alone across many. | |||
| being proposed, and may be much harder to achieve. For instance, | ||||
| requesting prioritisation over other people's traffic may imply that | ||||
| you have to pay for that which may not be easy even for a single | ||||
| provider let alone across many. | ||||
| But on to more technical aspects. | But on to more technical aspects. | |||
| The main guidance in [RFC8558] is to be aware that implicit signals | The main guidance in [RFC8558] is to be aware that implicit signals | |||
| will be used whether intended or not. Protocol designers should | will be used whether intended or not. Protocol designers should | |||
| consider either hiding these signals when the information should not | consider either hiding these signals when the information should not | |||
| be visible, or using explicit signals when it should be. | be visible, or using explicit signals when it should be. | |||
| [I-D.irtf-panrg-what-not-to-do] discusses many past failure cases, a | [RFC9049] discusses many past failure cases, a catalogue of past | |||
| catalogue of past issues to avoid. It also provides relevant | issues to avoid. It also provides relevant guidelines for new work, | |||
| guidelines for new work, from discussion of incentives to more | from discussion of incentives to more specific observations, such as | |||
| specific observations, such as the need for outperforming end-to-end | the need for outperforming end-to-end mechanisms (Section 4.4), | |||
| mechanisms (Section 4.4), considering the need for per-connection | considering the need for per-connection state (Section 4.6), taking | |||
| state (Section 4.6), and so on. | into account the latency involved in reacting to distant signals, and | |||
| so on. | ||||
| There are also more general guidance documents, e.g., [RFC5218] | There are also more general guidance documents, e.g., [RFC5218] | |||
| discusses protocol successes and failures, and provides general | discusses protocol successes and failures, and provides general | |||
| advice on incremental deployability etc. Internet Technology | advice on incremental deployability etc. Internet Technology | |||
| Adoption and Transition (ITAT) workshop report [RFC7305] is also | Adoption and Transition (ITAT) workshop report [RFC7305] is also | |||
| recommended reading on this same general topic. And [RFC6709] | recommended reading on this same general topic. And [RFC6709] | |||
| discusses protocol extensibility, and provides general advice on the | discusses protocol extensibility, and provides general advice on the | |||
| importance of global interoperability and so on. | importance of global interoperability and so on. | |||
| 3. Problems with existing implicit signals | 3. Principles | |||
| This kind of interaction ends up having several negative effects: | ||||
| * Ossifying protocols by introducing unintended parties that may not | ||||
| be updating | ||||
| * Creating systemic incentives against deploying more secure or | ||||
| private versions of protocols | ||||
| * Basing network behaviour on information that may be incomplete or | ||||
| incorrect | ||||
| * Creating a model where network entities expect to be able to use | ||||
| rich information about sessions passing through | ||||
| For instance, features such as DNS resolution or TLS setup have been | ||||
| used beyond their original intent, such as name filtering, MAC | ||||
| addresses used for access control, captive portal implementations | ||||
| that employ taking over cleartext HTTP sessions, and so on. | ||||
| 4. Principles | ||||
| This section attempts to provide some architecture-level principles | This section attempts to provide some architecture-level principles | |||
| that would help future designers, explain past issues and recommend | that would help future designers and recommend useful models to | |||
| useful models to apply. | apply. | |||
| ... | ||||
| A large number of our protocol mechanisms today fall into one of two | A large number of our protocol mechanisms today fall into one of two | |||
| categories: authenticated and private communication that is only | categories: authenticated and private communication that is only | |||
| visible by the end-to-end nodes; and unauthenticated public | visible to the end-to-end nodes; and unauthenticated public | |||
| communication that is visible to all nodes on a path. RFC 8558 | communication that is visible to all nodes on a path. RFC 8558 | |||
| explores the line between data that is protected and path signals. | explores the line between data that is protected and path signals. | |||
| There is a danger in taking a position that is too extreme towards | There is a danger in taking a position that is too extreme towards | |||
| either exposing all information to the path, or hiding all | either exposing all information to the path, or hiding all | |||
| information from the path. Exposed information encourages pervasive | information from the path. | |||
| monitoring, which is described in RFC 7258. But a lack of all path | ||||
| signaling, on the other hand, may be harmful to network management | ||||
| and the ability for networks to provide useful services. There are | ||||
| many cases where elements on the network path can provide beneficial | ||||
| services, but only if they can coordinate with the endpoints. This | ||||
| tradeoff between privacy and network functions has in some cases led | ||||
| to an adversarial stance between privacy and the ability for the | ||||
| network path to provide intended functions. | ||||
| One way to resolve this conflict is to add more explicit trust and | Exposed information encourages pervasive monitoring, which is | |||
| coordination between endpoints and network devices. VPNs are a good | described in RFC 7258 [RFC7258]. Exposed information may also be | |||
| example of a case where there is an explicit authentication and | used for commercial purposes, or form a basis for filtering that the | |||
| negotiation with a network path element that's used to optimize | applications or users do not desire. | |||
| behavior or gain access to specific resources. | ||||
| But a lack of all path signaling, on the other hand, may be harmful | ||||
| to network management, debugging, or the ability for networks to | ||||
| provide the most efficient services. There are many cases where | ||||
| elements on the network path can provide beneficial services, but | ||||
| only if they can coordinate with the endpoints. It also affects the | ||||
| ability of service providers and others observe why problems occur | ||||
| [RFC9075]. | ||||
| This situation is sometimes cast as an adversarial tradeoff between | ||||
| privacy and the ability for the network path to provide intended | ||||
| functions. However, this is perhaps an unnecessarily polarized | ||||
| characterization as a zero-sum situation. Not all information | ||||
| passing implies loss of privacy. For instance, performance | ||||
| information or preferences do not require disclosing user or | ||||
| application identity or what content is being accessed, network | ||||
| congestion status information does not have reveal network topology | ||||
| or the status of other users, and so on. | ||||
| This points to one way to resolve the adversity: the careful of | ||||
| design of what information is passed. | ||||
| Another approach is to employ explicit trust and coordination between | ||||
| endpoints and network devices. VPNs are a good example of a case | ||||
| where there is an explicit authentication and negotiation with a | ||||
| network path element that's used to optimize behavior or gain access | ||||
| to specific resources. | ||||
| The goal of improving privacy and trust on the Internet does not | The goal of improving privacy and trust on the Internet does not | |||
| necessarily need to remove the ability for network elements to | necessarily need to remove the ability for network elements to | |||
| perform beneficial functions. We should instead improve the way that | perform beneficial functions. We should instead improve the way that | |||
| these functions are achieved. Our goals should be: - To ensure that | these functions are achieved. Our goals should be: | |||
| information is distributed intentionally, not accidentally, as noted | ||||
| in [RFC8558]; - To understand the privacy and other implications of | * To ensure that information is distributed intentionally, not | |||
| any distributed information; and - To gate the distribution of | accidentally; | |||
| information on the consent of the relevant parties | ||||
| * to understand the privacy and other implications of any | ||||
| distributed information; | ||||
| * to ensure that the information distribution targets the intended | ||||
| parties; and | ||||
| * to gate the distribution of information on the consent of the | ||||
| relevant parties | ||||
| These goals for distribution apply equally to senders, receivers, and | These goals for distribution apply equally to senders, receivers, and | |||
| path elements. | path elements. | |||
| We can establish some basic questions that any new network path | We can establish some basic questions that any new network path | |||
| functions should consider: - What is the minimum set of entities that | functions should consider: | |||
| need to be involved in order to perform this function? - What is the | ||||
| minimum information each entity in this set needs to perform its part | ||||
| of the function correctly and reliably? - Which entities must consent | ||||
| to each piece of information that is shared? | ||||
| Consent and trust must determine the distribution of information. | * What is the minimum set of entities that need to be involved? | |||
| The set of entities that need to consent is determined by the scope | ||||
| and specificity of the information being shared. | * What is the minimum information each entity in this set needs? | |||
| * Which entities must consent to the information exchange? | ||||
| If we look at many of the ways network path functions are achieved | If we look at many of the ways network path functions are achieved | |||
| today, we find that many if not most of them fall short the standard | today, we find that many if not most of them fall short the standard | |||
| set up by the questions above. Too often, they rely on information | set up by the questions above. Too often, they send unnecessary | |||
| being sent without limiting the scope of distribution or providing | information or fail to limit the scope of distribution or providing | |||
| any negotiation or consent. | any negotiation or consent. | |||
| Going forward, new standards work in the IETF needs to focus on | Going forward, new standards work in the IETF needs to focus on | |||
| addressing this gap by providing better alternatives and mechanisms | addressing this gap by providing better alternatives and mechanisms | |||
| for providing path functions. Note that not all of these functions | for building functions that require some collaboration between | |||
| can be achieved in a way that preserves a high level of user privacy | endpoints and path elements. | |||
| from the network; in such cases, it is incumbent upon us to not | ||||
| ignore the use case, but instead to define the high bar for consent | ||||
| and trust, and thus define a limited applicability for those | ||||
| functions. | ||||
| 4.1. Parties Need to Consent | Some types of information shared between endpoints and path elements | |||
| have inherent privacy concerns. Careful scrutiny and a high bar of | ||||
| consent and trust needs to be applied. | ||||
| ... | 3.1. Intentional Distribution | |||
| 4.2. Nature of Information | This guideline is best expressed in RFC 8558: | |||
| One common problem in finding a workable solution for network - | "Fundamentally, this document recommends that implicit signals should | |||
| application collaboration is information leakage. All parties are | be avoided and that an implicit signal should be replaced with an | |||
| afraid of either their own propietary information or the users' data | explicit signal only when the signal's originator intends that it be | |||
| leaking to others. Oddly enough, no one is usually worried about | used by the network elements on the path. For many flows, this may | |||
| users' data leaking to themselves, but we digress. :-) | result in the signal being absent but allows it to be present when | |||
| needed." | ||||
| [I-D.per-app-networking-considerations] discusses how applications | This guideline applies also in the other direction as well. For | |||
| may be identified through collaboration mechanisms. This can be | instance, a network element should not unintentionally leak | |||
| harmful, as in extreme cases it may lead to undesirable | information that is visible to endpoints. An explicit decision is | |||
| prioritization decisions or even blocking certain applications. | needed for a specific information to be provided, along with analysis | |||
| [I-D.per-app-networking-considerations] explains how to reduce the | of the security and privacy implications of that information. | |||
| latter problem by categories or requested service rather than | ||||
| specific application identity, such as providing the category "video | 3.2. Minimum Set of Entities | |||
| call service" rather than the name of a particular application | ||||
| performing conference call or video call services. This points to a | It is recommended that a design identify the minimum number of | |||
| more general principle of information specificity, providing only the | entities needed to share a specific signal required for an identified | |||
| information that is needed for the other party to perform the | function. In some cases this will be a very limited set, e.g. when | |||
| collaboration task that is desired by this party, and not more. This | the application needs to provide a signal to a specific gateway | |||
| applies to information sent by an application about itself, | function. In other cases, such as congestion control, a signal might | |||
| information sent about users, or information sent by the network. | be shared with every router along the path, since each should be | |||
| aware of the congestion. | ||||
| While it is tempting to consider removing these limitations in the | ||||
| context of closed, private networks, each interaction is still best | ||||
| considered separately, rather than simply allowing all information | ||||
| exchanges within the closed network. Even in a closed network with | ||||
| carefully managed components there may be compromised components, as | ||||
| evidenced in the most extreme way by the Stuxnet worm that operated | ||||
| in an airgapped network. Most "closed" networks have at least some | ||||
| needs and means to access the rest of the Internet, and should not be | ||||
| modeled as if they had an impenetrable security barrier. | ||||
| 3.3. Consent of Parties | ||||
| Consent and trust must determine the distribution of information. | ||||
| The set of entities that need to consent is determined by the scope | ||||
| and specificity of the information being shared. | ||||
| Three distinct types of consent are recommended for collaboration or | ||||
| information sharing: | ||||
| * A corollary of the intentional distribution is that the sender | ||||
| needs to agree to sending the information. Or that the requester | ||||
| for an action needs to agree to make a request; it should not be | ||||
| an implicit decision by the receiver that information was sent or | ||||
| a request was made, just because a packet happened to be formed in | ||||
| a particular way. | ||||
| * At the same time, the recipient of information or the target of a | ||||
| request should agree to wishing to receive the information. It | ||||
| should not be burdened with extra processing if it does not have | ||||
| willigness or a need to do so. This happens naturally in most | ||||
| protocol designs, but has been a problem for some cases where | ||||
| "slow path" packet processing is required or implied, and the | ||||
| recipient or router did not have willingness for this. | ||||
| * Internet communications are not made for the applications, they | ||||
| are ultimately made on behalf of users. Information relating to | ||||
| the users is something that both networks and applications should | ||||
| be careful with, and not be shared without the user's consent. | ||||
| This is not always easy, as the interests of the user and (for | ||||
| instance) application developer may not always coincide; some | ||||
| applications may wish to collect more information about the user | ||||
| than the user would like. | ||||
| As a result, typically an application's consent is not the same as | ||||
| the user's consent. | ||||
| 3.4. Minimum Information | ||||
| Parties should provide only the information that is needed for the | ||||
| other party to perform the collaboration task that is desired by this | ||||
| party, and not more. This applies to information sent by an | ||||
| application about itself, information sent about users, or | ||||
| information sent by the network. | ||||
| An architecture can follow the guideline from RFC 8558 in using | An architecture can follow the guideline from RFC 8558 in using | |||
| explicit signals, but still fail to differentiate properly between | explicit signals, but still fail to differentiate properly between | |||
| information that should be kept private and information that should | information that should be kept private and information that should | |||
| be shared. | be shared. | |||
| In looking at what information can or cannot easily be passed, we can | In looking at what information can or cannot easily be passed, we can | |||
| look at both information from the network to the application, and | look at both information from the network to the application, and | |||
| from the application to the network. | from the application to the network. | |||
| For the application to the network direction, user-identifying | For the application to the network direction, user-identifying | |||
| information can be problematic for privacy and tracking reasons. | information can be problematic for privacy and tracking reasons. | |||
| Similarly, application identity can be problematic, if it might form | Similarly, application identity can be problematic, if it might form | |||
| the basis for prioritization or discrimination that the that | the basis for prioritization or discrimination that the that | |||
| application provider may not wish to happen. It may also have | application provider may not wish to happen. | |||
| undesirable economic consequences, such as extra charges for the | ||||
| consumer from a priority service where a regular service would have | ||||
| worked. | ||||
| On the other hand, as noted above, information about general classes | On the other hand, as noted above, information about general classes | |||
| of applications may be desirable to be given by application | of applications may be desirable to be given by application | |||
| providers, if it enables prioritization that would improve service, | providers, if it enables prioritization that would improve service, | |||
| e.g., differentiation between interactive and non-interactive | e.g., differentiation between interactive and non-interactive | |||
| services. | services. | |||
| For the network to application direction there's less directly | For the network to application direction there is similarly sensitive | |||
| sensitive information. Various network conditions, predictive | information, such as the precise location of the user. On the other | |||
| bandwidth and latency capabilities, and so on might be attractive | hand, various generic network conditions, predictive bandwidth and | |||
| information that applications can use to determine, for instance, | latency capabilities, and so on might be attractive information that | |||
| optimal strategies for changing codecs. | applications can use to determine, for instance, optimal strategies | |||
| for changing codecs. However, information given by the network about | ||||
| However, care needs to be take to ensure that neither private | load conditions and so on should not form a mechanism to provide a | |||
| information about the individual user (such as user's physical | ||||
| location) is not indirectly exposed through this information. | ||||
| Similarly, this information should not form a mechanism to provide a | ||||
| side-channel into what other users are doing. | side-channel into what other users are doing. | |||
| While information needs to be specific and provided on a per-need | While information needs to be specific and provided on a per-need | |||
| basis, it should also be declarative rather than specify some | basis, it is often beneficial to provide declarative information | |||
| actions. The information should show what the application needs, for | that, for instance, expresses application needs than makes specific | |||
| instance, rather than requiring the path elements to behave in some | requests for action. | |||
| specific fashion. | ||||
| One should also consider ways to verify the provided information, or | 3.5. Carrying Information | |||
| understand the implications if the information provided from the | ||||
| application may not be correct, or has been modified. | ||||
| 4.3. Authenticating Discussion Partners | There is a distinction between what information is passed and how it | |||
| is carried. The actually sent information may be limited, while the | ||||
| mechanisms for sending or requesting information can be capable of | ||||
| sending much more. | ||||
| (even outside the client and server) | There is a tradeoff here between flexibility and ensuring the | |||
| minimality of information in the future. The concern is that a fully | ||||
| generic data sharing approach between different layers and parties | ||||
| could potentially be misused, e.g., by making the availability of | ||||
| some information a requirement for passing through a network. | ||||
| ... | This is undesirable, and our recommendation is to employ very | |||
| targeted, minimal information carriage mechanisms. | ||||
| 4.4. Authentication does not equal Trust | 3.6. Protecting Information and Authentication | |||
| ... | Some simple forms of information often exist in cleartext form, e.g, | |||
| ECN bits from routers are generally not authenticated or integrity | ||||
| protected. This is possible when the information exchanges are | ||||
| advisory in their nature, and do not carry any significantly | ||||
| sensitive information from the parties. | ||||
| 4.5. Granularity | In other cases it may be necessary to establish a secure channel for | |||
| communication with a specific other party, e.g., between a network | ||||
| element and an application. This channel may need to be | ||||
| authenticated, integrity protected and encrypted. This is necessary, | ||||
| for instance, if the particular information or request needs to be | ||||
| share in confidency only with a particular, trusted node, or there's | ||||
| a danger of an attack where someone else may forge messages that | ||||
| could endanger the communication. | ||||
| In the IAB Covid-19 Network Impacts workshop Jana Iyengar brought up | However, it is important to note that authentication does not equal | |||
| the granularity of operations [I-D.iab-covid19-workshop]. There are | trust. Whether a communication is with an application server or | |||
| many reasons why per-flow designs are problematic: scalability, need | network element that can be shown to be associated with a particular | |||
| to release information about individual user's individual activities, | domain name, it does not follow that information about the user can | |||
| etc. Perhaps designs that work on aggregates would work better. | be safely sent to it. | |||
| In some cases, the ability of a party to show that it is on the path | ||||
| can be beneficial. For instance, an ICMP error that refers to a | ||||
| valid flow may be more trustworthy than any ICMP error claiming to | ||||
| come from an address. | ||||
| Other cases may require more substantial assurances. For instance, a | ||||
| specific trust arrangement may be established between a particular | ||||
| network and application. Or technologies such as confidential | ||||
| computing can be applied to provide an assurance that information | ||||
| processed by a party is handled in an appropriate manner. | ||||
| 4. Further Work | ||||
| This is a developing field, and it is expected that our understanding | ||||
| continues to grow. The recent changes with regards to much higher | ||||
| use of encryption at different protocol layers, the consolidation or | ||||
| more and more traffic to the same destinations, and so on have also | ||||
| greatly impacted the field. | ||||
| While there are some examples of modern, well-designed collaboration | ||||
| mechanisms, clearly more work is needed. Many complex cases would | ||||
| require significant developments in order to become feasible. | ||||
| Some of the most difficult areas are listed below. Research on these | ||||
| topics would be welcome. | ||||
| * Business arrangements. Many designs - for instance those related | ||||
| to quality-of-service - involve an expectation of paying for a | ||||
| service. This is possible and has been successful within | ||||
| individual domains, e.g., users can pay for higher data rates or | ||||
| data caps in their ISP networks. However, it is a business-wise | ||||
| much harder proposition for end-to-end connections across multiple | ||||
| administrative domains [Claffy2015] [RFC9049]. | ||||
| * Secure communications with path elements. This has been a | ||||
| difficult topic, both from the mechanics and scalability point | ||||
| view, but also because there is no easy way to find out which | ||||
| parties to trust or what trust roots would be appropriate. Some | ||||
| application-network element interaction designs have focused on | ||||
| information (such as ECN bits) that is distributed openly within a | ||||
| path, but there are limited examples of designs with secure | ||||
| information exchange with specific nodes. | ||||
| * The use of path signals for reducing the effects of denial-of- | ||||
| service attacks, e.g., in the form of modern "source quench" | ||||
| designs. | ||||
| * Ways of protecting information when held by network elements or | ||||
| servers, beyond communications security. For instance, host | ||||
| applications commonly share sensitive information about the user's | ||||
| actions with other nodes, starting from basic data such as domain | ||||
| names learned by DNS infrastructure or source and destination | ||||
| addresses and protocol header information learned by all routers | ||||
| on the path, to detailed end user identity and other information | ||||
| learned by the servers. Some solutions are starting to exist for | ||||
| this but are not widely deployed, at least not today [Oblivious] | ||||
| [PDoT] [I-D.arkko-dns-confidential] [I-D.thomson-http-oblivious]. | ||||
| These solutions address also very specific parts of the issue, and | ||||
| more work remains. | ||||
| * Sharing information from networks to applications. Some proposals | ||||
| have been made in this space (see, e.g., | ||||
| [I-D.flinck-mobile-throughput-guidance]) but there are no | ||||
| successful or deployed mechanisms today. | ||||
| 5. Acknowledgments | 5. Acknowledgments | |||
| The authors would like to thank everyone at the IETF, the IAB, and | The authors would like to thank everyone at the IETF, the IAB, and | |||
| our day jobs for interesting thoughts and proposals in this space. | our day jobs for interesting thoughts and proposals in this space. | |||
| Fragments of this document were also in | Fragments of this document were also in | |||
| [I-D.per-app-networking-considerations] and | [I-D.per-app-networking-considerations] and | |||
| [I-D.arkko-path-signals-information] that were published earlier. | [I-D.arkko-path-signals-information] that were published earlier. We | |||
| would also like to acknowledge [I-D.trammell-stackevo-explicit-coop] | ||||
| for presenting similar thoughts. Finally, the authors would like to | ||||
| thank Adrian Farrell, Toerless Eckert, Martin Thomson, Mark | ||||
| Nottingham, Luis M. Contreras, Watson Ladd, Vittorio Bertola, Andrew | ||||
| Campling, Eliot Lear, Spencer Dawkins, Christian Huitema, and Jeffrey | ||||
| Haas for useful feedback in the IABOPEN sessions and on the list. | ||||
| 6. Informative References | 6. Informative References | |||
| [Claffy2015] | ||||
| kc Claffy, . and D. Clark, "Adding Enhanced Services to | ||||
| the Internet: Lessons from History", TPRC 43: The 43rd | ||||
| Research Conference on Communication, Information and | ||||
| Internet Policy Paper , April 2015. | ||||
| [I-D.arkko-dns-confidential] | ||||
| Arkko, J. and J. Novotny, "Privacy Improvements for DNS | ||||
| Resolution with Confidential Computing", Work in Progress, | ||||
| Internet-Draft, draft-arkko-dns-confidential-02, 2 July | ||||
| 2021, <https://www.ietf.org/archive/id/draft-arkko-dns- | ||||
| confidential-02.txt>. | ||||
| [I-D.arkko-path-signals-information] | [I-D.arkko-path-signals-information] | |||
| Arkko, J., "Considerations on Information Passed between | Arkko, J., "Considerations on Information Passed between | |||
| Networks and Applications", Work in Progress, Internet- | Networks and Applications", Work in Progress, Internet- | |||
| Draft, draft-arkko-path-signals-information-00, 22 | Draft, draft-arkko-path-signals-information-00, 22 | |||
| February 2021, <https://www.ietf.org/archive/id/draft- | February 2021, <https://www.ietf.org/archive/id/draft- | |||
| arkko-path-signals-information-00.txt>. | arkko-path-signals-information-00.txt>. | |||
| [I-D.iab-covid19-workshop] | [I-D.flinck-mobile-throughput-guidance] | |||
| Arkko, J., Farrell, S., Kühlewind, M., and C. Perkins, | Jain, A., Terzis, A., Flinck, H., Sprecher, N., | |||
| "Report from the IAB COVID-19 Network Impacts Workshop | Arunachalam, S., Smith, K., Devarapalli, V., and R. B. | |||
| 2020", Work in Progress, Internet-Draft, draft-iab- | Yanai, "Mobile Throughput Guidance Inband Signaling | |||
| covid19-workshop-03, 5 May 2021, | Protocol", Work in Progress, Internet-Draft, draft-flinck- | |||
| <https://www.ietf.org/archive/id/draft-iab-covid19- | mobile-throughput-guidance-04, 13 March 2017, | |||
| workshop-03.txt>. | <https://www.ietf.org/archive/id/draft-flinck-mobile- | |||
| throughput-guidance-04.txt>. | ||||
| [I-D.ietf-quic-manageability] | [I-D.ietf-quic-manageability] | |||
| Kuehlewind, M. and B. Trammell, "Manageability of the QUIC | Kuehlewind, M. and B. Trammell, "Manageability of the QUIC | |||
| Transport Protocol", Work in Progress, Internet-Draft, | Transport Protocol", Work in Progress, Internet-Draft, | |||
| draft-ietf-quic-manageability-12, 30 June 2021, | draft-ietf-quic-manageability-13, 2 September 2021, | |||
| <https://www.ietf.org/archive/id/draft-ietf-quic- | <https://www.ietf.org/archive/id/draft-ietf-quic- | |||
| manageability-12.txt>. | manageability-13.txt>. | |||
| [I-D.irtf-panrg-what-not-to-do] | ||||
| Dawkins, S., "Path Aware Networking: Obstacles to | ||||
| Deployment (A Bestiary of Roads Not Taken)", Work in | ||||
| Progress, Internet-Draft, draft-irtf-panrg-what-not-to-do- | ||||
| 19, 26 March 2021, <https://www.ietf.org/archive/id/draft- | ||||
| irtf-panrg-what-not-to-do-19.txt>. | ||||
| [I-D.per-app-networking-considerations] | [I-D.per-app-networking-considerations] | |||
| Colitti, L. and T. Pauly, "Per-Application Networking | Colitti, L. and T. Pauly, "Per-Application Networking | |||
| Considerations", Work in Progress, Internet-Draft, draft- | Considerations", Work in Progress, Internet-Draft, draft- | |||
| per-app-networking-considerations-00, 15 November 2020, | per-app-networking-considerations-00, 15 November 2020, | |||
| <https://www.ietf.org/archive/id/draft-per-app-networking- | <https://www.ietf.org/archive/id/draft-per-app-networking- | |||
| considerations-00.txt>. | considerations-00.txt>. | |||
| [I-D.thomson-http-oblivious] | ||||
| Thomson, M. and C. A. Wood, "Oblivious HTTP", Work in | ||||
| Progress, Internet-Draft, draft-thomson-http-oblivious-02, | ||||
| 24 August 2021, <https://www.ietf.org/archive/id/draft- | ||||
| thomson-http-oblivious-02.txt>. | ||||
| [I-D.trammell-stackevo-explicit-coop] | ||||
| Trammell, B., "Architectural Considerations for Transport | ||||
| Evolution with Explicit Path Cooperation", Work in | ||||
| Progress, Internet-Draft, draft-trammell-stackevo- | ||||
| explicit-coop-00, 23 September 2015, | ||||
| <https://www.ietf.org/archive/id/draft-trammell-stackevo- | ||||
| explicit-coop-00.txt>. | ||||
| [Oblivious] | ||||
| Schmitt, P., "Oblivious DNS: Practical privacy for DNS | ||||
| queries", Proceedings on Privacy Enhancing Technologies | ||||
| 2019.2: 228-244 , 2019. | ||||
| [PDoT] Nakatsuka, Y., Paverd, A., and G. Tsudik, "PDoT: Private | ||||
| DNS-over-TLS with TEE Support", Digit. Threat.: Res. | ||||
| Pract., Vol. 2, No. 1, Article 3, | ||||
| https://dl.acm.org/doi/fullHtml/10.1145/3431171 , February | ||||
| 2021. | ||||
| [RFC0793] Postel, J., "Transmission Control Protocol", STD 7, | [RFC0793] Postel, J., "Transmission Control Protocol", STD 7, | |||
| RFC 793, DOI 10.17487/RFC0793, September 1981, | RFC 793, DOI 10.17487/RFC0793, September 1981, | |||
| <https://www.rfc-editor.org/info/rfc793>. | <https://www.rfc-editor.org/info/rfc793>. | |||
| [RFC5218] Thaler, D. and B. Aboba, "What Makes for a Successful | [RFC5218] Thaler, D. and B. Aboba, "What Makes for a Successful | |||
| Protocol?", RFC 5218, DOI 10.17487/RFC5218, July 2008, | Protocol?", RFC 5218, DOI 10.17487/RFC5218, July 2008, | |||
| <https://www.rfc-editor.org/info/rfc5218>. | <https://www.rfc-editor.org/info/rfc5218>. | |||
| [RFC6709] Carpenter, B., Aboba, B., Ed., and S. Cheshire, "Design | [RFC6709] Carpenter, B., Aboba, B., Ed., and S. Cheshire, "Design | |||
| Considerations for Protocol Extensions", RFC 6709, | Considerations for Protocol Extensions", RFC 6709, | |||
| DOI 10.17487/RFC6709, September 2012, | DOI 10.17487/RFC6709, September 2012, | |||
| <https://www.rfc-editor.org/info/rfc6709>. | <https://www.rfc-editor.org/info/rfc6709>. | |||
| [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | ||||
| Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | ||||
| 2014, <https://www.rfc-editor.org/info/rfc7258>. | ||||
| [RFC7305] Lear, E., Ed., "Report from the IAB Workshop on Internet | [RFC7305] Lear, E., Ed., "Report from the IAB Workshop on Internet | |||
| Technology Adoption and Transition (ITAT)", RFC 7305, | Technology Adoption and Transition (ITAT)", RFC 7305, | |||
| DOI 10.17487/RFC7305, July 2014, | DOI 10.17487/RFC7305, July 2014, | |||
| <https://www.rfc-editor.org/info/rfc7305>. | <https://www.rfc-editor.org/info/rfc7305>. | |||
| [RFC8558] Hardie, T., Ed., "Transport Protocol Path Signals", | [RFC8558] Hardie, T., Ed., "Transport Protocol Path Signals", | |||
| RFC 8558, DOI 10.17487/RFC8558, April 2019, | RFC 8558, DOI 10.17487/RFC8558, April 2019, | |||
| <https://www.rfc-editor.org/info/rfc8558>. | <https://www.rfc-editor.org/info/rfc8558>. | |||
| [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | |||
| Multiplexed and Secure Transport", RFC 9000, | Multiplexed and Secure Transport", RFC 9000, | |||
| DOI 10.17487/RFC9000, May 2021, | DOI 10.17487/RFC9000, May 2021, | |||
| <https://www.rfc-editor.org/info/rfc9000>. | <https://www.rfc-editor.org/info/rfc9000>. | |||
| [RFC9049] Dawkins, S., Ed., "Path Aware Networking: Obstacles to | ||||
| Deployment (A Bestiary of Roads Not Taken)", RFC 9049, | ||||
| DOI 10.17487/RFC9049, June 2021, | ||||
| <https://www.rfc-editor.org/info/rfc9049>. | ||||
| [RFC9075] Arkko, J., Farrell, S., Kühlewind, M., and C. Perkins, | ||||
| "Report from the IAB COVID-19 Network Impacts Workshop | ||||
| 2020", RFC 9075, DOI 10.17487/RFC9075, July 2021, | ||||
| <https://www.rfc-editor.org/info/rfc9075>. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Jari Arkko | Jari Arkko | |||
| Ericsson | Ericsson | |||
| Email: jari.arkko@ericsson.com | Email: jari.arkko@ericsson.com | |||
| Ted Hardie | Ted Hardie | |||
| Cisco | Cisco | |||
| End of changes. 51 change blocks. | ||||
| 193 lines changed or deleted | 400 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||