Repository logo

Formally Verified Code Obfuscation in the Coq Proof Assistant

dc.contributor.authorLu, Weiyun
dc.contributor.supervisorFelty, Amy
dc.contributor.supervisorScott, Philip
dc.date.accessioned2019-12-20T20:52:28Z
dc.date.available2019-12-20T20:52:28Z
dc.date.issued2019-12-20en_US
dc.description.abstractCode obfuscation is a software security technique where transformations are applied to source and/or machine code to make them more difficult to analyze and understand to deter reverse-engineering and tampering. However, in many commercial tools, such as Irdeto's Cloakware product, it is not clear why the end user should believe that the programs that come out the other end are still the same program"! In this thesis, we apply techniques of formal specification and verification, by using the Coq Proof Assistant and IMP (a simple imperative language within it), to formulate what it means for a program's semantics to be preserved by an obfuscating transformation, and give formal machine-checked proofs that these properties hold. We describe our work on opaque predicate and control flow flattening transformations. Along the way, we also employ Hoare logic as an alternative to state equivalence, as well as augment the IMP program with Switch statements. We also define a lower-level flowchart language to wrap around IMP for modelling certain flattening transformations, treating blocks of codes as objects in their own right. We then discuss related work in the literature on formal verification of data obfuscation and layout obfuscation transformations in IMP, and conclude by discussing CompCert, a formally verified C compiler in Coq, along with work that has been done on obfuscation there, and muse on the possibility of implementing formal methods in the next generation of real-world obfuscation tools.en_US
dc.identifier.urihttp://hdl.handle.net/10393/39994
dc.identifier.urihttp://dx.doi.org/10.20381/ruor-24233
dc.language.isoenen_US
dc.publisherUniversité d'Ottawa / University of Ottawaen_US
dc.subjectcode obfuscationen_US
dc.subjectformal verificationen_US
dc.subjectsecurityen_US
dc.subjectlogicen_US
dc.titleFormally Verified Code Obfuscation in the Coq Proof Assistanten_US
dc.typeThesisen_US
thesis.degree.disciplineGénie / Engineeringen_US
thesis.degree.levelMastersen_US
thesis.degree.nameMCSen_US
uottawa.departmentScience informatique et génie électrique / Electrical Engineering and Computer Scienceen_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail ImageThumbnail Image
Name:
Lu_Weiyun_2019_thesis.pdf
Size:
3.55 MB
Format:
Adobe Portable Document Format
Description:

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail ImageThumbnail Image
Name:
license.txt
Size:
6.65 KB
Format:
Item-specific license agreed upon to submission
Description: