关于spectre的安全问题和侧通道攻击。
在x86和手臂中都存在一种禁用特定内存页缓存/推测访问的方法。因此,对这些内存区域的任何侧通道攻击(spectre,meltdown)都是不可能的.那么,我们为什么不通过存储所有安全信息(密码、密钥等)来防止侧通道攻击呢?进入缓慢但安全的(?)内存区域,同时将不安全的数据放入快速但不安全的正常内存中?这些页面上的访问时间将减少一个巨大的因素(~100),但内核修复也不便宜。所以,也许只减少几个内存页的性能比整体下降要快一些?
这将把解决问题的责任从操作系统转移到应用程序开发者身上,这将是一个巨大的变化。但是,希望内核能够以某种方式修复所有的But似乎也不是一个好方法。
所以我的问题是
发布于 2018-07-25 12:40:24
因为我们的编译器/工具链/ OSes不支持对某些变量使用不可缓存的内存,也不支持将它们的副本溢出到堆栈中。(或由他们计算的临时人员。)
而且AFAIK,您甚至不能在Linux上的用户空间进程中分配一页UC内存,即使您想这样做。当然,这可以用mmap和/或mprotect的新标志来更改。希望它能够被设计成能够在旧系统上运行新的二进制文件,从而获得定期的回写内存(因此仍然工作,但没有安全优势)。
我不认为让非特权用户空间映射WC或UC内存有任何拒绝服务的含义;您已经可以使用NT存储和/或clflush来强制内存访问并争夺更大份额的系统内存控制器时间/资源。
https://stackoverflow.com/questions/51514380
复制相似问题