ACM Home Page
Please provide us with feedback. Feedback
Formalizing the safety of Java, the Java virtual machine, and Java card
Full text PdfPdf (443 KB)
Source ACM Computing Surveys (CSUR) archive
Volume 33 ,  Issue 4  (December 2001) table of contents
Pages: 517 - 558  
Year of Publication: 2001
ISSN:0360-0300
Authors
Pieter H. Hartel  University of Twente, The Netherlands
Luc Moreau  University of Southampton, UK
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 64,   Downloads (12 Months): 465,   Citation Count: 13
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/503112.503115
What is a DOI?

ABSTRACT

We review the existing literature on Java safety, emphasizing formal approaches, and the impact of Java safety on small footprint devices such as smartcards. The conclusion is that although a lot of good work has been done, a more concerted effort is needed to build a coherent set of machine-readable formal models of the whole of Java and its implementation. This is a formidable task but we believe it is essential to build trust in Java safety, and thence to achieve ITSEC level 6 or Common Criteria level 7 certification for Java programs.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
 
3
 
4
5
6
7
 
8
 
9
 
10
ANDERSON,T.AND WITTY, R. W. 1978. Safe programming. BIT 18, 1-8.
 
11
 
12
13
 
14
ATTALI, I., CAROMEL,D.,AND RUSSO, M. 1998. A formal executable semantics for Java. In OOPSLA'98 Workshop on Formal Underpinnings of Java (FUJ) (Vancouver, Canada, Nov.), pp. Paper 11. Dept. of Computing, Imperial College London.
 
15
 
16
BALFANZ,D.AND FELTEN, E. W. 1997. A Java filter. Tech. Rep. 567-97 (Sept.), Dept. of Computer Science, Princeton Univ.
 
17
 
18
 
19
BERTELSEN, P. 1997. Semantics of Java byte code. Tech. Rep. (Mar.), Technical Univ. of Denmark.
 
20
BERTELSEN,P.AND ANDERSON, S. 1996. The semantics of a core language derived from Java. Tech. Rep. (Sept.), Technical Univ. of Denmark.
 
21
BIEBER, P., CAZIN, J., WIELS, V., ZANON, G., GIRARD,P., AND LANET, J.-L. 1999. Electronic purse applet certification. In S. Schneider and P. Ryan, Eds., Workshop on Secure Architectures and Information Flow (Royal Holloway, London, Dec.). Electronics Notes in Theoretical Computer Science, 32.
 
22
23
 
24
 
25
BORGER,E.AND SCHULTE, W. 1999a. Initialization problems for Java. Software Concepts and Tools 20, 4, 175-179.
 
26
 
27
 
28
29
 
30
BRACHA, G. 1999. A Critique of Security and Dynamic Loading in Java: A Formalization. Sun Java Software.
 
31
BRACHA, G., ODERSKY, M., STOUTAMIRE,D.,AND WADLER, P. 1998. GJ: Extending the Java programming language with type parameters. Tech. Rep. (Mar.), Bell Labs, Lucent Technologies.
32
 
33
CASSET,L.AND LANET, J.-L. 1999. A formal specification of the Java bytecode semantics using the B method. Technischer Bericht 251 (June), Fernuniversit~t Hagen, Lisbon, Portugal.
 
34
CENCIARELLI, P. 1999. Towards a modular denotational semantics of Java. Technischer Bericht 251 (June), Fernuniversit~t Hagen, Lisbon, Portugal.
 
35
 
