Slovak University of Technology, Bratislava
Faculty of Electrical Engineering and Information Technology
Degree Course: INFORMATICS
Author: Bc. Radoslav Balvan
Diploma thesis: Security Of Mobile Agents
Supervisor: Ing. Milan Vojvoda
December 2003

This paper describes the current state in the field of mobile computing. Its aim is to give a closer look to terms mobile code, agent and malicious host and to point out security issues in using the mobile computing.

The mobile code is virtually fragile against any attacker trying to steal the data that the agent contains. Furthermore, the code is not even conscious of any enemy action, if it based from the host computer. In the paper we analyze the possible threats against the mobile agents and focus on the software solutions, which may improve the agent's abilities to secure itself against attacks.

We propose the design and implementation of an agent which is able to search for documents containing specified words or phrases on remote hosts. The agent get the query from its owner and then the agent set off to the first host in the list. The agent passes the query into the search engine and brings the documents found back to the owner.

The agent is signed by its owner and the host verifies the signature when the agent is received. Furthermore, the host signs the agent when receiving it and also when sending it out. The purpose is to make sure that every change of the agent's inner state is signed by the host where the change occurred. If the owner recognizes that the agent was received by any host in a state which is different from the state of the agent when send out from the previous host, so then the agent's results are dropped.

The system is implemented in Java. We used the RMI technology for enabling the mobility of agents. For digital signature and ciphers, we used the security algorithms which are provided by SUN in their Java development kit (JDK version 1.4.2) software. We used Lucene as the search engine and the system supports HTML and TXT documents for searching and indexing.