问题描述
我正在研究论文。本文描述了一种侧信道攻击。它测量只有攻击者代码时的cache miss rate
,以及其他程序和攻击代码运行在同一个内核上时的缓存未命中率作为干扰。我发现可以通过cache miss rate
获得perf
。但是想了半天,还是不能完全理解这个干扰程序是什么。
以下为论文原文。
我们还展示了当只有发送方进程在物理核心上运行时的结果(仅由发送方表示)以及发送方与良性 gcc 工作负载共享物理核心的结果(由发送方和 gcc 表示)。当只有发送方进程时,它的 L1 未命中率最小。当它与良性程序共享内核时,良性程序(例如 gcc)会在缓存中引起争用。
这里提到的干扰程序是指什么?是良性的c代码,还是gcc编译c代码时的gcc库?
如果干扰是运行gcc库编译c代码,gcc瞬间编译c代码。我们怎样才能让它运行很长时间?这可能是一个很基础的问题,但是我想了很久还是没有弄明白。 论文的网址是: https://caslab.csl.yale.edu/publications/xiong2020leaking.pdf 感谢所有愿意提供建议的人。
解决方法
“gcc”指的是 GNU Compiler Collection 的主要命令。对于论文中的工作,gcc 的运行时间可能不会太短有几个原因:
-
gcc 的短运行时间可能足以满足论文中的工作。
-
您可能会觉得 gcc 在您使用它的程序中花费的时间很短,但对于使用更复杂语言的较长程序可能需要更长的时间。
-
可以要求 gcc 在一个命令中对多个源文件进行操作。
-
gcc 可能会在论文工作期间重复运行。
您可能习惯于在您专用的计算机上运行程序。通常,在侧信道攻击受到关注的环境中,程序由多个用户同时在“服务器”系统上运行。这样的系统可能会持续忙碌。 (这并不排除此类攻击在通常仅由一个人使用的系统中存在的问题,其中,除了合法用户所需的软件之外,某些软件是在恶意人员的怂恿下执行的。)
,什么是GCC
?这个怎么运作?
让我加上gcc website
gcc
的缩写是 GNU Compiler Collection
。在linux中,我们使用该函数制作c
的可执行文件。
gcc main.c -o test
其中 -o 表示输出。所以,main.c 的输出是 test。
然后,我们可以运行测试程序。 ./test
。在windows中我们可以直接点击test.exe运行。这就是 gcc
的小介绍。