首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新的缓存设计如何阻止基于缓存的侧通道攻击

新的缓存设计如何阻止基于缓存的侧通道攻击
EN

Cryptography用户
提问于 2022-12-20 14:26:32
回答 1查看 56关注 0票数 1

新的缓存设计如何帮助抵抗基于缓存的侧通道攻击?在进行侧通道攻击时,我们有T台/S虚拟盒的地址.通常,地址映射是由操作系统处理的。对手总是可以确定虚拟地址。一个新的缓存设计会有什么帮助?

新的缓存设计- https://memlab.ece.gatech.edu/papers/MICRO_2018年_2.pdf

基于缓存的侧通道攻击代码- https://github.com/ECLab-ITU/Cache-Side-Channel-Attacks/blob/master/AES%20-%20HalfKey/Flush%2BReload/spy.cpp

EN

回答 1

Cryptography用户

发布于 2022-12-20 15:10:47

对手总是可以确定虚拟地址。一个新的缓存设计会有什么帮助?

当然,虚拟地址是通过MMU表转换成物理地址的--这并不是试图掩盖这一点。

相反,这个想法尝试的是隐藏缓存中物理地址和位置之间的映射。

缓存攻击背后的思想是,受攻击的程序所产生的内存引用会影响缓存(例如,如果程序引用了sbox条目,则该sbox条目将被拖到缓存中,如果它尚未存在)。因此,如果攻击者监视缓存(在运行在同一CPU上的不同程序之间共享),他们可以推断程序进行的内存引用(如果程序进行秘密依赖的引用,则攻击者将获得有关这些秘密的一些信息)。

本文的思想是将物理地址和缓存条目之间的映射随机化;也就是说,如果程序加载到sbox条目中,攻击者可能会推断某些内容已加载到缓存中,但无法确定加载了哪个条目(因此无法推断sbox条目)。

尽管如此,引用的文件有几个明显的问题:

  • 攻击者不一定能推断东西是在哪里加载的,但是他们可以确定是什么东西,这给了他们一些信息。例如,攻击者将能够区分“引用了两个不同缓存行中的两个不同的sbox条目”和“只引用了一个缓存行中的sbox条目”,这显然是一些信息。
  • 现代CPU有多个级别的缓存;此方案不处理L1缓存(CPU内部的缓存),攻击者显然可以利用这一点。
  • 他们提出的“两个周期”密码,善意地说,是可怕的。它是完全线性的(参见本文的图6);也就是说,\text{Encrypt}_K(M)等价于\text{Encrypt}_0(M) \oplus \text{F}(K) (对于某些函数F,它很容易计算,但我们可以忽略它)--攻击只关心冲突,而秘密密钥K的值并不影响与什么冲突的内容。因此,攻击者只需考虑到\text{Encrypt}_0的工作方式,就可以继续进行正常的攻击,并且可以像以前一样高效地进行攻击。
票数 3
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/103368

复制
相关文章

相似问题

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