Paper 2024/180
Exploiting RPMB authentication in a closed source TEE implementation
Abstract
Embedded Multimedia Cards (eMMCs) provide a protected memory area called the Replay Protected Memory Block (RPMB). eMMCs are commonly used as storage media in modern smartphones. In order to protect these devices from unauthorized access, important data is stored in the RPMB area in an authenticated manner. Modification of the RPMB data requires a pre-shared authentication key. An unauthorized user cannot change the stored data. On modern devices, this pre-shared key is generated and used exclusively within a Trusted Execution Environment (TEE) preventing attackers from access. In this paper, we investigate how the authentication key for RPMB is programmed on the eMMC. We found that this key can be extracted directly from the target memory chip. Once obtained, the authentication key can be used to manipulate stored data. In addition, poor implementation of certain security features, aimed at preventing replay attacks using RPMB on the host system can be broken by an attacker. We show how the authentication key can be extracted and how it can be used to break the anti-rollback protection to enable data restoration even after a data wipe operation has been completed. Our findings show that non-secure RPMB implementations can enable forensic investigators to break security features implemented on modern smartphones.
Metadata
- Available format(s)
- Category
- Secret-key cryptography
- Publication info
- Published elsewhere. Forensic Science International: Digital Investigation
- DOI
- 10.1016/j.fsidi.2023.301682
- Keywords
- RPMBReplay attack protectionTEEMobile forensics
- Contact author(s)
- a fukami @ uva nl
- History
- 2024-02-09: approved
- 2024-02-06: received
- See all versions
- Short URL
- https://ia.cr/2024/180
- License
-
CC BY-NC-ND
BibTeX
@misc{cryptoeprint:2024/180, author = {Aya Fukami and Richard Buurke and Zeno Geradts}, title = {Exploiting {RPMB} authentication in a closed source {TEE} implementation}, howpublished = {Cryptology {ePrint} Archive, Paper 2024/180}, year = {2024}, doi = {10.1016/j.fsidi.2023.301682}, url = {https://eprint.iacr.org/2024/180} }