一句话:提出时间敏感控制依赖的高效算法,并用于发现缓存计时泄漏。
标准控制依赖只能说明语句 y 是否因 x 而被执行,却无法刻画 x 与 y 之间的时间间隔。本文系统研究时间敏感控制依赖:若 y 非标准控制依赖但时间敏感控制依赖于 x,则 y 总在 x 后执行,但二者间隔可变,从而可用于发现安全关键软件中的计时泄漏。作者给出时间敏感与非终止敏感控制依赖的性质和算法,并将 Cytron 的支配边界算法推广到这些依赖,且支持无唯一出口节点的控制流图(如反应式系统)。基于时间敏感控制依赖与切片,作者在 AES 实现中发现缓存计时泄漏,性能测试表明方法具有可扩展性。
We present efficient algorithms for time-sensitive control dependencies (CDs). If statement y is time-sensitively control dependent on statement x , then x decides not only whether y is executed but also how many timesteps after x . If y is not standard control dependent on x , but time-sensitively control dependent, then y will always be executed after x , but the execution time between x and y varies. This allows us to discover, e.g., timing leaks in security-critical software. We systematically develop properties and algorithms for time-sensitive CDs, as well as for nontermination-sensitive CDs. These work not only for standard control flow graphs (CFGs) but also for CFGs lacking a unique exit node (e.g., reactive systems). We show that Cytron’s efficient algorithm for dominance frontiers [ 10 ] can be generalized to allow efficient computation not just of classical CDs but also of time-sensitive and nontermination-sensitive CDs. We then use time-sensitive CDs and time-sensitive slicing to discover cache timing leaks in an AES implementation. Performance measurements demonstrate scalability of the approach.
@article{paperbot1206,
title = {On Time-sensitive Control Dependencies},
author = {Martin Hecker and Simon Bischof and Gregor Snelting},
journal = {ACM Transactions on Programming Languages and Systems},
volume = {44},
number = {1},
year = {2021},
doi = {10.1145/3486003}
}