skip to main content
research-article

Tool Support for Confidentiality-by-Construction

Published:06 December 2019Publication History
Skip Abstract Section

Abstract

In many software applications, it is necessary to preserve confidentiality of information. Therefore, security mechanisms are needed to enforce that secret information does not leak to unauthorized users. However, most language-based techniques that enable information flow control work post-hoc, deciding whether a specific program violates a confidentiality policy. In contrast, we proposed in previous work a refinement-based approach to derive programs that preserve confidentiality-by-construction. This approach follows the principles of Dijkstra's correctness-by-construction. In this extended abstract, we present the implementation and tool support of that refinement-based approach allowing to specify the information flow policies first and to create programs in a simple while language which comply to these policies by construction. In particular, we present the idea of confidentiality-by-construction using an example and discuss the IDE C-CorC supporting this development approach.

References

  1. Jean-Raymond Abrial. 2010. Modeling in Event-B - System and Software Engineering. Cambridge University Press.Google ScholarGoogle Scholar
  2. Jean-Raymond Abrial and Jean-Raymond Abrial. 2005. The B-Book: Assigning Programs to Meanings. Cambridge University Press.Google ScholarGoogle Scholar
  3. Jean-Raymond Abrial, Michael Butler, Stefan Hallerstede, Thai Son Hoang, Farhad Mehta, and Laurent Voisin. 2010. Rodin: An Open Toolset for Modelling and Reasoning in Event-B. International journal on software tools for technology transfer 12, 6 (2010), 447--466.Google ScholarGoogle Scholar
  4. Wolfgang Ahrendt, Bernhard Beckert, Richard Bubel, Reiner Hähnle, Peter H. Schmitt, and Mattias Ulbrich (Eds.). 2016. Deductive Software Verification - The KeY Book - From Theory to Practice. Lecture Notes in Computer Science, Vol. 10001. Springer.Google ScholarGoogle Scholar
  5. Torben Amtoft, Sruthi Bandhakavi, and Anindya Banerjee. 2006. A Logic for Information Flow in Object-Oriented Programs. In POPL. 91--102.Google ScholarGoogle Scholar
  6. Gregory R. Andrews and Richard P. Reitman. 1980. An Axiomatic Approach to Information Flow in Programs. ACM Trans. Program. Lang. Syst. 2, 1 (1980), 56--76.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. John Gilbert Presslie Barnes. 2003. High Integrity Software: The Spark Approach to Safety and Security. Pearson Education.Google ScholarGoogle Scholar
  8. Yves Bertot and Pierre Castéran. 2013. Interactive Theorem Proving and Program Development: Coq'Art: The Calculus of Inductive Constructions. Springer Science & Business Media.Google ScholarGoogle Scholar
  9. Edsger W. Dijkstra. 1976. A Discipline of Programming. Prentice Hall.Google ScholarGoogle Scholar
  10. David Gries. 1987. The Science of Programming. Springer.Google ScholarGoogle Scholar
  11. A. Hall and R. Chapman. 2002. Correctness by Construction: Developing a Commercial Secure System. Software, IEEE 19, 1 (Jan 2002), 18--25. https: //doi.org/10.1109/52.976937Google ScholarGoogle Scholar
  12. Daniel Hedin, Arnar Birgisson, Luciano Bello, and Andrei Sabelfeld. 2014. JSFlow: Tracking Information Flow in JavaScript and its APIs. In Proceedings of the 29th Annual ACM Symposium on Applied Computing. ACM, 1663--1671.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Rogardt Heldal and Fredrik Hultin. 2003. Bridging Model-Based and Language- Based Security. In European Symposium on Research in Computer Security. Springer, 235--252.Google ScholarGoogle Scholar
  14. Deepak Kapur, Xumin Nie, and David R. Musser. 1994. An Overview of the Tecton Proof System. Theoretical Computer Science 133, 2 (1994), 307--339.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Derrick G. Kourie and Bruce W. Watson. 2012. The Correctness-By-Construction Approach to Programming. Springer. http://books.google.co.za/books?id= 5Ig6ELUQFM4CGoogle ScholarGoogle Scholar
  16. Carroll Morgan. 1994. Programming from Specifications (2nd ed.). Prentice Hall.Google ScholarGoogle Scholar
  17. Andrew C Myers. 1999. JFlow: Practical Mostly-Static Information Flow Control. In Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. ACM, 228--241.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Flemming Nielson, Hanne Riis Nielson, and Chris Hankin. 1999. Principles of Program Analysis. Springer.Google ScholarGoogle Scholar
  19. Tobias Nipkow, Lawrence C Paulson, and Markus Wenzel. 2002. Isabelle/HOL: A Proof Assistant for Higher-Order Logic. Vol. 2283. Springer Science & Business Media.Google ScholarGoogle Scholar
  20. Feng Qin, ChengWang, Zhenmin Li, Ho-seop Kim, Yuanyuan Zhou, and Youfeng Wu. 2006. Lift: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks. In Microarchitecture, 2006. MICRO-39. 39th Annual IEEE/ACM International Symposium on. IEEE, 135--148.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Andrei Sabelfeld and Andrew C. Myers. 2003. Language-Based Information-Flow Security. IEEE Journal on Selected Areas in Communications 21, 1 (2003), 5--19.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Ina Schaefer, Tobias Runge, Alexander Knüppel, Loek Cleophas, Derrick Kourie, and Bruce W. Watson. 2018. Towards Confidentiality-by-Construction. ISoLA (2018). To appear.Google ScholarGoogle Scholar
  23. Neil Vachharajani, Matthew J Bridges, Jonathan Chang, Ram Rangan, Guilherme Ottoni, Jason A Blome, George A Reis, Manish Vachharajani, and David I August. 2004. RIFLE: An Architectural Framework for User-Centric Information-Flow Security. In Microarchitecture, 2004. MICRO-37 2004. 37th International Symposium on. IEEE, 243--254.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Dennis M. Volpano, Cynthia E. Irvine, and Geoffrey Smith. 1996. A Sound Type System for Secure Flow Analysis. Journal of Computer Security 4, 2/3 (1996), 167--188.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Bruce W. Watson, Derrick G. Kourie, Ina Schaefer, and Loek Cleophas. 2016. Correctness-by-Construction and Post-hoc Verification: A Marriage of Convenience?. In ISoLA. 730--748.Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

  • Published in

    cover image ACM SIGAda Ada Letters
    ACM SIGAda Ada Letters  Volume 38, Issue 2
    December 2018
    106 pages
    ISSN:1094-3641
    DOI:10.1145/3375408
    • Editor:
    • Alok Srivastava
    Issue’s Table of Contents

    Copyright © 2019 Copyright is held by the owner/author(s)

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 6 December 2019

    Check for updates

    Qualifiers

    • research-article
  • Article Metrics

    • Downloads (Last 12 months)2
    • Downloads (Last 6 weeks)0

    Other Metrics

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader
About Cookies On This Site

We use cookies to ensure that we give you the best experience on our website.

Learn more

Got it!