Java Security Model For Mobile Code

Download Report

Transcript Java Security Model For Mobile Code

Java Security Model For
Mobile Code
Abdo Achkar
Mobile Code
Definition:
Code that can be transmitted across a
network and executed on the other end.
A mobile object is a “self contained
piece” of executable code.
Mobile code is dynamically loaded
and executed by standalone
programs. Ex: Browsers
Advantages Of Mobile Code
In Distributed Systems
Eliminates installation problems of
desktop applications.
Favors portability to different
platforms.
Enhances scalability of client/server
applications.
Reduces software distribution costs.
Criteria For Mobile Code
Safe environment of execution
Platform independence
Life cycle control
Security
How Does Java Ensure These
Criteria?
Safety features built into the JVM
Type-safe reference casting
Structured memory access
Automatic garbage collection
Array bounds checking
Checking references for null
How Does Java Ensure These
Criteria? (Cont’)
The class loader architecture
Primordial class loader (trusted)
Class loader for other classes (non trusted)
Every namespace has its own loader
The class loader checks to make sure that
the class does not declare itself to be a
member of a trusted package
How Does Java Ensure These
Criteria? (Cont’)
The class-file verifier
Checks format and internal
consistency
Bytecode verifier
• Checks that no local variable is accessed
before instantiation
• Checks that class’ fields are assigned
values of proper type.
• Checks methods’ arguments number and
type
Class Verifier (cont’)
Phase two and dynamic linking
Finding the class being referenced
Replacing symbolic references with direct
references (and remembering them)
How Does Java Ensure These
Criteria? (Cont’)
The security manager
Defines the limits of the “sandbox”
Is consulted for permission for every
potentially dangerous action.
List of possible dangerous behaviors
supported by security managers:
Accepting/Opening sockets
Modifying/Creating threads
Creating new class loaders
Creating new process
Loading DLLs.
Deleting/reading/writing from and to a file
Advantages of using Java in mobile
code
 Unlike traditional software, java allows
working with software that come from
sources you do not fully trust.
 Java’s openness allows security holes to
be identified and patched.
 Java is platform independent
 Java is free
 Java code is robust (otherwise the
loader/verifier would throw exceptions)
Disadvantages of Java
Slow due to all checkings it does
Does not allow low level control of
hardware without having to call natives.
(can be a security advantage)
Every class extends the class Object. This
adds a lot of overhead to the program.
Questions
References
 http://www.javaworld.com/javaworld/jw-081997/jw-08-hood.html
 http://www.javaworld.com/javaworld/jw-091997/jw-09-hood.html
 http://www.javaworld.com/javaworld/jw-101997/jw-10-hood.html
 http://www.javaworld.com/javaworld/jw-111997/jw-11-hood.html
 http://www.cafeaulait.org/course/week13/26.html
 http://www.sims.berkeley.edu/academics/course
s/is206/f97/GroupC/java.html