Security in Mobile Agent Systems
The concept of Mobile Agents is not as new as it may seem to be, although the term 'Mobile Agent' just started spreading at the beginning of the 1990's. Mobile Agents are considered as objects that are able to move autonomously in a network of hosts to fulfil their tasks. Agents are able to decide, based on their local knowledge, if or when or where to migrate in the network. During migration the agents' local state variables are transferred to the new host to continue computation there.
On the one hand, this concept is very helpful to create scalable, dynamic, distributed applications. On the other hand, it produces a lot of additional overhead in terms of performance and security.
Being able to migrate through the network, a mobile agent in need of some data or service can move close (or closer) to the place of that service. This reduces network load and allows faster access. For example, to access a database the agent moves to the host of the database. It, then, reads the information locally and may do some filtering or pre-processing. Finally, it moves back to its home place and returns the results to its owner. In this scenario, mobile agents may have considerable advantages to a client/server architecture. Instead of transferring all data through the network to the home site and doing all processing there, (some) processing is done on the database node. The results may be much smaller and, thus, the transfer much more efficient.
However, migration of agents is not easy to achieve. It takes considerable effort to collect the complete local state of the agent and possibly the whole runtime stack before migration takes place. All this data must be transferred together with the agent's code to its new place.
In addition, security is one of the key issues in mobile-agent-systems for either side: mobile agents have to be protected from mobile-agent-systems and vice versa. Both problems are not trivial in any way, although protection of mobile-agent-systems is better understood than that of mobile agents. Sandboxes and similar concepts help to apply security for systems executing mobile agents. The Java sandbox is a popular example here. It is already in wide-spread use in WWW browser capable of running Java applets.
Protecting mobile agents from mobile-agent-systems is even harder. The hosting mobile-agent-system must be able to read the complete agent code and data. The system is able to inspect - at any time of execution - the complete run-time stack and may do any modification it wishes to. The agent is at the mercy of the system. The agent may encrypt some of its data to protect it from spying out, but it must not carry the decryption key with it. It may become clear that mobile-agent protection is hard to achieve and sometimes even considered impossible.
Security in mobile-agents-systems is non-trivial...
- Architecture for a security framework for mobile-agent-systems.
- Identifing a necessary security infrastructure.
- Integration of security infrastructure into a system.
- Management of mobile-agent-systems in respect to security issues.
- Concepts and methods to provide security services to mobile agents.
For further information please contact firstname.lastname@example.org.