Skip to main content

Model-Driven Construction of Certified Binaries

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4735))

Abstract

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. Necula, G., Lee, P.: Safe Kernel Extensions without Runtime Checking. In: OSDI 1996 (1996)

    Google Scholar 

  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. Clarke, E., Emerson, A.: Design and Synthesis of Synchronization Skeletons for Branching Time Temporal Logic. In: Proc. of WLP (1982)

    Google Scholar 

  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. 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. 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. 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. 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. 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. Ivers, J., Sharygina, N.: Overview of ComFoRT: A Model Checking Reasoning Framework. Technical Report CMU/SEI-2004-TN-018 (2004)

    Google Scholar 

  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. Appel, A.W.: Foundational proof-carrying code. In: Proc. of LICS (2001)

    Google Scholar 

  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. Magee, J., Kramer, J.: Concurrency: State Models and Java Programs (2006)

    Google Scholar 

  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. Henzinger, T., Jhala, R., Majumdar, R., Sutre, G.: Lazy Abstraction. In: POPL 2002 (2002)

    Google Scholar 

  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. Necula, G.C.: Proof-Carrying Code. In: Proc. of POPL (1997)

    Google Scholar 

  20. Necula, G.C., Lee, P.: Safe, Untrusted Agents Using Proof-Carrying Code. In: Proceedings of Mobile Agents and Security (1998)

    Google Scholar 

  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. 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. Necula, G., Lee, P.: Efficient Representation and Validation of Proofs. In: LICS 1998 (1998)

    Google Scholar 

  24. Necula, G., Rahul, S.: Oracle-Based Checking of Untrusted Software. In: POPL 2001 (2001)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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. 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. Pnueli, A., Siegel, M., Singerman, E.: translation validation. In: Steffen, B. (ed.) ETAPS 1998 and TACAS 1998. LNCS, vol. 1384, Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Gregor Engels Bill Opdyke Douglas C. Schmidt Frank Weil

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Chaki, S., Ivers, J., Lee, P., Wallnau, K., Zeilberger, N. (2007). Model-Driven Construction of Certified Binaries. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds) Model Driven Engineering Languages and Systems. MODELS 2007. Lecture Notes in Computer Science, vol 4735. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75209-7_45

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-75209-7_45

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-75208-0

  • Online ISBN: 978-3-540-75209-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics