• DocumentCode
    2571707
  • Title

    An implementation of a verification condition generator for foundational proof-carrying code

  • Author

    Weng, Jiangong ; Felty, Amy

  • Author_Institution
    Sch. of Inf. Technol. & Eng., Univ. of Ottawa, Ottawa, ON, Canada
  • fYear
    2011
  • fDate
    19-21 July 2011
  • Firstpage
    238
  • Lastpage
    245
  • Abstract
    Proof-carrying code (PCC) is a technique that addresses the problem of mobile code safety. It is a mechanism in which a code producer provides both code and a proof certifying that the code will run safely on a code consumer´s machine. The code consumer or the host system will validate the proof against a safety policy before executing the source code. Foundational proof-carrying code (FPCC) aims to minimize the amount of code that must be trusted (the “trusted computing base” or TCB) with the goal of providing more flexibility and increased security. In both PCC and FPCC, the verification-condition generator (VCG) constructs the statement of the safety theorem from the source code, and is an important part of the TCB. This paper presents an implementation of a VCG based on a sound set of Hoare-style rules for machine instructions in the context of FPCC. The implementation in OCaml is described and examples illustrating the approach are given. The output of our VCG is a list of verification conditions that are directly inserted into a proof script that serves as input to the Coq proof assistant, and represents an important part of the safety proofs of our programs. We also present examples showing how these verification conditions are used to complete the proofs of safety. This work represents an important step in automating proofs for PCC.
  • Keywords
    formal verification; functional languages; security of data; Coq proof assistant; Hoare-style rule; OCaml functional language; PCC technique; code consumer machine; foundational proof-carrying code; host system; machine instruction; mobile code safety; safety policy; safety proof; safety theorem; source code; trusted computing base; verification condition generator; Automation; Generators; Libraries; Reactive power; Resource management; Safety; Semantics;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Privacy, Security and Trust (PST), 2011 Ninth Annual International Conference on
  • Conference_Location
    Montreal, QC
  • Print_ISBN
    978-1-4577-0582-3
  • Type

    conf

  • DOI
    10.1109/PST.2011.5971989
  • Filename
    5971989