Sloth: Key Stretching and Deniable Encryption using Secure Elements on Smartphones

Authors: Daniel Hugenroth (University of Cambridge), Alberto Sonnino (MystenLabs & University College London), Sam Cutler (The Guardian), Alastair R. Beresford (University of Cambridge)

Volume: 2024
Issue: 4
Pages: 393–412
DOI: https://doi.org/10.56553/popets-2024-0123

Artifact: Reproduced

Download PDF

Abstract: Privacy enhancing technologies must not only protect sensitive data in-transit, but also locally at-rest. For example, anonymity networks hide the sender and/or recipient of a message from network adversaries. However, if a participating device is physically captured, its owner can be pressured to give access to the stored conversations. Therefore, client software should allow the user to plausibly deny the existence of meaningful data. Since biometrics can be collected without consent and server-based authentication leaks metadata, implementations typically rely on memorable passwords for local authentication. Traditional password-based key stretching lacks a strict time guarantee due to the ease of parallelized password guessing by attackers. This paper introduces Sloth, a key stretching method leveraging the Secure Element (SE) commonly found in modern smartphones to provide a strict rate limit on password guessing. While this would be straightforward with full access to the SE, Android and iOS only provide a very limited API. Sloth utilizes the existing developer SE API and novel cryptographic constructions to build an effective rate-limit for password guessing on recent Android and iOS devices. Our approach ensures robust security even for short, randomly-generated, six-character alpha-numeric passwords against adversaries with virtually unlimited computing resources. Our solution is compatible with approximately 96% of iPhones and 45% of Android phones and Sloth seamlessly integrates without device or OS modifications, making it immediately usable by app developers today. We formally define the security of Sloth and evaluate its performance on various devices. Finally, we present HiddenSloth, a plausibly-deniable encryption scheme leveraging Sloth. It provides multi-snapshot resistance against adversaries who can covertly capture its on-disk content multiple times.

Keywords: key stretching, deniable encryption, secure element, password hashing, Android, iOS

Copyright in PoPETs articles are held by their authors. This article is published under a Creative Commons Attribution 4.0 license.