中文

输出敏感的信息流分析

密码学与安全 2023-06-22 v5 编程语言

摘要

常量时间编程是一种防止基于缓存的攻击的对策,其中程序不应执行依赖于秘密的内存访问。在某些情况下,如果可以证明程序泄露的信息不超过计算的公开输出,则可以安全地放宽此策略。我们提出了一种基于新的信息流属性(称为输出敏感非干扰)的验证常量时间编程的新方法。非干扰规定公开观察者无法获知任何关于私有数据的信息。由于真实系统需要有意地解密一些信息,因此该属性在实践中过于严格。为了考虑公开输出,我们按如下方式进行:不使用复杂的显式解密策略,而是将变量划分为三个集合:输入、输出和泄露变量。然后,我们提出一个类型系统来静态检查泄露变量泄露的关于秘密输入的信息不会超过公开的正常输出。我们方法的新颖之处在于,我们跟踪泄露变量的依赖性时,不仅考虑输入变量的初始值(如经典的非干扰方法),还考虑输出变量的最终值。我们将此方法适配到 LLVM IR,并开发了一个原型来验证 LLVM 实现。

关键词

引用

@article{arxiv.1909.09567,
  title  = {Output-sensitive Information flow analysis},
  author = {Cristian Ene and Laurent Mounier and Marie-Laure Potet},
  journal= {arXiv preprint arXiv:1909.09567},
  year   = {2023}
}