| Verifiable functional purity in java |
| Full text |
Pdf
(251 KB)
|
Source
|
Conference on Computer and Communications Security
archive
Proceedings of the 15th ACM conference on Computer and communications security
table of contents
Alexandria, Virginia, USA
SESSION: Software security 2
table of contents
Pages 161-174
Year of Publication: 2008
ISBN:978-1-59593-810-7
|
|
Authors
|
|
Matthew Finifter
|
University of California, Berkeley, Berkeley, CA, USA
|
|
Adrian Mettler
|
University of California, Berkeley, Berkeley, CA, USA
|
|
Naveen Sastry
|
University of California, Berkeley, Berkeley, CA, USA
|
|
David Wagner
|
University of California, Berkeley, Berkeley, CA, USA
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 13, Downloads (12 Months): 213, Citation Count: 0
|
|
|
Warning: The download time has expired please click on the item to try again.
ABSTRACT
Proving that particular methods within a code base are functionally pure--deterministic and side-effect free--would aid verification of security properties including function invertibility, reproducibility of computation, and safety of untrusted code execution. Until now it has not been possible to automatically prove a method is functionally pure within a high-level imperative language in wide use, such as Java. We discuss a technique to prove that methods are functionally pure by writing programs in a subset of Java called Joe-E; a static verifier ensures that programs fall within the subset. In Joe-E, pure methods can be trivially recognized from their method signature. To demonstrate the practicality of our approach, we refactor an AES library, an experimental voting machine implementation, and an HTML parser to use our techniques. We prove that their top-level methods are verifiably pure and show how this provides high-level security guarantees about these routines. Our approach to verifiable purity is an attractive way to permit functional-style reasoning about security properties while leveraging the familiarity, convenience, and legacy code of imperative languages.
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
|
M. Barnett, K.R. Leino, and W. Schulte. The Spec# programming system: An overview. In Proceedings of Construction and Analysis of Safe, Secure and Interoperable Smart Devices (CASSIS), 2004.
|
 |
4
|
|
| |
5
|
W. Bright. D language 2.0. http://www.digitalmars.com/d/2.0/.
|
| |
6
|
L. Brown. AEScalc. http://www.unsw.adfa.edu.au/~lpb/src/AEScalc/AEScalc.jar.
|
| |
7
|
Lilian Burdy , Yoonsik Cheon , David R. Cok , Michael D. Ernst , Joseph R. Kiniry , Gary T. Leavens , K. Rustan M. Leino , Erik Poll, An overview of JML tools and applications, International Journal on Software Tools for Technology Transfer (STTT), v.7 n.3, p.212-232, June 2005
[doi> 10.1007/s10009-004-0167-4]
|
| |
8
|
Y. Cheon and G. Leavens. A runtime assertion checker for the Java Modeling Language, 2002.
|
| |
9
|
T. Close and S. Butler. Waterken server. http://waterken.sourceforge.net/.
|
 |
10
|
|
| |
11
|
HTML4 Test Suite. http://www.w3.org/MarkUp/Test/HTML401/current/.
|
| |
12
|
R. Ierusalimschy and N. de La Rocque Rodriguez. Side-effect free functions in object-oriented languages. Comput. Lang., 21(3/4):129--146, 1995.
|
 |
13
|
M. Frans Kaashoek , Dawson R. Engler , Gregory R. Ganger , Hector M. Briceño , Russell Hunt , David Mazières , Thomas Pinckney , Robert Grimm , John Jannotti , Kenneth Mackenzie, Application performance and flexibility on exokernel systems, Proceedings of the sixteenth ACM symposium on Operating systems principles, p.52-65, October 05-08, 1997, Saint Malo, France
|
 |
14
|
|
| |
15
|
G. Leavens and Y. Cheon. Design by contract with JML, 2003.
|
| |
16
|
A. Mettler and D. Wagner. The Joe-E language specification, version 1.0. Technical Report UCB/EECS-2008-91, EECS Department, University of California, Berkeley, August 7, 2008.
|
| |
17
|
|
| |
18
|
|
 |
19
|
|
| |
20
|
D. Oswald, S. Raha, I. Macfarlane, and D. Walters. HTMLParser 1.6. http://htmlparser.sourceforge.net/.
|
| |
21
|
|
 |
22
|
|
| |
23
|
A. Salcianu and M.C. Rinard. Purity and side effect analysis for java programs. In VMCAI, pages 199--215, 2005.
|
| |
24
|
Verifying Security Properties in Electronic Voting Machines. PhD thesis, University of California at Berkeley, 2007.
|
| |
25
|
F. Sauer. Eclipse metrics plugin 1.3.6. http://metrics.sourceforge.net/.
|
 |
26
|
Matthew S. Tschantz , Michael D. Ernst, Javari: adding reference immutability to Java, Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
 |
27
|
|
| |
28
|
K.-P. Yee and M. Miller. Auditors: An extensible, dynamic code verification mechanism, 2003. http://www.erights.org/elang/kernel/auditors/index.html.
|
|