HyperLogLog(HLL)安全性:膨胀基数估计
密码学与安全
2020-11-23 v1 数据结构与算法
摘要
对集合中不同元素个数进行计数在许多应用中都是必需的,例如追踪互联网服务的独立用户数或网络上的不同流数。在许多情况下,估计值而非精确值已足够,因此人们提出了许多显著降低内存与计算需求的基数估计算法。其中,HyperLogLog 已在软件与硬件实现中被广泛采用。HyperLogLog 的安全性近来已被研究,表明攻击者可以构造一个元素集合,使其产生的基数估计值远小于集合的真实基数。该集合可用于规避使用 HyperLogLog 的检测系统。本文从相反角度考量 HyperLogLog 的安全性:攻击者希望构造一个较小的集合,当插入 HyperLogLog 时产生较大的基数估计值。该集合可用于触发使用 HyperLogLog 的检测系统中的误报,但更有趣的是,它有可能被用于虚增网站访问量或在线广告的点击数。我们的分析表明,攻击者可以构造一个元素数量等于 HyperLogLog 实现中所用寄存器数的集合,从而产生任意的基数估计值。这已在两个 HyperLogLog 的商业实现——Presto 与 Redis 中得到验证。基于这些结果,我们还考虑了针对此类攻击的 HyperLogLog 防护。
引用
@article{arxiv.2011.10355,
title = {HyperLogLog (HLL) Security: Inflating Cardinality Estimates},
author = {Pedro Reviriego and Pablo Adell and Daniel Ting},
journal= {arXiv preprint arXiv:2011.10355},
year = {2020}
}