![](bg3.png)
of the network’s infrastructure is assumed. For that
reason, Jini is not only bound to security problems
related to distributed systems, but also to any
additional issues that the spontaneity of the
environment invokes. The following components
present different security requirements and they will
be examined separately.
3.1 Proxy Object Issues
Nothing should be able to alter the state of the proxy
object, either by intention or by fault. That means
that the integrity of the proxy object must be ensured
(Hasselmeyer et. al, 2000a). Since the proxy object
is downloaded from an unknown location in the
network, neither the source nor the intentions of the
proxy object can be verified. Therefore, even the act
of downloading the proxy of a service is considered
by itself a security risk. Moreover, the proxy is
responsible for performing the communication
between the client, and the service that the proxy
represents. Therefore the integrity and
confidentiality of the communication has to be
preserved, since the communication link might be
intercepted, altered, or simulated by someone with
malicious intentions. The privacy and anonymity of
the client may be abused, because the client can not
be ensured that the proxy does indeed provide the
functionality it claims (Hasselmeyer et. al, 2000a).
On the other hand it has to be verified that any data
that needs to be supplied to the proxy object, for the
interaction with the service to take place, reaches the
appropriate service (JAAS).
3.2 Lookup Service Issues
The Lookup Service lacks any mechanism for
authenticating services (Schoch et. al, 2001). That
means every service can discover the Lookup
Service and register its proxy. Malicious proxies
may register and pretend they provide some
functionality, while they don’t. Moreover, every
client can search the Lookup Service and find which
services are provided. Some services may require
only registered users to access them. Therefore
access control mechanisms need to be imposed.
Additionally, clients might encounter unfairness
while searching the Lookup Service for available
services (Hasselmeyer et. al, 2000a). There is no
way a client of a service can be assured that he
received the best available service from the Lookup
Service. The fact that every service can register and
even re-register with the Lookup Service can lead to
“man-in-the-middle” attacks (Schoch et. al, 2001). A
malicious service just has to re-register its proxy
with the same service ID as the original one. Every
time a client tries to access the required service, the
Lookup Service may provide him with the new,
malicious proxy. The client is unaware of the
change, as the new proxy looks like it implements
the same interface as the original one.
3.3 Service Interaction issues
In order for an interaction between two services to
take place, the service acting as a client must first
locate the provider of the desired service, via the
process of discovery, and then download its
corresponding proxy object. However, in a
spontaneous environment like Jini, hundreds of
services may be present at the same time and many
of them may provide the same functionality. No
standard names or address for recognising individual
services exist, besides a unique service ID that is
assigned by the Lookup Service. However, it is
dependent upon the provider of each service to
decide whether or not the assigned ID will be stored
and used in any future transactions. Therefore clients
have to be able to authenticate the services they
access (Eronen et. al., 2000). Similarly, the service
provider has to be able to authenticate clients that try
to use its resources and call its provided functions.
Another aspect in the service interaction is different
access levels (Kagal et. al, 2001). An obvious
solution to this problem is the integration of access
control lists. Every user could be identified by a
unique username and password that would grant him
or deny certain permissions. However, new
problems arise, like the distribution of the
appropriate keys and the way that the permissions
are to be decided.
4 THE DAVIS PROJECT
The Davis project (http://davis.jini.org/) is an effort
led by Sun Microsystems’ project team responsible
for the development of Jini. The purpose is to satisfy
the basic Jini requirements for security, by providing
a security programming model that would be tightly
integrated with the original Jini programming model
and infrastructure. Part of the requirements
(Scheifler, 2002) has been to avoid changing any
existing application code by defining security
measures at deployment time. Also to extend the
security mechanisms provided by the Java
programming language, such as the Java
Authentication and Authorisation Service (JAAS).
The Davis project has been integrated with the
original release of Jini networking technology (Jini
specifications archive – v 2.0) resulting in the
ICETE 2004 - SECURITY AND RELIABILITY IN INFORMATION SYSTEMS AND NETWORKS
70