  Nowadays smartphones come embedded with multiple motion sensors, such as an
accelerometer, a gyroscope and an orientation sensor. With these sensors, apps
can gather more information and therefore provide end users with more
functionality. However, these sensors also introduce the potential risk of
leaking a user's private information because apps can access these sensors
without requiring security permissions. By monitoring a device's motion, a
malicious app may be able to infer sensitive information about the owner of the
device. For example, related work has shown that sensitive information entered
by a user on a device's touchscreen, such as numerical PINs or passwords, can
be inferred from accelerometer and gyroscope data.
  In this paper, we study these motion-based keystroke inference attacks to
determine what information they need to succeed. Based on this study, we
propose two novel approaches to defend against keystroke inference attacks: 1)
Reducing sensor data accuracy; 2) Random keyboard layout generation. We present
the design and the implementation of these two defences on the Android platform
and show how they significantly reduce the accuracy of keystroke inference
attacks. We also conduct multiple user studies to evaluate the usability and
feasibility of these two defences. Finally, we determine the impact of the
defences on apps that have legitimate reasons to access motion sensors and show
that the impact is negligible.
