throbber
Remote physical device fingerprinting
`
`Tadayoshi Kohno
`CSE Department, UC San Diego
`tkohno@cs.ucsd.edu
`
`Andre Broido
`CAIDA, UC San Diego
`broido@caida.org
`
`kc claffy
`CAIDA, UC San Diego
`kc@caida.org
`
`Abstract
`
`We introduce the area of remote physical device finger-
`printing, or fingerprinting a physical device, as opposed to
`an operating system or class of devices, remotely, and with-
`out the fingerprinted device’s known cooperation. We ac-
`complish this goal by exploiting small, microscopic devia-
`tions in device hardware: clock skews. Our techniques do
`not require any modification to the fingerprinted devices.
`Our techniques report consistent measurements when the
`measurer is thousands of miles, multiple hops, and tens of
`milliseconds away from the fingerprinted device, and when
`the fingerprinted device is connected to the Internet from
`different locations and via different access technologies.
`Further, one can apply our passive and semi-passive tech-
`niques when the fingerprinted device is behind a NAT or
`firewall, and also when the device’s system time is main-
`tained via NTP or SNTP. One can use our techniques to
`obtain information about whether two devices on the Inter-
`net, possibly shifted in time or IP addresses, are actually the
`same physical device. Example applications include: com-
`puter forensics; tracking, with some probability, a physical
`device as it connects to the Internet from different public ac-
`cess points; counting the number of devices behind a NAT
`even when the devices use constant or random IP IDs; re-
`motely probing a block of addresses to determine if the ad-
`dresses correspond to virtual hosts, e.g., as part of a virtual
`honeynet; and unanonymizing anonymized network traces.
`
`1 Introduction
`
`There are now a number of powerful techniques for re-
`mote operating system fingerprinting, i.e., techniques for
`remotely determining the operating systems of devices on
`the Internet [2, 3, 5, 27]. We push this idea further and in-
`troduce the notion of remote physical device fingerprinting,
`or remotely fingerprinting a physical device, as opposed to
`an operating system or class of devices, without the finger-
`printed device’s known cooperation. We accomplish this
`
`goal to varying degrees of precision by exploiting micro-
`scopic deviations in device hardware: clock skews.
`
`CLASSES OF FINGERPRINTING TECHNIQUES. We con-
`sider three main classes of remote physical device finger-
`printing techniques: passive, active, and semi-passive. The
`first two have standard definitions — to apply a passive
`fingerprinting technique, the fingerprinter (measurer, at-
`tacker, adversary) must be able to observe traffic from the
`device (the fingerprintee) that the attacker wishes to finger-
`print, whereas to apply an active fingerprinting technique,
`the fingerprinter must have the ability to initiate connec-
`tions to the fingerprintee. Our third class of techniques,
`which we refer to as semi-passive fingerprinting techniques,
`assumes that after the fingerprintee initiates a connection,
`the fingerprinter has the ability to interact with the finger-
`printee over that connection; e.g., the fingerprinter is a web-
`site with which the device is communicating, or is an ISP
`in the middle capable of modifying packets en route. Each
`class of techniques has its own advantages and disadvan-
`tages. For example, passive techniques will be completely
`undetectable to the fingerprinted device, passive and semi-
`passive techniques can be applied even if the fingerprinted
`device is behind a NAT or firewall, and semi-passive and
`active techniques can potentially be applied over longer pe-
`riods of time; e.g., after a laptop connects to a website and
`the connection terminates, the website can still continue to
`run active measurements.
`
`METHODOLOGY. For all our methods, we stress that the
`fingerprinter does not require any modification to or co-
`operation from the fingerprintee; e.g., we tested our tech-
`niques with default Red Hat 9.0, Debian 3.0, FreeBSD
`5.2.1, OpenBSD 3.5, OS X 10.3.5 Panther, Windows XP
`SP2, and Windows for Pocket PC 2002 installations.1 In Ta-
`ble 1 we summarize our preferred methods for fingerprint-
`ing the most popular operating systems.
`Our preferred passive and semi-passive techniques ex-
`ploit the fact that most modern TCP stacks implement the
`
`1Our techniques work for the default installs of other versions of these
`operating systems; here we just mention the most recent stable versions of
`the operating systems that we analyzed.
`
`IA1017
`
`Page 1 of 15
`
`

