To establish a well-defined security policy for the
threats mentioned in the previous paragraph, we need
to satisfy the security requirements related to this
paradigm: authentication, confidentiality, integrity
and availability. A simple solution would be that the
owner of an agent limits its itinerary only to trusted
sites. However, this solution remains insufficient re-
garding the threats that agent may meet. Also, limit-
ing the itinerary of agent will reflect passively on its
mobility as well as the results it got. In this paper,
many mechanisms are used such as: cryptography,
mutual authentication, digital signature and XML se-
rialization.
3 OUR SOLUTION
A mobile agent must have the ability to communi-
cate with other agents of the system (either local or
remote agents), to exchange information and bene-
fit from the knowledge and expertise of other agents.
But in practice, mobility does not replace the com-
munication capabilities of the agents but completes
them. Hence, the interaction between mobile agents
needs first to initiate communication between the plat-
forms, ensure their compatibility and collect specific
information about them. In this section we present
a detailed description of the proposed solution that
consists in simulating a set of cooperative agents in
charge of performing different mechanisms in order
to satisfy the security requirements.
3.1 Authentication Solution
To prevent attacks related to unavailability of authen-
tication, we integrate in each one of the interacting
platforms, a specific agent called ”DH −DSA
Agent”.
This later must have among its data a specific list
containing the addresses of hosts constituting the
itinerary to travel. In practice, these addresses can
be IP addresses of host machines. Before the mi-
gration of agent to a new host, an authentication
mechanism using the Diffie-Hellman key exchange
(Diffie and Hellman, 1976), and the standard for dig-
ital signature (Gallagher, 2009) is running between
the ”DH − DSA Agent” of both platforms, in order
to create a common shared key. This key will be used
afterwards to sign and verify the addresses and data
exchanged between both hosts.
The first step of Diffie Hellman algorithm is to
generate randoms for modulo and primitive root com-
putations. This implies the use of Pseudo Random
Number Generator (PRNG) to apply this task. Yet,
the DH-provider in Java Runtime does not support
cryptographic generator, considered as the faster and
most secure ones after the quantum generators. This
issue leads us to adopt a new implementation of
Diffie Hellman algorithm using ISAAC+ (Aumasson,
2006). The ISAAC+ algorithm is an enhanced ver-
sion provablysecure of ISAAC (Indirect, Shift, Accu-
mulate, Add and count) (Aumasson, 2006) which has
similarities with RC4 (Mousa and Hamad, 2006). it
uses an array of 256 four-octet integers as the internal
state, and writes the results to another 256 four-octet
integer array. It is very fast on 32-bit computers.
In our approach, we make use of a new attempt to
fix the integrated Diffie-Hellman-DSA Key Exchange
Protocol proposed in (Phan, 2005). Figure 2 enumer-
ates the different steps of the improved protocol. All
random values are generated with ISAAC+, the com-
putations are performed on finite field, and for the
digital signature we use the one-way function SHA-
1 (Eastlake and Jones, 2001). At the step 10, we in-
troduce the IP address of the remote host (got from
the list of addresses that the mobile agent contains) in
the signature, and at the step 11 the hosting platform
verifies that signature using its own IP address.
The main idea behind this attempt to fix the inte-
grated Diffie-Hellman-DSA Key Exchange Protocol
is to ensure computations basing on two ephemeral
secrets v and w chosen by the two parties A and
B. This provides forward secrecy because even if
the long-term private key of any party is exposed,
previous session keys cannot be computed since the
ephemeral secrets, v and w for that session are un-
known. Also provides key freshness because ev-
ery session key is a function of ephemeral secrets
so neither party can predetermine a session key’s
value since he would not know what the other party’s
ephemeral secret is going to be.
Figure 3 describes the process of the adopted so-
lution for authentication. The native machine sends
to the host one a request for mobility of agent and
asks for information to authenticate it. Each machine
includes a manager agent responsible for managing
communications between components of the platform
and interactions with the remote ones. This manager
agent communicates with the ”DH − DSA
Agent” in
order to perform the steps of the authentication pro-
tocol and generate a session shared key of 256 bits
used later to maintain the confidentiality and integrity
properties .
The establishment of an authentication mecha-
nism between agents and platforms is very essen-
tial, to avoid attacks in relation with unauthorized ac-
cess. An agent that has access to a platform and its
services without having the proper authorization can
harm other agents and the platform itself. So, a plat-
ANewApproachbasedonCryptographyandXMLSerializationforMobileAgentSecurity
405