2006
DOI: 10.1145/1111320.1111046
|View full text |Cite
|
Sign up to set email alerts
|

A logic for information flow in object-oriented programs

Abstract: This paper specifies, via a Hoare-like logic, an interprocedural and flow sensitive (but termination insensitive) information flow analysis for object-oriented programs. Pointer aliasing is ubiquitous in such programs, and can potentially leak confidential information. Thus the logic employs independence assertions to describe the noninterference property that formalizes confidentiality, and employs region assertions to describe possible aliasing. Programmer assertions, in the style of JML, are also allowed, t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
87
0

Year Published

2006
2006
2019
2019

Publication Types

Select...
7
1

Relationship

1
7

Authors

Journals

citations
Cited by 54 publications
(87 citation statements)
references
References 26 publications
(40 reference statements)
0
87
0
Order By: Relevance
“…[ABB06]). Do dynamic allocation, structured data and aliasing fundamentally change the algorithmic approach?…”
Section: Discussionmentioning
confidence: 99%
“…[ABB06]). Do dynamic allocation, structured data and aliasing fundamentally change the algorithmic approach?…”
Section: Discussionmentioning
confidence: 99%
“…Using program logics, non-interference can be directly formalized (e.g., [6,12,37]); or it can be translated into dependence properties, which in turn can be formalized in program logics logic (this has been investigated for a simple imperative language [2,1], for a simple object-oriented language [3], and for sequential Java [19]). Non-interference can also be translated into proof obligations that can -in principle -be handled by unmodified existing program verification tools using a technique called self-composition [12,11,6].…”
Section: Deductive Verification Of System Codementioning
confidence: 99%
“…Also note that correctness is phrased directly wrt. the underlying semantics, unlike [3,2] which first establish the semantic soundness of a logic and next provide a sound implementation of that logic. Theorem 2 is proved [6] much as the corresponding result [5] (that handled a language with heap manipulation but without procedure calls and without automatic computation of loop invariants), by establishing some auxiliary properties (e.g., the R component) that have largely determined the design of Pre.…”
Section: A Precondition Generation Algorithmmentioning
confidence: 99%
“…To address that, and to analyze heapmanipulating languages, the logic of [2] employs three kinds of primitive assertions: agreement, programmer, and region (for a simple alias analysis). But, since those can be combined only through conjunction, programmer assertions are not smoothly integrated, and it is not possible to capture conditional information flows.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation