Publication:
Proving Confidentiality and Its Preservation Under Compilation for Mixed-Sensitivity Concurrent Programs

dc.contributor.advisor Morgan, Carroll en_US
dc.contributor.advisor Murray, Toby en_US
dc.contributor.advisor Engelhardt, Kai en_US
dc.contributor.author Sison, Robert en_US
dc.date.accessioned 2022-03-23T13:48:12Z
dc.date.available 2022-03-23T13:48:12Z
dc.date.issued 2020 en_US
dc.description.abstract Here, I pose the thesis that proving noninterference and its preservation by a compiler is feasible for mixed-sensitivity concurrent programs. Software does not always have the luxury of limiting itself to single-threaded computation with resources statically dedicated to each user to ensure the confidentiality of their data. Prior work therefore presented formal methods for proving and preserving the strictest kind of confidentiality property, noninterference, for mixed-sensitivity concurrent programs: a term I coin to describe those programs that might reuse memory shared between their threads to hold data of different sensitivity levels at different times. Although these methods addressed challenges in formalising the value-dependent coordination of such mixed-sensitivity reuse under the impact of concurrency, their practicality remained unclear: Could they be used to prove noninterference for any nontrivial mixed-sensitivity concurrent program in its entirety? Furthermore, could any compiler be verified to preserve the needed guarantees to the compiled code? To support this claim, I prove for the first time both (1) noninterference for a nontrivial mixed-sensitivity concurrent program, modelling a real-world use case, and (2) its preservation by a compiler down to an assembly-level model. This main result rests on two major contributions. First, I demonstrate how programming-language designers can make reasoning on each thread sufficient to prove noninterference for such programs, by supplying synchronisation primitives (here, mutex locks for a generic imperative language) and proving they maintain as invariant the necessary requirements. Second, I demonstrate how compiler developers can make confidentiality-preserving refinement a feasible target for verification, by using a decomposition principle to prove that a compiler (here, from that imperative language to a generic RISC-style assembly language) establishes it for mixed-sensitivity concurrent programs. Thus, per-thread reasoning proves noninterference for the case study, and the verified compiler preserves it to assembly automatically. All my results are formalised and proved in the Isabelle/HOL interactive proof assistant. My work paves the way for more fully featured programming languages and their compilers, in replicating these results, to raise the typical level of assurance readily offered by developers of multithreaded software responsible for data of multiple sensitivity levels. en_US
dc.identifier.uri http://hdl.handle.net/1959.4/70452
dc.language English
dc.language.iso EN en_US
dc.publisher UNSW, Sydney en_US
dc.rights CC BY-NC-ND 3.0 en_US
dc.rights.uri https://creativecommons.org/licenses/by-nc-nd/3.0/au/ en_US
dc.subject.other Concurrent Programming en_US
dc.subject.other Computational Logic and Formal Languages en_US
dc.subject.other Computer System Security en_US
dc.subject.other Formal Verification en_US
dc.subject.other Formal Methods en_US
dc.subject.other Information-Flow Security en_US
dc.subject.other Interactive Theorem Proving en_US
dc.subject.other Confidentiality en_US
dc.subject.other Noninterference en_US
dc.subject.other Secure Compilation en_US
dc.title Proving Confidentiality and Its Preservation Under Compilation for Mixed-Sensitivity Concurrent Programs en_US
dc.type Thesis en_US
dcterms.accessRights open access
dcterms.rightsHolder Sison, Robert
dspace.entity.type Publication en_US
unsw.accessRights.uri https://purl.org/coar/access_right/c_abf2
unsw.description.notePublic https://orcid.org/0000-0003-0313-9764 en_US
unsw.identifier.doi https://doi.org/10.26190/5fab5c0a76454 en_US
unsw.relation.faculty Engineering
unsw.relation.originalPublicationAffiliation Sison, Robert, Computer Science & Engineering, Faculty of Engineering, UNSW en_US
unsw.relation.originalPublicationAffiliation Morgan, Carroll, Computer Science & Engineering, Faculty of Engineering, UNSW en_US
unsw.relation.originalPublicationAffiliation Murray, Toby, School of Computing and Information Systems, University of Melbourne en_US
unsw.relation.originalPublicationAffiliation Engelhardt, Kai, Ghost Locomotion en_US
unsw.relation.school School of Computer Science and Engineering *
unsw.thesis.degreetype PhD Doctorate en_US
Files
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
public version.pdf
Size:
2.11 MB
Format:
application/pdf
Description:
Resource type