Fitness Tracker Security Flaws
Fitness Tracker Security Flaws
1
University of Padua, Italy
{hossein,conti}@math.unipd.it
2
Technische Universität Darmstadt, Germany
{markus.miettinen,ahmad.sadeghi}@trust.tu-darmstadt.de
{jclassen,mhollick}@seemoo.de
3
University of Edinburgh, United Kingdom
{tspink,ppatras}@inf.ed.ac.uk
1 Introduction
Market forecasts indicate 274 million wrist-based tness trackers and smart-
watches will be sold worldwide by 2020 [1]. Such devices already enable users
and healthcare professionals to monitor individual activity and sleep habits, and
underpin reward schemes that incentivize regular physical exercise. Fitbit main-
tains the lead in the wearables market, having shipped more units in 2016 than
its biggest competitors Apple, Garmin, and Samsung combined [2].
2 H. Fereidooni et al.
Fitness trackers collect extensive information which enables infering the users'
health state and may reveal particularly sensitive personal circumstances. For in-
stance, one individual recently discovered his wife was pregnant after examining
her Fitbit data [3]. Police and attorneys start recognizing wearables as black
boxes of the human body and use statistics gathered by activity trackers as
admissible evidence in court [4, 5]. These developments highlight the critical im-
portance of both preserving data privacy throughout the collection process, and
ensuring correctness and authenticity of the records stored. The emergence of
third-party services oering rewards to users who share personal health informa-
tion further strengthens the signicance of protecting wearables data integrity.
These include health insurance companies that provide discounts to customers
who demonstrate physical activity through their tness tracker logs [6], websites
that nancially compensate active users consenting to tness monitoring [7], and
platforms where players bet on reaching activity goals to win money [8]. Unfor-
strong incentives for malicious users to
tunately, such on-line services also bring
manipulate tracking data, in order to fraudulently gain monetary benets.
Given the value tness data has towards litigation and income, researchers
have analyzed potential security and privacy vulnerabilities specic to activity
trackers [912]. Following a survey of 17 dierent tness trackers available on the
European market in Q1 2016 [15], recent investigations into the security of Fitbit
devices (e.g. [12]), and the work we present herein, we found that in comparison
to other vendors, Fitbit employs the most eective security mechanisms in their
products. Such competitive advantage, giving users the ability to share statistics
with friends, and the company's overall market leadership make Fitbit one of
the most attractive vendors to third parties running tness-based nancial re-
ward programs. At the same time it motivates us to choose Fitbit trackers as the
target of our security study, in the hope that understanding their underlying se-
curity architecture can be used to inform the security and privacy of future tness
tracker system designs. Rahman et al. have investigated the communication pro-
tocols used by early Fitbit wearables when synchronizing with web servers and
possible attacks against this [9]. Cyr et al. [10] studied the dierent layers of the
Fitbit Flex ecosystem and argued correlation and man-in-the-middle (MITM)
attacks are feasible. Recent work documents rmware vulnerabilities found in
Fitbit trackers [11], and the reverse engineering of cryptographic primitives and
authentication protocols [12]. However, as rapid innovation is the primary busi-
ness objective, security considerations remain an afterthought rather than em-
bedded into product design. Therefore, wider adoption of wearable technology
is hindered by distrust [13, 14].
Fig. 1: Adversary model considered for (a) devices not implementing encryption
and (b) trackers using encryption.
2 Adversary Model
To retrieve the statistics that trackers collect, users predominantly rely on smart-
phone or tablet applications that extract activity records stored by the devices,
and push these onto cloud servers. We consider the adversarial settings depicted
in Fig. 1, in which users are potentially dishonest, whilst the server is provably
trustworthy. We assume an active adversary model in which the wristband user
is the primary adversary, who has both the means and motive to compromise
the system. Specically, the attacker (a) views and seeks to manipulate the data
uploaded to the server without direct physical control over the device, or (b) in-
spects and alters the data stored in memory prior to synchronization, having
4 H. Fereidooni et al.
full hardware control of the device. The adversary's motivation is rooted in the
potential to obtain nancial gains by injecting fabricated tness data to the re-
mote server. Smartphone and cloud platform security issues are outside the of
scope of this paper, therefore not considered in our analysis.
The adversary's target devices are the Fitbit Flex and Fitbit One wrist-based
tness trackers, which record user step counts, distance traveled, calories burned,
oors climbed (Fitbit One), active minutes, and sleep duration. These particular
trackers have been on the market for a number of years, they are aordable and
their security and privacy has been scrutinized by other researchers. Thus, both
consumers and the vendor would expect they are not subject to vulnerabilities.
We subsequently found that other Fitbit models (e.g. Zip and Charge) imple-
ment the same communication protocol, therefore may be subject to the same
vulnerabilities we identify in this work.
Following initial pairing, we discover Fitbit trackers are shipped with one of two
dierent rmwares; namely, the latest version (Flex 7.81) which by default en-
crypts activity records prior to synchronization using the XTEA algorithm and a
pre-installed encryption key; and, respectively, an earlier rmware version (Flex
7.64) that by default operates in plaintext mode, but is able to activate mes-
sage encryption after being instructed to do so by the Fitbit server. If enabled,
encryption is end-to-end between the tracker and the server, whilst the smart-
phone app is unaware of the actual contents pushed from tracker to the server.
The app merely embeds encrypted records retrieved from the tracker into JSON
messages, forwards them to the Fitbit servers, and relays responses back to the
tracker. The same functionality can be achieved through software running on a
computer equipped with a USB Bluetooth LE dongle, including the open-source
Galileo tool, which does not require user authentication [16].
Even though only the tracker and the server know the encryption key, upon
synchronization the smartphone app also receives statistic summaries from the
server in human readable format over an HTTPS connection. As such, and fol-
lowing authentication, the app and authorized third parties can connect to a user
account via the Fitbit API and retrieve activity digestswithout physical access
to the tracker. We also note that, despite newer rmware enforcing end-to-end
encryption, the Fitbit server continues to accept and respond to unencrypted
activity records from trackers that only optionally employ encryption, thereby
enabling an attacker to successfully modify the plaintext activity records sent to
the server.
Breaking Fitness Records without Moving 5
Fig. 2: Schematic illustration of the testbed used for protocol reverse engineering.
Linux-based laptop used as wireless Internet gateway and running MITM proxy.
To intercept the communication between the tracker and the remote server, we
deploy an MITM proxy on a Linux-based laptop acting as a wireless Internet
gateway, as illustrated in Fig. 2. We install a fake CA certicate on an An-
droid phone and trigger tracker synchronization manually, using an unmodied
Fitbit application. The application synchronizes the tracker over Bluetooth LE
and forwards data between the tracker and the server over the Wi-Fi connec-
tion, encapsulating the information into JSON messages sent over an HTTPS
connection. This procedure resembles typical user engagement with the tracker,
however the MITM proxy allows us to intercept all communications between the
tracker and the server, as well as between the smartphone and the server. In
the absence of end-to-end encryption, we can both capture and modify messages
generated by the tracker. Even with end-to-end encryption enabled, we can still
read the activity digests that the server provides to logged-in users, which are
displayed by the app running on their smartphones.
4
The source code of our plug-in is available at https://seemoo.de/tbit-wireshark.
6 H. Fereidooni et al.
messages sent by the tracker with the server's JSON responses to the client
application. After repeated experiments, we infer the many protocol elds that
are present in tracker-originated messages and that are encoded in dierent for-
mats as detailed next. We use the knowledge gained to present these elds in a
human-readable format in the protocol analyzer.
There are two types of tracker-originated messages we have observed during
our analysis, which will be further described in the following sections:
3.3 Microdump
Depending on the action being performed by the user (e.g. authentication and
pairing, synchronizing activity records), the smartphone app makes HTTPS re-
quests to the server using specic URLs, e.g. POST https://<tbit_server_ip>
/1/devices/client/.../validate.json?btle_Name=Flex&secret=null&btAddress=
<6Byte_tracker_ID> for initial authentication. Each basic action is accompa-
nied by a so-called microdump, which is required to identify the tracker, and
to obtain its state (e.g. its current rmware version). Irrespective of whether or
not the tracker implements protocol encryption, the microdump header includes
the tracker ID and rmware version, and is sent in plain-text. Fig. 3 illustrates
a microdump sent along with a rmware update request, as interpreted by our
Wireshark dissector.
Breaking Fitness Records without Moving 7
We also note that the only validation feature that plain-text messages imple-
ment is a CRC-CCITT checksum, presumably used by the server to detect data
corruption in tracker-originated messages. In particular, this acquired knowl-
edge will allow us to inject generic messages into the server and obtain replies,
even when a valid tracker ID is already associated with a person's existing ac-
count. Yet, microdumps only contain generic information, which does not allow
the spoong of user activity records. In what follows, we detail the format of
messages sent to the server to synchronize the tracked user activity.
Note that the plain-text format does not provide measures for verifying the
integrity and authenticity of the message contents except for a checksum, which is
deterministically calculated from the values of the message elds. This allows the
adversary to inject generic messages to the server and receive replies, including
information about whether a tracker ID is valid and associated with a user
account.
Step counts and other statistics are transmitted by the tracker in the form of a
so-called megadump. Independent of encrypted or plain-text mode, neither the
Fitbit smartphone application nor the Galileo synchronization tool are aware of
the exact meaning of this payload. The megadump is simply forwarded to the
server, which in turn parses the message and responds with a reply. This reply is
then forwarded (by the corresponding application) back to the tracker, conrm-
ing to the tracker that the data was synchronized with the server successfully.
Despite this behavior, the Fitbit smartphone applicationin contrast to
Galileois aware of the user's statistics. However, this is due to the applica-
tion making requests to the Fitbit Web API. Once authenticated, this API can
be used to retrieve user information from the server in JSON format. The Fit-
bit smartphone application periodically synchronizes its display via the Fitbit
Web API, allowing the user to see the latest information that was uploaded by
the most recent tracker megadump. A plain-text example of this is shown in
Fig. 4. Note that the Fitbit Web API separates data by type, such that not all
information transmitted within one megadump is contained within one JSON
response. From the megadump a total distance of 522 720 mm can be extracted,
which equals to the 0.52 km from the JSON.
We use this information to reverse engineer and validate the megadump
packet format, and have identied that each megadump is split into the following
sections: a header, one or more data sections, and a footer. These sections start
with a section start sequence of bytes: c0 cd db dc; and end with a section
terminator byte: c0. If the byte c0 is required to be used within a data section,
it is escaped in a manner similar to RFC 1055.
5
5
A Non-standard for transmission of IP Data-grams over Serial Lines: SLIP
8 H. Fereidooni et al.
Date, start
of 1st record
subsection.
Date, start
of 2nd record
subsection.
Data Sections Following the header are one or more data sections. Each
data section contains various statistics in a particular format, and may even
be blank. As previously mentioned, each data sections start with c0 cd db dc,
and are terminated by a single c0 character. Therefore, the data sections are of
variable length. From the packets we have analyzed, it has been observed that
there are typically four data sections, which all appear in the following order,
and have the following format:
(1) Daily Summary: The rst data section contains activity information
across a number of dierent absolute timestamps. This section contains a series
of xed-length records that begin with a little-endian timestamp, and end with
a section terminator byte (c0).
Breaking Fitness Records without Moving 9
28 02 00 00 00 00 00 00 00 00
be 33 18 30 14 07 Sequence Number
Firmware 07 40 07 40
Version fe 03 00 00 00 00 00 00 00 00 14 14
Charge (mV) 73 10 14 60 Charge (%)
00 00 00 00 Running
Walking
Stide (mm) d7 02 bb 04 Stide (mm)
f1 2c 52 09 1b 17 00 00 00 00 00 00 00 ff 48 00
Greetings/ 20 20 20 20 20 20 20 20 20 20 48 45 4c 4c 4f 20 20 20 20 20
Cheering 48 4f 57 44 59 20 20 20 20 20 57 4f 4f 54 21 20 20 20 20 20
29 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 04 00 c0 db dc dd Delimiter
c0 db dc dd
58 aa be 20 Timestamp
Records 81
Start 00 00
00 ff
00 01
00 ff Record
Step Count 00 02
00 ff Terminators
Records
00 03
00 ff
... Section
Terminator
00 59 00 c0
Step count
Checksum
63 f0 00 00 00 00 00 00 b5 01 00
Payload Length
steps taken, and a 32-bit value containing the distance travelled in millimeters.
Finally, the summary ends with elevation, oors climbed and active minutesall
16-bit values.
(4) Alarms: The nal data section contains information about what alarms
are currently set on the tracker, and is typically empty unless the user has
instructed the tracker to create an alarm.
Message Footer The megadump footer contains a checksum and the size
of the payload, as shown in Fig. 8.
The Fitbit server has an HTTPS endpoint that accepts raw messages from track-
ers, wrapped in an XML description. The raw message from the tracker is Base64
encoded, and contains various elds that describe the tracker's activity over a
period of time.
The raw messages of the studied trackers may or may not be encrypted,
but the remote server will accept either. Even though the encryption key for a
particular tracker is unknown, it is possible to construct an unencrypted frame
Breaking Fitness Records without Moving 11
Fig. 9: The result of replaying data from another Fitbit tracker to a dierent
tracker ID. Fig. 9a shows the Fitbit user activity screen before the replay attack,
and Fig. 9b shows the results after the message is formed by changing the tracker
ID, and submitted to the server.
and submit it to the server for processing, associating it with an arbitrary tracker
ID. Provided that all of the elds in the payload are valid and the checksum is
correct, the remote server will accept the payload and update the activity log
accordingly. In order to form such a message, the raw Fitbit frame must be
Base64 encoded and placed within an XML wrapper as shown in Listing 1.1:
The fabricated frame can be stored in a le, e.g. payload, and then submit-
ted with the help of an HTTP POST request to the remote server as shown in
Listing 1.2, after which the server will respond with a conrmation message.
Fig. 10: Fig. 10a shows the Fitbit user activity screen before fake data were
submitted, and Fig. 10b shows the screen after the attack. In this example,
10000 steps and 10 km were injected for the date of Sunday, January 15th, 2017
by fabricating a message containing the data shown in Tbl. 1.
so that 10000 steps and a distance traveled of 10 km were registered for the 15th
of January 2017. This attack indicates that it is possible to create an arbitrary
activity message and have the remote server accept it as a real update to the
user's activity log.
Listing 1.3: Response from the Fitbit server when a payload with an invalid
checksum is submitted.
1 $ c u r l − i −X POST <t a r g e t − u r l> −−data −b i n a r y @payload
2 <? xml version =" 1 . 0 " e n c o d i n g="UTF−8"standalone
=" y e s " ?>
version
3 <g a l i l e o − s e r v e r =" 2 . 0 ">
4 <e r r o r>INVALID_DEVICE_DATA:com . f i t b i t . p r o t o c o l . s e r i a l i z e r .
DataProcessingException: Parsing f i e l d
5 [ s i g n a t u r e ] o f t h e o b j e c t o f type CHECKSUM. IO e r r o r −&g t ; Remote
checksum [ 2 2 4 6 | 0 x8c6 ] and l o c a l
6 checksum [ 6 0 4 4 1 | 0 xec19 ] do not match .</ e r r o r>
7 </ g a l i l e o − s e r v e r>
This information can be used to reconstruct the packet with a valid CRC.
Such an exploit must be used sparingly, however, as the remote server will refuse
to process further messages if an error threshold is met, until a lengthy timeout
(on the order of hours) expires.
We discovered a number of testing points at the back of the device's main board.
Our main goal was to identify the testing points connected to debug interfaces.
6
http://www.st.com/en/embedded-software/stsw-link004.html
Breaking Fitness Records without Moving 15
According to the IC's datasheet, there are two debug interfaces available for
STM32L: (i) serial wire debug (SWD) and (ii) joint test action group (JTAG).
We found that the Fitbit trackers were using the SWD interface. However,
the SWD pins were obfuscated by placing them among several other testing
points without the silkscreen identifying them as testing points. SWD technology
provides a 2-pin debug port, a low pin count and high-performance alternative to
JTAG. The SWD replaces the JTAG port with a clock and single bidirectional
data pin, providing test functionality and real-time access to system memory.
We selected a straightforward approach to nd the debug ports (other tools that
can be exploited include Arduino+JTAGEnum and Jtagulator ). We removed
the micro-controller from the device printed circuit boards (PCBs). Afterward,
using the IC's datasheet and a multimeter with continuity tester functionality,
we traced the debug ports on the device board, identifying the testing points
connected to them.
Fig. 11: Fitbit tear-down and connecting Fitbit micro-controller to the debugger.
16 H. Fereidooni et al.
After discovering the SWD debug pins and their location on the PCB, we sol-
dered wires to the debug pins. We connected the debug ports to ST-LINK v2
pin header, according to Fig. 12.
Dumping the Firmware: After connecting to the device micro-controller,
we were able to communicate with MCU as shown in Fig. 11. We extracted
the entire rmware image since memory readout protection was not activated.
There are three levels of memory protection in the STM32L micro-controller:
(i) level 0: no readout protection, (ii) level 1: memory readout protection, the
Flash memory cannot be read from or written to, and (iii) level 2: chip readout
protection, debug features and boot in RAM selection are disabled (JTAG fuse).
We discovered that in the Fitbit Flex and the Fitbit One, memory protection
was set to level 0, which means there is no memory readout protection. This
enabled us to extract the contents of the dierent memory banks (e.g., FLASH,
SRAM, ROM, EEPROM) for further analysis.
Note that it is also possible to extract the complete rmware via the MITM
setup during an upgrade process (if the tracker rmware does not use encryp-
tion). In general, sning is easier to perform, but does not reveal the memory
layout and temporal storage contents. Moreover, hardware access allows us to
change memory contents at runtime.
Device Key Extraction: We initially snied communications between the
Fitbit tracker and the Fitbit server to see whether a key exchange protocol is
performed, which was not the case. Therefore, we expected pre-shared keys on
the Fitbit trackers we connected to, including two dierent Fitbit One and three
dierent Fitbit Flex devices. We read out their EEPROM and discovered that
the device encryption key is stored in their EEPROM. Exploring the memory
content, we found the exact memory addresses where the 6-byte serial ID and
16-byte encryption key are stored, as shown in Fig. 13. We conrm that each
device has a device-specic key which likely is programmed into the device during
manufacturing [12].
Disabling the Device Encryption: By analyzing the device memory
content, we discovered that by ipping one byte at a particular address in EEP-
ROM, we were able to force the tracker to operate in unencrypted mode and
disable the encryption. Even trackers previously communicating in encrypted
mode switched to plaintext after modifying the encryption ag (byte). Fig. 13
illustrates how to ip the byte, such that the the tracker sends all sync messages
in plaintext format (Base64 encoded) disabling encryption.
Injecting Fabricated Data Activities: We investigated the EEPROM
and SRAM content to nd the exact memory addresses where the total step
count and other data elds are stored. Based on our packet format knowledge and
previously snied megadumps, we found that the activity records were stored in
the EEPROM in the same format. Even encrypted frames are generated based
on the EEPROM plaintext records. Therefore, oblivious falsied data can be
injected, even with the newest rmware having encryption enabled. As it can be
seen in Fig. 14a and Fig. 14b, we managed to successfully inject 0X00FFFFFF steps
Breaking Fitness Records without Moving 17
equal to 16 777 215 in decimal into Fitbit server by modifying the corresponding
address eld in the EEPROM and subsequently synchronising the tracker with
the server.
6 Discussion
In this section we give a set of implementation guidelines for tness trackers.
While Fitbit is currently the only manufacturer that puts eort into securing
trackers [15], our guidelines also apply to other health-related IoT devices. We
intend to transfer the lessons learned into open security and privacy standards
that are being developed.
7
False data injection as described in the previous sections is made possible
by a combination of some of the design choices in the implementation of the
Fitbit trackers and in the communication protocol utilized between the track-
ers and Fitbit application servers. These design choices relate to how encryption
techniques have been applied, the design of the protocol messages, and the imple-
mentation of the hardware itself. To overcome such weaknesses in future system
designs, we propose the following mitigation techniques.
Application of encryption techniques: The examined trackers support
8 This allows
full end-to-end encryption, but do not enforce its use consistently.
us to perform an in-depth analysis of the data synchronization protocol and
ultimately fabricate messages with false activity data, which were accepted as
genuine by the Fitbit servers.
Suggestion 1
End-to-end encryption between trackers and remote servers should be consistently
enforced, if supported by device rmware.
7
See https://www.thedigitalstandard.org
8
During discussions we had with Fitbit, the company stressed that models launched
after 2015 consistently enforce encryption in the communications between the tracker
and server.
18 H. Fereidooni et al.
Fig. 14: The results of injecting fabricated data. Fig. 14a shows the Fitbit app
screenshot, and Fig. 14b demonstrates the Fitbit web interface.
Suggestion 2
Error and status notications should not include additional information related
to the contents of actual protocol messages.
CRCs do not protect against message forgery, once the scheme is known. For
authentication, there is already a scheme in place to generate subkeys from the
device key [12]. Such a key could also be used for message protection.
Suggestion 3
Messages should be signed with an individual signature subkey which is derived
from the device key.
Hardware implementation: The microcontroller hardware used by both
analyzed trackers provides memory readout protection mechanisms, but were not
enabled in the analyzed devices. This opens an attack vector for gaining access to
tracker memory and allows us to circumvent even the relatively robust protection
provided by end-to-end message encryption as we were able to modify activity
data directly in the tracker memory. Since reproducing such hardware attacks
given the necessary background information is not particularly expensive, the
available hardware-supported memory protection measures should be applied
by default.
Suggestion 4
Hardware-supported memory readout protection should be applied.
Specically, on the MCUs of the investigated tracking devices, the memory of
the hardware should be protected by enabling chip readout protection level 2.
Breaking Fitness Records without Moving 19
Suggestion 5
Fraud detection measures should be applied in order to screen for data resulting
from malicious modications or malfunctioning hardware.
For example, accounts with unusual or abnormal activity proles should be
agged and potentially disqualied, if obvious irregularities are detected.
7 Related Work
Researchers at the University of Toronto [18] have investigated transmission
security, data integrity, and Bluetooth privacy of eight tness trackers including
Fitbit Charge HR. They focused on transmission security, specically at whether
or not personal data is encrypted when transmitted over the Internet in order
to protect condentiality. They also examined data integrity concentrating on
whether or not tness data can be considered authentic records of activity that
have not been tampered with. They did not attempt to reverse engineer the
proprietary encoding or encryption used for transmitting data.
In 2013, Rahman et al. [9] studied the communication between Fitbit Ul-
tra and its base station as well as the associated web servers. According to
Rahman et al., Fitbit users could readily upload sensor data from their Fitbit
device onto the web server, which could then be viewed by others online. They
observed two critical vulnerabilities in the communication between the Fitbit
device's base station, and the web server. They claimed that these vulnerabil-
ities could be used to violate the security and privacy of the user. Specically,
the identied vulnerabilities consisted of the use of plaintext login information
and plaintext HTTP data processing. Rahman et al. then proposed FitLock as a
solution to the identied vulnerabilities. These vulnerabilities have been patched
by Fitbit and no longer exist on contemporary Fitbit devices. Zhou et al. [20]
followed up on Rahman's work by identifying shortcomings in their proposed
approach named FitLock, but did not mention countermeasures to mitigate the
vulnerabilities that they found. In 2014, Rahman et al. published another pa-
per detailing weaknesses in Fitbit's communication protocol, enabling them to
inject falsied data to both the remote web server and the tness tracker. The
authors proposed SensCrypt, a protocol for securing and managing low power
tness trackers [21]. Note that Fitbit's communication paradigm has changed
considerably since Fitbit Ultra, which uses ANT instead of Bluetooth, and is
not supported by smartphone applications, but only by a Windows program last
updated in 2013. Neither the ANT-based rewalls FitLock nor SensCrypt would
work on recent Fitbit devices. Transferring their concept to a Bluetooth-based
rewall would not help against the attacks demonstrated in this paper, since
20 H. Fereidooni et al.
hardware attacks are one level below such rewalls, while our protocol attacks
directly target the Fitbit servers.
Cyr et al. [10] analyzed the Fitbit Flex ecosystem. They attempted to do a
hardware analysis of the Fitbit device but because of the diculties associated
with debugging the device they decided to focus on other parts such as Bluetooth
LE, the associated Android app and network analysis. The authors explained the
data collected by Fitbit from its users, the data Fitbit provided to Fitbit users,
and methods of recovering data not made available to device owners.
In the report released by AV TEST [19], the authors tested nine tness
trackers including Fitbit Charge and evaluated their security and privacy. The
authors tried to nd out how easy it is to get the tness data from the tness
band through Bluetooth or by sning the connection to the cloud during the
synchronization process.
AV TEST reported some security issues in Fitbit Charge [11]. They dis-
covered that Fitbit Charge with rmware version 106 and lower allows non-
authenticated smartphones to be treated as authenticated if an authenticated
smartphone is in range or has been in range recently. Also, the rmware version
allowed attackers to replay the tracker synchronization process. Both issues have
been now xed by Fitbit.
In [12], the authors captured the rmware image of the Fitbit Charge HR
during a rmware update. They reversed engineer the cryptographic primitives
used by the Fitbit Charge HR activity tracker and recovered the authentication
protocol. Moreover, they obtained the cryptographic key that is used in the au-
thentication protocol from the Fitbit Android application. The authors found
a backdoor in previous rmware versions and exploiting this backdoor they ex-
tracted the device specic encryption key from the memory of the tracker using
Bluetooth interface. Memory readout has been xed in recent rmware versions.
Principled understanding of the Fitbit protocol remains open to investigation
as the open-source community continues to reverse-engineer message semantics
and server responses [16].
8 Conclusion
Trusting the authenticity and integrity of the data that tness trackers generate
is paramount, as the records they collect are being increasingly utilized as evi-
dence in critical scenarios such as court trials and the adjustment of healthcare
insurance premiums. In this paper, we conducted an in-depth security analysis of
two models of popular activity trackers commercialized by Fitbit, the market
leader, and we revealed serious security and privacy vulnerabilities present in
these devices. Additionally, we reverse engineered the primitives governing the
communication between these devices and cloud-based services, implemented an
open-source tool to extract sensitive personal information in human-readable for-
mat and demonstrated that malicious users could inject spoofed activity records
to obtain personal benets. To circumvent the end-to-end protocol encryption
mechanism present on the latest rmware, we performed hardware-based RE and
Breaking Fitness Records without Moving 21
Acknowledgments
Hossein Fereidooni is supported by the Deutsche Akademische Austauschdienst
(DAAD). Mauro Conti is supported by the EU TagItSmart! Project (agree-
ment H2020-ICT30-2015-688061) and IT-CNR/Taiwan-MOST 2016-17 Veri-
able Data Structure Streaming". This work has been co-funded by the DFG
as part of projects S1 and S2 within the CRC 1119 CROSSING, and by the
BMBF within CRISP. Paul Patras has been partially supported by the Scottish
Informatics and Computer Science Alliance (SICSA) through a PECE grant.
We thank the Fitbit Security Team for their professional collaboration with
us, and their availability to discuss our ndings and address the vulnerabilities
we identied.
References
1. Forbes. Wearable tech market to be worth $34 billion by 2020.
https://www.forbes.com/sites/paullamkin/2016/02/17/wearable-tech-market-to-
be-worth-34-billion-by-2020, February 2016.
2. International Data Corporation. Worldwide quarterly wearable device tracker.
https://www.idc.com/tracker/showproductinfo.jsp?prod_id=962, March 2017.
3. Mashable. Husband learns wife is pregnant from her Fitbit data. http://mashable.
com/2016/02/10/tbit-pregnant/, Feb. 2016.
4. The Wall Street Journal. Prosecutors say Fitbit device exposed bbing in
rape case. http://blogs.wsj.com/law/2016/04/21/prosecutors-say-tbit-device-
exposed-bbing-in-rape-case/, April 2016.
5. The Guardian. Court sets legal precedent with evidence from Fitbit health
tracker. https://www.theguardian.com/technology/2014/nov/18/court-accepts-
data-tbit-health-tracker, November 2014.
6. VitalityHealth. https://www.vitality.co.uk/rewards/partners/activity-tracking/.
7. AchieveMint. https://www.achievemint.com.
8. StepBet. https://www.stepbet.com/.
9. Mahmudur Rahman, Bogdan Carbunar, and Madhusudan Banik. Fit and Vul-
nerable: Attacks and Defenses for a Health Monitoring Device. In Proc. Privacy
Enhancing Technologies Symposium (PETS), Bloomington, IN, USA, July 2013.
10. Britt Cyr, Webb Horn, Daniela Miao, and Michael Specter. Security Analysis of
Wearable Fitness Devices (Fitbit). https://courses.csail.mit.edu/6.857/2014/les/
17-cyrbritt-webbhorn-specter-dmiao-hacking-tbit.pdf, 2014.
11. Eric Clausing, Michael Schiefer, and Maik Morgenstern. AV TEST Analysis of Fit-
bit Vulnerabilities. Available at: https://www.av-test.org/leadmin/pdf/avtest_
2016-04_tbit_vulnerabilities.pdf, 2016.
12. Maarten Schellevis, Bart Jacobs, , and Carlo Meijer. Security/privacy of wearable
tness tracking IoT devices. Radboud University. Bachelor thesis: Getting access
to your own Fitbit data., August 2016.
22 H. Fereidooni et al.