`

`Technique and section
`TCP timestamps, Section 3
`TCP timestamps, Section 3
`ICMP tstamp requests, Section 4
`
`NTP Red Hat 9.0 OS X Panther Windows XP
`Class
`Yes
`Yes
`Yes
`No
`passive
`semi-passive Yes
`Yes
`Yes
`Yes
`active
`No
`Yes
`No
`Yes
`
`Table 1. This table summarizes our main clock skew-based physical device fingerprinting techniques.
`A “Yes” in the NTP column means that one can use the attack regardless of whether the fingerprintee
`maintains its system time with NTP [19]. One can use passive and semi-passive techniques when
`the fingerprintee is behind a NAT or current generation firewall.
`
`TCP timestamps option from RFC 1323 [13] whereby, for
`performance purposes, each party in a TCP flow includes
`information about its perception of time in each outgoing
`packet. A fingerprinter can use the information contained
`within the TCP headers to estimate a device’s clock skew
`and thereby fingerprint a physical device. We stress that
`one can use our TCP timestamps-based method even when
`the fingerprintee’s system time is maintained via NTP [19].
`While most modern operating systems enable the TCP
`timestamps option by default, Windows 2000 and XP ma-
`chines do not. Therefore, we developed a trick, which in-
`volves an intentional violation of RFC 1323 on the part of
`a semi-passive or active adversary, to convince Microsoft
`Windows 2000 and XP machines to use the TCP times-
`tamps option in Windows-initiated flows.
`In addition to
`our TCP timestamps-based approach, we consider passive
`fingerprinting techniques that exploit the difference in time
`between how often other periodic activities are supposed to
`occur and how often they actually occur, and we show how
`one might use a Fourier transform on packet arrival times
`to infer a device’s clock skew. Since we believe that our
`TCP timestamps-based approach is currently our most gen-
`eral passive technique, we focus on the TCP timestamps
`approach in this paper.
`An active adversary could also exploit the ICMP proto-
`col to fingerprint a physical device. Namely, an active ad-
`versary could issue ICMP Timestamp Request messages to
`the fingerprintee and record a trace of the resulting ICMP
`Timestamp Reply messages. If the fingerprintee does not
`maintain its system time via NTP or does so only infre-
`quently and if the fingerprintee replies to ICMP Timestamp
`Requests, then an adversary analyzing the resulting ICMP
`Timestamp Reply messages will be able to estimate the fin-
`gerprintee’s system time clock skew. Default Red Hat 9.0,
`Debian 3.0, FreeBSD 5.2.1, OpenBSD 3.5, and Windows
`2000 and XP and Pocket PC 2002 installations all satisfy
`the above preconditions.
`
`PARAMETERS OF INVESTIGATION. Toward developing the
`area of remote physical device fingerprinting via remote
`clock skew estimation, we must address the following set
`of interrelated questions:
`
`(1) For what operating systems are our remote clock skew
`estimation techniques applicable?
`(2) What is the distribution of clock skews across multiple
`fingerprintees? And what is the resolution of our clock
`skew estimation techniques? (I.e., can one expect two
`machines to have measurably different clock skews?)
`(3) For a single fingerprintee, can one expect the clock
`skew estimate of that fingerprintee to be relatively
`constant over long periods of time, and through re-
`boots, power cycles, and periods of down time?
`(4) What are the effects of a fingerprintee’s access tech-
`nology (e.g., wireless, wired, dialup, cable modem)
`on the clock skew estimates for the device?
`(5) How are the clock skew estimates affected by the dis-
`tance between the fingerprinter and the fingerprintee?
`(6) Are the clock skew estimates independent of the fin-
`gerprinter? I.e., when multiple fingerprinters are mea-
`suring a single fingerprintee at the same time, will they
`all output (approximately) the same skew estimates?
`(7) How much data do we need to be able to remotely
`make accurate clock skew estimates?
`Question (6) is applicable because common fingerprinters
`will probably use NTP-based time synchronization when
`capturing packets, as opposed to more precise CDMA- or
`GPS-synchronized timestamps. Answers to the above ques-
`tions will help determine the efficacy of our physical device
`fingerprinting techniques.
`
`EXPERIMENTS AND HIGH-LEVEL RESULTS. To under-
`stand and refine our techniques, we conducted experiments
`with machines that we controlled and that ran a variety of
`operating systems, including popular Linux, BSD, and Mi-
`crosoft distributions. In all cases we found that we could
`use at least one of our techniques to estimate clock skews
`of the machines, and that we required only a small amount
`of data, though the exact data requirements depended on the
`operating system in question. For the most popular operat-
`ing systems, we observed that when the system did not use
`NTP- or SNTP-based time synchronization, then the TCP
`timestamps-based and the ICMP-based techniques yielded
`
`IA1017
`
`Page 2 of 15
`
`

