Award Abstract # 1563393
SHF: Medium: Collaborative Research: Self Certifying Compilation and its Applications

NSF Org: CCF
Division of Computing and Communication Foundations
Recipient: NOKIA OF AMERICA CORPORATION
Initial Amendment Date: July 28, 2016
Latest Amendment Date: June 29, 2020
Award Number: 1563393
Award Instrument: Standard Grant
Program Manager: Nina Amla
namla@nsf.gov
 (703)292-7991
CCF
 Division of Computing and Communication Foundations
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: August 1, 2016
End Date: August 31, 2020 (Estimated)
Total Intended Award Amount: $145,500.00
Total Awarded Amount to Date: $145,500.00
Funds Obligated to Date: FY 2016 = $145,500.00
History of Investigator:
  • Kedar Namjoshi (Principal Investigator)
    kedar.namjoshi@nokia-bell-labs.com
Recipient Sponsored Research Office: Nokia of America Corporation
600, MOUNTAIN AVENUE
MURRAY HILL
NJ  US  07974-2008
(469)991-4503
Sponsor Congressional District: 07
Primary Place of Performance: Alcatel-Lucent USA Inc.
600-700 Mountain Avenue
Murray Hill
NJ  US  07974-0636
Primary Place of Performance
Congressional District:
07
Unique Entity Identifier (UEI): RJXTFWKHANY8
Parent UEI: RJXTFWKHANY8
NSF Program(s): Software & Hardware Foundation
Primary Program Source: 01001617DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 7924, 8206
Program Element Code(s): 779800
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Software is embedded into our daily activities. Ensuring that the software is trustworthy - does what is intended - and secure - is not vulnerable to attack - is a prime concern. Much attention has been devoted to establishing the correctness of high-level programs. This project is focused on the important task of ensuring that the, often complex and opaque, transformations carried out by a compiler do not degrade the trustworthiness and security guarantees of its input program.

The key innovation pursued in this project is self-certification which guarantees the correctness and security of compilation. A self-certifying compiler creates a tangible, independently-checkable proof, justifying the correctness of the compilation run. By linking in information from external analysis tools certificates can also aid in obtaining better machine code. In particular, they allow for automatic insertion of defensive measures, which protect the program from common security attacks. This work builds on existing theoretical ideas and compiler implementations, while extending them in new directions. The self-certifying compiler is implemented in the popular LLVM framework, making it suitable for immediate adoption by programmers, and its security benefits available to end users in a transparent fashion. Provable program correctness is a true "Grand Challenge" for computing. By developing both theory and implementation of a self-certifying compiler, this project is taking a significant step forward in meeting that challenge.

PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH

Note:  When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

(Showing: 1 - 10 of 17)
Suguman Bansal, Kedar S. Namjoshi, Yaniv Saar "Coordinator Synthesis" SYNT2019 , 2019
Chaoqiang Deng and Kedar S. Namjoshi "Securing A Compiler Transformation" Special issue of Formal Methods inSystem Design (of selected SAS 2016) , 2018
Chaoqiang Deng and Kedar S. Namjoshi "Securing the SSA Transform" SAS 2017 , 2017
Chaoqiang Deng and Kedar S. Namjoshi "Witnessing Network Transformations" Run-Time Verification (RV 2017) , 2017
Kedar Namjoshi, Lucas M. Tabajara "Security Witnesses for Compiler Transformations" PriSC 2019 , 2019
Kedar S. Namjoshi, Aalok Thakkar, Richard J. Trefler "Modular Synthesis of Reactive Programs" SYNT , 2020
Kedar S. Namjoshi, Lucas M. Tabajara "Witnessing Secure Compilation" VMCAI , 2020
Kedar S. Namjoshi, Lucas Tabajara "Witnessing Secure Compilation." VMCAI , 2020
Kedar S. Namjoshi, Richard J. Trefler "Symmetry Reduction for the Local Mu-Calculus" TACAS 2018 , 2018
Kedar S. Namjoshi, Richard J. Trefler "Symmetry Reduction for the Local Mu-Calculus" TACAS 2018 , 2018
Kedar S. Namjoshi, Zvonimir Pavlinovic "The Impact of Program Transformations on Static Program Analysis" SAS 2018 , 2018
(Showing: 1 - 10 of 17)

PROJECT OUTCOMES REPORT

Disclaimer

This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.

During this project we enhanced the theory of  verifiable certificates (also called witnesses) with which to establish the correctness of compiler optimizations. 

We began with the approach of "semantic equivalence," that is, of showing that the code before and after compilation has equivalent behavior. The witnesses generated by a self-certifying compiler considerably simplify such proofs, by letting them to be carried out in small digestable chunks. We enhanced this method to use "syntactic" reasoning that is akin to rewriting or syntactic equality under renaming of variables. As far as we know, this is the first comprehensive approach to translation validation that combines the two, almost opposing, techniques of syntactic equality and semantic equivalence. 

We implemented this combined approach to certify LLVM's interprocedural optimizations, obtaining significant speedups in the certification process. Furthermore, we have also implemented a self-certification infrastructure for WebAssembly, a new intermediate language that is supported by all major web browsers.  

Preservation of semantics does not imply preservation of security. In fact, some known optimizations are semantic preserveing while making the code more vulnerable, as in exposing a secret for longer than necessary. We extended self-certification to security, showing how custom security certificates could be generated for a large class of useful security properties, guaranteeing their preservation across a chain of optimizations. 

 


Last Modified: 09/04/2020
Modified by: Kedar S Namjoshi

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page