throbber
Proxies for Anonymous Routing
`
`Michael G. Reed, Paul F. Syverson, and David M. Goldschlag
`Naval Research Laboratory
`
`Center for High Assurance Computer Systems
`Washington, DC 20375-5337
`Phone: +1 202.767.2389 (voice)
`Fax: +1 202.404.7942 (fax)
`e-mail: {reed, syverson, goldschlag } @itd.nrl.navy.mil
`
`Abstract
`Using trafsic analysis, it is possible to infer who is
`talking to whom over a public network. This m e r
`describes a flexible communications infrastructure, onion
`routing, which is resistant to trafsic analysis. Onion
`routing lives just beneath the application layer, and is
`designed to inte~ace with a wide variety of unmodified
`Internet services by means of proxies. Onion routing has
`been implemented on Sun Solaris 2.4; in addition, proxies
`for World Wide Web browsing (HTTP), remote logins
`(RLOGIN), e-mail (SMTP), and file transfers (FTP) have
`been implemented.
`
`Onion routing provides application independent, real-time,
`that m
`and bi-directional anonymous connections
`trafsic analysis.
`resistant to both eavesdropping and
`Applications making use of onion routing’s anonymous
`connections may (and usually should) identify their users
`over the anonymous connection. User anonymity may be
`layered on top of
`the anonymous connections by
`removing identifying information from the data stream.
`Our goal here is anonymous connections, not anonymous
`communication.
`The use of a packet switched public
`network should not automatically reveal who is talking to
`whom. This is the trafsic analysis that onion routing
`complicates.
`
`1. Introduction
`
`1.1 The Problem
`Using traffic analysis, it is possible to infer who is
`talking to whom over a public network (Figure 1). For
`example, in a packet switched network [ 111, packets have
`a header used for routing, and a payload that carries the
`data. The header, which must be visible to the network
`(and to observers of the network), reveals the source and
`destination of the packet. Even if the header were
`obscured in some way, the packet could still be tracked as
`it moves through the network. Encrypting the payload is
`similarly ineffective, because the goal of traffic analysis is
`to identify who is talking to whom and not (to identify
`directly) the content of that conversation.
`
`Figure 1. Communication over a Public Network
`
`the public Internet are strong
`The efficiencies of
`motivation for companies to use it instead of private
`intranets. However, these companies may want to protect
`their interests. For example, a researcher using the World
`Wide Web (Web) may expect his particular focus to
`remain private, and inter-company collaborations should
`be confidential. Individuals may wish to protect their
`
`U.S. Government Work Not Protected by U S . Copyright
`
`95
`
`Petitioner Apple - Ex. 1015, p. 1
`
`

`

