paperbot · PL 论文追踪

全部论文 待读 收藏

P2 CommCSL: Proving Information Flow Security for Concurrent Programs using Abstract Commutativity

CommCSL:使用抽象可交换性证明并发程序的信息流安全
PLDI 7(PLDI)2023匹配度 3/10 · 论文研究并发程序信息流安全的形式化验证与抽象可交换性推理,属于程序验证/程序分析方向,但未涉及 LLM/Agent、机器学习系统、浮点程序分析或贝叶斯程序分析等用户核心研究问题,仅在一般形式化验证层面与画像有弱关联。引用 9 inbox
Marco Eilers, Thibault Dardinier, Peter Müller
crossref: 2026-09-10

AI 速览

一句话:提出基于抽象可交换性的关系并发分离逻辑 CommCSL,可自动验证并发程序的信息流安全,且不假设任何时序行为。

信息流安全要求程序处理的机密数据不影响其可观测输出。对并发程序而言,这一验证尤为困难:对机密数据的操作可能影响线程执行时间,进而改变线程交错,形成内部时序通道,即使攻击者不观测执行时间也会影响可观测结果。现有技术试图证明机密数据不影响线程相对时序,但往往限制性强(例如禁止对机密数据分支),且对执行平台做出强假设(忽略缓存、数据相关运行时的指令等)。本文提出一种新的并发信息流安全验证技术,取消这些限制且不假设任何时序行为。核心思想是证明共享数据上所有变更操作可交换,从而不同线程交错不影响其最终值;关键在于只需共享数据的某个抽象满足可交换性,该抽象包含将泄漏到公开输出的信息。抽象可交换性比标准可交换性更容易满足,因而适用面更广。作者在支持可交换性推理的关系并发分离逻辑 CommCSL 中形式化该技术,并在 Isabelle/HOL 中证明其可靠性;同时在基于 Viper 基础设施的自动验证器 HyperViper 中实现,验证了若干具挑战性的例子。

问题
并发程序中的机密数据可能通过影响线程交错(内部时序通道)而影响可观测输出,现有信息流验证技术要求证明机密数据不影响线程相对时序,限制强且对执行平台有强假设。
方法
提出关系并发分离逻辑 CommCSL,通过证明共享数据变更操作的抽象可交换性(仅需对泄漏到公开输出的信息所在的抽象成立)来排除内部时序通道,并在 Isabelle/HOL 中机器化证明其可靠性。
评估
在基于 Viper 的自动验证器 HyperViper 中实现 CommCSL,并对多个具挑战性的并发信息流安全例子进行验证以展示其适用性与自动化能力。
原文摘要(Abstract)

Information flow security ensures that the secret data manipulated by a program does not influence its observable output. Proving information flow security is especially challenging for concurrent programs, where operations on secret data may influence the execution time of a thread and, thereby, the interleaving between different threads. Such internal timing channels may affect the observable outcome of a program even if an attacker does not observe execution times. Existing verification techniques for information flow security in concurrent programs attempt to prove that secret data does not influence the relative timing of threads. However, these techniques are often restrictive (for instance because they disallow branching on secret data) and make strong assumptions about the execution platform (ignoring caching, processor instructions with data-dependent runtime, and other common features that affect execution time). In this paper, we present a novel verification technique for secure information flow in concurrent programs that lifts these restrictions and does not make any assumptions about timing behavior. The key idea is to prove that all mutating operations performed on shared data commute, such that different thread interleavings do not influence its final value. Crucially, commutativity is required only for an abstraction of the shared data that contains the information that will be leaked to a public output. Abstract commutativity is satisfied by many more operations than standard commutativity, which makes our technique widely applicable. We formalize our technique in CommCSL, a relational concurrent separation logic with support for commutativity-based reasoning, and prove its soundness in Isabelle/HOL. We implemented CommCSL in HyperViper, an automated verifier based on the Viper verification infrastructure, and demonstrate its ability to verify challenging examples.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1933,
  title = {CommCSL: Proving Information Flow Security for Concurrent Programs using Abstract Commutativity},
  author = {Marco Eilers and Thibault Dardinier and Peter Müller},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {PLDI},
  year = {2023},
  doi = {10.1145/3591289}
}