Tracking Anonymized Bluetooth Devices
Tracking Anonymized Bluetooth Devices
previous work [22] suggests that local BLE tracking Bluetooth and Wi-Fi tracking concerns, as well as more
methods may be significantly compounded by coordi- BLE-specific techniques and utilities.
nating them in a botnet of adversaries, resulting in po- In 2007, Spill and Bittau [33] presented several
tentially global tracking capabilities. techniques for eavesdropping on Bluetooth 2.0 com-
The main contributions of this paper are as follows: munication using a GNU Radio-based Bluetooth snif-
fer and USRP software-defined radio hardware. Their
1. We describe a tracking vulnerability that affects work describes an approach for intercepting packets,
Windows 10, iOS, and macOS devices as long as and reverse-engineering all the parameters required to
they are continuously observed by the adversary. eavesdrop on Bluetooth communication [33]. However,
2. We develop a methodology that can be applied to these findings only concern the Bluetooth Classic im-
devices from various manufacturers, based on raw plementation, which is of decreasing relevance in light
BLE advertising log files. of BLE and Bluetooth 5.
3. We present an algorithm that allows tracking be- In 2015, Jameel and Dungen presented an open-
yond the address randomization of a device, and source library for scanning Bluetooth Low Energy (LE)
measure the resulting maximum tracking time and Active RFID advertising [24]. Their work sum-
(MTT). marizes different available Beacon protocols, which are
4. We identify other privacy vulnerabilities that exist proximity-based broadcast protocols [1, 18] and enable
on certain device types, which expose device identi- all kinds of localized interactions with smartphones and
fiers permanently via a peripheral, and which leak other Bluetooth devices via the BLE advertising chan-
activity information on iOS devices. nels. Furthermore, the authors published a library called
5. We provide recommendations and potential coun- advlib [29], which processes raw BLE advertising mes-
termeasures to the tracking vulnerabilities uncov- sages and decodes them into an open, portable data
ered in this work. format. This library enables software developers to eas-
ily integrate BLE advertising-based functionality into
The rest of this paper is structured as follows: Sec- their software, without having to manually decode low-
tion 2 discusses prior related work. Section 3 presents level protocols. The library further powers the open-
background information on the Bluetooth protocol nec- source “collaborative repository” Sniffypedia [30], which
essary to understand this work. In Section 4, we de- presents a large number of publicly known BLE adver-
scribe our adversarial model and the methodology used tising identifiers in a searchable and accessible format.
in this work, followed by the experimental setup in Sec- This platform can help classify Bluetooth device classes
tion 5. We present our results in Section 6, followed by for reconnaissance purposes, but does not offer device
recommendations for the avoidance of unwanted device tracking capabilities.
tracking in Section 7. We summarize our findings and Vanhoef et al. [34] present techniques to gain ac-
give an outlook on further research in Section 8. cess to permanent MAC addresses by exploiting probe
requests in Wi-Fi. They develop an algorithm which
relies on timing features and sequence numbers found
2 Related Work in Wi-Fi probe requests to identify devices regardless
of their MAC address. They further describe a variant
Privacy and security concerns over Bluetooth date back of the Karma Attack – exploiting the fact that many
to its very first release [23]. Anonymizing devices in pub- devices will expose information to supposedly known
lic channel communication only became available with and trusted networks [13] by creating a catch-all access
the introduction of BLE in Bluetooth 4.0 [6]. A lot of re- point [14] – which creates large numbers of popular Wi-
search regarding the effectiveness of MAC address ran- Fi networks in order to invite devices to connect, often
domization is focused on Wi-Fi, where the same privacy presenting their permanent MAC address in a suppos-
concern of broadcasting permanent identifiers exists, edly trusted context.
but vulnerabilities are often not easily transferable to Issoufaly and Tournoux [22] show that despite the
the Bluetooth case as they are based on different areas existence of privacy-preserving MAC address random-
specific to the Wi-Fi network stack. We will highlight ization in Bluetooth 4.0 LE, not all devices make use
some important works relating to more general cases of of this functionality and are therefore vulnerable to
tracking. Furthermore, they showed how maliciously
distributing suitable tracking software to a number of
Tracking Anonymized Bluetooth Devices 52
(6 bytes) (6 bytes)
0 48 bit address
0 4 5 6 7 8 bit address AdvA AdvData
a)
RxAdd (1 bit)
TxAdd (1 bit)
ChSel (1 bit)
RFU (1 bit)
AD Type (n byte)
Length (1 byte)
device details (active scanning) [8, p. 2633]. In the Ini-
tiating state, the link layer listens for advertising mes- AD Data
sages, and sends Connect Requests to advertising de- c) (Length − n byte)
vices. If the requested device responds, the devices can
enter a Connection state [8, p. 2637].
In the Connection State, devices implementing the
Fig. 4. PDU Payload format for ADV_IND and ADV_NONCONN_IND
so-called Central role can connect to up to 8 Periph- PDU Types (Fig. 4.a)), the AdvData format (Fig. 4.b)), and the
eral role devices as their Master, while Peripheral de- AD Structure format (Fig. 4.c)) [8, p. 2086, 2569ff.] [4].
vices can connect to one Central role device as a Slave.
Smartphones or PCs are typical Central role devices
vertising channel PDU itself consists of a header and
connecting to multiple wireless input devices, activity
a payload depending on the PDU Type defined in the
trackers or other wireless sensors. However, devices may
header [8, p. 2567] (see Figure 2.b)).
implement both roles and may therefore send advertis-
The PDU Payload of a directed advertising event
ing messages (Peripheral role) while scanning for adver-
contains an Advertising Address (AdvA) and a Target
tising messages (Central role)2 . In our work, we observe
Address (TargetA), as shown in Figure 3. Only devices
devices which are in the Advertising state using an ob-
with the matching Target Address can initiate a con-
server device which is in the Passive Scanning state.
nection by sending a Connect Request.
Indirected advertising allows any device receiving
the PDU to respond with a Scan Request (requesting
3.2 Advertising Packet Format
information about available features) or a Connect Re-
quest. The PDU Payload for this type of advertising is
We next provide details on the structure and contents
formatted as shown in Figure 4, containing an Advertis-
of advertising packets, since those will be exploited to
ing Address (AdvA) and Advertising Data (AdvData),
track and distinguish between different devices. Adver-
which may contain one or more AD Structures (see Fig-
tising packets follow a structure shown in Figure 2.a),
ures 4.b). Finally, AD Types define the content of the
consisting of a preamble, an Access Address (AA)3 , a
AD Data contained in each AD Structure (Figure 4.c).
Payload Data Unit (PDU) and a CRC field. The ad-
An overview of some AD Types that we will use
later in this paper is shown in Table 1, we refer to [4]
for the full list.
2 I.e., a BLE device can be in more than one state shown in
Most AD Types define simple numbers or strings.
Figure 1 at the same time.
3 The access address is always 0x8E89BED6 for advertising pay-
The Manufacturer Specific Data type is worth highlight-
loads [8, p. 2563]. ing, as it gives device manufacturers the flexibility to
Tracking Anonymized Bluetooth Devices 54
The adversary only needs to observe Bluetooth ad- guish from a targeted user u [37, p. 57:9] [32, p. 5], i.e.:
vertising messages (which are sent in plain text), i.e.,
the adversary does not require the capability to read en- |ASu | = number of users indistinguishable
crypted data transmissions or follow channel hopping. from user u. (1)
The adversary implements a sniffing device (in our case,
The primary metric of interest in this paper is the
a Software-Defined Radio (SDR)) which listens to one
Maximum Tracking Time (M T T ), which is defined as
of the Bluetooth advertising channels (i.e., channels 37,
the cumulative time that a user u can be uniquely iden-
38, or 396 ). The packets are then broken down into their
tified [37, p. 57:30] [32, p. 5], that is:
elements as defined in the Bluetooth specification (see
also Figure 2) and further analyzed for any observable M T Tu = time during which |ASu | = 1
data which could be used to compromise user privacy.
for a user u. (2)
As advertising messages are sent in the clear and are
not authenticated, proving authenticity and integrity of We show that several types of devices have un-
an advertising message is not easy in most cases. As bounded M T T .
such, the methodology used in this paper considers be-
nign communication by devices which are oblivious to
potential privacy issues in their advertising patterns, 4.3 Device Tracking Algorithm
i.e., they neither forge the contents of their messages
nor change the traffic patterns for their messages in or- We propose a two-phase algorithm which allows track-
der to obfuscate their identity. ing of devices beyond their address randomization. The
This work assumes that an adversary will at some algorithm consists of an offline pre-processing phase and
point make a connection between an arbitrary identifier an online tracking phase.
in an advertising event and its real-world associated de-
vice, and will then continuously observe ongoing BLE
advertising traffic in order to track it without the user’s 4.3.1 Phase 1: Pre-Processing
consent for the longest time period possible. Adversary
success is defined as the adversary being able to hold on The pre-processing phase uses recorded log files con-
to a device identity beyond its address randomization taining decoded BLE advertising packets (see Figure 2)
using local, passive, continuous observation. and their PDU Payloads in raw format. All collected log
In this paper, we use the terms user and device syn- files are processed offline in order to identify potential
onymously. We assume that devices are being tracked identifying tokens occurring in advertising messages. An
with the intent of tracking their users, and the ability identifying token can be any sequence of bits contained
to track a device implies the ability to track its user. in an advertising message which allows distinguishing
We therefore do not consider devices that are shared one device from another – be it by design (such as the
between multiple users and would require such a logical advertising address) or by a side effect. As a general
distinction. rule, an identifying token for a given device should re-
main fixed over a certain period of time, while being
unique to one device (i.e., its values should not collide
4.2 Privacy Metrics with values produced by other devices within range over
time).
The applied metrics focus on the adversary’s ability to The set of useful identifying tokens for a class of de-
track a device over time due to some observable signa- vices depends on its operating system and other device-
ture. Specifically, let the anonymity set size ASu rep- specific hardware or software features, as all of these
resent the set of users that an adversary cannot distin- factors determine the structure and content of advertis-
ing messages.
In this sense, a universal MAC address [21, p. 22f.]
is a perfect identifying token as it is guaranteed to be
unique to a device, and is permanently linked to a de-
6 It is assumed that any of the available advertising channels vice. In a local context, these requirements can be re-
can be considered equivalent as advertising events are usually laxed as long as the distinction between the devices in
broadcast to all three channels in a round-robin fashion. range is still possible with high confidence.
Tracking Anonymized Bluetooth Devices 56
Identifying tokens may be found either by look- D beyond the point where it randomizes its advertising
ing at the raw PDU Payload and isolating a byte se- address.
quence which fulfills the requirements laid out above, If the incoming message contains the right identify-
or by breaking down the PDU Payload according to the ing tokens for the class of devices that D belongs to, the
Bluetooth protocol specification and identifying suitable tokens are extracted (line 4). Then, if the incoming ad-
metadata elements. vertising address is identical to the existing advertising
In order to avoid collisions between identifying to- address (addr), we still know the device identity and
kens, it is important that the bit length n of the identi- we update the stored values of the identifying tokens
fying token be large enough. Formally, suppose an ad- if any changes are detected (line 7). Otherwise, if the
versary aims to track a Bluetooth device over a certain advertising address has changed, a match is attempted
period, say a week, in an area containing at most m using any of the available identifying tokens as a pseudo-
other Bluetooth devices with the same types of identify- identity – in case of a successful match, the address of
ing tokens (devices with different identifying tokens are device D can be updated with the incoming address and
trivial to distinguish). Furthermore, suppose that each address-carryover was successful (line 11). In either of
device changes its identifying token at a rate no faster these cases, the timeout counter is reset to indicate that
than once every 15 minutes (based on our experimental the device D is being tracked successfully. If neither ad-
data, 15 minutes appears to be an upper bound on the dress nor identifying token matches succeed for a certain
frequency of changes of identifying tokens). This means period of time Tmax , it is assumed that device tracking
that the targeted device will generate at most k = 672 has failed and the algorithm terminates.
tokens in a week. The algorithm requires an amount of memory and
Assume that each identifying token is generated computation that are linear in the size of the set of
uniformly at random (a reasonable assumption based identifying tokens. Since there is only a handful of iden-
on our experimental data). The probability that an- tifying tokens, the algorithm can be run in real-time
other Bluetooth device produces tokens that do not con- without limitation.
flict with one of these k tokens is at least (1 − k/2n )k .
Hence, the probability that all the other m devices pro-
duce different tokens than the targeted device is at
least (1 − k/2n )mk ≥ 1 − mk 2 /2n , where the latter
5 Experimental Setup
inequality is obtained by applying Bernoulli’s inequal-
The experimental setup used in this work consists of
ity [17]. Therefore, by choosing 1 − mk 2 /2n ≥ 1 − p or
monitoring one of the BLE advertising channels for a
n ≥ dlog2 (mk 2 /p)e, we can ensure a collision probabil-
certain amount of time and analyzing the content of
ity smaller than p. As an example, for m = 1000 devices
advertising events that are broadcast by devices within
and p = 10−3 , we obtain n ≥ 39 bits. Consequently,
typical Bluetooth proximity.
identifying tokens that have a length of at least 40 bits
We use a modified version of Xianjun Jiao’s SDR-
(i.e., 5 bytes), satisfy this inequality.
based BLE sniffer [25] for all experiments. The col-
Note that performing pre-processing is only re-
lected log files contain advertising messages according
quired once per device class. Once a suitable set of iden-
to Figure 2, with all metadata decoded and the PDU
tifying tokens has been found for a class of devices, it
payload in raw hexadecimal ASCII characters. In the
can be applied to track any individual device in this
pre-processing phase, we decode them according to the
class.
structure shown in Figures 2, 4, and 5, where applica-
ble. The system used for all experiments is based on a
Ubuntu Xenial-based PC and the HackRF One SDR.
4.3.2 Phase 2: Tracking
We chose to use an SDR-based Bluetooth sniffer
over a sniffer based on the regular Bluetooth stack to
The address-carryover algorithm (Algorithm 1) is
remain independent of variations in Bluetooth imple-
an online algorithm that continuously observes changes
mentations on different hardware and OSes, to be able
in the address as well as any other relevant identifying
to observe raw data which is typically discarded by the
tokens found in the pre-processing phase.
low-level network stack, and in order to facilitate future
The algorithm listens to incoming advertising mes-
consideration of physical layer metrics in our research.
sages mi as they are broadcast on one of the BLE adver-
tising channels with the goal of tracking a target device
Tracking Anonymized Bluetooth Devices 57
(iPhone 5s, iPhone 8, iPhone X, running iOS 11), OS Prevalent Type Prevalent Content
two iPads (iPad, iPad Pro running iOS 12), and Windows 10 ADV_NONCONN_IND Company Identifier 0x0006
two Macs (iMac A1419 and Macbook Pro A1502 macOS, iOS ADV_IND Company Identifier 0x004c
Android SCAN_REQ Target Address
running macOS 10.13).
Fitbit ADV_IND Fitbit Service Class UUID
Android devices. We passively record advertising Surface Pen ADV_DIRECT_IND Target Address
events, while Bluetooth in Android is enabled. We
measure data generated by two different Android Table 2. Typical advertising features per operating system.
devices (Samsung Galaxy S5, Google Nexus 4).
Smartwatches. We connect each smartwatch to its
respective app on a smartphone and then deacti- 6 Results
vate Bluetooth on the smartphone. This triggers
the smartwatch to advertise its presence. We sample 6.1 Pre-Processing
data from two Fitbit Charge 2 smartwatches inter-
mittently over the course of multiple months. Ad- In the pre-processing phase, we seek to identify suitable
ditionally, one of the smartwatches is subjected to identifying tokens which may be used to track devices
both a restart and a factory reset to find out if these beyond their address randomization.
actions affect its behavior. Operating system vendors implement widely differ-
ing strategies when it comes to implementing Bluetooth
advertisements, driven by overall system architecture
5.2 Accessory Activation and ecosystem considerations. Therefore, different op-
erating systems behave in different ways in order to an-
This scenario describes advertising events triggered by nounce their presence to nearby devices, and the OS
the use of BLE-based accessories. Our work considers origin is typically easily distinguishable by some high-
two types of touch-sensitive BLE-enabled pencils. level features in the broadcasted advertising messages.
Identifying the major OS vendors and device types
Microsoft Surface Pen. The Microsoft Surface Pro is fairly straightforward, as Apple and Microsoft de-
tablet can be used with a Microsoft Surface Pen. vices advertise using manufacturer-specific data, which
This digital pen is connected to the device via BLE is always prepended by an officially assigned Com-
in order to transmit pressure sensitivity data and pany ID [3]. In other cases where this approach is not
furthermore transmit signals from its two buttons. used, the vendor can typically be found out by in-
Our experiment consists of disconnecting and re- specting other specific characteristics like Service Class
connecting the pen in order to clarify whether the UUIDs [7, pp. 10, 12f., 18] or Service UUIDs [5].
Surface Pro, or the pen use a static address or oth- The advertising message features shown in Table 2
erwise leaks privacy-relevant information. Further- allow for such a high-level classification of messages
more, we examine the effect of button actuation for based on the considered devices.
the same goal.
iPad Pro Pen. The iPad Pro can be used with the
Apple Pencil pen. This pen is connected to the iPad 6.1.1 Windows 10 devices
via BLE in order to transmit pressure sensitivity
data. Our experiment consists of disconnecting and Windows 10 devices typically advertise a PDU Payload
reconnecting the pen in order to find out whether with only a single AD Structure of type Manufacturer
the iPad Pro, or the pen leak any privacy-relevant Specific Data, as shown in Figure 6.
information. After recording for an extended period of time, we
find the advertising address to regenerate approximately
every 960 seconds, i.e., giving an adversary an average
tracking time of approximately 16 minutes based on the
address until the device is lost. This shows that Win-
dows 10 implements random private addresses (see Sec-
tion 3.3).
The Manufacturer Specific Data contained in the
payload starts with the Company Identifier for Mi-
Tracking Anonymized Bluetooth Devices 59
per device.
Furthermore, the payload is observed to remain
Table 3. Occurrences of the most common data types observed in
static for approximately one hour. We observed no iOS/macOS advertising messages.
differences in advertising behavior between the ob-
served devices that would indicate manufacturer-
specific, rather than OS-specific behavior. We therefore types. Of the data types observed, the nearby and hand-
retain the following identifying token for Windows 10 off types are by far the most frequent.
devices: The handoff data structure consists of 14 bytes of
data, in which the first bytes seems to be always zero
AW in10 = [Manufacturer Specific Data[-23:]]. (3) and the remaining bytes may take arbitrary values. This
data structure changes its value based on multiple fac-
tors, some of which we identify in Section 6.3.2. None
6.1.2 Apple (macOS and iOS) Computers and of the observed values showed collisions between devices
Smartphones and the data has a sufficient length, making this a good
candidate for an identifying token.
MacOS and iOS devices regularly advertise their pres- The nearby data structure consists of 5 bytes of
ence as well. The advertising rates in macOS and iOS data. Within these 5 bytes, the first two bytes do not
are much higher than in Windows 10, at up to two ad- seem to be fully random, reducing our useful length be-
vertising events per second. Address lifetimes are highly low the threshold set in Section 4.3.1, i.e., the number of
variable, ranging from seconds up to around two hours bits is smaller than what we would want to avoid iden-
in rare edge cases, with an average of around 20 minutes. tity collisions. In practice, we have not observed values
The typical message format contains, similar to colliding, and have successfully been using nearby data
the Windows 10 payload, a manufacturer-specific data in our experiments as a second token to the handoff
field. However, Apple devices can be further distin- data. We conclude that while it is of practical useful-
guished by advertising an additional flags data struc- ness to our algorithm, it should not be relied on as a
ture which Windows 10 does not use (see Figure 7). The single identifying token.
manufacturer-specific data may contain one or more of Clearly, types of data which rarely appear in adver-
Apple-specific data types, which are used for specific tising messages are not suitable identifying tokens. We
functionality in iOS and macOS which is facilitated by therefore consider the nearby and handoff data struc-
BLE. Table 3 shows an overview of the encountered data tures as the best candidates, since they appear an order
of magnitude more often than any other data type (see
Table 3).
An additional data type worth mentioning is the
7 Example payload:
Airdrop data type. Airdrop allows users to share files
|01092002 | {z }.
{z } d70d650aac181b8397b8588f3a62de55810d23db56f176 with a nearby friend using an Apple-specific combina-
fixed bytes variable bytes
Tracking Anonymized Bluetooth Devices 60
address: 1da6aa6d7b4e
0265aa31d96c
09940c1c007e
3980a7d67479
14ad7b127162
0029374df401
1ac7364f46cf
2f507edc63d8
049728a906d7
0b43fca53582
39e2218858c1
20891f7e96c7
3b567a4cade4
3e02757912e7
0dfc4c7aab34
2662e1021647
time
09:48:41
09:56:00
10:12:00
10:27:58
10:31:21
10:43:58
10:59:57
11:15:56
11:31:20
11:31:57
11:47:55
12:03:55
12:19:55
12:31:22
12:35:54
12:51:53
13:07:52
13:23:55
13:31:20
13:39:51
Fig. 9. An experiment illustrating the carry-over effect on Windows 10 devices. Asynchronous value changes allow updating the device
identity whenever it changes.
nearby: 0b1...e20
time
12:26:24
12:27:08
12:27:32
12:30:57
12:32:03
12:34:02
12:34:57
12:36:21
12:41:30
12:44:16
12:46:46
12:47:11
12:49:16
12:50:16
12:51:30
12:53:49
12:56:19
12:58:07
12:58:53
12:59:27
13:01:53
13:04:22
13:05:10
13:07:06
13:08:04
13:15:32
13:18:07
13:19:07
13:20:19
Fig. 10. This timeline shows address-carryover across 5 random addresses on iOS. The first three hops occur via the handoff identify-
ing token, the last one occurs via the nearby token. Different colors denote different values.
iOS or macOS devices have two identifying tokens is no user-accessible way to anonymize the device iden-
(nearby, handoff) which change in different intervals. In tity periodicity, we conclude that there is no upper limit
many cases, the values of the identifying tokens change for the trackability of a Fitbit smartwatch of the type
in sync with the address. However, in some cases the to- discussed, i.e., M T TF itbit = ∞.
ken change does not happen in the same moment, which Android devices do not appear to be vulnerable to
allows the carry-over algorithm to identify the next ran- our passive sniffing algorithm, as they typically do not
dom address. Figure 10 shows such a carry-over chain, in send advertising messages containing suitable identify-
which a device is trackable across five address random- ing tokens.
izations. In contrast to the Windows 10 implementation,
synchronized value changes appear to be more preva-
lent than asynchronous changes, the latter representing 6.3 Other Vulnerabilities
carry-over opportunities. M T TApple = 53 minutes is the
longest time we were able to track during our experi- This Section summarizes additional findings which do
ments; additional tests may yield a longer time. not directly result from the application of our algorithm,
Prior findings by other groups [12, 16] indicate that but were discovered in the process.
Fitbit smartwatches advertising addresses do not peri-
odically randomize. However, since the address carries
the flag indicating a random address, we seek to further 6.3.1 Accessory Activation
investigate its nature by subjecting the smartwatch to
different conditions which may trigger a new random We look into the effect of BLE-connected accessories,
address. Our tests include: specifically pencils of touch-enabled laptops and tablets.
The Microsoft Surface Pen has a button which
– Draining the battery; can be configured to launch the note-taking (or any
– Performing a hard reset; other) application to facilitate activities which make use
– Performing a factory reset. of handwritten input. Whenever that button is pressed,
the pen sends an ADV_DIRECT_IND request to its con-
None of these measures resulted in a change of the ob- nected Surface device. These types of messages contain
served advertising address, leading to permanent non- the device’s own advertising address as well as the tar-
continuous trackability despite active attempts to re- get address. In the case of the Surface Pen, this target
generate the address. Hence, by confirming that there address uses the public static address of the device it is
Tracking Anonymized Bluetooth Devices 62
handoff: H1 H2 H3 H4 H5
associated to. The Surface Pen also features a magnetic nearby: 0b1c6b0e3b
time
connector which allows it to be attached to the Surface. open link #1 link #2 link #3 close
When the Surface Pen is detached from the Surface, it
sends the same kind of address-leaking directed adver-
Fig. 13. The handoff payload changes correlate closely with cer-
tising as well.
tain user activity on iOS.
This means that even if the Surface computer itself
never discloses its public static address, the pen will ex-
pose it. The fact that it is a permanent identifier leads sages containing the handoff data structure every time
to the Surface computer being trackable permanently an iPhone is unlocked.
via active probing. Once the public address becomes The handoff feature on macOS and iOS devices al-
known, an adversary could periodically probe the Sur- lows a user to continue one activity on another device.
face device directly using its permanent address. The For example, it allows browsing a website on an iPhone
response to such a directed advertising message (or ab- and then continuing to browse it on a computer running
sence thereof) results in indefinite presence tracking of macOS, when the two devices are in proximity. As such,
the Surface device, i.e., M T TSurf ace,leaked = ∞. this feature is inherently dependent on content and con-
We tested whether the Apple Pencil has similar text of the user activity. It can be shown that handoff
issues, but it uses an entirely different approach. When data changes highly correlate with user navigation using
it first connects to an iOS device, it emits a short burst the Safari browser in iOS (see Figure 13).
of ADV_IND messages containing a random address, ca-
pability flags and a Complete Local Name field of value
Apple Pencil (see Figure 11). After this initial advertis-
ing, the pen does not emit any advertising messages as
7 Recommendations
long as it is paired with the iOS device. Every time the
Device implementations should follow a few simple rules
pen is set up again, the random address changes.
in order to protect themselves against address-carryover
tracking.
6.3.2 Activity Side-Channel on iOS Synchronize payload changes with address ran-
domizations. If the advertising message payload
The handoff data structure only appears in certain pat- contains any type of data that could be used as an
terns. Closer inspection reveals the following two char- identifying token (see Section 4.3.1), the payload
acteristics: should change in sync with the address to prevent
extended tracking. While there may be technical
– The handoff payload is triggered when a device gets
reasons for keeping certain payloads around longer
activated;
than the default address randomization frequency
– The handoff payload changes depending on context
of a given operating system, it should be ensured
or content of the active application.
programmatically that there is no continuous car-
Both of these characteristics present a side channel ryover, as shown to be the case in Windows 10 and
which allows a passive observer to deduct activity pat- to a certain degree in iOS and macOS.
terns of the user using the target device. Figure 12 Implement address randomization for low-
illustrates the presence of a burst of advertising mes- powered devices. For some devices, especially
wearables and other battery-powered sensor de-
vices, frequently randomizing the address may be
Tracking Anonymized Bluetooth Devices 63