`privacy as well. For example, the sending of e-mail
`should keep the identities of the sender and recipient
`hidden from observers. Also, a person shopping online
`may not want his visits tracked. Certainly someone
`spending anonymous e-cash would expect that the source
`of the e-cash be untraceable.
`
`The use of a packet switched public network should not
`require revealing who is talking to whom. This paper
`presents a flexible communications infrastructure, onion
`routing, which is resistant to traffic analysis.
`
`1.2 Objective
`Onion routing is an infrastructure that
`
`complicates traffic analysis,
`
`separates identification from routing,
`
`supports many different applications.
`
`0
`
`0
`
`Without dedicated links between every node and full
`utilization of each link, traffic analysis can, in principle,
`always be effective. But traffic analysis can be made more
`costly. Onion routing accomplishes this goal by
`separating identification from routing. Onion routing
`provides anonymous connections that are resistant to both
`eavesdropping and traffc analysis. Instead of containing
`source and destination information, packets moving along
`an anonymous connection contain only next hop and
`previous hop information. These anonymous connections
`can replace socket connections. Since socket connections
`are commonly used to support applications running over
`the Internet (like Web browsers, remote login, and e-mail)
`onion routing’s anonymous connections can support a
`wide variety of unmodified applications using proxies that
`interface between applications and the onion routing
`network.
`
`1.3 Overview of the Solution
`Onion routing works
`in
`the
`following way: An
`application, instead of making a (socket) connection
`directly to a destination machine, makes a connection to
`an onion routing proxy on some remote machine. That
`onion routing proxy builds an anonymous connection
`through several other onion routers to the destination.
`Each onion router can only identify adjacent onion routers
`along the route. When the connection is broken, even
`this limited information about the connection is cleared at
`each onion router. Data passed along the anonymous
`connection appears different ut and to each onion router,
`so data cannot be tracked en route and compromised onion
`routers cannot cooperate. An onion routing network can
`
`exist in several configurations that permit efficient usage
`by both large institutions and individuals.
`
`1.4 Traffic Analysis
`Traffic analysis makes inferences from three sources of
`information:
`
`Routing information
`
`e Coincidences
`
`h a d
`
`Routing information is available in many forms: packet
`headers, phone touch-tones, and envelope addresses. This
`is the most obvious source that needs protecting.
`Coincidences, like similar traffic entering or leaving a
`node, or connections opening or closing at roughly the
`same time, are more difficult to hide. Finally, the very
`presence of communication over some link may reveal
`sensitive information. But load is very difficult to
`obscure if one is unwilling to use a constant amount of
`capacity all the time.
`
`1.5 Organization of Paper
`This paper is organized in the following way: Section 2
`presents background information. Section 3 presents our
`goals and threat model. Section 4 presents our solution,
`and sections 5 and 6 provide more details. Section 7
`describes the implemented prototype. Section 8 discusses
`vulnerabilities, costs, and variants of onion routing.
`Section 9 presents some concluding remarks.
`
`2. Background
`Chaum [1,2] defines a mechanism for routing data
`through
`These
`intermediate nodes, called mixes.
`intermediate nodes may reorder, delay, and pad traffic to
`complicate traffic analysis. Our onion routers are based
`upon mixes.
`
`Anonymous Remailers [4,6] use mixes
`to provide
`anonymous e-mail services and also invent an address
`through which mail can be fonvarded back to the original
`sender. Remailers work in a store-and-forward manner at
`the mail application layer by stripping off headers at each
`mix and forwarding the mail message to the next mix.
`Some remailers provide confirmation of delivery.
`
`In [8,9], mixes are used
`to provide untraceable
`communication in an ISDN network. In the described
`phone system, each telephone line is assigned to a
`particular local switch (i.e., local exchange), and switches
`
`96
`
`Petitioner Apple - Ex. 1015, p. 2
`
`

`

