Paper 2024/1312
Probabilistic Data Structures in the Wild: A Security Analysis of Redis
Abstract
Redis (Remote Dictionary Server) is a general purpose, in-memory database that supports a rich array of functionality, including various Probabilistic Data Structures (PDS), such as Bloom filters, Cuckoo filters, as well as cardinality and frequency estimators. These PDS typically perform well in the average case. However, given that Redis is intended to be used across a diverse array of applications, it is crucial to evaluate how these PDS perform under worst-case scenarios, i.e., when faced with adversarial inputs. We offer a comprehensive analysis to address this question. We begin by carefully documenting the different PDS implementations in Redis, explaining how they deviate from those PDS as described in the literature. Then we show that these deviations enable a total of 10 novel attacks that are more severe than the corresponding attacks for generic versions of the PDS. We highlight the critical role of Redis' decision to use non-cryptographic hash functions in the severity of these attacks. We conclude by discussing countermeasures to the attacks, or explaining why, in some cases, countermeasures are not possible.
Metadata
- Available format(s)
- Category
- Attacks and cryptanalysis
- Publication info
- Preprint.
- Keywords
- probabilistic data structuresCuckoo filtersBloom filtersCMSTopKRedisattacks
- Contact author(s)
-
mia filic @ inf ethz ch
hofmannj @ student ethz ch
smarkelon @ ufl edu
kenny paterson @ inf ethz ch
aunnikris @ phys ethz ch - History
- 2024-08-23: approved
- 2024-08-22: received
- See all versions
- Short URL
- https://ia.cr/2024/1312
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2024/1312, author = {Mia Filić and Jonas Hofmann and Sam A. Markelon and Kenneth G. Paterson and Anupama Unnikrishnan}, title = {Probabilistic Data Structures in the Wild: A Security Analysis of Redis}, howpublished = {Cryptology {ePrint} Archive, Paper 2024/1312}, year = {2024}, url = {https://eprint.iacr.org/2024/1312} }