Loading

一个侧信道安全结合机器学习的方法


上图是一个计算机内部可信区域与外部不可信区域的交互过程。
简单说如下:
一个app上层数据下来之后,通过ORAM这个硬件原语加密之后,送到外部OS和memory进行IO和存储交互。
那么问题来了,我想要知道这些数据怎么做呢?
以下是所有攻击者都会遇见的问题:
1,在步骤3之后,操作系统只观察到一组随机的页面(加密的)被读取/写入。
2,攻击者可以选择篡改页面,但这将在运行时的第6步之后被检测到。
3,对内存有物理访问权的攻击者也会看到密文。
解决方法:
新的侧信道攻击方法:reuse distance(我看了两篇论文,里面的定义都不一样,所以我现在对这个方法也有点晕,以下给出我理解的reuse distance)
什么是reuse distance?

上图显示了两种访问模式。说明重用距离和访问模式之间的关系。框内的数字是页面地址,而框上方的标签显示特定地址的重用距离。
在上图(a)中,程序重复扫描数组。这导致了线性访问模式,其中标记为0到3的4个页面被重复访问。假设enclave的工作集中只有两个页面,并且使用了LRU页面替换算法。当访问第2页时,将需要清除第0页。两个页面错误之后,当再次访问page 0时,它将返回到enclave中。对于此访问模式,每个页面的重用距离为2。相反,上图(b)显示了重复遍历二叉树的程序的访问模式。对于树遍历,根的重用距离为2,因为在每次迭代中都要访问根节点(标记为0)。非根页面的重用距离是2的倍数,因为它们可能在后续迭代中被访问,也可能不会被访问。
Training(机器学习方法)
● Collect trace of reuse distances for many apps on many inputs
● Train CNN sequence classifier on these
● Classes are the different applicationsTesting

posted @ 2020-12-13 22:36  Hulab-StoSys  阅读(252)  评论(0编辑  收藏  举报