`(long distance) network.
`interconnected by a
`are
`Anonymous calls in ISDN rely upon an anonymous
`connection within each switch between the caller and the
`long distance network, which is obtained by routing calls
`through a predefined series of mixes. The long distance
`endpoints of the connection are then mated to complete
`the call.
`(Notice that observers can tell which local
`switches are connected.) This approach relies upon two
`unique features of ISDN switches. Since each phone line
`has a subset of the switch‘s total capacity pre-allocated to
`it, there is no (real) cost associated with keeping a phone
`line active all the time, either by making calls to itself, to
`other phone lines on the same switch, or to the long
`distance network. Keeping phone lines active complicates
`traffic analysis because an observer cannot
`track
`coincidences.
`
`Also, since each phone line has a control circuit
`connection to
`the switch, the switch can broadcast
`messages to each line using these control circuits. So,
`within a switch a truly anonymous connection can be
`established: a phone line makes an anonymous connection
`to some mix. That mix broadcasts a token identifying
`itself and the connection. A recipient of that token can
`make another anonymous connection to the specified mix,
`which mates the two connections to complete the call.
`
`Our goal of anonymous connections over the Internet
`differs from anonymous remailers and anonymous ISDN.
`Unlike anonymous remailers, anonymous connections are
`application independent and are meant to be used by a wide
`variety of Internet applications. The dah carried by
`anonymous connections
`is varied, with
`real-time
`constraints often more severe than mail, but usually
`somewhat looser than voice. Both Web and ISDN
`connections are bi-directional, but, unlike ISDN, Web
`connections are likely to be small requests followed by
`short bursts of returned data. In a local switch, capacity is
`pre-allocated to each phone line, and broadcasting is
`efficient. But broadcasting over the Internet is not free,
`and defining broadcast domains is not trivial. Most
`importantly, the network topology of the Internet is more
`akin to the network topology of the long distance network
`between switches, where capacity is a shared resource. In
`anonymous ISDN, the mixes hide communication within
`the local switch, but connections between switches are not
`hidden. This implies that all calls between
`two
`businesses, each large enough to use an entire switch,
`reveal which businesses are communicating.
`In onion
`routing, because of the topology of the Internet, mixing
`has to be dispersed throughout the Internet, so hiding is
`greatly improved.
`
`3. Objectives
`
`3.1 Applications
`Onion routing’s anonymous connections are designed to
`replace TCPDP socket connections [3] and to be able to
`work with unmodified applications. A socket connection
`is a reliable bi-directional connection carrying a stream of
`data between two machines. Socket connections provide
`the abstraction that shields an application from the
`unreliable and unordered communication that is provided
`by lower levels of the IP stack.
`
`Many applications use socket connections:
`0 Web requests (HTTP)
`0 Remote logins (FUOGIN)
`e-mail (SMTP)
`
`0
`
`File transfer (FTP)
`
`Internet Relay Chat (IRC)
`
`Encrypted IP Tunnel
`
`to onion routing’s
`These applications can connect
`anonymous connections using proxies. A proxy [l 11 is
`usually a relay between an initiating and responding
`application.
`In onion routing, anonymous connections
`are terminated by application specific proxies that relay
`information between the connection and the unmodified
`applications. Many applications are already proxy aware
`because proxies are commonly used to communicate
`through firewalls. For example, a Web browser on a
`network with a firewall will reach sites outside the
`firewall through an HTTP proxy on the firewall machine.
`In that way, direct connections are never made between
`internal and external machines.
`
`3.2 Threat Model: Active and Passive Attacks
`Onion routing’s design is very conservative since it
`assumes that the public network is very vulnerable.
`In
`particular, we assume that:
`
`All traffic is visible.
`
`0 All traffic can be modified.
`
`Onion routers may be compromised.
`
`0
`
`Compromised onion routers may cooperate.
`
`In addition, a sophisticated adversary may be able to detect
`timing coincidences such as
`the near simultaneous
`opening of connections. Timing coincidences are very
`
`97
`
`Petitioner Apple - Ex. 1015, p. 3
`
`

`

`real-time
`to overcome, especially when
`difficult
`communication is important. But, if connections are
`routed over an unpredictable path in a busy network, this
`sort of attack is also very expensive.
`
`The first four vulnerabilities, however, directly motivate
`certain design decisions in onion routing. Because traffk
`is visible, the headers and payloads of all traffic are
`essentially link encrypted between onion routers so the
`same data looks different when traveling between routers.
`Because traffic can be modified, stream ciphers [lo] are
`Inserting, deleting, or modifying
`used for encryption.
`traffic en route will disrupt the stream and produce random
`Because onion routers may be
`bits downstream.
`compromised, anonymous connections span several onion
`routers, even though a single “perfect” mix is adequate to
`provide privacy. Because compromised onion routers may
`cooperate, data is encrypted in a layered fashion so it
`appears different to each onion router, not only between
`onion routers.
`
`4. The Solution: Onion Routing
`Onion routing has two parts: A network infrastructure
`that carries anonymous connections, and a proxy interfaces
`that mate these connections to unmodified applications.
`
`4.1 Onion Routing: Network Infrastructure
`The public network contains a set of onion routers. Each
`onion router has a single (socket) connection to each of a
`small set of neighboring onion routers. Onion routers
`only talk to their neighbors. Neighboring onion routers
`are neighbors for onion routing only.
`That
`is,
`communication between two neighboring onion routers is
`canied over a socket connection, and packets are routed
`(perhaps dynamically) through many hops by the IP
`protocol.
`
`An anonymous connection is routed through a sequence
`of neighboring onion routers. Common segments of
`these routes are multiplexed over the single connection
`between neighbors. An onion router’s obligation is to
`pass data from one connection to another after applying
`the appropriate cryptographic operations.
`
`An anonymous connection from an initiator to a responder
`through four onion routers is illustrated in Figure 2.
`
`[nitiator
`
`---Onion Rou
`
`Respond er
`
`Figure 2. Onion Routing Network Infrastructure
`
`4.2 Onion Routing: Proxy Interface
`How are anonymous connections used? Proxies interface
`between applications and the network infrastructure. When
`a proxy is used on a firewall, it relays traffic between the
`protected site and the rest of the world. In onion routing,
`a proxy’s functions are split into two: one part links the
`initiator to the anonymous connection and the other part
`links the anonymous connection to the responder. In this
`way, the initiating and responding applications need not
`be modified (although they do have to be able to use
`proxies).
`
`Imagine an initiator sitting at her workstation using a
`Web browser. When she “clicks” on a URL link, the
`browser sends an HTTP request for that URL to some
`onion routing proxy instead of directly to the responder.
`In Figure 3, this is the onion routing proxy named W. W
`looks at the request and chooses a route through several
`other onion routers (e.g., W-X-Y-Z). W then sends an
`onion (see section 5.1) along that route; the onion is an
`to construct an
`instruction to those onion routers
`anonymous connection.
`
`The last onion router in the route (Z) also functions as an
`onion routing proxy for the responder. Z passes data from
`the anonymous connection to the responder, and passes
`data from the responder back to the connection.
`
`Figure 3: Onion Routing Proxy Interface
`
`Instead of a single socket connection between an initiator
`and a responder, onion
`routing
`requires a socket
`connection between the initiator and his proxy, an
`anonymous connection between the initiator’s proxy and
`the responder’s proxy, and a socket connection between
`the responder’s proxy and the responder. However, the
`three connections function as if they were a single (bi-
`
`98
`
`Petitioner Apple - Ex. 1015, p. 4
`
`

`

`directional and reaI-time) socket connection between the
`initiator and responder.
`
`There are many configurations of an onion routing
`network.
`In one basic configuration, a site that is
`concemed about traffic analysis should control an onion
`routing proxy in order to protect communication between
`that proxy and its users. That onion routing proxy must
`also function as an intermediate onion router in other
`anonymous connections. If it is not used in this way,
`observers can monitor the load coming from onion
`routing proxy and trace it back to the sensitive site.
`However, if the onion routing proxy is also a busy
`intermediate onion router, observers cannot tell whether
`the sensitive site is consuming, producing, or relaying
`traffic.
`
`Individuals may access an onion router through their
`Internet Services Provider (ISP), if the ISP controls an
`onion routing proxy. An individual could also make an
`encrypted connection to some public domain onion
`routing proxy. Finally, a user could run an onion routing
`proxy on his workstation, and
`route anonymous
`connections through other onion routers.
`
`5. Using Onion Routing
`After the initiator contacts his proxy, onion routing
`follows four stages:
`
`1. Define the route.
`
`2. Construct the anonymous connection.
`
`3.
`
`Move data through the anonymous connection.
`
`4. Destroy the anonymous connection.
`
`The next four sections describe these stages in more detail.
`(The extra details in each Details subsection are
`independent of the rest of the paper.)
`
`5.1 Defining the Route
`Consider Figure 3. The initiator’s proxy, W, chooses to
`make an anonymous connection through (W-X-Y-Z).
`Therefore, W constructs a layered data structure called an
`onion (Figure 4):
`
`Each layer of the onion is intended for a particular onion
`router and contains the identity of the next onion router in
`the anonymous connection, and the key that should be
`used when communicating with the previous onion router
`in the connection. The final layer of the onion is intended
`for Z. Since Z is the last onion router in the connection,
`its layer only contains a key.
`
`99
`
`Figure 4: An Onion
`
`is
`Using public key cryptography [lo], the onion
`constructed so only the intended recipient can peel off the
`outermost layer, thereby revealing both his layer and the
`onion embedded inside. No recipient knows who created
`the onion. So, onion routers can identify only whom they
`received an onion from and to whom they are obliged to
`send the embedded onion. And, no recipient can determine
`what the other onions embedded in an onion look like.
`
`The onion routing proxy that creates an onion keeps a
`copy of the keys in the onion until the anonymous
`connection is destroyed. We will see how these keys are
`used in sections 5.3 and 5.4.
`
`5.1.1 Onion Details
`the anonymous
`routes
`The onion
`routing proxy
`connection through neighboring onion routers. Therefore,
`it must know the topology of the onion routing network.
`
`The size of an onion limits the length of a route. To
`prevent observers from inferring the length of a route,
`onions are padded to some fixed size. This padding
`becomes part of and is indistinguishable from the already
`embedded onion.
`
`The key at each layer of the onion is used for bi-
`directional communication between an onion router and
`the previous onion router. Therefore, the key really
`specifies
`two
`stream ciphers, one
`for
`forward
`communication (in the direction the onion travels) and the
`other for backward communication (in the opposite
`direction).
`
`Each layer of an onion also contains an expiration time.
`An onion router is to ignore an expired onion and is to
`ignore replayed onions. Therefore, onion routers must
`keep track of onions during their lifetimes.
`
`For efficiency, the entire onion is not encrypted using a
`public key
`cryptosystem.
`Instead
`some prefix
`(corresponding to the block size of
`the public key
`
`Petitioner Apple - Ex. 1015, p. 5
`
`

`

`cryptosystem) of the onion is encrypted using public key
`cryptography, and the rest of the onion is encrypted using
`an efficient stream cipher initialized with a key specified
`in the prefix [5,7,10].
`
`5.2 Constructing the Anonymous Connection
`After constructing the onion, W sends the onion to the
`first onion router in the anonymous connection. The
`onion moves between onion routers (Figure 5):
`
`’0
`
`Responder
`
`Public Network
`
`Figure 5: Use of an Onion
`
`Each layer of the onion is intended for a particular onion
`router, and can be peeled off only by that onion router.
`The first layer of this onion is intended for X. When X
`peels off that layer, it obtains a key that it will use when
`communicating with W (from whom X received the
`onion), and notes that future traffic from that connection
`should be forwarded to Y. X also forwards the embedded
`onion to Y. In a similar way, Y peels off its layer of the
`onion, revealing
`the key
`that
`it should use
`to
`communicate with X (from whom Y received the onion),
`and notes that future traffic from that connection should be
`forwarded to Z. Z peels off its layer, revealing only the
`key that it will use to communicate with Y, and notes
`that it is the last onion router in
`the anonymous
`connection. The first data that Z receives along that
`anonymous connection will
`identify
`the
`intended
`responder.
`
`5.2.1 Anonymous Connection Construction
`Details
`To keep onion size constant, each onion router is obliged
`to add padding to the onion corresponding to the fmed size
`layer that was removed. Onion routers cannot distinguish
`padding from embedded onions. If an onion router fails to
`pad an onion, however, the next onion router will notice
`that the onion it received is too small and will not process
`the onion. Because of the padding, even onion routers
`themselves cannot tell how much of an anonymous
`connection has been constructed.
`
`Remember that all communication between neighboring
`onion routers is multiplexed in the data stream of a single
`socket connection. Therefore, all data travels in a series of
`
`fixed size cells. Each cell has a header that identifies the
`anonymous connection it is assigned to, as well as the
`type of payload it carries. For example, cells carrying
`onions will be labeled as onion cells, and will also
`contain the identifier of the new anonymous connection
`that is to be multiplexed over that socket connection.
`Nbtice that this identifier is chosen by the onion router
`relaying the onion, and in each socket connection carrying
`a segment of an anonymous connection, the anonymous
`connection may have a different identifier. Each onion
`router maintains a table that maps between the identifiers
`of incoming connections and outgoing connections, and
`the cryptographic keys that are to be applied to data
`moving along an anonymous connection.
`
`Cells traveling over a socket connection between onion
`routers are link encrypted in a peculiar way: headers and
`payloads are encrypted separately, for efficiency. For
`example, headers are encrypted with some stream cipher
`negotiated between the neighboring onion routers. The
`payload of a cell of type onion need not be encrypted,
`since the onion was already encrypted for the next onion
`router by the onion routing proxy that created the onion.
`
`Because of the link encryption, observers monitoring the
`data stream between onion routers cannot read cell headers.
`Therefore, observers cannot distinguish between onions
`and other types of cells.
`
`5.3 Moving Data Forward
`the
`The anonymous connection moves data from
`initiator’s proxy to the responder’s proxy and vice versa.
`In the forward direction, the initiator sends plaintext to his
`onion routing proxy. The onion routing proxy repeatedly
`crypts’ the data using the inverse of the keys2 specified in
`the onion, applying the keys innermost first. Each onion
`router along the route removes one layer of cryption. The
`responder’s proxy forwards the plaintext to the responder.
`
`This is illustrated in Figure 6.
`
`’ We define the verb crypt to mean the application of a
`cryptographic operation, be it encryption or decryption,
`where the two are logically interchangeable.
`For
`example, in a stream cipher using Output Feedback
`Mode (e.g., DES OFB), encryption and decryption are
`the same operation.
`Each key really specifies a stream cipher. The inverse
`of a key, therefore, is the inverse of the corresponding
`stream cipher.
`
`100
`
`Petitioner Apple - Ex. 1015, p. 6
`
`

`

`57
`
`Public Network
`
`w
`
`text
`
`Responder
`
`a
`Public Network
`
`text
`
`Responder
`
`Figure 6: Moving Data Forward
`
`Figure 7: Moving Data Backward
`
`The purpose of the pre-cryptions is to make the data look
`different as it travels through the anonymous connections,
`both to outside observers and to the onion routers. Notice
`that observers cannot match data along the route, and
`onion routers cannot predict what data will look like later.
`
`Notice that each onion router does one cryption, while the
`initiator’s onion routing proxy does one pre-cryption for
`each subsequent onion router in the connection.
`
`5.3.1 Moving Data Forward Details
`Data moving in the direction that the onion was sent is
`defined to be moving in the forward direction. Data
`moving in the reverse direction is defined to be moving
`backward. This distinction is important when discussing
`reply onions (section 6).
`
`As with onions, data is carried in cells through the
`multiplexed socket connections. The cells have type
`data and are labeled with the identifier of the associated
`anonymous connection. Although the headers of data
`cells are link encrypted between onion routers, the
`payloads of data cells are not link encrypted, as the
`cryption operation done at each onion router is sufficient.
`When a data cell arrives, the onion router looks up the
`cell’s identifier in its tables and finds the corresponding
`outbound
`identifier.
`The appropriate cryptographic
`operation is applied and the crypted payload is formed and
`sent along the outbound connection.
`
`As with the link encryption of the headers, the payloads of
`data cells are encrypted using stream ciphers.
`
`5.4 Moving Data Backward
`Moving data backward is just the reverse of sending data
`forward. The responder’s onion routing proxy receives
`plaintext from the responder.
`It and each subsequent
`onion router adds one layer of cryption and sends the data
`to the next onion router. The initiator’s onion routing
`proxy removes the layers of cryption by applying the
`inverse of the keys in the onion outermost first. The
`resulting plaintext is forwarded to the initiator.
`
`This is illustrated in Figure 7.
`
`5.4.1 Moving Data Backward Details
`As with forward data, the initiator’s onion routing proxy
`handles the bulk of the cryption burden.
`
`5.5 Destroying the Anonymous Connection
`Just as socket connections are torn down, anonymous
`connections need to be destroyed when the connection is
`broken. An onion router that decides to tear down a
`connection sends a destroy message forward and backward
`along the anonymous connection. It also cleans up its
`own tables. An onion router that receives a destroy
`message is obliged to clean up its own table and relay the
`message in the same direction.
`
`This is illustrated in Figure 8.
`
`-destroy
`
`destroy -C-
`
`Public Network
`
`Re s ponde r
`Figure 8: Destroying an Anonymous Connection
`
`‘0
`
`Notice that the multiplexed socket connections between
`neighboring onion routers remain active.
`
`5.5.1 Destroy Details
`Destroy messages are sent in cells of type destroy.
`The header identifies the anonymous connection that is to
`be destroyed. The payload is random and changes at each
`onion router.
`
`6. Reply Onions
`The(forwat-d) onion described in section 5 is used by the
`initiator’s onion routing proxy to construct an anonymous
`connection to some responder’s onion routing proxy.
`What happens if an initiator expects a later reply from the
`the
`to keep
`responder? An obvious solution
`is
`anonymous connection open. This may not always be
`practical. Another solution is a reply onion.
`
`101
`
`Petitioner Apple - Ex. 1015, p. 7
`
`

`

`An initiator’s onion routing proxy can create a reply
`onion that defines a route back to him. For example,
`
`Figure 9 illustrates a reply onion that will construct an
`anonymous connection back to W from Z through onion
`routers Y and X:
`
`Figure 9: A Reply Onion
`
`The reply onion is sent by the responder to onion routing
`proxy 2, who peels off its first layer, and sends the
`embedded reply onion on to onion router Y after extracting
`the key that Z will use when communicating with Y.
`Onion routers Y and X do the same operation. Onion
`routing proxy W receives a reply onion with a sequence of
`keys.
`
`The anonymous connection established by this reply
`onion is illustrated in Figure 6, and is identical to the
`anonymous connection established by the (forward) onion
`illustrated in Figure 4. Once the anonymous connection
`is established, each onion router has the same role it has
`in a forward connection from the initiator to the responder:
`That is, the initiator’s onion routing proxy repeatedly pre-
`crypts data and other onion routers crypt only once.
`
`Reply onion’s can also be used to allow anonymous
`replies back to some initiator. The initiator may publish
`a reply onion, which can be picked up and used by any
`responder. The responder forwards the onion to the
`designated onion routing proxy and an anonymous
`connection back to the initiator will be constructed.
`
`6.1 Reply Onion Details
`As with forward onions, reply onions contain expiration
`times to prevent replays. This means that published reply
`onions can only be used once. If an initiator expects
`several replies, he should publish many reply onions.
`During connection construction, both the responder’s and
`initiator’s onion routing proxies know that they have a
`reply onion. Once the connection is established, however,
`this distinction is irrelevant. Intermediate onion routers
`
`102
`
`can never distinguish between forward and reply onions.
`In
`fact,
`the only difference between anonymous
`connections formed by forward onions and those formed
`by reply onions is that the sets of keys used to crYPt data
`in each direction are swapped: forward keys are used as
`backward keys and vice versa.
`A reply onion may also be created by a third party to
`define an anonymous connection back to some initiator.
`Third party reply onions are unusual because both the
`third party and the initiator know all the onion keys.
`
`7. Implementation
`Onion routing has been implemented on Sun Solaris 2.4.
`Onion routing proxies for Web browsing (HTTP),
`RLOGIN, e-mail
`(SMTP), and FTP have been
`implemented also. Furthermore, versions of these proxies
`that anonymize the data stream have been implemented.
`These proxies allow anonymous communication that is
`resistant to both eavesdropping and traffic analysis.
`
`An extension to this prototype must handle changes to the
`topology of the onion routing network. This includes, for
`example, new onion routers, different neighbors, and
`distribution of onion routers’ public keys.
`
`8. Discussion
`To be effective, onion routing must be widely deployed
`and there must be significant use of all the onion routers.
`Furthermore, onion routing proxies must also be
`intermediate onion routers. Otherwise, it is easy to infer
`that traffic to and from a particular onion routing proxy is
`really to and from the sensitive site that controls the
`proxy.
`
`8.1 Vulnerabilities
`Onion routing is not invulnerable to traffic analysis
`attacks. With enough data, it is still possible to analyze
`usage patterns and make educated guesses about the
`routing of messages. Also, since our first application
`(Web requests) requires real-time communication, it may
`be possible to detect the near simultaneous opening of
`socket connections on the initiator’s and responders’ onion
`routing proxies, thereby revealing who is requesting what
`information. (Of course, even this attack is impossible if
`the initiator’s onion routing proxy is controlled by his
`sensitive site.) However, these sorts of attacks require the
`collection and analysis of huge amounts of data by
`external observers.
`
`Petitioner Apple - Ex. 1015, p. 8
`
`

`

`One way to further complicate this sort of analysis is to
`pass dummy traffic through the network to make the
`traffic level fairly constant. There is an obvious tradeoff
`here between security and cost: Adding dummy traffic
`undermines the efficiencies of the Internet as a shared
`resource. It is difficult to calculate the value of this
`tradeoff. If traffic is very bursty and response time is
`important, smoothing out network traffic requires wasting
`capacity.
`If, however,

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket