Why MAC Address Randomization is not Enough:An Analysis of Wi-Fi Network Discovery Mechanisms
Mathy Vanhoef† , Célestin Matte‡ , Mathieu Cunche‡ , Leonardo S. Cardoso‡ , Frank Piessens††
iMinds-Distrinet, KU Leuven , ‡ Univ Lyon, INSA Lyon, Inria, CITI, France

ABSTRACT
We present several novel techniques to track (unassociated)mobile devices by abusing features of the Wi-Fi standard.
This shows that using random MAC addresses, on its own,
does not guarantee privacy.
First, we show that information elements in probe requests
can be used to fingerprint devices. We then combine thesefingerprints with incremental sequence numbers, to createa tracking algorithm that does not rely on unique identifiers such as MAC addresses. Based on real-world datasets,
we demonstrate that our algorithm can correctly track asmuch as 50% of devices for at least 20 minutes. We also
show that commodity Wi-Fi devices use predictable scrambler seeds. These can be used to improve the performance of
our tracking algorithm. Finally, we present two attacks thatreveal the real MAC address of a device, even if MAC address randomization is used. In the first one, we create fakehotspots to induce clients to connect using their real MAC
address. The second technique relies on the new 802.11u
standard, commonly referred to as Hotspot 2.0, where weshow that Linux and Windows send Access Network Query
Protocol (ANQP) requests using their real MAC address.

1.

INTRODUCTION

