首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spectre:理解POC的问题-从缓存读取数据

Spectre:理解POC的问题-从缓存读取数据
EN

Security用户
提问于 2018-01-11 15:45:38
回答 1查看 301关注 0票数 2

我理解漏洞(幽灵)以及理论上PoC所做的事情。但是,当PoC在86-108行之间从缓存中读取或标识数据时,我不理解它的部分。我知道PoC通过测量从*addr读取数据的时间(在l. 90)从缓存读取数据,但是results[]有什么练习,以及为什么mix_i在表示缓存命中地址的字节时击中缓存?

EN

回答 1

Security用户

回答已采纳

发布于 2018-01-11 16:27:37

results[]做了什么练习

这不是一门精确的艺术。对于不是victim_function命中的索引,缓存可能会被击中。这个阈值可能会导致边缘结果。

因此,当代码认为有缓存命中时,代码将运行999次攻击,并增加结果混合_我。然后,它选择结果值最高的结果(最期望的缓存命中),并假定这是受害者字节的正确值。

当mix_i表示缓存命中地址的字节时,它为什么会命中缓存?

mix_i只是洗牌的一种方式。

代码语言:javascript
复制
for (i = 0; i < 256; i++) {
    mix_i = ((i * 167) + 13) & 255;
    ...
}

上述结果使mix_i被初始化为0-255之间的每个值一次,而不是按0、1、2、3的顺序初始化(如我所示)。这样做是出于注释中所述的原因-- 防止跨距预测

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/177365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档