Secure Implementation of Asynchronous Method Calls and Futures

  • Peeter Laud
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7711)

Abstract

Programming languages suitable for distributed computation contain constructs that should map well to the structure of the underlying system executing the programs, while being easily usable by the programmers and amenable to computer-aided verification. For object-oriented languages, asynchronous method calls returning futures that will be filled only after the called method has finished its execution have been proposed as a reasonably simple and analyzable programming construct. In this paper, we show how to map from a language with asynchronous method calls and futures to a language with explicit communication primitives and cryptographic operations. Our target language is reasonably similar to common process calculi, and translating it further to e.g. the applied pi calculus requires only known techniques. The translation is valid even for programs executing in open environments, where method calls and futures can be transmitted between the program and the environment.

Keywords

OO languages process calculi full abstraction 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M.: Protection in Programming-Language Translations. In: Larsen, K.G., Skyum, S., Winskel, G. (eds.) ICALP 1998. LNCS, vol. 1443, pp. 868–883. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  2. 2.
    Abadi, M., Fournet, C.: Mobile values, new names, and secure communication. In: POPL, pp. 104–115 (2001)Google Scholar
  3. 3.
    Abadi, M., Fournet, C., Gonthier, G.: Secure Implementation of Channel Abstractions. In: LICS, pp. 105–116. IEEE Computer Society (1998)Google Scholar
  4. 4.
    Abadi, M., Fournet, C., Gonthier, G.: Secure Communications Processing for Distributed Languages. In: IEEE Symposium on Security and Privacy, pp. 74–88 (1999)Google Scholar
  5. 5.
    Abadi, M., Fournet, C., Gonthier, G.: Authentication Primitives and Their Compilation. In: POPL, pp. 302–315 (2000)Google Scholar
  6. 6.
    Ábrahám, E., Grabe, I., Grüner, A., Steffen, M.: Behavioral interface description of an object-oriented language with futures and promises. J. Log. Algebr. Program. 78(7), 491–518 (2009)MathSciNetMATHCrossRefGoogle Scholar
  7. 7.
    Adão, P., Fournet, C.: Cryptographically Sound Implementations for Communicating Processes. In: Bugliesi, M., Preneel, B., Sassone, V., Wegener, I. (eds.) ICALP 2006. Part II. LNCS, vol. 4052, pp. 83–94. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  8. 8.
    Backes, M., Cortesi, A., Focardi, R., Maffei, M.: A calculus of challenges and responses. In: Ning, P., Atluri, V., Gligor, V.D., Mantel, H. (eds.) FMSE, pp. 51–60. ACM (2007)Google Scholar
  9. 9.
    Bugliesi, M., Focardi, R.: Language based secure communication. In: CSF, pp. 3–16. IEEE Computer Society (2008)Google Scholar
  10. 10.
    Bugliesi, M., Giunti, M.: Secure implementations of typed channel abstractions. In: Hofmann, M., Felleisen, M. (eds.) POPL, pp. 251–262. ACM (2007)Google Scholar
  11. 11.
    Clarke, D., Diakov, N., Hähnle, R., Johnsen, E.B., Puebla, G., Weitzel, B., Wong, P.Y.H.: Hats - a formal software product line engineering methodology. In: Botterweck, G., Jarzabek, S., Kishi, T., Lee, J., Livengood, S. (eds.) SPLC Workshops, pp. 121–128. Lancaster University (2010)Google Scholar
  12. 12.
    Clarke, D., Diakov, N., Hähnle, R., Johnsen, E.B., Schaefer, I., Schäfer, J., Schlatte, R., Wong, P.Y.H.: Modeling Spatial and Temporal Variability with the HATS Abstract Behavioral Modeling Language. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 417–457. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  13. 13.
    Comon-Lundh, H., Cortier, V.: Computational soundness of observational equivalence. In: Ning, P., Syverson, P.F., Jha, S. (eds.) ACM Conference on Computer and Communications Security, pp. 109–118. ACM (2008)Google Scholar
  14. 14.
    Dam, M., Palmskog, K.: A Foundation for Network-Adaptive Execution of Distributed Objects (work in progress, 2012)Google Scholar
  15. 15.
    Dolev, D., Yao, A.C.-C.: On the Security of Public Key Protocols. IEEE Transactions on Information Theory 29(2), 198–207 (1983)MathSciNetMATHCrossRefGoogle Scholar
  16. 16.
    Fournet, C., Gonthier, G.: The reflexive chemical abstract machine and the join-calculus. In: POPL, pp. 372–385 (1996)Google Scholar
  17. 17.
    Fournet, C., Rezk, T.: Cryptographically Sound Implementations for Typed Information-Flow Security. In: Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2008. ACM Press, San Francisco (2008)Google Scholar
  18. 18.
    Goldwasser, S., Micali, S.: Probabilistic Encryption. Journal of Computer and System Sciences 28(2), 270–299 (1984)MathSciNetMATHCrossRefGoogle Scholar
  19. 19.
    Hähnle, R.: HATS: Highly Adaptable and Trustworthy Software Using Formal Methods. In: Margaria, T., Steffen, B. (eds.) ISoLA 2010, Part II. LNCS, vol. 6416, pp. 3–8. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  20. 20.
    Hähnle, R., Johnsen, E.B., Østvold, B.M., Schäfer, J., Steffen, M., Torjusen, A.B.: Report on the Core ABS Language and Methodology: Part A. Highly Adaptable and Trustworthy Software using Formal Models (HATS), Deliverable D1.1A (April 2010)Google Scholar
  21. 21.
    Helvensteijn, M., Muschevici, R., Wong, P.Y.H.: Delta modeling in practice: a Fredhopper case study. In: Eisenecker, U.W., Apel, S., Gnesi, S. (eds.) VaMoS, pp. 139–148. ACM (2012)Google Scholar
  22. 22.
    Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: A Core Language for Abstract Behavioral Specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011)Google Scholar
  23. 23.
    Johnsen, E.B., Owe, O., Yu, I.C.: Creol: A type-safe object-oriented model for distributed concurrent systems. Theoretical Computer Science 365(1-2), 23–66 (2006)MathSciNetMATHCrossRefGoogle Scholar
  24. 24.
    Jones, C.B.: A pi-Calculus Semantics for an Object-Based Design Notation. In: Best, E. (ed.) CONCUR 1993. LNCS, vol. 715, pp. 158–172. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  25. 25.
    Milner, R.: Communicating and mobile systems: the π-calculus. Cambridge University Press (1999)Google Scholar
  26. 26.
    Mödersheim, S., Viganò, L.: Secure Pseudonymous Channels. In: Backes, M., Ning, P. (eds.) ESORICS 2009. LNCS, vol. 5789, pp. 337–354. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  27. 27.
    Philippsen, M.: A survey of concurrent object-oriented languages. Concurrency: Practice and Experience 12(10), 917–980 (2000)MATHCrossRefGoogle Scholar
  28. 28.
    Schaefer, I., Hähnle, R.: Formal methods in software product line engineering. IEEE Computer 44(2), 82–85 (2011)CrossRefGoogle Scholar
  29. 29.
    Schneider, J.-G., Lumpe, M.: Synchronizing Concurrent Objects in the π-Calculus. In: Ducournau, R., Garlatti, S. (eds.) Proceedings of Languages et Modèles à Objets, Hermes, Roscoff, pp. 61–76 (1997)Google Scholar
  30. 30.
    van Glabbeek, R.J., Weijland, W.P.: Branching Time and Abstraction in Bisimulation Semantics. Journal of the ACM 43(3), 555–600 (1996)MathSciNetMATHCrossRefGoogle Scholar
  31. 31.
    Vaughan, J.A., Zdancewic, S.: A cryptographic decentralized label model. In: IEEE Symposium on Security and Privacy, pp. 192–206. IEEE Computer Society (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Peeter Laud
    • 1
  1. 1.Cybernetica ASEstonia

Personalised recommendations