`

`approximately the same skew estimates. This result, cou-
`pled with details that we describe in the body, motivated
`us to use the TCP timestamps-based method in most of our
`experiments. We survey some of our experiments here.
`To understand the effects of topology and access tech-
`nology on our skew estimates, we fixed the location of the
`fingerprinter and applied our TCP timestamps-based tech-
`nique to a single laptop in multiple locations, on both North
`American coasts, from wired, wireless, and dialup loca-
`tions, and from home, business, and campus environments
`(Table 3). All clock skew estimates for the laptop were
`close — the difference between the maximum and the min-
`imum skew estimate was only 0.67 ppm. We also simul-
`taneously measured the clock skew of the laptop and an-
`other machine from multiple PlanetLab nodes throughout
`the world, as well as from a machine of our own with a
`CDMA-synchronized Dag card [1, 9, 11, 17] for taking net-
`work traces with precise timestamps (Table 4). With the ex-
`ception of the measurements taken by a PlanetLab machine
`in India (over 300 ms round trip time away), for each exper-
`iment, all the fingerprinters (in North America, Europe, and
`Asia) reported skew estimates within only 0.56 ppm of each
`other. These experiments suggest that, except for extreme
`cases, the results of our clock skew estimation techniques
`are independent of access technology and topology.
`Toward understanding the distribution of clock skews
`across machines, we applied the TCP timestamps technique
`to the devices in a trace collected on one of the U.S.’s Tier 1
`OC-48 links (Figure 2). We also measured the clock skews
`of 69 (seemingly) identical Windows XP SP1 machines in
`one of our institution’s undergraduate computing facilities
`(Figure 3). The latter experiment, which ran for 38 days,
`as well as other experiments, show that the clock skew es-
`timates for any given machine are approximately constant
`over time, but that different machines have detectably dif-
`ferent clock skews. Lastly, we use the results of these and
`other experiments to argue that the amount of data (packets
`and duration of data) necessary to perform our skew estima-
`tion techniques is low, though we do not perform a rigorous
`analysis of exactly what “low” means.
`
`APPLICATIONS AND ADDITIONAL EXPERIMENTS. To test
`the applicability of our techniques, we applied our tech-
`niques to a honeyd [24] virtual honeynet consisting of 100
`virtual Linux 2.4.18 hosts and 100 virtual Windows XP SP1
`hosts. Our experiments showed with overwhelming proba-
`bility that the TCP flows and ICMP timestamp responses
`were all handled by a single machine as opposed to 200
`different machines. We also applied our techniques to a
`network of five virtual machines running under VMware
`Workstation [4] on a single machine. In this case, the clock
`skew estimates of the virtual machines are significantly dif-
`ferent from what one would expect from real machines (the
`skews were large and not constant over time; Figure 5). An
`
`application of our techniques, or natural extensions, might
`therefore be to remotely detect virtual honeynets.
`Another applications of our techniques is to count the
`number of hosts behind a NAT, even if those hosts use ran-
`dom or constant IP IDs to counter Bellovin’s attack [7],
`even if all the hosts run the same operating system, and even
`if not all of the hosts are up at the same time. Furthermore,
`when both our techniques and Bellovin’s techniques are ap-
`plicable, we expect our approach to provide a much higher
`degree of resolution. One could also use our techniques for
`forensics purposes, e.g., to argue whether or not a given lap-
`top was connected to the Internet from a given access loca-
`tion. One could also use our techniques to help track laptops
`as they move, perhaps as part of a Carnivore-like project
`(here we envision our skew estimates as one important com-
`ponent of the tracking; other components could be informa-
`tion gleaned from existing operating system fingerprinting
`techniques, usage characteristics, and other heuristics). One
`can also use our techniques to catalyze the unanonymization
`of prefix-preserving anonymized network traces [28, 29].
`
`It has long been
`BACKGROUND AND RELATED WORK.
`known that seemingly identical computers can have dis-
`parate clock skews. The NTP [19] specification describes
`a method for reducing the clock skews of devices’ sys-
`tem clocks, though over short periods of time an NTP-
`synchronized machine may still have slight clock skew. In
`1998 Paxson [22] initiated a line of research geared toward
`eliminating clock skew from network measurements, and
`one of the algorithms we use is based on a descendent of
`the Paxson paper by Moon, Skelly, and Towsley [20]. Fur-
`ther afield, though still related to clock skews, P´asztor and
`Veitch [21] have created a software clock on a commod-
`ity PC with high accuracy and small clock skew. One fun-
`damental difference between our work and previous work
`is our goal: whereas all previous works focus on creat-
`ing methods for eliminating the effects of clock skews, our
`work exploits and capitalizes on the effects of clock skews.
`Anagnostakis et. al. [6] use ICMP Timestamp Requests
`to study router queuing delays. It is well known that a net-
`work card’s MAC address is supposed to be unique and
`therefore could serve as a fingerprint of a device assum-
`ing that the adversary can observe the device’s MAC ad-
`dress and that the owner of the card has not changed the
`MAC address. The main advantage of our techniques over
`a MAC address-based approach is that our techniques are
`mountable by adversaries thousands of miles and multiple
`hops away. One could also use cookies or any other per-
`sistent data to track a physical device, but such persistent
`data may not always be available to an adversary, perhaps
`because the user is privacy-conscious and tries to minimize
`storage and transmission of such data, or because the user
`never communicates that data unencrypted.
`See [15] for the full version of this paper.
`
`IA1017
`
`Page 3 of 15
`
`

`

`2 Clocks and clock skews
`
`When discussing clocks and clock skews, we build on
`the nomenclature from the NTP specification [19] and from
`Paxson [22]. A clock C is designed to represent the amount
`of time that has passed since some initial time i[C]. Clock
`C’s resolution, r[C], is the smallest unit by which the clock
`can be incremented, and we refer to each such increment
`as a tick. A resolution of 10 ms means that the clock is de-
`signed to have 10 ms granularity, not that the clock is always
`incremented exactly every 10 ms. Clock C’s intended fre-
`quency, Hz[C], is the inverse of its resolution; e.g., a clock
`with 10 ms granularity is designed to run at 100 Hz. For
`all t ≥ i[C], let R[C](t) denote the time reported by clock
`C at time t, where t denotes the true time as defined by
`national standards. The offset of clock C, off[C], is the dif-
`ference between the time reported by C and the true time,
`i.e., off[C](t) = R[C](t) − t for all t ≥ i[C]. A clock’s
`skew, s[C], is the first derivative of its offset with respect to
`time, where we assume for simplicity of notation that R[C]
`is a differentiable function in t. We report skew estimates in
`microseconds per second (µs/s) or, equivalently, parts per
`million (ppm). As we shall show, and as others have also
`concluded [22, 20, 26], it is often reasonable to assume that
`a clock’s skew is constant. When the clock in question is
`clear from context, we shall remove the parameter C from
`our notation; e.g., s[C] becomes s.
`A given device can have multiple, possibly independent,
`clocks. For remote physical device fingerprinting, we ex-
`ploit two different clocks: the clock corresponding to a de-
`vice’s system time, and a clock internal to a device’s TCP
`network stack, which we call the device’s TCP timestamps
`option clock or TSopt clock. We do not consider the hard-
`ware bases for these clocks here since our focus is not on
`understanding why these clocks have skews, but on exploit-
`ing the fact these clocks can have measurable skews on pop-
`ular current-generation systems.
`
`THE SYSTEM CLOCK. To most users of a computer sys-
`tem, the most visible clock is the device’s system clock,
`Csys, which is designed to record the amount of time since
`00:00:00 UTC, January 1, 1970. Although the system
`clocks on professionally administered machines are often
`approximately synchronized with true time via NTP [19]
`or, less accurately, via SNTP [18], we stress that it is much
`less likely for the system clocks on non-professionally man-
`aged machines to be externally synchronized. This lack of
`synchronization is because the default installations of most
`of the popular operating systems that we tested do not syn-
`chronize the hosts’ system clocks with true time or, if they
`do, they do so only infrequently. For example, default Win-
`dows XP Professional installations only synchronize their
`system times with Microsoft’s NTP server when they boot
`and once a week thereafter. Default Red Hat 9.0 Linux
`
`installations do not use NTP by default, though they do
`present the user with the option of entering an NTP server.
`Default Debian 3.0, FreeBSD 5.2.1, and OpenBSD 3.5 sys-
`tems, at least under the configurations that we selected (e.g.,
`“typical user”), do not even present the user with the op-
`tion of installing ntpd. For such a non-professionally-
`administered machine, if an adversary can learn the values
`of the machine’s system clock at multiple points in time,
`the adversary will be able to infer information about the de-
`vice’s system clock skew, s[Csys].
`THE TCP TIMESTAMPS OPTION CLOCK. RFC 1323 [13]
`specifies the TCP timestamps option to the TCP protocol.
`A TCP flow will use the TCP timestamps option if the net-
`work stacks on both ends of the flow implement the option
`and if the initiator of the flow includes the option in the
`initial SYN packet. All modern operating systems that we
`tested implement the TCP timestamps option. Of the sys-
`tems we tested, Microsoft Windows 2000 and XP are the
`only ones that do not include the TCP timestamps option in
`the initial SYN packet (Microsoft Windows Pocket PC 2002
`does include the option when initiating TCP flows). In Sec-
`tion 3 we introduce a trick for making Windows 2000- and
`XP-initiated flows use the TCP timestamps option.
`For physical device fingerprinting, the most important
`property of the TCP timestamps option is that if a flow uses
`the option, then a portion of the header of each TCP packet
`in that flow will contain a 32-bit timestamp generated by
`the creator of that packet. The RFC does not dictate what
`values the timestamps should take, but does say that the
`timestamps should be taken from a “virtual clock” that is “at
`least approximately proportional to real time [13];” the RFC
`1323 PAWS algorithm does stipulate (Section 4.2.2) that the
`resolution of this virtual clock be between 1 ms and 1 sec-
`ond. We refer to this “virtual clock” as the device’s TCP
`timestamps option clock, or its TSopt clock Ctcp. There is no
`requirement that a device’s TSopt clock and its system clock
`be correlated. Moreover, for popular operating systems like
`Windows XP, Linux, and FreeBSD, a device’s TSopt clock
`may be unaffected by adjustments to the device’s system
`clock via NTP. To sample some popular operating systems,
`standard Red Hat 9.0 and Debian 3.0 Linux distributions2
`and FreeBSD 5.2.1 machines have TSopt clocks with 10 ms
`resolution, OS X Panther and OpenBSD 3.5 machines have
`TSopt clocks with 500 ms resolution, and Microsoft Win-
`dows 2000, XP, and Pocket PC 2002 systems have TSopt
`clocks with 100 ms resolution. Most systems reset their
`TSopt clock to zero upon reboot; on these systems i[Ctcp]
`is the time at which the system booted. If an adversary can
`learn the values of a device’s TSopt clock at multiple points
`in time, then the adversary may be able to infer information
`about the device’s TSopt clock skew, s[Ctcp].
`2We do not generalize this to all Linux distributions since Knoppix 3.6,
`with the 2.6.7 experimental kernel, has 1 ms resolution.
`
`IA1017
`
`Page 4 of 15
`
`

