Model-Driven Construction of Certified Binaries

  • Sagar Chaki
  • James Ivers
  • Peter Lee
  • Kurt Wallnau
  • Noam Zeilberger
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4735)


Proof-Carrying Code (PCC) and Certifying Model Checking (CMC) are established paradigms for certifying the run-time behavior of programs. While PCC allows us to certify low-level binary code against relatively simple (e.g., memory-safety) policies, CMC enables the certification of a richer class of temporal logic policies, but is typically restricted to high-level (e.g., source) descriptions. In this paper, we present an automated approach to generate certified software component binaries from UML Statechart specifications. The proof certificates are constructed using information that is generated via CMC at the specification level and transformed, along with the component, to the binary level. Our technique combines the strengths of PCC and CMC, and demonstrates that formal certification technology is compatible with, and can indeed exploit, model-driven approaches to software development. We describe an implementation of our approach that targets the Pin component technology, and present experimental results on a collection of benchmarks.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Chaki, S., Ivers, J., Lee, P., Wallnau, K., Zeilberger, N.: Certified binaries for software components. Technical Report CMU/SEI-2007-TR-001 (2007)Google Scholar
  2. 2.
    Necula, G., Lee, P.: Safe Kernel Extensions without Runtime Checking. In: OSDI 1996 (1996)Google Scholar
  3. 3.
    Namjoshi, K.S.: Certifying Model Checkers. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, Springer, Heidelberg (2001)Google Scholar
  4. 4.
    Clarke, E., Emerson, A.: Design and Synthesis of Synchronization Skeletons for Branching Time Temporal Logic. In: Proc. of WLP (1982)Google Scholar
  5. 5.
    Henzinger, T.A., Jhala, R., Majumdar, R., Necula, G.C., Sutre, G., Weimer, W.: Temporal-Safety Proofs for Systems Code. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, Springer, Heidelberg (2002)Google Scholar
  6. 6.
    Chaki, S.: SAT-Based Software Certification. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006 and ETAPS 2006. LNCS, vol. 3920, Springer, Heidelberg (2006)Google Scholar
  7. 7.
    Chaki, S., Clarke, E.M., Ouaknine, J., Sharygina, N., Sinha, N.: State/Event-Based Software Model Checking. In: Boiten, E.A., Derrick, J., Smith, G.P. (eds.) IFM 2004. LNCS, vol. 2999, Springer, Heidelberg (2004)Google Scholar
  8. 8.
    Wallnau, K., Ivers, J.: Snapshot of CCL: A language for predictable assembly. Technical note CMU/SEI-2003-TN-025, Software Engineering Institute (2003)Google Scholar
  9. 9.
    Hissam, S., Ivers, J., Plakosh, D., Wallnau, K.C.: Pin Component Technology (V1.0) and Its C Interface. Technical Report CMU/SEI-2005-TN-001 (2005)Google Scholar
  10. 10.
    Ivers, J., Sinha, N., Wallnau, K.: A Basis for Composition Language CL. Technical Report CMU/SEI-2002-TN-026, Software Engineering Institute (2002)Google Scholar
  11. 11.
    Ivers, J., Sharygina, N.: Overview of ComFoRT: A Model Checking Reasoning Framework. Technical Report CMU/SEI-2004-TN-018 (2004)Google Scholar
  12. 12.
    Zhang, L., Malik, S.: Validating SAT Solvers Using an Independent Resolution-Based Checker: Practical Implementations and Other Applications. In: DATE 2003 (2003)Google Scholar
  13. 13.
    Appel, A.W.: Foundational proof-carrying code. In: Proc. of LICS (2001)Google Scholar
  14. 14.
    Schneck, R.R., Necula, G.: A gradual approach to a more trustworthy, yet scalable, proof-carrying code. In: Voronkov, A. (ed.) Automated Deduction - CADE-18. LNCS (LNAI), vol. 2392, Springer, Heidelberg (2002)Google Scholar
  15. 15.
    Magee, J., Kramer, J.: Concurrency: State Models and Java Programs (2006)Google Scholar
  16. 16.
    Ball, T., Rajamani, S.K.: Automatically Validating Temporal Safety Properties of Interfaces. In: Bošnački, D., Leue, S. (eds.) Model Checking Software. LNCS, vol. 2318, Springer, Heidelberg (2002)Google Scholar
  17. 17.
    Henzinger, T., Jhala, R., Majumdar, R., Sutre, G.: Lazy Abstraction. In: POPL 2002 (2002)Google Scholar
  18. 18.
    Chaki, S., Clarke, E., Groce, A., Jha, S., Veith, H.: Modular verification of software components in C. IEEE Transactions on Software Engineering (TSE) (6) (2004)Google Scholar
  19. 19.
    Necula, G.C.: Proof-Carrying Code. In: Proc. of POPL (1997)Google Scholar
  20. 20.
    Necula, G.C., Lee, P.: Safe, Untrusted Agents Using Proof-Carrying Code. In: Proceedings of Mobile Agents and Security (1998)Google Scholar
  21. 21.
    Hamid, N.A., Shao, Z., Trifonov, V., Monnier, S., Ni, Z.: A Syntactic Approach to Foundational Proof-Carrying Code. In: Proc. of LICS (2002)Google Scholar
  22. 22.
    Bernard, A., Lee, P.: Temporal Logic for Proof-Carrying Code. In: Voronkov, A. (ed.) Automated Deduction - CADE-18. LNCS (LNAI), vol. 2392, Springer, Heidelberg (2002)Google Scholar
  23. 23.
    Necula, G., Lee, P.: Efficient Representation and Validation of Proofs. In: LICS 1998 (1998)Google Scholar
  24. 24.
    Necula, G., Rahul, S.: Oracle-Based Checking of Untrusted Software. In: POPL 2001 (2001)Google Scholar
  25. 25.
    Whalen, M.W., Schumann, J., Fischer, B.: Synthesizing certified code. In: Eriksson, L.-H., Lindsay, P.A. (eds.) FME 2002. LNCS, vol. 2391, Springer, Heidelberg (2002)CrossRefGoogle Scholar
  26. 26.
    Kupferman, O., Vardi, M.: From Complementation to Certification. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, Springer, Heidelberg (2004)Google Scholar
  27. 27.
    Namjoshi, K.S.: Lifting Temporal Proofs through Abstractions. In: Zuck, L.D., Attie, P.C., Cortesi, A., Mukhopadhyay, S. (eds.) VMCAI 2003. LNCS, vol. 2575, Springer, Heidelberg (2002)Google Scholar
  28. 28.
    Pnueli, A., Siegel, M., Singerman, E.: translation validation. In: Steffen, B. (ed.) ETAPS 1998 and TACAS 1998. LNCS, vol. 1384, Springer, Heidelberg (1998)CrossRefGoogle Scholar
  29. 29.
    Chaki, S., Wallnau, K.: Results of SEI Independent Research and Development Projects and Report on Emerging Technologies and Technology Trends. Technical report CMU/SEI-2005-TR-020, Software Engineering Institute, ch. 6 (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Sagar Chaki
    • 1
  • James Ivers
    • 1
  • Peter Lee
    • 2
  • Kurt Wallnau
    • 1
  • Noam Zeilberger
    • 2
  1. 1.Software Engineering Institute 
  2. 2.Computer Science Department, Carnegie Mellon University 

Personalised recommendations