Proofing: An Efficient and Safe Alternative to Mobile-Code Verification
نویسندگان
چکیده
The safety of the Java Virtual Machine is founded on bytecode verification. Although verification complexity appears to roughly correlate with program size in the average case, its worst-case behavior is quadratic. This can be exploited for denial-of-service attacks using relatively short programs (applets or agents) specifically crafted to keep the receiving virtual machine’s verifier busy for an inordinate amount of time. Instead of the existing, quadratic-complexity verification algorithm, which needs to decide the validity of any given bytecode program, we present a linear-complexity alternative that merely ensures that no unsafe program is ever passed on to the virtual machine. Hence, in certain cases, our algorithm will modify an unsafe bytecode program to make it safe, a process that we call “proofing”. Proofing does not change the semantics of programs that would have passed the original bytecode verifier. For programs that would have failed verification, our algorithm will, in linear time, either reject them, or transform them into programs (of unspecified semantics) that are guaranteed to be safe. Our method also solves a long-standing problem, in which for certain perfectly legal Java source programs the bytecodes produced by Java compilers are erroneously rejected by existing verifiers.
منابع مشابه
Proofing: Efficient SSA-based Java Verification
Verification is essential for assuring the integrity of a Java virtual machine when executing untrusted code. Existing verifiers decide whether or not a given bytecode program is safe. In contrast, we introduce the concept of proofing. Proofing does not change the semantics of programs that would have passed the original bytecode verifier. For programs that would have failed verification, our a...
متن کاملMaking Mobile Code Both Safe And Efficient
Mobile programs can potentially be malicious. To protect itself, a host that receives such mobile programs from an untrusted party or via an untrusted network connection will want some kind of guarantee that the mobile code is not about to cause any damage. The traditional solution to this problem has been verification, by which the receiving host examines the mobile program to discover all its...
متن کاملEnabling Efficient Program Analysis for Dynamic Optimization of a Family of Safe Mobile Code Formats
Modern and likely future architectures require compilers to perform extensive restructuring of programs during optimization. We have been building a system in which JVM bytecode is compiled off-line into an alternative, enhanced mobile-code format. This alternative format is still fully target-machine independent but can be more easily verified and compiled into native code. In particular, our ...
متن کاملSafe Robot Control in the Intelligent Space using Mobile Code Technology
This paper describes how the safe mobile code technology can be integrated into the Intelligent Space environment. In the Intelligent Space, several Distributed Intelligent Network Devices communicate and share their information about a human environment. In this environment mobile robots can be controlled with mobile code technology. The mobile code is a program-component obtained from a remot...
متن کاملAn Overview of Group Key Management Issues in IEEE 802.16e Networks
The computer industry has defined the IEEE 802.16 family of standards that will enable mobile devices to access a broadband network as an alternative to digital subscriber line technology. As the mobile devices join and leave a network, security measures must be taken to ensure the safety of the network against unauthorized usage by encryption and group key management. IEEE 802.16e uses Multica...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003