Tracking people through their mobile devices has become
controversial but common. For example, leaked documents
show the NSA tracks people’s cell phone location, and later
analyses this data under programs such as Co-Traveler toinfer relationships between people [19]. Under the programs
Gilgamesh and Shenanigans, captured cell phone locations
are used to perform targeted drone attacks [41]. As a morecommercial example, smart trash cans in the UK used Wi-Fi
to track the movements of people, in order to gain insight
into people’s shopping behaviour [22]. This is possible because Wi-Fi-enabled devices routinely transmit probe requests to search for nearby networks, and these requests
contain the unique MAC address of the device. An attacker
can easily capture and track these requests. In response
Permission to make digital or hard copies of all or part of this work for personal orclassroom use is granted without fee provided that copies are not made or distributedfor profit or commercial advantage and that copies bear this notice and the full citationon the first page. Copyrights for components of this work owned by others than theauthor(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or
republish, to post on servers or to redistribute to lists, requires prior specific permission
and/or a fee. Request permissions from permissions@acm.org.

ASIA CCS ’16, May 30-June 03, 2016, Xi’an, China
c 2016 Copyright held by the owner/author(s). Publication rights licensed to ACM.
ISBN 978-1-4503-4233-9/16/05. . . $15.00
DOI: http://dx.doi.org/10.1145/2897845.2897883

to these privacy violations, most Operating Systems (OSs)have now implemented different variants of MAC address
randomization. While a commendable initiative, we showthat all implementations of MAC address randomization failto provide adequate privacy.
First, we analyse the content of probe requests by focusing
on Information Elements (IEs), which are used to communicate extended information on the device and its capabilities.
Based on real-world datasets containing more than 8 million
probe requests, we show that the number of elements, theirvalue, and the order they are in form a fingerprint of a device(called the IE fingerprint). This IE fingerprint can be used
to defeat MAC address randomization. In some cases, the IE
fingerprint even uniquely identifies a device in the datasets.
We also found that the Wi-Fi Protected Setup (WPS) element may leak the original MAC address of the device.
We continue by studying the sequence number field, whichis incremented for each transmitted frame. We consolidate
previous observations [18] that this field is not reset upon
identifier change in current implementations of MAC address randomization. By combining the sequence number
field with the IE fingerprint, we present an algorithm thattracks devices over time and thus defeats MAC address randomization. Based on simulations, we show that this algorithm can track a significant fraction of devices.
Inspired by the work of Bloessl et al. [6], we also analyze
the scrambler seeds of commodity Wi-Fi devices. We findthat this field in the 802.11 physical layer is predictable andcan thus be used for tracking. As opposed to the sequencenumber field, the scrambler seed is managed by the hardware. Hence it is more difficult, if not impossible, to fix thisunwanted predictability through software updates.
Finally, we introduce and analyze active attacks which reveal a target device’s real MAC address despite randomization. This is done by creating fake Access Points (APs) thatadvertise either popular SSIDs, or the support of Hotspot 2.0.
A station will reveal its real MAC address when connecting
to, or respectively communicating with, our fake APs. By
spoofing only 5 SSIDs, we were able to retrieve the MAC address of 17.4% of devices. The attack abusing the Hotspot
2.0 standard uncovered the MAC address of 5.2% of devices.
To summarize, our main contributions are:
• We study information elements in probe requests, anddiscover new fields and techniques to track users.
• We demonstrate that scrambler seeds of commodity
Wi-Fi radios are predictable, and show that devices
are trackable through this field.

• We show that advertising fake hotspots, in particular when combined with the Hotspot 2.0 protocol, cancompletely defeat MAC address randomization.
The remainder of this paper is organized as follows. Section 2 introduces relevant parts of the 802.11 standard, anddatasets used throughout the paper. A privacy analysis of
information elements in probe requests is done in Section 3,
and in Section 4 we demonstrate how combining this withpredictable sequence numbers can be used to track devices.
In Section 5, we show that scrambler seeds of commodity devices are predictable. Section 6 introduces attacks based on
fake APs and the Hotspot 2.0 protocol. Finally, Sections 7
and 8 discuss related work and conclude.

Feedback
Data Inx0 x1 x2 x3 x4 x 5 x6
Scrambled Data
Figure 1: The scrambler used in 802.11 frames.

when connecting to a network. To assure the client always
uses the same address when connecting to a particular network, a per-network address is calculated as follows [27, 28]:
addr = SHA-256(SSID, macaddr , connId , secret)[:6]2.

BACKGROUND

In this section, we introduce vendor implementations of
MAC address randomization, relevant parts of the 802.11
physical layer, the Hotspot 2.0 standard, and used datasets.

2.1

MAC Address Randomization

To prevent third parties from using the MAC address totrack devices, several vendors have implemented MAC address randomization. This follows the suggestion of Gruteser
et al. [25] to use disposable interface identifiers in order toimprove users’ privacy. In practice, this implies that probe
requests no longer use the real MAC address of the device.
For example, a new MAC address can be used for each scan
iteration, where one scan iteration consists of sending probe
requests on all usable channels. However, since a (draft)specification on MAC address randomization does not yet
exist, iOS, Windows, and Linux, all implemented their own
variants of MAC address randomization. This raises thequestion whether their implementations actually guarantee
privacy. In the remainder of the paper, we use randomization as a synonym of MAC address randomization.

(1)

Here SSID is the name of the network, macaddr the original MAC address, and connId a parameter that changes
if the user removes (and re-adds) the network to its preferred network list. The secret parameter is a 256-bits cryptographic random number generated during system initialization, unique per interface, and kept the same across reboots [28]. Bits in the most significant byte of addr are set
so it becomes a locally administered, unicast address. Thishash construction is similar to the generation of IPv6 interface identifiers as proposed in RFC 7217 [21]. It assures thatsystems relying on fixed MAC addresses continue to work as
expected, e.g., when authentication is performed based on
the MAC address. Users can also manually instruct the OS
to daily update the per-network address randomly.

2.1.4

Linux

Apple added MAC address randomization to its devices
starting from iOS 8 [42]. In iOS 8, randomized addresses are
only used while unassociated and in sleep mode [18]. iOS 9
was extended to also use randomization in what Apples calls
location and auto-join scans [42]. Based on our own experiments, this means that randomization is now also used when
the device is active, i.e., when the screen is turned on.

Linux added support for MAC address randomization during network scans in kernel version 3.18. The address shouldbe randomized for each scan iteration [24]. Drivers must be
updated to support this feature. The mvm module of the
iwlwifi driver supports randomization since kernel 3.18.
The brcmfmac driver added support for this in kernel 4.5.
The privacy-oriented Linux distribution Tails [1] does notsupport MAC address randomization during network scans.
Instead, it generates a (new) random MAC address at boot.
This random address keeps the first 3 bytes of the original address, the Organization Unique Identifier (OUI), andonly randomizes the last three bytes. While not as optimalas periodical address changes, it does prevent tracking overextended periods of time.

2.1.2

2.2

2.1.1

iOS

Android

The Wi-Fi Physical Layer

Android 6.0 uses randomization for background scans if
the driver and hardware support it [2]. Unfortunately, we
did not have a device to test and verify this in practice.
Although Android versions before 6.0 do not support randomization, several applications supporting this feature havebeen released [9, 3]. Common features of those applications
are a periodical update of the MAC address to a random
value, but also the manual modification of this address by
the user. Note that those applications require root privilege
to operate, which reduce their impact for the average user.

The 802.11 standard defines two popular modulation techniques: Direct-Sequence Spread Spectrum (DSSS) and Orthogonal Frequency Division Multiplexing (OFDM). A disadvantage of OFDM is its high peak-to-average power ratio,
increasing the bit-error ratio and out-of-band radiation [44].
This problem can be mitigated by using a scrambler that removes repetitive patterns in the data being modulated andtransmitted. In 802.11, the scrambler XORs the input datawith a bit sequence generated by a Linear Feedback Shift
Register (LFSR) whose feedback function is [31, §18.3.5.5]:

2.1.3

Definition 1. The 802.11 scrambler feedback function
L : F72 → F2 is defined by L(x0 x1 . . . x6 ) = x0 ⊕ x3 .

Windows

Microsoft supports randomization since Windows 10 [45].
Enabling randomization is possible if the hardware and driver
support it. Interestingly, not only does Windows use random
addresses for probe requests, it also uses a random address

We call x0 and x3 the feedback taps. Here F2 is the field{0, 1}, and Fn
2 a bitstring of length n representing LFSR
states. Concatenation of bitstrings x and y is denoted by xy.

Scrambled Data
PLCP Preamble

SignalSERVICE

PSDU

Tail

Padding

12 symbols

24 bits

16 bitsvariable

6 bitsvariable

Rate Reserved Length Parity Tail4 bits

1 bit

12 bits

1 bit

6 bitsScrambler Init Reserved
7 bits9 bitsFigure 2: Format of legacy OFDM frames. The Tail field is zeroed and not scrambled. Bits are shown in transmit order.
For a bitstring x ∈ Fn
2 , xi denotes the i-th bit of x (with0 ≤ i < n). The shift function of the LFSR becomes:
Definition 2. The shift function SL : F72 → F72 is defined by SL (x0 x1 . . . x6 ) = x1 . . . x6 L(x0 x1 . . . x6 ).
The resulting LFSR is shown in Fig. 1.
The layout of (legacy OFDM-encoded) frames is shown in
Fig. 2. Scrambling is done on all data bits starting from,and including, the SERVICE field (see Fig. 2). After scrambling, the tail field is overwritten with zeros. The scrambler
is self-synchronizing. This means that the Scrambler Init
field is initialized to all zeros, so the first 7 feedback bits will
effectively be written to this field. Hence, the Scrambler Init
field does not contain the scrambler seed, but the state of the
LFSR after 7 shifts. Since probe requests are generally sent
at the most reliable encoding available, DSSS is used in the
2.4 GHz band, and OFDM in the 5 GHz band. Surprisingly,
DSSS frames use a fixed value for the scrambler seed [31,§17.2.4]. Only legacy 802.11 radios generate a random seedfor DSSS-encoded frames. This makes the DSSS-encoded
probe requests in the 2.4 GHz irrelevant in our attacks that
rely on the scrambler seed. In contrast, OFDM-encodedframes use variable scrambler seeds. Therefore, when investigating the generation of scrambler seeds in Sect. 5, we will
focus on probe requests transmitted in the 5 GHz band.

2.3

Hotspot 2.0

Hotspot 2.0 is an initiative of the Wi-Fi Alliance to streamline network discovery and selection, aiming to create aroaming experience matching that of cellular phones [46]. It
allows clients to discover hotspots for which they have appropriate credentials, and provides automatic roaming between
wireless networks. Hotspot 2.0 relies on 802.11u, a standard
providing a communication channel even when the station is
unassociated with an Access Point (AP) [32]. Stations use
this channel to query an AP for network access information
using the Access Network Query Protocol (ANQP). For example, ANQP can be used for discovering which credentials
can be used to authenticate to a hotspot.

2.4

Datasets

Throughout our study, we used several datasets to pinpoint identifying elements contained in Wi-Fi frames andto evaluate the performances of our tracking attacks. The
following datasets were used: the Train-station dataset
captured around one large train station in Lyon in October 2015; the Lab dataset, a 5-day-long capture in October 2015 in our laboratory; and the Sapienza probe request
dataset [4] that has been captured by Barbera et al. in 2013.
Table 1 summarizes the characteristics of those datasets.
In order to limit privacy risks when analyzing the datasets,

Table 1: Details of the probe requests datasets.
Dataset#MAC addr.
#Probe Req.
Time frame
LocationLab
500
120 000
Oct ’15Lab

Train-station
10 000110 000
Oct/Nov ’15
Train Station

Sapienza
160 000
8 million
Feb/May ’13
Rome

we restricted the capture to probe requests only, which meansthat no network data was collected. In addition, we applied
to our datasets the same anomyzation method as used by
Barbera et al. on the Sapienza dataset: once collected, allidentifiers (MAC addresses and SSIDs) were replaced by apseudonym, preventing any re-identification.
In all datasets we removed probe requests sent from locally administered addresses. These are either random MAC
addresses, or specially assigned ones, and in general do not
remain constant. Since we use MAC addresses as unique devices identifiers to check the performance of our algorithms,
they would distort our results. Finally, based on sequencenumbers and device-specific IEs, we detected and removed
one device that kept the first three bytes of its MAC address,
but randomized the last three.

3.

PROBE REQUEST FINGERPRINTING

In this section, we study how much identifying information can be found in probe requests besides MAC addresses,
timing, and sequence numbers. In particular, we study thedata carried in the frame body of probe requests, and showthat it can be used to fingerprint and identify devices.

3.1

Information Element Fingerprint

Probe requests include data in their frame body under theform of Information Elements (IEs) [31, §7.2.3], also called
tagged parameters, or tags. These IEs are not mandatory
and are used to advertise the support of various functionalities. They are generally composed of several subfields whose
size can range from one bit to several bytes. We identify 12
useful elements, presented in Table 2. This list is not exhaustive and could be extended. Selected IEs include items
related to Supported Rates, High Throughput capabilities and Interworking Capabilities. Because they are
optional, those IEs are not included by all devices and theset of IEs can therefore vary from one device to another, depending on the configuration and capabilities of the device.
While the 802.11 standard states that IEs must be sorted
in ascending order based on their tag [31, §8.4.2.1], several
devices ignore this and use a custom order. Therefore theorder of IEs is also potential source of information.

Table 2: Analysis of the Information Elements of probe requests in the considered datasets. For each item: the entropy
brought by the element, the percentage of devices for which this item is stable over time, and the percentage of devices that
include this item in their probe requests.
Element
HT capabilities info
Ordered list of tags numbers
Extended capabilities
HT A-MPDU parameters
HT MCS set bitmask
Supported rates
Interworking - access net. type
Extended supported rates
WPS UUID
HT extended capabilities
HT TxBeam Forming Cap.
HT Antenna Selection Cap.
Overall

3.1.1

Lab
3.94
4.23
2.59
2.59
1.49
1.18
1.08
1.00
0.878
0.654
0.598
0.579
5.48

Entropy (bits)
Station Sapienza
4.74
3.35
5.24
4.10
2.57
0.064
2.67
2.54
1.43
1.16
2.10
1.36
1.11
0.006
1.77
0.886
0.788
0.658
0.623
0.779
0.587
0.712
0.576
0.711
7.03
5.65

Entropy

We evaluate the quantity of information brought by thesedifferent elements using the three datasets introduced in Section 2.4. Following the approach of Panopticlick [16], we
empirically evaluate the amount of information provided byeach element by computing its entropy in the datasets. The
entropy of an element i is computed as follows:X
Hi = −
fi,j ∗ log fi,j
(2)
j∈Ei

where Ei is the domain of possible values for element i andfi,j is the frequency (i.e., probability) of the value j for theelement i in the dataset. We consider the absence of anelement as a possible value.
Results of our analysis of the IEs are presented in Table 2.
The Entropy column presents the amount of identifying bits
provided by the elements. The Stability column presents
the fraction of devices for which the value of the element
is constant throughout the datasets. Finally, the Affected
Devices column presents the fraction of devices that include
this IE in their probe requests.
What appears in this table is that all of these elements arestable for most devices over the observation period. Since
most of these IEs reflect intrinsic capabilities of the device,
there is no reason for them to change over time. Upon further inspection, it appears that elements which are not stable over time are generated by a small group of device. Mostof the studied IEs are present in almost all devices. For
instance, the HT capabilities tag, used to advertise capabilities for the High-Throughput 802.11n standard, is themost useful one for fingerprinting. This tag includes a lotof subfields whose values vary from one device to another,
providing a lot of identifying information.
There is a high diversity in the amount of information provided by the selected elements. For instance, the HT capabilities info provides up to 4.74 bits of entropy, while the
HT Antenna Selection Capabilities provides only 0.711
bit in the best case. This difference can be explained by alarger element (in term of bits), and also by a variance ofthe value of this element.
Some differences between the datasets are likely due to

Lab
96.0%
93.6%
98.5%
97.8%
97.6%
98.2%
99.6%
98.0%
98.2%
97.8%
97.8%
98.0%
92.5%

Stability
Station Sapienza
95.9%
99.6%
94.2%
91.2%
99.4%
99.9%
99.1%
99.7%
99.0%
99.9%
95.9%
99.8%
99.6%
100.0%
96.3%
99.4%
99.2%
99.6%
98.9%
99.9%
98.9%
99.9%
98.9%
99.9%
90.7%
88.8%

Affected devices
Lab
Station Sapienza
90.9% 90.0%
81.1%
100% 100%100%
55.4% 51.3%
0.6%
90.9% 90.0%
81.1%
90.9% 90.0%
81.1%
100% 99.9%
100%
47.5% 46.1%
0.04%
99.1% 72.6%
99.7%
8.4%
5.5%
3.6%
90.9% 90.0%
81.1%
90.9% 90.0%
81.1%
90.9% 90.0%
81.1%-

their age. In particular, some features were not yet widespread when the Sapienza dataset was produced in 2013.
Back then, few devices had an Extended Capabilities IE,
while now it is wide-spread. Apart from this, the threedatasets display the same trends for all the elements.
The Overall row presents the information for all the IEs
considered together. We can observe that for 88.8% to 93.8%
of devices, the included IEs as well as their values do notchange over time. More importantly, the amount of information brought by all the IEs together is above 5.4 bits inall three datasets.
Note that the WPS element is not stable for all devices.
This does not mean that its content varies over time, butthat it is intermittently included by some devices, since weconsider the lack of an element as a possible value. When
the WPS element is present, it always has the same content.

3.1.2

Anonymity sets

To further study the impact of those IEs, we evaluate
the usefulness of the IEs as a device identifier. For each
IE fingerprint, we form a set of all the devices sharing thisfingerprint (called an anonymity set) and compute the sizeof this set. Figure 3 shows the distribution of the set sizes.
The three datasets exhibit a similar distribution. First, we
can observe that there is a significant number of devices
alone in their set (leftmost impulse), which means that they
have a unique fingerprint. Then, there is a large number ofsmall groups, meaning that although those devices cannot
be uniquely identified by the IE fingerprint, they are in asmall anonymity set. Finally, there is a small number oflarge sets, meaning that a large number of devices share thesame fingerprint.
This last case is likely caused by highly popular device
models: they are found in large numbers and share the samecharacteristics. A corollary of this observation is that theidentifying potential of IEs is reduced for such device models.
Those results show that the IEs can serve as a unique identifier for some devices and that, for the rest of the devices,
it can be used as a first step toward full identification.

10

10

10

2

1

0

0

20

40
60
80 100
Ano ny m it y s e t s ize

120

10

10

3

Num ber of devices

103

Num ber of devices

Num b e r o f d e v ic e s

10

2

1

(a) Lab0

100 200 300 400 500 600 700
Anonym it y set size

10

5

10

4

10

3

10

2

10

1

0

(b) Train-station

10000
20000
30000
Anonym it y set size

40000(c) Sapienza

Figure 3: Number of devices that share the same IE fingerprint with a group (i.e., anonymity set) of varying size.

Algorithm 1: WPS UUID generation in wpa supplicant
Input: MAC : MAC address of an interface
Returns: 16-byte WPS UUID
salt ← 0x526480f8c99b4be5a65558ed5f5d6084
UUID ← SHA-1(MAC , salt)
UUID[6] ← (5  4) | (UUID[6] & 0x0f)
UUID[8] ← 0x80 | (UUID[8] & 0x3f)

Table 3: Results of the WPS UUID re-identification attack
DatasetLab
Train-station
Sapienza

Number of clientswith WPS a tag
8.4%
5.5%
3.6%

Fraction of successfully reversed UUID
76.1% (35/46)
73.9% (391/529)
92.0% (5378/5844)

return UUID[:16]

3.2

Wi-Fi Protected Setup (WPS)

One of the IEs found in probe requests is dedicated to
Wi-Fi Protected Setup (WPS), a protocol simplifying device
pairing. We show that the unique identifier contained in thisIE can be used to reveal the real MAC address of the device.
Some devices add a WPS IE to their broadcast probe requests to advertise their support of the protocol (see Table 3). In our datasets, between 3.7% and 8.6% of devices
broadcast at least one probe request with such an IE. One
notable field of this IE is the Universally Unique Identifier(UUID) of the device, which is by definition identifying.
There is no official specification for the generation of the
UUID, but the Wi-Fi Alliance recommends [47, §3.19] tofollow the specification of RFC 4122 [34] and to derive itfrom the MAC address of one of the device’s interfaces. Morespecifically, RFC 4122 specifies that the UUID should bederived from the truncation of the digest obtained from acryptographic hashing of the MAC address.
On Linux, wpa_supplicant is responsible for the additionof the WPS element. It generates the UUID by computing
the SHA-1 hash of the MAC address with a fixed seed, before
truncating it. The full algorithm is shown in Algorithm 1.
It was shown in [14] that hashed MAC address are reversible
through brute-forcing, due to their relatively small address
space. Hence it is possible to recover the MAC address thatwas used to generate the UUID. In other words, if the UUID
is calculated in this manner, it leaks the real MAC address.
We calculated the UUID based on the MAC address as
described in Algorithm 1 for the Train-station and Lab
datasets. This revealed that roughly 75% of all devices using the WPS IE indeed derive the UUID from the MAC
address (see Table 3). For the Sapienza dataset, which
preserves only the OUI part of the MAC addresses, we attempted to recover the original MAC address by testing all
possible values for the last three bytes of the address (together with the given OUI). This proved extremely successful, as this yielded a result for 92% of the devices. Because

we do not have access to the original MAC addresses, wecannot guarantee that all of the recovered addresses are theone used as the Wi-Fi MAC address. Indeed, RFC 4122 [34]recommends to use the address of one of the interfaces,
meaning other MAC addresses, such as the Bluetooth one,can be used. We informed the authors of the Sapienza
dataset about theses de-anonymization issues. Using thesame method, we tested our own datasets again, this time
exhaustively testing all possible values for the last threebytes of the MAC address, while keeping the advertised OUI.
This uncovered 7 new MAC addresses for the Train-station
dataset, and none for Lab. These 7 addresses are all one bitaway from the Wi-Fi MAC address of the device, indicating that they are the address of another interface (e.g., theBluetooth address). We also found a few devices using bogus
UUIDs (12:34:56. . . or 00:00:00. . . ). We conclude that,at the exception of devices using bogus UUIDs, the WPS
element is a unique identifier in all our datasets. Moreover,
the UUID field of the WPS element can be used to reveal
the real MAC address of a device.

3.3

SSID fingerprint

Probe requests include a Service Set Identifier (SSID) element, which is used to specify a network searched by thedevice. We show that the SSID fingerprint, i.e., the list of
SSIDs searched by a device, can be a unique identifier. Devices including this element send multiple probe requests tocover all the SSIDs in their preferred network list (one probe
for each network). During each scan iteration, devices sendan ordered burst of probe requests over a small timeframe.
Although the practice of putting SSIDs in probe requests
is progressively abandoned for obvious privacy reasons, it isstill observed for a number of reasons. First, some active devices are not up-to-date and are still running an OS that does
not include this privacy-enhancing modification. Second, using a probe request with an SSID is the only way to discovera hidden access point. No matter how up-to-date the OS is,a device with configured hidden networks will broadcast thecorresponding SSID. Finally, we have observed that some

10

1

0

0

5

10
15
20
Anonym it y set size

25

10

4

10

3

10

2

10

1

(a) LabNum ber of devices

102

Num ber of devices

Num ber of devices

10

0

50
100
150
Anonym it y set size(b) Train-station

200

10

5

10

4

10

3

10

2

10

1

0

1000 2000 3000 4000
Anonym it y set size

5000(c) Sapienza

Figure 4: Number of devices that share the same SSID fingerprint with a group (i.e., anonymity set) of varying size.

recent devices like the iPad 2 running iOS 9.1 or the One
Plus One running Android 5.1.1 broadcast probe requests
with SSIDs when waking up from sleep mode. We conjecture this is because some OSes, as a way to speed up the
network-reactivation process, offer separate APIs to initiate
background and on-demand (wake up) scans.
In our datasets we found that 29.9% to 36.4% of devices
broadcast at least one SSID. Among these, 53% to 64.8%
broadcast a unique list of SSIDs. Therefore, this list can beused as an additional unique identifier to track devices.
Using the same method as for IEs, we computed the distribution of anonymity sets for SSIDs. The results are shownin Fig. 4. For readability, we removed the empty SSID list,
corresponding to devices which do not broadcast any SSID.
As for IE fingerprints, the three datasets exhibit a similar distribution. For instance, in the Lab dataset, 87 SSID
fingerprints are unique, and 26 devices share the same fingerprint. Apart from these extreme values, it appears thatthe anonymity set of devices sending SSIDs is small (< 2%of devices). This makes the SSID fingerprint a good tool for
identifying and tracking devices.

4.

IDENTIFIER-FREE TRACKING

In this section, we present an algorithm to track devices
even if MAC address randomization is used. That is, we assume no unique identifiers are available. Our algorithm firstclusters probe requests by their Information Element (IE)
fingerprint, and then distinguishes devices in each cluster
by relying on predictable sequence numbers.

4.1

Adversary and System Model

We assume the adversary is a passive observer who wants
to track the movements of people in a certain area. This isdone by tracking people’s mobile devices, and by placing radio receivers that cover the complete target area. The radios
only have to be able to receive broadcast probe requests, fullmonitor mode support is not required. In practice many institutions, e.g., shopping centers, universities, etc., can use
existing infrastructure for this purpose. We assume not allprobe requests are captured due to packet loss, and do not
require all channels to be monitored. In other words, ouralgorithm can handle missed packets, and works as long as
several consecutive network scans of a device are not missed.
Our algorithm relies on the IE fingerprint and on the predictable sequence numbers of probe requests. Note that all
802.11 frames, apart from control frames, contain a 12-bit sequence number. It is used to detect retransmissions and reconstruct fragmented packets. Based on our tests, all Wi-Fi

radios use an incremental counter to initialize the sequencenumber. Even when MAC address randomization is enabled,
we found that iOS, Linux, and Windows, all use incremental
sequence numbers in probe requests. This confirms and extends the observations by Freudiger [18]. Unsurprisingly, inour datasets all devices use an incremental sequence counter.
However, roughly one third of devices reset their sequencenumber on specific occasions. In particular, many devices
reset their sequence counter between scan iterations, likely
because they turn off the radio chip when idle.

4.2

Tracking Algorithm

Our algorithm works in two phases. First it uses the IE
fingerprint to group probes requests into clusters. Then, it
relies on predictable sequence numbers to distinguish probe
requests sent from different devices within one cluster. If
successful, each final cluster corresponds to a unique device.
The full algorithm is shown in Algorithm 2. Its input isthe list of probe requests P, and the parameters ∆T and ∆S.
Parameter ∆S is the (assumed) maximum distance between
sequence numbers of probe requests sent by the same device,and ∆T the (assumed) maximum time between two network
scans of a device. The list of probes requests P can comefrom multiple APs. The first phase corresponds to the first
forall loop. In this loop, all probe requests are assigned tosome cluster C based on their IE fingerprint. The algorithm
uses the fingerprint function to extract the IE fingerprint
based on the information elements that are present (see Section 3). The hashmap M maps fingerprints to the clusterthat contains probe requests with the given fingerprint.
In the second phase, our algorithm iterates over all clusters C in the hashmap M. Here, we rely on sequence numbers and packet arrival times to distinguish devices that havethe same IE fingerprint. Effectively, each cluster C is divided
into a list of subclusters S. The sequence number of a probe
request is denoted by p.seq, and the arrival time by p.time.
The notation S[i].last references the last probe request thathas been added to the subcluster S[i]. In the nested forall
loop, we search for a cluster such that the last probe request added to this cluster has an arrival time and sequencenumber that indicate that it was sent by the same device asprobe request p. Care must be taken so devices that reset
their sequence number after one scan iteration do not get
split up into different clusters. As a heuristic, we assume
that if a device exhibits this behaviour, all devices with thesame IE fingerprint also have this behaviour. We can thendetect devices that reset their sequence number by calculating the maximum sequence number within a cluster. If thisnumber is lower than 100, we assume devices with this fin-M←∅// M maps fingerprints to clusters
forall p ∈ P dof ← fingerprint(p)// Calculate IE fingerprint
M[f ].append(p)// Append probe to clusterD ← [ ] // List of clusters representing devices
forall C ∈ M do
S ← []// Will contain subdivision of Cm ← max(p.seq for p in C)
forall p ∈ C do
Find i such that:// Find matching clusterd(S[i].last.seq, p.seq, m) ≤ ∆S
and p.time − S[i].last.time ≤ ∆T
if no i found theni ← |S|
S[i].append(p)D.extend(S)// Create new subcluster// Add p to subcluster// Extend list D with S

return D

gerprint reset their sequence number. We get the following
definition for the distance between two sequence numbers:
Definition 3. The sequence distance d(x, y, max ) between
two sequence numbers x and y is defined as:
if max < 100
|x − y|d(x, y, max ) = y − x
if x < y212 − x + y otherwise
Here max represents the maximum sequence number in agiven cluster. All subclusters are appended to the final listof subclusters D. Finally, the algorithm returns D, where it
is assumed each cluster in D corresponds to one device.

4.3

Evaluation

We investigated the performance of our algorithm basedon our real-world datasets. To control the number of concurrent devices, and the duration that they are present, we first
filtered these datasets. To only simulate devices that remainin the tracked area for a given duration, we removed devicesof which we lost too many consecutive probe requests. This
indicates that the device moved outside the tracked area. We
rely on sequence numbers to determine how many frames are
lost: if 64 or more consecutive frames are lost, we assume
the device moved outside the tracked area, and we remove
the device. For devices that reset their sequence number
after each scan iteration, we only base ourselves on the time
between frames to determine if a device went out of range.
We also removed the WPS information element in all probe
requests, and replaced all SSIDs with a broadcast (empty)
SSID. This assures we are tracking devices without relying
on obvious unique identifiers. We only make use of MAC
addresses to measure the performance of our algorithm.
We consider a device to be successfully tracked if thereis exactly one cluster that contains all probe requests sent

80%
Tracking Probability

Algorithm 2: Cluster probe requests based on their IE
fingerprint and sequence numbers.
Input: P : List of captured probe requests∆T : maximum time between two probes∆S: maximum sequence number distance
Returns: Set of clusters corresponding to devices#concurrent devices:
256
16
64
1024

60%
40%
20%
0%
6

8

10
12
14
16
Duration (in minutes)

18

20

Figure 5: Probability of a device being successfully tracked
using Algorithm 2, in function of the duration that the device was present, and the number of concurrent devices.
by this device, and no other frames are in this cluster. Put
differently, all probe requests of this device have to be successfully linked together without a single error. With thisdefinition, the tracking probability under various conditions
is shown in Fig. 5. We used a value of 64 for ∆S, and500 seconds for ∆T . These rather large values are picked so
the tracking algorithm can tolerate several missed probe requests. Our results are promising. Even when simulating as
much as 1024 concurrent devices, over a duration of 20 minutes, we manage to successfully track a significant amountof devices. For shorter tracking durations, and when thenumber on concurrent devices is more realistic, we manage
to track roughly half of all devices.

4.4

Discussion and Countermeasures

The main reason why certain devices are not successfully
tracked, is because some clusters contain probe requests ofmultiple devices. In Section 5, we show that scrambler seeds
can further distinguish devices in these clusters. The second type of error is that probe requests of some devices are
spread out over multiple clusters. This is caused by thevariability of the IE fingerprint (see Section 3). Hence, improvements to the fingerprint function may further increase
the tracking probability of our algorithm.
In our datasets, we generally only monitor one channel.
This makes it harder to distinguish devices using sequencenumbers, since the average gap between sequence numbersof captured frames is relatively high. Monitoring multiple
channels may further increase the tracking probability.
The 802.11 standard only requires that the same sequencenumber is used for retransmissions, and that the same number is used for all fragments of a packet [31, §8.2.4.4.2].
Hence, one can reset the sequence counter to a random (unused) value if a new MAC address is being used.

5.

PREDICTABLE SCRAMBLER SEEDSIn this section, we study the scrambler seeds of commodity
Wi-Fi radios, and find that all of them use predictable seeds.
We show this can be used to improve our tracking algorithm.

5.1

Background and Experimental Setup

Recently, Bloessl et al. discovered that the scrambler seedsof two (prototype) radios used in wireless vehicular networks
are predictable [6]. They showed this can be used to improve

vehicle tracking algorithms. While the 802.11 standard saysthat scrambler seeds should be initialized with a pseudorandom nonzero seed [31, §18.3.5.5], we wondered whether
commodity Wi-Fi radios also use predictable seeds in practice. To answer this question, we need a radio that exports
the scrambler seed of received Wi-Fi frames. Since mostcommodity devices do not do so, we implemented this ourselves using a software-defined radio. We used an Ettus
USRP N210, and relied on the gr-ieee802-11 project [5] todecode OFDM frames. The code was modified to take thescrambler initialization value from the SERVICE field, andundo the initial 7 shifts to obtain the original scrambler seedvalue (see Section 2.2).
Because gr-ieee802-11 is not as optimized as real Wi-Fi
receivers, decoding frames using it is not easy. To increase
its reliability, all captures were made in an RF-shieldedroom. For each device being tested, we made it transmit
data frames of various lengths, and using different bitrates.
Based on these captures, we studied the predictability ofthe scrambler seed. In our analysis, we mainly focus on thescrambler seed behaviour of a device when it is transmitting
frames at 6 Mbps. This is done because probe requests inthe 5 GHz band are always sent at a bitrate of 6 Mbps (seeSection 2.2). Finally, we confirmed our predictions by capturing and analyzing real probe requests in the 5 GHz band.

5.2

Analysis

We found that most devices do not reset the state of thescrambler at all. Put differently, the state of the LFSR after
transmitting a frame is reused as the seed of the next frame.
We say these LFSRs are used in a free-wheeling mode, where
the state is never explicitly initialized. Let end state denotethe state of the LFSR after producing the last bit of thescrambler sequence. Then one would expect that the end
state is directly used as the seed for the next frame. Interestingly, we found that most devices perform additional
LFSR shifts before writing out the next scrambler seed. It is
unclear why devices do this, perhaps for alignment reasons.
Nevertheless, in our case, it is only important to predict
how many additional LFSR shifts are performed to get thescrambler seed. To rigorously analyze this behaviour, we define the shift distance between two LFSR states as follows:
Definition 4. The shift distance DL (x, y) between two
LFSR states x and y is defined as:(0
if x = y
DL (x, y) =1 + DL (SL (x), y) otherwise
Recall that SL (x) represents the result of one LFSR shift on
the state x. Hence, the shift distance is the number of shifts
needed to reach the second state from the first state. The
shift distance allows us to report how many additional shifts
a device performs before writing out the seed value into the
SERVICE field. If we state that a device uses a particular
shift distance, it implies it operates in a free-wheeling mode,and the reported distance denotes the shift distance between
the end state and the scrambler seed of the next frame.

5.2.1

Asus Fonepad (K004 ME371MG)

This radio always uses a shift distance of 22, making it
trivial to predict the next scrambler seed value based on theprevious frame.

Table 4: Intel 7260 AC shift distances in function of thebitrate and PSDU length (in bytes) of the previous frame.
Bitrate0

1

PSDU byte length modulo 12
2 3 4 5 6 7 8 9 10 11

6 Mbps 22 46 14 14 54 54 22 46 46 46 22 22
12 Mbps 54 54 54 54 54 38 54 54 54 38 38 38

5.2.2

One Plus and Samsung Galaxy A3

The radio in these devices always uses a shift distance of 6,
once again making it trivial to predict the next seed value.

5.2.3

TP-Link TL-WN821N

This device uses an RTL8192CU radio chip which always
uses a fixed seed value of 124. We consider this a bug in theradio: using a fixed scrambler seed value means frames arealways mapped to the same physical signal. If this happens
to be a disadvantageous signal, for example because it has
a high peak to average power ratio [44], retransmissions arealso sent using this disadvantageous signal. Hence, certain
frames experience systematically higher frame error rates [6].
Nevertheless, even a fixed seed value can be used to improve our tracking algorithm. For example, when tracking
a device with a fixed seed, we can exclude all frames witha different seed value as coming from this device. Without
access to the seed, we could have incorrectly labelled certain
frames as being transmitted by this particular device.

5.2.4

iPad Air 2 (A1566)

We found that this device only uses seed values of 8, 64,
and 72. The seed value 72 was used considerably more than 8
and 64. Interestingly, in these three values, only the 4th
and 7th bits are ever set. These bit positions correspond to
the LFSR feedback taps used in the scrambler (see Fig. 1).
Similar to the TP-Link device, we consider using only a few
fixed values for the scrambler seed to be a bug in the radio.

5.2.5

Wi-Pi: Ralink RT5370

This radio also operates in a free-wheeling mode. Aftertransmitting a frame using a bitrate of 6 Mbps and 12 Mbps,
it uses a shift distance of 6. After transmitting a frame using
a bitrate of 9 Mbps, it uses a shift distance of 10. Somewhat
surprisingly, it uses a shift distance of 61 after sending a
beacon at 6 Mbps. This serves as a good example that forsome devices, the shift distance may also depend on the typeof the previous frame. Thankfully, probe requests are always
sent at 6 Mbps in the 5 GHz band, and no other frames aretransmitted in between. Consequently, the scrambler seedof radios exhibiting this behaviour remains predictable.

5.2.6

Intel 7260 AC

This radio operates in a free-wheeling mode, where theshift distance depends on the bitrate and the PSDU lengthof the previously transmitted frame. Recall that the PSDU
denotes the actual MAC layer bytes being transmitted (seeFig. 2). To better analyze this behaviour, we also made several captures were we sent frames at 12 Mbps. The resulting
shift distances are summarized in Table 4. For example, if
the previous frame was sent at 6 Mbps, and had a PSDU
length of 13 bytes, the shift distance will be 46.

The radios in these devices all exhibit the same behaviour,and operate in a free-wheeling mode. When the previous
frame was sent at 6 Mbps, it uses a shift distance from theset {110, 114, 118, 122}. We are currently unable to predict
which shift value in this set is used. When the previous
frame was sent at 12 Mbps, the set of possible shift distancesis {102, 106, 110, 114}. While this means we cannot precisely
predict the next scrambler seed value, it still can be used to
improve the tracking probability. We conjecture that a moredetailed study of this radio chip, e.g., reverse engineering its
operations, would reveal how a shift distance is selected fromour current set of possible distances.

5.2.8

Atheros AR9271

The Atheros AR9271 radio uses an incremental counterto initialize the scrambler seed. That is, the scrambler seedis explicitly initialized, and incremented by one for eachtransmitted frame. This makes it easy to predict the next
seed value, even when some frames of unknown lengths are
missed. It is the only device we tested that does not operate
in a free-wheeling mode. We confirmed this behaviour using
an Alfa AWUS036NHA and a TP-Link TL-WN722N, which
both contain an Atheros AR9271 radio.

5.3

80%

Samsung Galaxy S3 & iPhone 5 (A1429)

Improved Tracking Algorithm

The scrambler bit provides us 7 extra bits of information to identify a device. That is, in the tracking algorithmof section 4, we can now distinguish devices based on thescrambler seeds of frames. Though current Wi-Fi radios do
not export the received seed, we believe it is easy for manufacturers to support this. In fact, newer radios may alreadybe doing this to support the 802.11ac standard. In 802.11ac,
certain bits of the seed in RST and CTS frames have a special purpose [20]. This requires that certain bits of the seedmust remain available after demodulating the physical signal. This makes it more likely that future devices can, andperhaps will, export the scrambler seed of received frames.
In practice, we must be able to determine the type ofscrambler a device uses. Otherwise, we cannot predict thenext scrambler seed. Since all devices use the same (random)
MAC address in one scan iteration, we can easily determine
the type of scrambler used by grouping the frames based on
the MAC address. Another option is to immediately send aprobe reply when receiving a probe requests. In turn, thedevice will send an ACK, which will also contain a scrambler
seed. Based on the probe request and the ACK, we candetermine the type of scrambler being used. Hence, in our
tracking algorithm, we can assume the type of scrambler isknown.
To simulate knowledge of scrambler seeds, the first frameof each device is assigned a random seed value. Since only
probe requests sent in the 5 GHz band contain a scrambler seed, we expect that few scrambler seed values will bemissed by an attacker. Hence, we assign subsequent frames
a random seed that lies within a distance of 16 or less ofthe previous frame. Similarly, in Algorithm 2, we search acluster such that the last probe request added to this cluster
has a scrambler seed that is within a distance of 16 of theprobe requests being added. Figure 6 shows the impact on
the tracking probability when knowledge of scrambler seeds
is simulated in this manner. For comparison, the tracking probability without using scrambler seeds is shown as

Tracking Probability

5.2.7#concurrent devices:
256
16
64
1024

60%
40%
20%
0%
6

8

10
12
14
16
Duration (in minutes)

18

20

Figure 6: Probability of a device being successfully tracked,
in function of the duration that the device was present, andthe number of concurrent devices. Tracking is done using
Algorithm 2, with the addition that knowledge of scrambler
seeds is also simulated. The dashed line is the probability
as reported in Fig. 5, and is repeated for convenience.
a dashed line. We conclude that using scrambler seeds canincrease the tracking probability by as much as 10%.

6.

FAKE ACCESS POINTS ATTACKSIn this Section we show how two service discovery mechanisms of Wi-Fi can be abused to gain identifying informationon unassociated stations. This is accomplished by creating
fake APs with specific characteristics and identifiers.

6.1

Reviving the Karma Attack

Once a device has detected an AP advertising an SSID
matching one of its preferred (configured) networks, it willautomatically initiate the association process with this AP.
From this point on, most devices that implement MAC address randomization will use their real MAC address to connect with the AP. The only exception is Windows, whichuses a per-network random MAC address (see Section 2.1).
Using the real MAC address may be necessary because someAPs restrict association and Internet connectivity based on
the MAC address being used.
A consequence of this switch to the real MAC addresswhen associating to an AP is that, by advertising an SSID
familiar to a device, the latter will automatically reveal a
permanent identifier. Existing attacks that advertised SSIDs
in order to get association requests from victims, such as thewell-known Karma attack [11], relied on the SSIDs that thevictim broadcasts in probe requests. However, since modern
devices avoid broadcasting SSIDs, the Karma attack is nolonger applicable. Our solution to this problem is to advertise a list of popular SSIDs, hoping that at least one of themis in the preferred network list of the victim.
As seen in section 3.3, popular SSIDs are configured in alarge number of devices. Indeed, SSIDs configured in Wi-Fi
devices follow a long-tailed distribution, which means that asmall number of popular SSIDs are found in many devices.
Using our datasets, we simulate the efficiency of this attack. We compute the number of devices that include atleast one of the top-n popular SSIDs. Figure 7 presents the
cumulative distribution of the number of affected devices infunction of the number of advertised SSIDs. We can seethat a relatively short list of popular SSIDs is enough toPercent age of devices

100%
Lyon Part Dieu dat aset
Sapienza dat aset
Lyon laborat ory dat aset

80%
60%
40%
20%
0% 0
10

10

1

2

3

4

10
10
10
10
Num ber of advert ised SSIDs

5

10

6

Figure 7: Cumulative distribution of the number of affected
devices as a function of the number of SSIDs.

trigger association requests from a large fraction of the devices. For instance, the top-20 SSIDs in the Train-station
dataset covers more than 33 % of the devices.
We tested and verified this attack in practice. Airbase-ng
was used to create fake APs from a list of popular SSIDs. We
made the assumption that the most popular SSIDs are open
hotspots that do not use encryption. Therefore, the APs we
broadcast were configured to be open hotspots. Althoughairbase-ng supports the creation of multiple SSIDs, ourexperiments revealed that it does not properly handle a large
numbers of SSIDs. Therefore, we limited our attack to areasonable number of SSIDs, i.e., 5 SSIDs. This numberof advertised SSIDs can be increased by running multiple
instances of airbase-ng on distinct interfaces.
The performance of the attack is evaluated by computing
the fraction of devices that are trying to associate (connect)
to our fake AP over the total number of devices that havebeen observed. A device is considered as observed when wecollected at least 5 probe requests from its MAC address.
This conservative approach was taken to avoid counting devices that are too far to detect our AP, or that are not staying in range long enough to start the association process.
We executed the attack for one hour using a list of the 5
top SSIDs of the Train-station dataset in a dense urban
area. During this experiment, a total of 2481 stations wereobserved and our fake APs triggered association attempts
from a total of 434 devices (17.4%). Increasing the numberof advertised SSIDs, as well as responding to probe requests
containing an SSID with a matching probe response, has thepotential to improve the number of affected devices.
Note that this attack does not necessarily need to be active. An attacker could rely on nearby, genuine, APs withpopular SSIDs to trigger association requests. In many locations, APs with popular SSIDs are commonplace. For instance, in Europe, Wi-Fi networks such as Fon or Free_WiFi
can be found in large numbers in populated areas.

6.2

Hotspot 2.0 Honeypot

We show that the service discovery mechanisms introduced by Hotspot 2.0 (HS2.0) can be leveraged to reveal
the real MAC address of Linux and Windows devices. Additionally, we discover another predictable counter that canbe used to improve our tracking algorithm of Section 4.
Because HS2.0 APs do not advertise all their capabilities
in beacons, stations need to retrieve the full list by contacting the AP. In practice, a station sends ANQP queries
to the AP, and the latter replies with an ANQP responsecontaining a list of the available services (see Section 2.3).
The real identity of devices can be easily uncovered if stations use their real MAC address for querying the AP. Our
observations confirm that this is the case for a Linux computer using wpa_supplicant, and a computer running Windows 10. However, an Apple device running iOS 9.1 kept its
randomized MAC address when sending the ANQP query.
We found that Windows and iOS devices only send ANQP
queries if at least one HS2.0 network was configured on thedevice.
The fact that the iOS device does not fall back to a persistent identifier is a positive point. However, ANQP queries
include a 1-byte field named Dialog Token that is used to
identify each GAS transaction [32, §7.4.7.13]. As multiple GAS transactions are initiated, the value of this field
will be incremented. The Dialog Token field is therefore
predictable and could be used in our tracking algorithm inthe same way sequence numbers and scrambler seeds wereused (see Section 4 and 5, respectively). In our captures, thetypical time between two consecutive queries is below 60 seconds, providing a good temporal granularity for tracking.
A variant of the Fake AP attack can therefore be mounted
by leveraging this service discovery mechanism: a simple
AP advertising HS2.0 capabilities will induce all surrounding HS2.0 compatible stations to send ANQP queries, thus
revealing their real MAC address or a predictable field.
We tested this attack in practice using hostapd, which was
configured to advertise HS2.0 capabilities. A fake HS2.0 AP
was deployed in a dense urban location for two 20 minute sessions. During those sessions, 1523, respectively 562, probing
stations were observed. At the same time, we recorded 80(5.25%), respectively 92 (16.37%) stations sending ANQP
queries to the HS2.0 AP. This small fraction can be explained by the fact that this technology is still in the earlystages of its deployment. Hence, not all devices support thisfeature. Additionally, as HS2.0 is not yet widespread, only
a few devices have a configured HS2.0 network. This means
iOS and Windows devices will not send ANQP queries.
Finally, we observed that none of the stations sending
ANQP queries had a MAC address that was registered byApple. This confirms the previous observations about therequirements of at least one configured HS2.0 network to get
involved in HS2.0 service discovery requests.
Our results show that the recent HS2.0 standard is potentially a source of privacy leakage, since several implementations reveal their real MAC address or a predictable field
when initiating ANQP queries. The importance of this issue
will increase with the number of compatible stations, butalso with the increasing number of access points. Indeed,similar to the previous attack, pervasive deployment of genuine HS2.0 will remove the need of creating a fake AP with
HS2.0 capabilities. We hope that by discovering this attackin the early stages of the adoption of HS2.0, manufacturers
will address this issue before HS2.0 becomes widespread.
A simple countermeasure is to follow the iOS example,
by using the temporary random MAC address when querying HS2.0. There is indeed no requirement in the specifications [32, §5.9] for the station to use its real MAC addresswhen querying list of services to an AP. Similarly, picking
a cryptographic random value for the Dialog Token assures
it cannot be used to track devices.

7.

smartphones, but it relies on TCP timestamps, which are
not sent by unassociated devices. Stöber et al. apply passive traffic analysis to identify devices, even when the traffic
is encrypted [43].

RELATED WORK

The possibility to track individuals based on the radio
signals of their mobile device has received considerable attention from the research community. Musa et al. [37] used
Wi-Fi tracking techniques to collect data on urban mobility. Surveillance systems based on Wi-Fi tracking have also
been presented by several works [30, 13, 38]. Cuthbert etal. demonstrated how an airborne Wi-Fi sniffer can be used
to passively track and locate owners of Wi-Fi devices [13].
Humbert et al. studied tracking strategies against mobile
users that change identifiers when entering mix-zones [29].
Privacy issues of Wi-Fi-enabled devices were studied by
Greenstein et al. [23]. In parallel, attempts were made at
reducing private information leakage in Wi-Fi [25, 40, 35].
Gruteser et al. introduced the idea of using a disposable
identifier instead of a permanent MAC address [25]. Then,proposals [40, 35] were made to improve the privacy in theservice discovery mechanisms of Wi-Fi. These improvements
involve the obfuscation of device and network identifiers andrequire significant modifications of the protocol.
After the introduction of MAC address randomization in
iOS 8, several works have attempted to understand its internals and started to identify limitations [36, 18]. In particular, Freudiger found that sequence numbers and timing information can be used to re-identify random MAC addresses
as implemented by iOS [18]. However, they did not investigate other devices or operating systems, nor other means tode-anonymize or track Wi-Fi frames.
Bernados et al. [8] studied the feasibility of MAC address
randomization for associated devices in real-life conditions.
They found that existing devices can support this with only
minor changes, but note that higher layers must also be
configured so they do not leak any identifiers.
Bloessl et al. showed that the scrambler seed of the IEEE
802.11p physical layer could be used for tracking in wireless vehicular networks [6]. They specifically investigated
two prototype radio chips. The first one is a radio chip
implemented on Field Programmable Gate Array (FPGA),
and the second is an industrial-grade Atheros AR5414A-B2B
chip. Both were using predictable scrambler seeds.
Others focused on inter-frame arrival time and sequencenumbers to identify devices. Guo et al. [26] use these values
to detect spoofing on a network with a semi-active method,as an intrusion detection mechanism. Desmond et al. [15]fingerprint devices using inter-frame time analysis alone.
They reach a success rate of 70 to 80% to differentiate frames
from 45 different devices probing for more than one hour.
Other means of device fingerprinting can be used to defeat
MAC address randomization. Physical layer fingerprintingof wireless devices based on unique characteristics of theirhardware is possible [7, 12] but requires expensive dedicated hardware. Pang et al. [39] showed that devices replacing their identifiers with temporary ones are still trackablethrough traffic analysis. They focused on MAC-layer fields
used by associated devices. In [17], Franklin et al. showedthat the inter-frame timing of probe requests can form afingerprint of the wireless device driver. Access points arevulnerable to passive clock skew fingerprinting [33]. This
technique was reused by Cristea et al. [10] to fingerprint

8.

CONCLUSION

We study data contained in Wi-Fi probe requests, anddemonstrate that they hold enough information to perform
tracking, even if the MAC address is periodically randomized. First, the list of information elements form a fingerprint of a device. This fingerprint has enough entropy toidentify a device or a small group of devices. We show thatwhen combining this fingerprint with frame sequence numbers, tracking devices is possible regardless of their MAC address. In particular we rely on the observation that most devices do not reset the frame sequence counter when the MAC
address is changed. In addition, we show that the scrambler
seeds used at the physical layer is predictable in many commodity Wi-Fi devices. Being managed at the hardware level,
there is currently no way to reset nor change its value, whichmakes it a persistent threat. Finally, we introduce two active attacks that leverage service discovery mechanisms of
Wi-Fi in order to obtain identifying information on devices
that are using MAC address randomization.
Our findings highlight the difficulty of implementing antitracking solutions for wireless devices. In particular, it showsthat MAC address randomization alone is not enough to protect users’ privacy. However, several measures can be taken
to limit the impact of the issues presented in this paper. At
the software level, the driver (or firmware) should reset thesequence number field as well as any other predictable fieldfound in frames. Additionally, the amount of information
elements in probe requests should be kept to a bare minimum to avoid fingerprinting. Finally, Wi-Fi radios, which
are generally implemented in hardware, should be modified
so scrambler seeds are not predictable. This can be accomplished by letting the hardware generate cryptographicallyrandom seeds, or by allowing the driver to instruct the radio
which scrambler seed value should be used.

9.

ACKNOWLEDEGMENTS

This research is partially funded by the Research FundKU Leuven and Région Rhône-Alpes’s ARC7. Mathy Vanhoef holds a Ph. D. fellowship of the Research Foundation Flanders (FWO). This work used the FIT/CorteXlab facility(https://www.cortexlab.fr) for its measurement campaign.

10.

REFERENCES[1] Tails - privacy for anyone anywhere. Retrieved fromhttps://tails.boum.org.
[2] Android 6.0 changes. Retrieved fromhttps://developer.android.com/about/versions/
marshmallow/android-6.0-changes.html, 2015.
[3] O. Abukmail. Wifi Mac Changer. Retrieved fromhttps://play.google.com/store/apps/
details?id=com.wireless.macchanger.
[4] M. V. Barbera, A. Epasto, A. Mei, S. Kosta, V. C.
Perta, and J. Stefa. CRAWDAD dataset
sapienza/probe-requests (v. 2013-09-10). Retrieved 10
November, 2015, from, http://crawdad.org/sapienza/probe-requests/20130910, Sept. 2013.

[5] B. Bloessl, M. Segata, C. Sommer, and F. Dressler.
An IEEE 802.11 a/g/p OFDM receiver for GNU
radio. In SRIF Workshop, 2013.
[6] B. Bloessl, C. Sommer, F. Dressler, and D. Eckhoff.
The scrambler attack: A robust physical layer attack
on location privacy in vehicular networks. In ICNC,
2015.
[7] V. Brik, S. Banerjee, M. Gruteser, and S. Oh. Wirelessdevice identification with radiometric signatures. In
MobiCom, 2008.
[8] P. O. Carlos J. Bernardos, Juan Carlos Zúńiga. Wi-Fi
internet connectivity and privacy: hiding your tracks
on the wireless internet. In IEEE CSCN, 2015.
[9] Chainfire. Pry-Fi. Retrieved fromhttps://play.google.com/store/apps/
details?id=eu.chainfire.pryfi.
[10] M. Cristea and B. Groza. Fingerprinting smartphones
remotely via ICMP timestamps. Communications
Letters, IEEE, 17(6):1081–1083, 2013.
[11] D. A. Dai Zovi, S. Macaulay, et al. Attacking
automatic wireless network selection. In Proc. of the
Sixth Annual SMC Inf. Assurance Workshop, 2005.
[12] B. Danev, D. Zanetti, and S. Capkun. On
physical-layer identification of wireless devices. ACM
Computing Surveys (CSUR), 45(1):6, 2012.
[13] C. Daniel and W. Glenn. Snoopy: Distributed tracking
and profiling framework. In 44Con 2012, 2012.
[14] L. Demir, M. Cunche, and C. Lauradoux. Analysing
the privacy policies of Wi-Fi trackers. In Proc. of the2014 workshop on physical analytics, 2014.
[15] L. C. C. Desmond, C. C. Yuan, T. C. Pheng, and
R. S. Lee. Identifying unique devices through wirelessfingerprinting. In WiSec, 2008.
[16] P. Eckersley. How unique is your web browser? In
Privacy Enhancing Technologies, 2010.
[17] J. Franklin, D. McCoy, P. Tabriz, V. Neagoe, J. V.
Randwyk, and D. Sicker. Passive data link
layer 802.11 wireless device driver fingerprinting. In
USENIX Security, 2006.
[18] J. Freudiger. How talkative is your mobile device? Anexperimental study of Wi-Fi probe requests. In WiSec,
2015.
[19] B. Gellman and A. Soltani. NSA tracking cellphone
locations worldwide, Snowden documents show. The
Washington Post, 2013.
[20] M. X. Gong, B. Hart, L. Xia, and R. Want. Channelbounding and MAC protection mechanisms for802.11ac. In GLOBECOM, 2011.
[21] F. Gont. A method for generating semantically opaqueinterface identifiers with ipv6 stateless address
autoconfiguration (slaac). RFC 7217, 2014.
[22] D. Goodin. No, this isn’t a scene from minority report.
This trash can is stalking you. Ars Technica, 2013.
[23] B. Greenstein, R. Gummadi, J. Pang, M. Y. Chen,
T. Kohno, S. Seshan, and D. Wetherall. Can Ferris
Bueller still have his day off? protecting privacy in thewireless era. In USENIX HotOS, 2007.
[24] E. Grumbach. iwlwifi: mvm: support random MAC
address for scanning. Linux commit effd05ac479b.
[25] M. Gruteser and D. Grunwald. Enhancing location
privacy in wireless LAN through disposable interface

identifiers: A quantitative analysis. Mobile Networks
and Applications, 10(3):315–325, 2005.
[26] F. Guo and T. Chiueh. Sequence number-based MAC
address spoof detection. In RAID, 2006.
[27] C. Huitema. Experience with MAC address
randomization in Windows 10. In 93th Internet
Engineering Task Force Meeting (IETF), July 2015.
[28] C. Huitema. Personal communication, Nov. 2015.
[29] M. Humbert, M. H. Manshaei, J. Freudiger, and J.-P.
Hubaux. Tracking games in mobile networks. In Conf.
on Decision and Game Theory for Security, 2010.
[30] N. Husted and S. Myers. Mobile location tracking in
metro areas: Malnets and others. In CCS, 2010.
[31] IEEE Std 802.11-2012. Wireless LAN Medium AccessControl (MAC) and Physical Layer (PHY)
Specifications, 2012.
[32] IEEE Std 802.11u. Wireless LAN Medium AccessControl (MAC) and Physical Layer (PHY)
Specifications: Amendment 9: Interworking with
External Networks, 2011.
[33] S. Jana and S. K. Kasera. On fast and accurate
detection of unauthorized wireless access points using
clock skews. In MobiCom, 2008.
[34] P. Leach, M. Mealling, and R. Salz. A universallyunique identifier (UUID) URN namespace. RFC 4122
(Proposed Standard), July 2005.
[35] J. Lindqvist, T. Aura, G. Danezis, T. Koponen,
A. Myllyniemi, J. Mäki, and M. Roe.
Privacy-preserving 802.11 access-point discovery. In
WiSec, 2009.
[36] B. Misra. iOS 8 MAC randomization – analyzed!
http://blog.airtightnetworks.com/ios8-macrandomization-analyzed/.
[37] A. B. M. Musa and J. Eriksson. Tracking unmodified
smartphones using Wi-Fi monitors. In SenSys, 2012.
[38] B. O’Connor. CreepyDOL: Cheap, distributed
stalking. In BlackHat, 2013.
[39] J. Pang, B. Greenstein, R. Gummadi, S. Seshan, and
D. Wetherall. 802.11 user fingerprinting. In MobiCom,
2007.
[40] J. Pang, B. Greenstein, S. Seshan, and D. Wetherall.
Tryst: The case for confidential service discovery. In
HotNets, 2007.
[41] J. Scahill and G. Greenwald. The NSA’s secret role in
the U.S. assassination program. The Intercept, 2014.
[42] K. Skinner and J. Novak. Privacy and your app. In
Apple Worldwide Dev. Conf. (WWDC), June 2015.
[43] T. Stöber, M. Frank, J. Schmitt, and I. Martinovic.
Who do you sync you are?: smartphone fingerprinting
via application behaviour. In WiSec, 2013.
[44] L. Wang and C. Tellambura. An overview ofpeak-to-average power ratio reduction techniques for
OFDM systems. In IEEE ISSPIT, 2006.
[45] W. Wang. Wireless networking in Windows 10. In
Windows Hardware Engineering Community
conference (WinHEC), Mar. 2015.
[46] Wi-Fi Alliance. Hotspot 2.0 (Release 2) Technical
Specification v1.1.0, 2010.
[47] Wi-Fi Alliance. Wi-Fi Simple Configuration Protocol
and Usability Best Practices for the Wi-Fi Protected
Setup Program, v2.0.1, April 2011.