`

`3 Exploiting the TCP Timestamps Option
`
`In this section we consider (1) how an adversary might
`obtain samples of a device’s TSopt clock at multiple points
`in time and (2) how an adversary could use those samples
`to fingerprint a physical device. We assume for now that
`there is a one-to-one correspondence between physical de-
`vices and IP addresses, and defer to Section 8 a discussion
`of how to deal with multiple active hosts behind a NAT; in
`this section we do consider NATs with a single active device
`behind them.
`
`THE MEASURER. The measurer can be any entity capable
`of observing TCP packets from the fingerprintee, assum-
`ing that those packets have the TCP timestamps option en-
`abled. The measurer could therefore be the fingerprintee’s
`ISP, or any tap in the middle of the network over which
`packets from the device travel; e.g., we apply our techniques
`to a trace taken on a major Tier 1 ISP’s backbone OC-48
`links. The measurer could also be any system with which
`the fingerprintee frequently communicates; prime examples
`of such systems include a search engine like Google, a news
`website, and a click-through ads service that displays con-
`tent on a large number of websites. If the measurer is ac-
`tive, then the measurer could also be the one to initiate a
`TCP flow with the fingerprintee, assuming that the device
`is reachable and has an open port. If the measurer is semi-
`passive or active, then it could make the flows that it ob-
`serves last abnormally long, thereby giving the measurer
`samples of the fingerprintee’s clock over extended periods
`of time.
`
`A TRICK FOR MEASURING WINDOWS 2000 AND XP MA-
`CHINES. We seek the ability to measure TSopt clock skews
`of Windows 2000 and XP machines even if those machines
`are behind NATs and firewalls. But, because of the nature of
`NATs and firewalls, in these cases we will typically be lim-
`ited to analyzing flows initiated by the Windows machines.
`Unfortunately, because Windows 2000 and XP machines do
`not include the TCP timestamps option in their initial SYN
`packets, the TCP timestamps RFC [13] mandates that none
`of the subsequent packets in Windows-initiated flows can
`include the TCP timestamps option. Thus, assuming that all
`parties correctly implement the TCP RFCs, a passive adver-
`sary will not be able to exploit the TCP timestamps option
`with Windows 2000/XP-initiated flows.
`If the adversary is semi-passive, we observe the follow-
`ing trick. Assume for simplicity that the adversary is the de-
`vice to whom the Windows machine is connecting. After re-
`ceiving the initial SYN packet from the Windows machine,
`the adversary will reply with a SYN/ACK, but the adversary
`will break the RFC 1323 specification and include the TCP
`timestamps option in its reply. After receiving such a reply,
`our Windows 2000 and XP machines ignored the fact that
`
`they did not include the TCP timestamps option in their ini-
`tial SYN packets, and included the TCP timestamps option
`in all of their subsequent packets. As an extension, we note
`that the adversary does not have to be the device to whom
`the Windows machine is connecting. Rather, the adversary
`simply needs to be able to mount a “device-in-the-middle”
`attack and modify packets such that the Windows machine
`receives one with the TCP timestamps option turned on. If
`the adversary is the device’s ISP, then the ISP could rewrite
`the Windows machine’s initial SYN packets so that they in-
`clude the TCP timestamps option. The SYN/ACKs from
`the legitimate recipients will therefore have the TCP times-
`tamps option enabled and, from that point forward, the Win-
`dows machine will include the TCP timestamps option in all
`subsequent packets in the flows.
`We applied this technique to Windows XP machines on
`a residential cable system with a LinkSys Wireless Access
`Point and a NAT, as well as to Windows XP SP2 machines
`using the default XP SP2 firewall, and to Windows XP SP1
`machines with the Windows ZoneAlarm firewall. (While
`current firewalls do not detect this trick, it is quite possible
`that future firewalls might.)
`ESTIMATING THE TSOPT CLOCK SKEW. Let us now as-
`sume that an adversary has obtained a trace T of TCP pack-
`ets from the fingerprintee, and let us assume for simplicity
`that all |T | packets in the trace have the TCP timestamps
`option enabled. Toward estimating a device’s TSopt clock
`skew s[Ctcp] we adopt the following additional notation. Let
`ti be the time in seconds at which the measurer observed the
`i-th packet in T and let Ti be the Ctcp timestamp contained
`within the i-th packet. Define
`xi = ti − t1
`vi = Ti − T1
`wi = vi/Hz
`yi = wi − xi
`OT = { (xi, yi) : i ∈ {1, . . . , |T |} } .
`The unit for wi is seconds; yi is the observed offset of the i-
`th packet; OT is the the offset-set corresponding to the trace
`T . We discuss below how to compute Hz if it is not known
`to the measurer in advance. As an example, Figure 1 shows
`the offset-sets for two devices in a two-hour trace of traffic
`from an Internet backbone OC-48 link on 2004-04-28 (we
`omit IP addresses for privacy reasons). Shifting the clocks
`by t1 and T1 for xi and vi is not necessary for our analysis
`but makes plots like in Figure 1 cleaner.
`If we could assume that the measurer’s clock is accurate
`and that the t values represent true time, and if we could as-
`sume that there is no delay between when the fingerprintee
`generates the i-th packet and when the measurer records
`the i-th packet, then yi = off(xi + t1). Under these as-
`sumptions, and if we make the additional assumption that
`
`IA1017
`
`Page 5 of 15
`
`

`

`mizes the average vertical distance of all the points in OT
`from the line; i.e., the linear programming solution is one
`that minimizes the objective function
`|T |(cid:1)
`(cid:2)
`1
`α · xi + β − yi
`|T | ·
`
`(cid:3)
`
`.
`
`i=1
`Although one can solve the above using standard linear pro-
`gramming techniques, as Moon, Skelly, and Towsley [20]
`note, there exist techniques to solve linear programming
`problems in two variables in linear time [10, 16]. We use
`a linear time algorithm in all our computations.
`It remains to discuss how to infer Hz if the measurer does
`not know it in advance. One solution involves computing
`the slope of the points
`I = { (xi, vi) : i ∈ {1, . . . , |T | }
`and rounding to the nearest integer. One can compute the
`slope of this set by adapting the above linear programming
`problem to this set.
`AN EQUIVALENT VIEW. If A is the slope of the points in
`the above set I, derived using the linear programming al-
`gorithm, then one could also approximate the skew of Ctcp
`as A/Hz − 1. This approach is simply a different way of
`arriving at the same solution since we can prove that, when
`using the linear programming method for slope estimation,
`both approaches produce the same skew estimate. We use
`the offset-set approach since these sets naturally yield fig-
`ures where the skews are clearly visible; e.g., Figure 1.
`
`4 Exploiting ICMP Timestamp Requests
`
`THE MEASURER. To exploit a device’s system time clock
`skew, the measurer could be any website with which the fin-
`gerprintee communicates, or any other device on the Inter-
`net provided that the measurer is capable of issuing ICMP
`Timestamp Requests (ICMP message type 13) to the fin-
`gerprintee. The measurer must also be capable of record-
`ing the fingerprintee’s subsequent ICMP Timestamp Reply
`messages (ICMP message type 14). In order for this tech-
`nique to be mountable, the primary limitation is that the de-
`vice must not be behind a NAT or firewall that filters ICMP.
`
`ESTIMATING THE SYSTEM CLOCK SKEW. Let us now as-
`sume that an adversary has obtained a trace T of ICMP
`Timestamp Reply messages from the fingerprintee. The
`ICMP Timestamp Reply messages will contain two 32-bit
`values generated by the fingerprintee. The first value is
`the time at which the corresponding ICMP Timestamp Re-
`quest packet was received, and the second value is the time
`at which the ICMP Timestamp Reply was generated; here
`time is according to the fingerprintee’s system clock, Csys,
`and is reported in milliseconds since midnight UTC. Win-
`dows machines report the timestamp in little endian for-
`
`Source 1: 10Hz TSopt clock, 37526 packets, ttl=113
`Source 2: 100Hz TSopt clock, 20974 packets, ttl=55
`linear programming-based upper bound
`
`900
`
`2700
`1800
`5400
`4500
`3600
`time since start of measurement (seconds)
`
`6300
`
`7200
`
`400
`
`200
`
`0
`
`-200
`
`-400
`
`observed offset (ms)
`
`-600
`
`0
`
`Figure 1. TSopt clock offset-sets for two
`sources in BBN. Trace recorded on an OC-
`48 link of a U.S. Tier 1 ISP, 2004-04-28 19:30–
`21:30PDT. The source with the wide band has
`a 10 Hz TSopt clock, the source with the nar-
`row band has a 100 Hz TSopt clock. A source
`with no clock skew would have a horizontal
`band.
`
`R is differentiable, then the first derivative of y, which is
`the slope of the points in OT , is the skew s of Ctcp. Since
`we cannot generally make these assumptions, we are left to
`approximate s from the data.
`Let us consider plots like those in Figure 1 more closely.
`We first observe that the large band corresponds to a device
`where the TSopt clock has low resolution (r = 100 ms) and
`that the narrow band corresponds to a device with a higher
`resolution (r = 10 ms). The width of these bands, and in
`particular the wide band, means that if the duration of our
`trace is short, we cannot always approximate the slope of
`the points in OT by computing the slope between any two
`points in the set. Moreover, as Paxson and others have noted
`in similar contexts [22, 20], variable network delay renders
`simple linear regression insufficient. Consequently, to ap-
`proximate the the skew s from OT , we borrow a linear pro-
`gramming solution from Moon, Skelly, and Towsley [20],
`which has as its core Graham’s convex hull algorithm on
`sorted data [12].
`The linear programming solution outputs the equation of
`a line αx + β that upper-bounds the set of points OT . We
`use an upper bound because network and host delays are all
`positive. The slope of the line, α, is our estimate of the clock
`skew of Ctcp. In detail, the linear programming constraints
`for this line are that, for all i ∈ {1, . . . , |T |},
`α · xi + β ≥ yi ,
`which means that the solution must upper-bound all the
`points in OT . The linear programming solution then mini-
`
`IA1017
`
`Page 6 of 15
`
`

`

`mat, whereas all the other machines that we tested report
`the timestamp in big endian notation. The remaining nota-
`tion and the method for skew estimation is now identical to
`what we presented in Section 3, with two minor exceptions.
`First, the adversary does not have to compute Hz since RFC
`792 [23] requires that Hz be 1000 (or, if not, that a spe-
`cial bit be set to indicate non-compliance). Second, since
`the time reported in the ICMP Timestamp Reply is in mil-
`liseconds since midnight UTC, we expect the timestamps
`reported in the ICMP Timestamp Reply messages to reset
`approximately once a day; we adjust the v values accord-
`ingly. (The only thing special that our attack exploits about
`ICMP is the fact that ICMP has a message type that will
`reveal a device’s system time; our techniques would work
`equally well with any other protocol that leaks information
`about a device’s system or other clock.)
`
`BRIEF COMPARISON WITH TCP TIMESTAMPS. For much
`of the rest of this paper, we focus on our TCP timestamps-
`based appro

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