Securing Java RMI-based Distributed Applications

Ninghui Li
Purdue University
USA

John Mitchell
Stanford University
USA

Derrick Tong
Google
USA

Both Java RMI and Jini use a proxy-based architecture. In this
architecture, a client interacts with a service through a proxy,
which is code downloaded from a directory and installed on the
client's machine. An attacker who controls the communication
channels or the directory may compromise the confidentiality and
integrity of the client and of the service. We present a security
architecture that protects both clients and services in
distributed proxy-based computing. In this architecture, the
service registers a signed authentication proxy with the
directory. The client, after downloading a signed authentication
proxy from the directory, verifies the signature on the proxy,
authenticates itself to the service through the proxy, and
receives a dedicated session proxy for the service over a secure
channel. We also describe a Java-based toolkit that implement the
security architecture. This toolkit enables developers to add
security to Java RMI-based applications with minimal
implementation effort.

Keywords: Java, RMI, Jini, proxy

Read Paper Read Paper (in PDF)