We demonstrate the feasibility of database reconstruction under a cache side-channel attack on SQLite. Specifically, we present a Flush+Reload attack on SQLite that obtains approximate (or "noisy") volumes of range queries made to a private database. We then present several algorithms that, taken together, reconstruct nearly the exact database in varied experimental conditions, given these approximate volumes. Our reconstruction algorithms employ novel techniques for the approximate/noisy setting, including a noise-tolerant clique-finding algorithm, a "Match & Extend" algorithm for extrapolating volumes that are omitted from the clique, and a "Noise Reduction Step" that makes use of a closest vector problem (CVP) solver to improve the overall accuracy of the reconstructed database. The time complexity of our attacks grows quickly with the size of the range of the queried attribute, but scales well to large databases. Experimental results show that we can reconstruct databases of size 100,000 and ranges of size 12 with error percentage of 0.11 % in under 12 hours on a personal laptop.
翻译:我们展示了在对 SQLite 的缓冲侧道攻击下重建数据库的可行性。 具体地说, 我们展示了对 SQLite 的 Flush+Reload 攻击, 获得了对私人数据库的大致( 或“ noisy ” ) 范围查询量。 我们然后展示了几种算法, 结合了不同的实验条件, 几乎重建了精确的数据库。 我们的重建算法对近似/ 噪音设置采用了新颖的技术, 包括噪音耐受感应的分类调查算法, 一种“ 匹配和扩展” 的外推算法, 以及一种“ 减少噪音步骤 ”, 使最接近的矢量问题( CVP) 解答器用于提高重建数据库的总体准确性。 我们攻击的时间复杂性随着被查询属性的范围的大小而迅速增加, 但规模也很大。 实验结果显示, 我们可以在个人笔记电脑上重建10万 和12 大小 范围, 以0. 0. 1% 的误率 在 12 小时 。