36
CHEN,X.AND ALLAN, V. 1998. MultiJav: A distributed shared memory system based on multiple Java virtual machines. In Conference on Parallel and Distributed Processing Techniques and Applications (PDTA'98) (Las Vegas, Nevada, June).
 
37
38
 
39
COGLIO,A.AND GOLDBERG, A. 2000. Type Safety in the JVM: Some Problems in JDK 1.2.2 and Proposed Solutions. Kestrel Institute, Palo Alto, Calif.
 
40
COGLIO, A., GOLDBERG, A., AND QIAN, Z. 1998. Toward a provably-correct implementation of the JVM bytecode verifier. In OOPSLA '98 Workshop on Formal Underpinnings of Java (FUJ) (Vancouver, Canada, Nov.), pp. Paper 6. Dept. of Computing, Imperial College London.
 
41
COHEN, R. M. 1997. The defensive Java virtual machine specification version 0.5. Tech. rep. (May), Computational Logic Inc, Austin, Texas.
42
43
44
 
45
COSCIA,E.AND REGGIO, G. 1998a. An operational semantics for Java. Tech. Rep. (Nov.), DISI, Univ. of Genova, Italy.
 
46
COSCIA,E.AND REGGIO, G. 1998b. A proposal for a semantics of a subset of multi-threaded 'good' Java programs. In OOPSLA '98 Work-shop on Formal Underpinnings of Java (FUJ) (Vancouver, Canada, Nov.), pp. Paper 10. Dept. of Computing, Imperial College London.
47
48
 
49
 
50
DEMARTINI, C., IOSIF, R., AND SISTO, R. 1998. Modeling and validation of Java multithreading applications using SPIN. In 4th Spin Workshop (Paris, France, Nov.).
 
51
 
52
DETLEFS, D. L., LEINO,K.R.M.,NELSON,G.,AND SAXE, J. B. 1998. Extended static checking. SRC Research Rep. 159 (Dec), Compaq Systems Research Center, Palo Alto, Calif.
 
53
 
54
 
55
DROSSOPOULOU,S.AND EISENBACH, S. 1997. Java is type safe-Probably. In M. Aksit and S. Matsuoka, Eds., 11th European Conference on Object Oriented Programming, ECOOP, LNCS 1241 (Jyvaskyla, Finland, June), pp. 389-418. Springer-Verlag, Berlin.
 
56
 
57
DROSSOPOULOU,S.AND VALKEVYCH, T. 2000. Java Exceptions Throw No Surprises. Department of Computing, Imperial College, London.
 
58
 
59
60
 
61
62
 
63
 
64
65
 
66
FREUND, S. N. 1998. The costs and benefits of Java bytecode subroutines. In OOPSLA '98 Work-shop on Formal Underpinnings of Java (FUJ) (Vancouver, Canada, Nov.), pp. Paper 2. Dept. of Computing, Imperial College London.
67
68
69
 
70
FRITZINGER,J.S.AND MUELLER, M. 1996. Java Security. Sun Microsystems Inc, Mountain View, Calif.
 
71
GAGNON,E.AND HENDREN, L. 1999. Intraprocedural inference of static types. Tech. Rep. 1999-1 (Mar.), Sable Group, McGill University, Montreal, Canada.
 
72
73
 
74
75
 
76
 
77
 
78
 
79
 
80
 
81
 
82
 
83
 
84
HAVELUND,K.AND PRESSBURGER, T. 2000. Model checking Java programs using pathfinder. Software Tools for Technology Transfer 2, 4, 366-381.
 
85
 
86
HILDERINK, G., BROEKING, J., VERVOORT,W.,AND BAKKERS, A. 1997. Communicating Java threads. In 20th World Occam and Transputer User Group Technical Meeting (Enschede, The Netherlands, Apr.), pp. 48-76. IOS Press, Amsterdam.
 
87
 
88
HUISMAN, M. 2001. Reasoning about Java progams in higher order logic with PVS and Isabelle. PhD thesis, Univ. of Nijmegen, The Netherlands.
 
89
HUISMAN, M., JACOBS,B.,AND VAN DEN BERG,J. 2001. A case study in class library verification: Java's vector class. Software Tools for Technology Transfer, to appear.
 
90
HUMMEL, J., AZAVEDO, A., KOLSON,D.,AND NICOLAU,A. 1997. Annotating the Java bytecodes in support of optimization. Concurrency: Practice and Experience 9, 11 (Nov.), 1003-1016.
 
91
92
 
93
ISO/IEC. 1995. 7816-4:1995 Information Technology- Identification Cards-Integrated Circuit(s) Cards with Contacts Part4: Inter-Industry Commands for Interchange. Int. Standards Organization.
 
94
ITSEC. 1993. Evaluation Criteria for IT Security Part 3: Assurance of IT Systems (version 1.2 ed.). INFOSEC Central Office, Brussels, Belgium.
 
95
 
96
 
97
98
 
99
 
100
JENSEN, T., METAYER,D.L.,AND THORN, T. 1999. Verification of control flow based security properties. In Symp. on Security and Privacy (Oakland, California, May), pp. 89-103. IEEE Comput. Soc., Los Alamitos, Calif.
 
101
JONES, M. 1998. The functions of Java bytecode. In OOPSLA '98 Workshop on Formal Underpinnings of Java (FUJ) (Vancouver, Canada, Nov.), pp. Paper 3. Dept. of Computing, Imperial College London.
 
102
 
103
KAUFMANN,M.AND MOORE, J. S. 1996. ACL2: An industrial strength version of nqthm. In 11th Annual Conf. on Computer Assurance (COMPASS) (Gaithersburg, Md., June), pp.23-34.IEEE Computer Society Press, Los Alamitos, California.
 
104
KISTLER,T.AND FRANZ, M. 1996. A tree-based alternative to Java byte-codes. Tech. Rep. 96-58 (Dec.), Depart. of Information and Computer Science, Univ. of California, Irvine.
 
105
KLEIN,G.AND NIPKOW, T. 2000. Verified lightweight bytecode verification. In S. Drossopoulkou, S. Eisenbach, B. Jacobs, G. T. Leavens, P. Muller, and A. Poetzsch-Heffter, Eds., ECOOP'2000 Workshop on Formal Techniques for Java Programs (Sophia Antipolis, France, June), pp. 35- 42. Fernuniversitat Hagen.
106
 
107
 
108
 
109
 
110
LEAVENS,G.T.,BAKER,A.L.,AND RUBY, C. 1999. JML: A notation for detailed design. In H. Kilov, B. Rumpe, and I. Simmonds, Eds., Behavioral Specifications of Business and Systems,pp. 175-188. Kluwer Academic, Boston/ Dordrecht/ London.
 
111
LEINO,K.R.M.,SAXE,J.B.,AND STATA, R. 1999. Checking Java programs via guarded commands. SRC Research Rep. 1999-002 (May), Compaq Systems Research Center, Palo Alto, Calif.
112
 
113
114
 
115
 
116
MANSON,J.AND PUGH, W. 2001. Semantics of multithreaded Java. Tech. Rep. (Jan.), Dept. of Computer Science, University of Maryland.
 
117
 
118
 
119
MONTGOMERY,M.AND KRISHNA, K. 1999. Secure object sharing in Java card. In USENIX Workshop on Smartcard Technology (Smartcard '99) (Chicago), pp. 119-127. USENIX Assoc., Berkeley, Calif.
 
120
121
122
 
123
MORRISETT, G., FELLEISEN, M., AND HARPER, R. 1995. Abstract models of memory management. Tech. Rep. CMU-CS-95-110 (Jan.), School of Comp. Sci., Carnegie Mellon Univ.
 
124
MORRISETT, G., TARDITI, D., CHENG, P., STONE,C., HARPER, R., AND LEE, P. 1996. The TIL/ ML compiler: Performance and safety through types. In First Annual Workshop on Compiler Support for System Software (Tucson. Ariz., Feb.).
 
125
MOTRE, S. 2000. Formal model and implementaion of the Java card dynamic security policy. In Approches Formelles dans l'Assistance au Developpement de Logiciels-AFADL'2000 (Grenoble, France, Jan.).
126
 
127
NCSC. l985. Trusted Computer System Evaluation Criteria (Orange Book). U. S. Dept. of Defense, National Computer Security Center.
128
129
 
130
 
131
132
 
133
 
134
NILSEN, K. 1998. picoPERC: a small-footprint dialect of Java. Dr. Dobb's Journal 23, 3 (Mar.), 50-54.
135
 
136
NIPKOW,T.,VON OHEIMB,D.,AND PUSCH, C. 2000. Java: Embedding a programming language in a theorem prover. In F. L. Bauer and R. Steinbruggen, Eds., Foundations of Secure Computation. Proc. Int. Summer School Marktoberdorf , pp. 117-144. IOS Press, Amsterdam.
 
137
NIST. 1999. Common Criteria for Information Technology Security Evaluation. U. S. Dept. of Commerce, National Bureau of Standards and Technology.
138
139
 
140
 
141
OESTREICHER,M.AND KRISHNA, K. 1999. Object lifetimes in Java card. In USENIX Workshop on Smartcard Technology (Smartcard '99) (Chicago), pp. 129-37. USENIX Assoc, Berkeley, Calif.
 
142
 
143
PAULSON, L. C. 1994. Isabelle: A Generic Theorem Prover, LNCS 828. Springer-Verlag, New York.
 
144
 
145
 
146
POLL, E., VAN DEN BERG,J.,AND JACOBS, B. 2001. Formal specification of the JavaCard API in JML: the APDU class. Computer Networks 36, 4(July), 407-421.
 
147
 
148
PUGH, W. 2000. The Java memory model is fatally flawed. Concurrency: Practice and Experience 12, 1, 1-11.
 
149
PUSCH, C. 1998. Formalizing the Java virtual machine in Isabelle/HOL. Tech. Rep. TUM-I9816, Institut fur Informatik, Technische Univ. Munchen.
 
150
 
151
 
152
QIAN, Z. 1999b. Standard Fixpoint Iteration for Java Bytecode Verification. Kestrel Institute, Palo Alto, Calif.
153
154
 
155
REQUET, A. 2000. A B model for ensuring soundness of the Java card virtual machine. In S. Gnesi, I. Schieferdecker, and A. Rennoch, Eds., 5th International ERCIM Workshop on Formal Methods for Industrial Critical Systems (FMICS) (Berlin, Mar.), pp. 29-26. GMD.
 
156
ROSE, E. 1998. Towards secure bytecode verification on a Java card. Master's Thesis, DIKU, Univ. of Copenhagen.
 
157
ROSE,E.AND ROSE, K. H. 1998. Lightweight bytecode verification. In OOPSLA '98 Work-shop on Formal Underpinnings of Java (FUJ) (Vancouver, Canada, Nov. 1998), pp. Paper 7. Dept. of Computing, Imperial College London.
 
158
SARASWAT, V. 1997. Java is not type-safe. Tech. Rep. (Aug.), AT&T Research, Florham Park, New Jersey.
159
 
160
SHIN,I.AND MITCHELL, J. C. 1998. Java bytecode modification and applet security. Tech. Rep., Comp. Sci. Dept., Stanford Univ.
161
162
 
163
 
164
ST~RK, R. 1998. Foundations of Java-Lecture Notes for Computer Science Students. University of Fribourg, Switzerland.
 
165
166
167
 
168
 
169
STILES, G. S. 1998. Safe and verifiable design of multithreaded Java programs with CSP and FDR. In OOPSLA '98 Workshop on Formal Underpinnings of Java (FUJ) (Vancouver, Canada, Nov.), pp. Paper 12. Dept. of Computing, Imperial College London.
 
170
SUN. 1999. The K virtual machine (KVM)A white paper. Sun Microsystems Inc., Mountain View, Calif.
 
171
SUN. 2000. Connected Limited Devicde Specification Version 1.0, Java Platform 2 Micro Edition. Sun Microsystems Inc., Palo Alto, Calif.
 
172
 
173
 
174
TALPIN, J.-P. AND JOUVELOT, P. 1992. Polymorphic type, region and effect inference. J. Functional Programming 2, 3 (July), 245-271.
175
 
176
TOZAWA,A.AND HAGIYA, M. 1999a. Careful analysis of type spoofing. In C. H. Cap, Ed., JIT '99 Java- Informations- Tage, pp. 290-296. Informatik aktuell, Springer-Verlag.
 
177
TOZAWA,A.AND HAGIYA, M. 1999b. Formalization and Analysis of Class Loading in Java. Graduate School of Science, University of Tokyo.
 
178
 
179
 
180
 
181
 
182
VON OHEIMB, D. 2000. Axiomatic semantics for Java light . In S. Drossopoulkou, S. Eisenbach, B. Jacobs, G. T. Leavens, P. Muller, and A. Poetzsch-Heffter, Eds., ECOOP'2000 Work-shop on Formal Techniques for Java Programs (Sophia Antipolis, France, June), pp. 88-95. Fernuniversitat Hagen.
 
183
184
 
185
WALLACE, C. 1997. The semantics of the Java programming language: Preliminary version. Tech. Rep. CSE-TR-355-97, University of Michigan EECS Department.
 
186
 
187
WALLACH,D.S.AND FELTEN, E. W. 1998. Understanding Java stack inspection. In Symp. on Security and Privacy (Oakland, Calif., May), pp. 52-63. IEEE Computer Society Press, Los Alamitos, Calif.
 
188
 
189
WEBB, W. 1999. Embedded Java: An uncertain future. Electrical Design News 44, 10 (May), 89-96.
 
190
WELCH, P. H. 1997. Java threads in light of Occam/ CSP. In A. Bakkers, Ed., Parallel Programming and Java, WoTUG 20 (Twente, Netherlands, Apr.), pp. 282-309. Concurrent Systems Engineering Series, IOS Press, Amsterdam.
191
 
192
193

CITED BY  13

Collaborative Colleagues:
Pieter H. Hartel: colleagues
Luc Moreau: colleagues