| 摘要: |
| 目前,针对线程信息流的验证研究主要着重于时间信道.然而,由于线程程序中线程控制原语存在函数副作用,对此类原语的不恰当调用亦可引起非法信息流,有意或无意地破坏程序的非干扰属性.因此,提出以验证线程程序信息流为目的依赖逻辑,其可表达线程程序的数据流、控制流以及线程控制函数的副作用,推理程序变量和线程标识符之间的依赖关系,进而判定是否存在高机密性变量对低机密性变量的干扰. |
| 关键词: 非干扰 动态作用域线程 公理语义 |
| DOI:10.13328/j.cnki.jos.004429 |
| 分类号: |
| 基金项目:国家自然科学基金(61170070,90818022,61321491);国家科技支撑计划(2012BAK26B01);国家高技术研究发展计划(863)(2011AA1A202) |
|
| Logic of Multi-Threaded Programs for Non-Interference |
|
LI Qin1, ZENG Qing-Kai2,3, YUAN Zhi-Xiang1
|
|
1.School of Computer, Anhui University of Technology, Maanshan 243032, China;2.State Key Laboratory for Novel Software Technology Nanjing University, Nanjing 210023, China;3.Department of Computer Science and Technology, Nanjing University, Nanjing 210023, China
|
| Abstract: |
| Existing work on the verification of information flow in threads mainly focuses on timing channels. However, this paper shows that system calls, such as‘fork’ or ‘join’ with side effects, can also be used to create covert channels intentionally or accidentally. The study results in a dependency logic for verifying information flow in multi-threaded programs where improper calls over thread controlling primitives with side effects could incur illegal information flow. The logic can express the data flow, control flow and the side effects of thread-controlling system calls, and can reason about the dependency relationship among variables and thread identities, to determine whether secret variables interfere with public ones in multi-threaded programs. |
| Key words: non-interference dynamic scoping multi-threaded program axiomatic semantic |