Proving Concurrent Noninterference [chapter]

Andrei Popescu, Johannes Hölzl, Tobias Nipkow
<span title="">2012</span> <i title="Springer Berlin Heidelberg"> <a target="_blank" rel="noopener" href="https://fatcat.wiki/container/2w3awgokqne6te4nvlofavy5a4" style="color: black;">Lecture Notes in Computer Science</a> </i> &nbsp;
We perform a formal analysis of compositionality techniques for proving possibilistic noninterference for a while language with parallel composition. We develop a uniform framework where we express a wide range of noninterference variants from the literature and compare them w.r.t. their contracts: the strength of the security properties they ensure weighed against the harshness of the syntactic conditions they enforce. This results in a simple implementable algorithm for proving that a program
more &raquo; ... has a specific noninterference property, using only compositionality, which captures uniformly several security type-system results from the literature and suggests a further improved type system. All formalism and theorems have been mechanically verified in Isabelle/HOL. Supported by the DFG project Ni 491/13-1 (part of the DFG priority program RS3) and the DFG RTG 1480. The programming language We consider a simple while language with parallel composition, whose set com of commands, ranged over by c, d, e, is given by the following grammar: c ::= atm | Seq c 1 c 2 | If tst c 1 c 2 | While tst c | Par c 1 c 2 Above, atm ranges over an unspecified set atom of atomic commands (atoms). Standard examples of atoms are assignments such as x := x + y. Seq c 1 c 2 is the sequential composition of c 1 and c 2 , written in concrete syntax as c 1 ; c 2 . If tst c 1 c 2 is the conditional, written in concrete syntax as if tst then c 1 else c 2 , where tst ranges over an unspecified set test of tests. Standard examples of tests are Boolean expressions such as
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1007/978-3-642-35308-6_11">doi:10.1007/978-3-642-35308-6_11</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/na4uo3gj7bhgzchptqn7sqkjbq">fatcat:na4uo3gj7bhgzchptqn7sqkjbq</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20170808235536/http://www21.in.tum.de/~nipkow/pubs/cpp12.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/c4/39/c439e6935ca6edb2995e7c8dfef7f607792e0706.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1007/978-3-642-35308-6_11"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> springer.com </button> </a>