Secure information flow by self-composition

被引:82
作者
Barthe, Gilles [1 ]
D'Argenio, Pedro R. [2 ]
Rezk, Tamara [3 ]
机构
[1] IMDEA Software Inst, Madrid, Spain
[2] Univ Nacl Cordoba, CONICET, FAMAF, RA-5000 Cordoba, Argentina
[3] INRIA Sophia Antipolis, INDES Project, Sophia Antipolis, France
关键词
CERTIFICATION; PROGRAMS; SYSTEM;
D O I
10.1017/S0960129511000193
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Information flow policies are confidentiality policies that control information leakage through program execution. A common way to enforce secure information flow is through information flow type systems. Although type systems are compositional and usually enjoy decidable type checking or inference, their extensibility is very poor: type systems need to be redefined and proved sound for each new variation of security policy and programming language for which secure information flow verification is desired. In contrast, program logics offer a general mechanism for enforcing a variety of safety policies, and for this reason are favoured in Proof Carrying Code, which is a promising security architecture for mobile code. However, the encoding of information flow policies in program logics is not straightforward because they refer to a relation between two program executions. The purpose of this paper is to investigate logical formulations of secure information flow based on the idea of self-composition, which reduces the problem of secure information flow of a program P to a safety property for a program (P) over cap derived from P by composing P with a renaming of itself. Self-composition enables the use of standard techniques for information flow policy verification, such as program logics and model checking, that are suitable in Proof Carrying Code infrastructures. We illustrate the applicability of self-composition in several settings, including different security policies such as non-interference and controlled forms of declassification, and programming languages including an imperative language with parallel composition, a non-deterministic language and, finally, a language with shared mutable data structures.
引用
收藏
页码:1207 / 1252
页数:46
相关论文
共 48 条
[1]  
Alur R, 2006, LECT NOTES COMPUT SC, V4052, P107
[2]   A logic for information flow in object-oriented programs [J].
Amtoft, T ;
Bandhakavi, S ;
Banerjee, A .
ACM SIGPLAN NOTICES, 2006, 41 (01) :91-102
[3]  
Amtoft T, 2007, FMSE'07: PROCEEDINGS OF THE 2007 ACM WORKSHOP ON FORMAL METHODS IN SECURITY ENGINEERING, P2
[4]  
Andrews G. R., 1980, ACM Transactions on Programming Languages and Systems, V2, P56, DOI 10.1145/357084.357088
[5]  
[Anonymous], 1992, TEMPORAL LOGIC REACT, DOI DOI 10.1007/978-1-4612-0931-7
[6]  
[Anonymous], 1997, A Discipline of Programming
[7]   Automatic Discovery and Quantification of Information Leaks [J].
Backes, Michael ;
Koepf, Boris ;
Rybalchenko, Andrey .
PROCEEDINGS OF THE 2009 30TH IEEE SYMPOSIUM ON SECURITY AND PRIVACY, 2009, :141-+
[8]   Towards a Logical Account of Declassification [J].
Banerjee, Anindya ;
Naumann, David A. ;
Rosenberg, Stan .
PLAS'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY, 2007, :61-65
[9]   Secure information flow by self-composition [J].
Barthe, G ;
D'Argenio, PR ;
Rezk, T .
17TH IEEE COMPUTER SECURITY FOUNDATIONS WORKSHOP, PROCEEDINGS, 2004, :100-114
[10]   Simple relational correctness proofs for static analyses and program transformations [J].
Benton, N .
ACM SIGPLAN NOTICES, 2004, 39 (01) :14-25