]>
Considerations on Application - Network Collaboration Using Path Signals
Ericsson
jari.arkko@ericsson.com
Cisco
ted.ietf@gmail.com
Apple
tpauly@apple.com
Ericsson
mirja.kuehlewind@ericsson.com
This document discusses principles for designing mechanisms that use
or provide path signals and calls for standards action in specific
valuable cases. RFC 8558 describes path signals as messages to or from
on-path elements and points out that visible information will be used
whether or not it is intended as a signal. The principles in this
document are intended as guidance for the design of explicit path
signals, which are encouraged to be authenticated and include a minimal
set of parties to minimize information sharing. These principles can be
achieved through mechanisms like encryption of information and
establishing trust relationships between entities on a path.
Introduction
defines the term "path
signals" as signals to or from on-path elements. Today, path signals are
often implicit; for example, they are derived from cleartext end-to-end information by,
e.g., examining transport protocols. For instance, on-path elements use
various fields of the TCP header to derive information about end-to-end latency as
well as congestion. These techniques have evolved because the
information was available and its use required no coordination with
anyone. This made such techniques more easily deployable than
alternative, potentially more explicit or cooperative, approaches.
However, this also means that applications and networks have often
evolved their interaction without comprehensive design for how this
interaction should happen or which (minimal) information would be needed
for a certain function. This has led to a situation where
information that happens to be easily available is used instead of the
information that is actually needed. As such, that information may
be incomplete, incorrect, or only indirectly representative of the
information that is actually needed. In addition, dependencies on
information and mechanisms that were designed for a different function
limit the evolvability of the protocols in question.
In summary, such unplanned interactions end up having several
negative effects:
- Ossifying protocols by introducing dependencies to unintended
parties that may not be updating, such as how middleboxes have limited
the use of TCP options
- Creating systemic incentives against deploying more secure or
otherwise updated versions of protocols
- Basing network behavior 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. Media Access Control (MAC) addresses have been used for
access control, captive portals have been used to take over cleartext
HTTP sessions, and so on. (This document is not about whether those
practices are good or bad; it is simply stating a fact that the features
were used beyond their original intent.)
Many protocol mechanisms throughout the stack fall into one of two
categories: authenticated private communication that is only visible to a
very limited set of parties, often one on each "end", and
unauthenticated public communication that is visible to all
network elements on a path.
Exposed information encourages pervasive monitoring, which is
described in . It may also be
used for commercial purposes or to form a basis for filtering that the
applications or users do not desire. However, a lack of all path signaling,
on the other hand, may limit network management, debugging, or the
ability for networks to optimize their 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 to observe why problems occur
.
As such, this situation is sometimes cast as an adversarial trade-off
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 the content being accessed, the
user identity, or the application in use. Similarly, network congestion
status information does not have to reveal network topology, the
status of other users, and so on.
Increased deployment of encryption is changing this situation.
Encryption provides tools for controlling information access and
protects against ossification by avoiding unintended dependencies and
requiring active maintenance. The increased deployment of encryption
provides an opportunity to reconsider parts of Internet architecture
that have used implicit derivation of input signals for on-path
functions rather than explicit signaling, as recommended by .
For instance, QUIC replaces TCP for various applications and protects
end-to-end signals so that they are only accessible by the endpoints, ensuring
evolvability . QUIC
does expose information dedicated for on-path elements to consume by
using explicit signals for specific use cases, such as the Spin Bit for
latency measurements or connection ID that can be used by load balancers
. This information is
accessible by all on-path devices, but information is limited to only
those use cases. Each new use case requires additional action. This
points to one way to resolve the adversity: the careful design of what
information is passed.
Another extreme is to employ explicit trust and coordination between
specific entities, endpoints, and network path elements. VPNs are
a good example of a case where there is an explicit authentication and
negotiation with a network path element that is used to gain access to
specific resources. Authentication and trust must be considered in both
directions: how endpoints trust and authenticate signals from network path
elements and how network path elements trust and authenticate signals from
endpoints.
The goal of improving privacy and trust on the Internet does not
necessarily need to remove the ability for network elements to perform
beneficial functions. We should instead improve the way that these
functions are achieved and design new ways to support explicit
collaboration where it is seen as beneficial. As such, our goals should
be to:
- ensure that information is distributed intentionally, not
accidentally;
- understand the privacy and other implications of any
distributed information;
- ensure that the information distribution is limited to the
intended parties; and
- gate the distribution of information on the participation of
the relevant parties.
These goals for exposure and distribution apply equally to senders, receivers,
and path elements.
Going forward, new standards work in the IETF needs to focus on
addressing this gap by providing better alternatives and mechanisms
for building functions that require some collaboration between
endpoints and path elements.
We can establish some basic questions that any new network function
should consider:
- Which entities must consent to the information exchange?
- What is the minimum information each entity in this set needs?
- What is the effect that new signals should have?
- What is the minimum set of entities that need to be involved?
- What are the right mechanism and needed level of trust to convey
this kind of information?
If we look at ways network functions are achieved today, we find that
many, if not most of them, fall short of the standard set up by the questions
above. Too often, they send unnecessary information, fail to limit the
scope of distribution, or fail to provide any negotiation or consent.
Designing explicit signals between applications and network elements,
and ensuring that all information is appropriately protected, enables
information exchange in both directions that is important for improving
the quality of experience and network management. The clean separation
provided by explicit signals is also more conducive to protocol evolvability.
Beyond the recommendation in , the IAB has provided further guidance on protocol
design. Among other documents, provides general advice on incremental deployability
based on an analysis of successes and failures, and discusses protocol
extensibility. The Internet Technology Adoption and Transition (ITAT)
workshop report is also a
recommended reading on this same general topic. , an IRTF document, provides a catalog of past
issues to avoid and discusses incentives for adoption of path signals
such as the need for outperforming end-to-end mechanisms or considering
per-connection state.
This document discusses different approaches for explicit collaboration
and provides guidance on architectural principles to design new
mechanisms. discusses
principles that good design can follow. This section also provides examples and explores the consequences of not following these
principles in those examples.
points to topics
that need to be looked at more carefully before any guidance can be
given.
Principles
This section provides architecture-level principles for protocol
designers and recommends models to apply for network collaboration and
signaling.
While focuses specifically
on communication to "on-path elements", the principles described in this
document apply potentially to:
- on-path signaling (in either direction) and
- signaling with other elements in the network that are not
directly on-path but still influence end-to-end connections.
An example of on-path signaling is communication between an endpoint
and a router on a network path. An example of signaling with another
network element is communication between an endpoint and a network-assigned
DNS server, firewall controller, or captive portal API server. Note that
these communications are conceptually independent of the base flow, even if
they share a packet; they are coming from and going to other parties, rather than
creating a multiparty communication.
Taken together, these principles focus on the inherent privacy and security
concerns of sharing information between endpoints and network elements,
emphasizing that careful scrutiny and a high bar of consent and trust
need to be applied. Given the known threat of pervasive monitoring, the
application of these principles is critical to ensuring that the use
of path signals does not create a disproportionate opportunity for observers
to extract new data from flows.
Intentional Distribution
The following guideline is best expressed in :
Fundamentally, this document recommends that implicit
signals should be avoided and that an implicit signal should be
replaced with an explicit signal only when the signal's originator
intends that it be used by the network elements on the path. For many
flows, this may result in the signal being absent but allows it to be
present when needed.
The goal is that any information should be provided knowingly, for
a specific purpose, sent in signals designed for that purpose, and that any use of information should be done within that purpose. In
addition, an analysis of the security and privacy implications of the
specific purpose and associated information is needed.
This guideline applies in the network element to application
direction as well: a network element should not unintentionally leak
information. While this document makes recommendations that are
applicable to many different situations, it is important to note that
the above call for careful analysis is key. Different types of
information, applications, and directions of
communication influence the analysis and can lead to very
different conclusions about what information can be shared and with
whom. For instance, it is easy to find examples of information that
applications should not share with network elements (e.g., content of
communications) or that network elements should not share with
applications (e.g., detailed user location in a wireless
network). But, equally, information about other things, such as the
onset of congestion, should be possible to share and can be beneficial
information to all parties.
Intentional distribution is a precondition for explicit
collaboration that enables each entity to have the highest possible level
of control about what information to share.
Control of the Distribution of Information
Explicit signals are not enough. The entities also need to agree to
exchange the information. Trust and mutual agreement between the
involved entities must determine the distribution of information in
order to give each entity adequate control over the collaboration
or information sharing. This can be achieved as discussed
below.
The sender needs to decide that it is willing to send information
to a specific entity or set of entities. Any passing of information
or request for an action needs to be explicit and use signaling
mechanisms that are designed for the purpose. Merely sending a
particular kind of packet to a destination should not be interpreted
as an implicit agreement.
At the same time, the recipient of information or the target of a
request should have the option to agree or deny to receiving the
information. It should not be burdened with extra processing if it
does not have willingness or a need to do so. This happens naturally
in most protocol designs, but it has been a problem for some cases where
"slow path" packet processing is required or implied, and the
recipient or router is not willing to handle it. Performance impacts
like this are best avoided, however.
In any case, all involved entities must be identified and
potentially authenticated if trust is required as a prerequisite to
share certain information.
Many Internet communications are not performed on behalf of the
applications but are ultimately made on behalf of users. However, not
all information that may be shared directly relates to user actions or
other sensitive data. All shared information must be evaluated
carefully to identify potential privacy implications for
users. Information that directly relates to the user should not be
shared without the user's consent. It should be noted that the
interests of the user and other parties, such as the application
developer, may not always coincide; some applications may wish to
collect more information about the user than the user would like. As
discussed in , from an IETF
point of view, the interests of the user should be prioritized over those
of the application developer. The general issue of how to achieve a
balance of control between the actual user and an application
representing a user's interest is out of scope for this document.
Protecting Information and Authentication
Some simple forms of information often exist in cleartext form,
e.g., Explicit Congestion Notification (ECN) bits from routers are
generally not authenticated or integrity protected. This is possible
when the information exchanges do not carry any significantly
sensitive information from the parties. Often, these kinds of
interactions are also advisory in their nature (see ).
In other cases, it may be necessary to establish a secure
signaling 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 confidential. This
is necessary, for instance, if the particular information or request
needs to be shared in confidence only with a particular, trusted
network element or endpoint or if there is danger of an attack where
someone else may forge messages that could endanger the
communication.
Authenticated integrity protections on signaled data can help
ensure that data received in a signal has not been modified by other
parties. Still, both network elements and endpoints need to be careful
in processing or responding to any signal. Whether through bugs or
attacks, the content of path signals can lead to unexpected behaviors
or security vulnerabilities if not properly handled. As a result, the
advice in still applies even
in situations where there's a secure channel for sending
information.
However, it is important to note that authentication does not equal
trust.
Whether a communication is with an application server or
network element that can be shown to be associated with a particular
domain name, it does not follow that information about the user can 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.
Minimize Information
Each party should provide only the information that is needed for
the other parties to perform the task for which collaboration is
desired and no more. This applies to information sent by an
application about itself, sent about users, or
sent by the network. This also applies to any information related to
flow identification.
An architecture can follow the guideline from in using explicit signals but
still fail to differentiate properly between information that should
be kept private and information that should be shared. also outlines this principle of
data minimization as a mitigation technique to protect privacy and
provides further guidance.
In looking at what information can or cannot be easily passed, we
need to consider both information from the network to the application
and from the application to the network.
For the application-to-network direction, user-identifying
information can be problematic for privacy and tracking reasons.
Similarly, application identity can be problematic if it might form
the basis for prioritization or discrimination that the application
provider may not wish to happen.
On the other hand, as noted above, information about general
classes of applications may be desirable to be given by application
providers if it enables prioritization that would improve service,
e.g., differentiation between interactive and non-interactive
services.
For the network-to-application direction, there is similarly
sensitive information, such as the precise location of the user. On
the other hand, various generic network conditions, predictive
bandwidth and latency capabilities, and so on might be attractive
information that applications can use to determine, for instance,
optimal strategies for changing codecs. However, information given by
the network about load conditions and so on should not form a
mechanism to provide a side channel into what other users are
doing.
While information needs to be specific and provided on a per-need
basis, it is often beneficial to provide declarative information that,
for instance, expresses application needs and then makes specific requests
for action.
Limiting Impact of Information
Information shared between a network element and an endpoint of a
connection needs to have a limited impact on the behavior of both
endpoints and network elements. Any action that an endpoint or network
element takes based on a path signal needs to be considered
appropriately based on the level of authentication and trust that has
been established, and it needs to be scoped to a specific network path.
For example, an ICMP signal from a network element to an endpoint
can be used to influence future behavior on that particular network
path (such as changing the effective packet size or closing a
path-specific connection) but should not be able to cause a multipath
or migration-capable transport connection to close.
In many cases, path signals can be considered advisory
information, with the effect of optimizing or adjusting the behavior
of connections on a specific path. In the case of a firewall blocking
connectivity to a given host, endpoints should only interpret that as
the host being unavailable on that particular path; this is in
contrast to an end-to-end authenticated signal, such as a
DNSSEC-authenticated denial of existence .
Minimum Set of Entities
It is recommended that a design identifies the minimum number of
entities needed to share a specific signal required for an identified
function.
Often, this will be a very limited set, such as when an application
only needs to provide a signal to its peer at the other end of the
connection or a host needs to contact a specific VPN gateway. In other
cases, a broader set is needed, such as when explicit or implicit
signals from a potentially unknown set of multiple routers along the
path inform the endpoints about 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 elements, there may be compromised components, as
evidenced in the most extreme way by the Stuxnet worm that operated in
an air-gapped 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.
Carrying Information
There is a distinction between what information is sent and how it
is sent. The information that is actually sent may be limited, while the
mechanisms for sending or requesting information can be capable of
sharing much more.
There is a trade-off here between flexibility and ensuring that
the information is minimal 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, such as
making it mandatory to identify specific applications or users. This is
undesirable.
This document recommends that signaling mechanisms that send
information be built to specifically support sending the necessary,
minimal set of information (see ) and no more. As previously noted, flow-identifying
information is a path signal in itself, and as such, provisioning of
flow identifiers also requires protocol-specific analysis.
Further, such mechanisms also need to have the ability to
establish an agreement (see ) and sufficient trust to pass the
information (see ).
Further Work
This is a developing field, and it is expected that our understanding
of it will continue to grow. One recent change is much higher use of
encryption at different protocol layers. This obviously impacts the
field greatly, by removing the ability to use most implicit signals.
However, it may also provide new tools for secure collaboration and
force a rethinking of how collaboration should be performed.
While there are some examples of modern, well-designed collaboration
mechanisms, the list of examples is not long. Clearly, more work is
needed if we wish to realize the potential benefits of collaboration in
further cases. This requires a mindset change, a migration away from
using implicit signals. And of course we need to choose such cases where
the collaboration
can be performed safely, where it is not a privacy concern, and where the
incentives of the relevant parties are aligned. It
should also be noted that 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. Note that the topics include
both those dealing directly with on-path network element collaboration
and some adjacent issues that would influence such collaboration.
- Some forms of collaboration may depend on business arrangements,
which may or may not be easy to put in place. For instance, some
quality-of-service mechanisms 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
proposition that is much harder for end-to-end connections across multiple administrative
domains .
- Secure communication with path elements is needed as discussed
in .
Finding practical ways for
this has been difficult, both from the mechanics and scalability point
of view, partially 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 network elements or endpoints.
- The use of path signals to reduce the effects of
denial-of-service attacks, e.g., perhaps modern forms of "source
quench" designs, could be developed. The difficulty is finding a
solution that would be both effective against attacks and would not
enable third parties from slowing down or censoring someone else's
communication.
- Work has begun on mechanisms that dissociate the information held by servers from knowledge of the user's network location and behavior. Among the solutions that exist for this but are not widely deployed are . These solutions address specific parts of the issue, and more work remains to find ways to limit the spread of information about the user's actions. Host applications currently share sensitive information about the user's action with a variety of infrastructure and path elements, starting from basic data, such as domain names, source and destination addresses, and protocol header information. This can expand to detailed end-user identity and other information learned by the servers. Work to protect all of this information is needed.
- Work is needed to explore how to increase the deployment of mechanisms for sharing information from networks to applications. There are some working examples of this, e.g., ECN. A few other proposals have been made (see, e.g., ), but very few of those have seen deployment.
- Additional work on sharing information from applications to networks would also be valuable. There are a few working examples of this (see Section 1). Numerous proposals have been made in this space, but most of them have not progressed through standards or been deployed for a variety of reasons . However, several current or recent proposals exist, such as .
- Data privacy regimes generally deal with multiple issues, not just
whether or not some information is shared with another party. For
instance, there may be rules regarding how long information can be
stored or what purpose that information may be used for. Similar
issues may also be applicable to the kind of information sharing
discussed in this document.
- The present work has focused on the technical aspects of making
collaboration safe and mutually beneficial, but of course, deployments
need to take into account various regulatory and other policy
matters. These include privacy regulation, competitive issues, network
neutrality aspects, and so on.
IANA Considerations
This document has no IANA actions.
Security Considerations
This document has no security considerations.
Informative References
Architectural Considerations for Transport Evolution with Explicit Path Cooperation
ETH Zurich
Mobile Throughput Guidance Inband Signaling Protocol
Google
Google
Nokia Networks
Nokia Networks
Nokia Networks
Vodafone
Vasona Networks
Vasona Networks
Network Tokens
Selfie Networks
Stanford University
Norwegian Communications Authority
Adding Enhanced Services to the Internet: Lessons from History
TPRC 43: The 43rd Research Conference on Communication,
Information and Internet Policy Paper
Oblivious DNS: Practical Privacy for DNS Queries
Proceedings on Privacy Enhancing Technologies, Volume 2019, Issue 2, pp. 228-244
PDoT: Private DNS-over-TLS with TEE Support
Digital Threats: Research and Practice, Volume 2, Issue 1,
Article No. 3, pp. 1-22
IAB Members at the Time of Approval
Internet Architecture Board members at the time this document was
approved for publication were:
Acknowledgments
The authors would like to thank everyone at the IETF, the IAB, and
our day jobs for interesting thoughts and proposals in this space.
Fragments of this document were also in and
.
We would also like to acknowledge that similar thoughts are presented in . Finally, the authors would like to thank
, , , , , , ,
, ,
, , , , ,
, , and
for useful feedback on this topic and
document.