Skip to main content

Formalizing Java Dynamic Loading in HOL

  • Conference paper
Theorem Proving in Higher Order Logics (TPHOLs 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3223))

Included in the following conference series:

Abstract

Dynamic class loading is an important feature of the Java virtual machine. It is the underlying mechanism that supports installing software components at runtime. However, it is also complex. Improperly written class loaders could undermine the type safety of the Java virtual machine. Given the importance of security, the current description provided by the Java virtual machine is deficient. It is ambiguous, imprecise and hard to reason about. In this paper, we suggest a model for the Java virtual machine, which includes the main features of dynamic class loading and linking. We formalize the model and prove its soundness in the HOL system. The soundness theorem demonstrates that our model can preserve types indeed. Based on the model, we can analyze the behaviors of loading in the virtual machine.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Barthe, G., Courtieu, P.: A formal correspondence between offensive and defensive javacard virtual machines. In: Carreño, V.A., Muñoz, C.A., Tahar, S. (eds.) TPHOLs 2002. LNCS, vol. 2410, pp. 31–46. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  2. Barthe, G., Dufay, G., Jakubiec, L., Sousa, S.M., Serpette, B.P.: A formal executable semantics of the javacard platform. In: Sands, D. (ed.) ESOP 2001. LNCS, vol. 2028, pp. 302–319. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  3. Barthe, G., Dufay, G., Jakubiec, L., Sousa, S.M., Serpette, B.P.: A formal correspondence between offensive and defensive javacard virtual machines. In A. Cortesi, editor, Proc. VMCAI’02. In: Cortesi, A. (ed.) VMCAI 2002. LNCS, vol. 2294, pp. 32–45. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  4. Dean, D.: The security of static typing with dynamic linking. In: Fourth ACM Conference on Computer and Communication Security (1997)

    Google Scholar 

  5. Drossopoulou, S.: Towards an abstract model of java dynamic linking and verification. In: Harper, R. (ed.) TIC 2000. LNCS, vol. 2071, pp. 53–84. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  6. Fong, P.W.L., Cameron, R.D.: Proof linking: Modular verification of mobile programs in the presence of lazy, dynamic linking. ACM Transactions on Software Engineering and Methodology 9(4), 379–409 (2000)

    Article  Google Scholar 

  7. Jensen, T., Le Metayer, D., Thorn, T.: Security and dynamic loading in java: A formalisation. In: Proceedings of the 1998 IEEE International Conference on Computer Languages, Chicago, Illinois, May 1998, vol. 2618, pp. 4–15 (1998)

    Google Scholar 

  8. Klein, G.: Verified Java bytecode verification. PhD thesis, Technische Universitat Munchen (2003)

    Google Scholar 

  9. Klein, G., Strecker, M.: Verified bytecode verification and typecertifying compilation. Journal of Logic Programming (2002)

    Google Scholar 

  10. Klein, G., Wildmoser, M.: Verified bytecode subroutines. Journal of Automated Reasoning, Special Issue on Bytecode Verification (2003)

    Google Scholar 

  11. Liu, H., Moore, J.S.: Executable jvm model for analytical reasoning: a study. In: Proceedings of the 2003 workshop on Interpreters, Virtual Machines and Emulators, San Diego, California, pp. 15–23 (2003)

    Google Scholar 

  12. Nipkow, T.: Verified bytecode verifiers. In: Honsell, F., Miculan, M. (eds.) FOSSACS 2001. LNCS, vol. 2030, pp. 347–363. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  13. Nipkow, T., von Oheimb, D., Pusch, C.: μjava: Embedding a programming language in a theorem prover. In: Bauer, F.L., Steinbruggen, R. (eds.) Foundations of Secure Computation, pp. 117–144. IOS Press, Amsterdam (2000)

    Google Scholar 

  14. Pusch, C.: Proving the soundness of a java bytecode verifier specification in isabelle/hol. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, pp. 89–103. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  15. Qian, Z.: A formal specification of java-TM virtual machine instructions for objects, methods and subroutines. In: Alves-Foss, J. (ed.) Formal Syntax and Semantics of Java. LNCS, vol. 1523, pp. 271–311. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  16. Qian, Z., Goldberg, A., Coglio, A.: A formal specification of javatm class loading. In: OOPSLA 2000 (November 2000)

    Google Scholar 

  17. Saraswat, V.: Java is not type-safe. Technical report, AT&T Rresearch (1997)

    Google Scholar 

  18. Lindholm, T., Yellin, F.: The JavaTM Virtual Machine Specification, 2nd edn. Addison-Wesley, Reading (1999)

    Google Scholar 

  19. Tozawa, A., Hagiya, M.: New fomalizaion of the JVM (1999), http://nicosia.is.s.u.-tokyo.ac.jp/members/milespapers/cl-99.ps

  20. von Oheimb, D.: Analyzing Java in Isabelle/HOL: Formalization, Type Safety and Hoare Logic. PhD thesis, Technische Universitat Munchen (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Zuo, Tj., Han, Jg., Chen, P. (2004). Formalizing Java Dynamic Loading in HOL. In: Slind, K., Bunker, A., Gopalakrishnan, G. (eds) Theorem Proving in Higher Order Logics. TPHOLs 2004. Lecture Notes in Computer Science, vol 3223. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30142-4_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-30142-4_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-23017-5

  • Online ISBN: 978-3-540-30142-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics