@1qaz
2016-12-22T09:47:40.000000Z
字数 1298
阅读 1031
rowhammer
Sarani Bhattachary,Indian Institute of Technology,CHES'16
一句话:利用Prime+Probe和row-buffer collison作为时间旁路信息来确定RSA解密过程中指数所处的bank地址,改进了引入故障的可控性。
decryption oracle:RSA,对输入的密文解密,然后返回解密结果
Adversary:普通用户,已知明密文,可以和decryption oralce交互。目标是通过rowhammer让解密指数出错,因此需要知道secret在内存中的bank地址
spy:adversary引入的进程,监视解密过程,使得解密进程访问数据都是从内存中访问,并利用时间旁路确定secret所处的bank
k cores,k slices,c cache sets/slice, m way associative
Prime+Probe整体思想:由于cache组相连,攻击者可以占满一个cache set的所有组(Prime),当victim有cache进入这个set时,攻击者原有的cache被挤出,攻击者可以再次访问自己的数据看到时间差(Probe)。。
Prime+Probe可以确定secret所在的cache set,攻击者可以找出m*k个映射到同一个set的地址,不断在这些地址上Prime+Probe,就可以把secret从缓存中逐出,保证decryption oracle每次都是从内存中取值
row buffer collison的时间旁路(Drammer中也是利用这个来确定rowsize)
当同时访问处于同一个bank中但在不同row的内存地址时,row buffer会清空,访问时间被比其他情况下的多
(两个进程的Collision只是理想中能发生的)
在确定了secret所在的bank后,由于无法进一步获知secret所处的row,所以作者在其中进行随机的hammer,如果解密结果不对说明flip影响到了解密进程
物理地址与cache slice的关系(RAID15)
4核,12路组相连,4个cache slice,每个有2048个cache sets。
攻击者mmap大块内存,通过pagemap得到物理地址,利用映射关系算出cache slice和cache set
hardware
software:ANVIL,统计cache miss
fault countermeasure: OpenSSL,计算两次,如果可以稳定的造出两次错误,这样的防护是无效的